SlideShare uma empresa Scribd logo
1 de 22
Tự động đặt hàng từ
Hệ thống bán lẻ lớn nhất
Trung Quốc
Phan Thái Trung
PHP Day 2010




                      PHPDay 2010
                                    LOGO
18/12/2010                             1
Nội dung


                  1   Giới thiệu Đặt hàng web TQ


                  2       Giới thiệu Kami8x


                  3       Bên trong Kami8x



                  4       Kết luận – Trao đổi




2    18/12/2010
Giới thiệu Đặt hàng qua web Trung Quốc

     Trung Quốc là trung tâm hàng hoá của
      thế giới
     Đặt hàng sỉ, lẻ qua web có nhiều ưu
      điểm mà ai cũng biết
     Đối tượng:
        Các shop kinh doanh thời trang, mỹ phẩm
        Người dùng lẻ
     Hãy xem họ hoạt động như thế nào:
        http://www.google.com.vn/search?
         q=đặt+hàng+web+trung+quốc

3     18/12/2010
Alibaba.com & Taobao.com
     Alibaba là thị trường giao dịch bán
      buôn lớn nhất Trung quốc và thế giới.
     Taobao.com
       Là thương hiệu bán lẻ hàng hoá của Alibaba.
       Là hệ thống trang web ưu tiên số 1 của
        người mua hàng VN và thế giới.
       “Cần tìm sản phẩm gì, vào taobao.com”.




4     18/12/2010
Ví dụ minh hoạ: Taobao.com
     Thẻ nhớ SD 32 G SD SDHC
     Vi mạch robot
     Quạt không cánh Dyson
     Áo thời trang dành cho teen giống các
      hot girl
       Áo da beo H&M: H&M 豹
       http://item.taobao.com/item.htm?id=8579218972

       http://item.taobao.com/item.htm?id=6013307001&


5     18/12/2010
Phần 2: Giới thiệu Kami8x
     Dịch vụ đặt hàng toàn cầu
     Có chi nhánh đại lý tại 4 tỉnh thành Hà
      Nội, Hải Phòng, Đà Nẵng, Hồ Chí Minh.
     Đầu tư rất kỹ cho đặt hàng
      taobao.com mà không dịch vụ cạnh
      tranh nào có được.




6     18/12/2010
Kami8x đặt hàng tự động như thế nào
     Phía người dùng khách hàng
        Chỉ cần nhập đường dẫn link web
        Chọn thuộc tính sản phẩm (màu sắc, kích cỡ…) (tự
         dịch từ tiếng TQ sang tiếng Việt)
        Danh sách các sản phẩm cùng hình ảnh, giá, số
         lượng và thuộc tính được quản lý trong CSDL.
     Phía đại lý, nhân viên Kami8x
        Tự động đặt hàng hàng nghìn sản phẩm mỗi đợt
        Kiểm hàng về và báo cho khách qua email, SMS.
        Quản lý danh sách các đợt hàng từ trước



7      18/12/2010
Các công nghệ đã sử dụng
     Drupal CMS (Framework)
     Tự động dịch: Google translate API
     Taobao Open Platform (TOP)
        http://open.taobao.com
     PHP Http Client Class:
        http://scripts.incutio.com/httpclient/
     PHPExcel:
        http://www.codeplex.com/PHPExcel
        Mã PHP chuyển từ số sang chữ tiếng Việt (đếm bằng chữ)
     SMS gate way
     phpQuery:
        jQuery-like DOM manipulation for PHP
     Bảo Kim API (class BaoKimPayment)
     Ngân lượng API (class NL_Checkout)


8      18/12/2010
Drupal CMS / Framework
     Drupal là một hệ thống rất mạnh để phát
      triển CMS và ứng dụng web
     Với Drupal, người phát triển không phải lo
      viết các mã cấp thấp mà chỉ tập trung vào
      phát triển phần ứng dụng
     Ví dụ nâng cao:
        AHAH form
        Batch API
        Bulk Views Operations
        Phân quyền khách, đại lý, quản lý
     Sử dụng Google Apps Email (SMTP) cho gửi
      mail với Drupal

9     18/12/2010
Công cụ dịch
      Google dịch (tiếng TQ – tiếng Anh và ngược
       lại)
         http://translate.google.com.vn/#zh-CN|en|
      Dịch tích hợp Mozilla Firefox:
         gTranslator
          https://addons.mozilla.org/en-US/firefox/addon/76233/
         “Google translate gadget for firefox. This extension
          translates entire webpages into a language of your
          choice with one click. Idea comes from Google
          Translation Bar for Chrome”.
      Dịch tích hợp Internet Explorer:
         Google Toolbar
      Dịch tích hợp Google Chrome:
         Đã tích hợp sẵn.

10      18/12/2010
Google translate API
     function _digipro_google_translate (
       $text,
       $destLang = 'vi',
       $srcLang = 'zh')
     {

         $text = urlencode( $text );

         $google_url =
          "http://ajax.googleapis.com/ajax/services/language/translate?
          v=1.0&q={$text}&langpair={$srcLang}|{$destLang}";
         $trans = @file_get_contents( $google_url );
         $json = json_decode( $trans, true );

         if( $json['responseStatus'] != '200' ) return false;
         else return $json['responseData']['translatedText'];

     }




11         18/12/2010
Taobao Open Platform (TOP)
      Hỗ trợ tự động tương tác với hệ thống
       taobao qua API
      Kami8x đã sử dụng các lệnh sau:
         taobao.item.get
           • Lấy thông tin thuộc tính, hình ảnh sản phẩm
        taobao.itempropvalues.get
           • Lấy thông tin về các thuộc tính (màu sắc, size…)
        taobao.items.get
           • Tự động nhập sản phẩm cho theo các danh mục hoặc theo
             từng shop
        taobao.itemcats.get
           • Lấy hết các danh mục hàng hoá của taobao.com về.


12     18/12/2010
Taobao Open Platform (tiếp)
      API test:
        http://open.taobao.com/api_tool/api_test.html
      Ví dụ minh hoạ:




13      18/12/2010
SMS gateway
      Brand name SMS
       gateway




      Gateway API




      Demo Gateway API



14     18/12/2010
Kami8x – tự động đặt hàng
      Từ danh sách hàng nghìn sản phẩm của khách hàng
       đã nhập
      Dùng javascript (client side) mở cửa sổ named popup
       sang đường link web sản phẩm
      Dùng GreaseMonkey để chèn mã js vào trang web
      Gọi hàm trigger để giả lập sự kiện kích nút Nhập vào
       giỏ hàng.
        var evt = document.createEvent("MouseEvents");
        evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false,
           false, false, false, 0, null);

        var aaa = document.querySelector("ul li[data-value='" + data_key_value
           + "']:not(.tb-selected) a");
        if (aaa) {
          aaa.dispatchEvent(evt);
        }

      (tiếp trang sau)


15      18/12/2010
Kami8x – tự động đặt hàng (tiếp)
      Dùng querySelector() để tìm thành
       phần DOM
        var li = document.querySelector("ul li[data-value='" +
           data_key_value + "'].tb-selected");
      Dùng addEventListener() với sự kiện
       'DOMNodeInserted‘ để bắt sự kiện Giỏ
       hàng thành công hay không

      Dùng javascript opener.postMessage()
       để phản hồi lại tình trạng tới người đặt
       hàng
      (Demo)



                     parentPopup[0].addEventListener ('DOMNodeInserted',
                     function (event) {
                                     var textNode = event.target;
                                     if (textNode.id == "J_CartInfo") {
                     if (opener) {
                              opener.postMessage(      checksum , "*");   // feedback
                                                                  }}},         false);
16      18/12/2010
Một ví dụ nữa của GreaseMonkey
      Công cụ tính giá & đặt hàng ngay
       trong Taobao
        http://kami8x.net/cong-cu-tinh-gia-dat-hang-ngay-trong-taobao
        “Với công cụ này, ngay trong trang web Taobao, người sử dụng
          có thể trực tiếp tính giá sản phẩm theo VNĐ, và thực hiện đặt
          hàng sản phẩm tới hệ thống của Kami8x.net một cách dễ dàng”
        http://kami8x.net/sites/kami8x.net/files/greasemonkey/kami8x_order.user.js




17     18/12/2010
Kami8x – tự động kiểm hàng và báo
     giá
      Kiểm hàng bằng
       Views Bulk
       Operation (VBO)
      Gửi thông báo có
       hàng / hết hàng /
       lỗi web tới khách
       hàng qua Email,
       SMS
      Lập file báo giá
       Excel và tính giá tuỳ
       theo số lượng



18      18/12/2010
Bonus – Mã chuyển số thành chữ -
     PHP
        http://phanthaitrung.thxd.nuce.edu.vn/article/helper-function-for-counting-big-number-currency-in-
         vietnamese-string

        function so_bang_chu($so, $mien_nam = false){ $NHOM = array('', 'mươi', 'trăm'); $NHOM_NGHIN =
         array(($mien_nam ? 'ngàn' : 'nghìn'), 'triệu', ($mien_nam ? 'tỷ' : 'tỉ')); $CHU = array('không',
         'một' , 'hai' , 'ba' , 'bốn' , 'năm' , 'sáu' , 'bảy' , 'tám' , 'chín');              $LINH = ($mien_nam ?
         'lẻ' : 'linh');       $chuso = (string)$so; $chuso = str_replace(' ', '', $chuso);         $kq = array();
         $nhom = 3; if ($nhom > strlen($chuso)) {         $count = 3 - $nhom + strlen($chuso);        if ($count <= 0)
         return;      $nhom = strlen($chuso); }     $count = 3; $has_last_group = false; while ($nhom3so =
         substr($chuso, -$nhom, $count)) {           if (intval($nhom3so)) {        $kq_nhom = array();           $last=
         '';        for ($j = -strlen($nhom3so); $j <= -1; $j++) {               // đếm ngược từ hàng trăm
                 $has_NHOM = true;         $chu = (substr($nhom3so, $j, 1));                    if (strlen($chu)) {
                  if ($chu == '1' && $last && $last != '0' && $last != '1') {                $kq_nhom[] = 'mốt';
                } else if ($chu == '5' && $last != '0' && $last) {               $kq_nhom[] = 'lăm';                }
         else if ($chu == '0' && $j == -1) {      // 0 don vi              // nothing            } else if ($chu !=
         '0' && $last === '0' && $j == -1) {      // 0 chuc x don vi              $kq_nhom[] = $LINH;
         $kq_nhom[] = $CHU[$chu];                          } else if ($chu == '0' && $j == -2) {       // 0 chuc
                // nothing             $has_NHOM = false;           } else if ($chu == '1' && $j == -2) {         // 1
         chuc               $kq_nhom[] = 'mười';             $has_NHOM = false;            } else if ($j == -3 &&
         $chu == '0' && !$has_last_group && substr($nhom3so, -2, 1) == '0') {         // 0 tram
           // nothing               $has_NHOM = false;           } else {              $kq_nhom[] = $CHU[$chu];
              }            if ($has_NHOM && $NHOM[-1 - $j]) $kq_nhom[] = $NHOM[-1 - $j];            }          $last =
         $chu;        }             $NHOM_NGHIN_index = ceil($nhom / 3) - 2;        if ($NHOM_NGHIN_index >= 0)
         $kq_nhom[] = $NHOM_NGHIN[$NHOM_NGHIN_index % 3];          if ($NHOM_NGHIN_index > 2) {             for ($i =
         2; $i < $NHOM_NGHIN_index; $i += 3) {              $kq_nhom[] = $NHOM_NGHIN[2];         // ty?           }
         }               $has_last_group = true;              $kq[] = implode(' ', $kq_nhom);             } else {
         $has_last_group = false;       }            $nhom += 3;     if ($nhom > strlen($chuso)) {           $count = 3
         - $nhom + strlen($chuso);         if ($count <= 0) break;        $nhom = strlen($chuso);       }       }
         $kq = array_reverse($kq); $kq = implode(', ', $kq);         // remove ", linh" to no comas $kq =
         str_replace(', ' . $LINH, ' ' . $LINH, $kq);        $kq = ucfirst($kq); return $kq;}




19         18/12/2010
Tham khảo
      How to Buy from Taobao (English
       version)
         http://taobaofieldguide.com/how-to-buy-from-
          taobao/how-to-buy-from-taobao
      Hướng dẫn xem hàng từ website
       Taobao.com và Paipai.com
         http://kami8x.net/huong-dan-xem-hang-tu-
          website-taobaocom-va-paipaicom
      Công cụ tính giá & đặt hàng ngay
       trong Taobao
         http://kami8x.net/cong-cu-tinh-gia-dat-hang-
          ngay-trong-taobao
20      18/12/2010
Kết luận – Trao đổi
      Kết luận
        Sử dụng rất nhiều công nghệ để làm nên một
         hệ thống thương mại điện tử tuỳ biến.
      Trao đổi
        Trao đổi với cử toạ




21     18/12/2010
Chúc hội thảo thành công tốt đẹp!

      Phan Thái Trung




                                          PHPDay 2010
                                                        LOGO
18/12/2010                                                 22

Mais conteúdo relacionado

Mais procurados

Slide3 - Co ban HTML5
Slide3 - Co ban HTML5Slide3 - Co ban HTML5
Slide3 - Co ban HTML5
Đặng Til
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
AiTi Education
 
Power your web skills
Power your web skillsPower your web skills
Power your web skills
Dang Tuan
 
Giao trinh java_script (1)
Giao trinh java_script (1)Giao trinh java_script (1)
Giao trinh java_script (1)
duynamit
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
hieusy
 
Bat dau hoc lap trinh asp
Bat dau hoc lap trinh aspBat dau hoc lap trinh asp
Bat dau hoc lap trinh asp
Lam To
 

Mais procurados (19)

Bài tập javascript
Bài tập javascriptBài tập javascript
Bài tập javascript
 
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPTBÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng cao
 
Slide3 - Co ban HTML5
Slide3 - Co ban HTML5Slide3 - Co ban HTML5
Slide3 - Co ban HTML5
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
 
Power your web skills
Power your web skillsPower your web skills
Power your web skills
 
Giao trinh java_script (1)
Giao trinh java_script (1)Giao trinh java_script (1)
Giao trinh java_script (1)
 
Tu hoc javascript
Tu hoc javascriptTu hoc javascript
Tu hoc javascript
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
07 x query
07 x query07 x query
07 x query
 
Os xmldomphp
Os xmldomphpOs xmldomphp
Os xmldomphp
 
Vb6 16 (9)
Vb6 16 (9)Vb6 16 (9)
Vb6 16 (9)
 
Giao Trinh Jquery
Giao Trinh JqueryGiao Trinh Jquery
Giao Trinh Jquery
 
6. javascript basic
6. javascript basic6. javascript basic
6. javascript basic
 
Bat dau hoc lap trinh asp
Bat dau hoc lap trinh aspBat dau hoc lap trinh asp
Bat dau hoc lap trinh asp
 
Php day4
Php day4Php day4
Php day4
 
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầuTài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
 

Semelhante a Tu dong dat hang tu he thong ban le lon nhat trung quoc

Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
Dang Tuan
 
Tài liệu hướng dẫn sử dụng javascript cho lập trình web
Tài liệu hướng dẫn sử dụng javascript cho lập trình webTài liệu hướng dẫn sử dụng javascript cho lập trình web
Tài liệu hướng dẫn sử dụng javascript cho lập trình web
PhanThanhToan1
 
Session 08 Final
Session 08 FinalSession 08 Final
Session 08 Final
SamQuiDaiBo
 
Session 10 Final
Session 10 FinalSession 10 Final
Session 10 Final
SamQuiDaiBo
 
Session 09 Final
Session 09 FinalSession 09 Final
Session 09 Final
SamQuiDaiBo
 
lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...
lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...
lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...
PhanThanhToan1
 
Baocao nguyenanhcuong
Baocao nguyenanhcuongBaocao nguyenanhcuong
Baocao nguyenanhcuong
Cuong Nguyen
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
Trần Nam
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
Trần Nam
 

Semelhante a Tu dong dat hang tu he thong ban le lon nhat trung quoc (20)

Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
 
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPV
 
Tài liệu hướng dẫn sử dụng javascript cho lập trình web
Tài liệu hướng dẫn sử dụng javascript cho lập trình webTài liệu hướng dẫn sử dụng javascript cho lập trình web
Tài liệu hướng dẫn sử dụng javascript cho lập trình web
 
Session 08 Final
Session 08 FinalSession 08 Final
Session 08 Final
 
Session 10 Final
Session 10 FinalSession 10 Final
Session 10 Final
 
Session 09 Final
Session 09 FinalSession 09 Final
Session 09 Final
 
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPTBÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
BÀI 7 Làm việc với thành phần mới và phạm vi ứng dụng của HTML5 - Giáo trình FPT
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-z
 
Lab04 mapview
Lab04 mapviewLab04 mapview
Lab04 mapview
 
Ajax report
Ajax reportAjax report
Ajax report
 
lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...
lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...
lap-trinh-web_nguyen-huy-khanh_web1-07-javascript - [cuuduongthancong.com] (1...
 
Baocao nguyenanhcuong
Baocao nguyenanhcuongBaocao nguyenanhcuong
Baocao nguyenanhcuong
 
Jquery
JqueryJquery
Jquery
 
Asp
AspAsp
Asp
 
Php Csdlweb06
Php Csdlweb06Php Csdlweb06
Php Csdlweb06
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
 
Lesson 2 practice
Lesson 2 practiceLesson 2 practice
Lesson 2 practice
 
Thuc tap tuan 4
Thuc tap tuan 4Thuc tap tuan 4
Thuc tap tuan 4
 

Mais de hazzaz

Coffee1
Coffee1Coffee1
Coffee1
hazzaz
 
Suy ngam
Suy ngamSuy ngam
Suy ngam
hazzaz
 
how startups can benefit from launch community
how startups can benefit from launch communityhow startups can benefit from launch community
how startups can benefit from launch community
hazzaz
 
social network game
social network gamesocial network game
social network game
hazzaz
 
trung oss magento overview
trung oss magento overviewtrung oss magento overview
trung oss magento overview
hazzaz
 
su dung drupal xay dung mang xa hoi
su dung drupal xay dung mang xa hoisu dung drupal xay dung mang xa hoi
su dung drupal xay dung mang xa hoi
hazzaz
 
html5 css3 the future of web technology
html5 css3 the future of web technologyhtml5 css3 the future of web technology
html5 css3 the future of web technology
hazzaz
 
java script unit testing framework
java script unit testing frameworkjava script unit testing framework
java script unit testing framework
hazzaz
 
build your own php extension
build your own php extensionbuild your own php extension
build your own php extension
hazzaz
 
kiem tien online
kiem tien onlinekiem tien online
kiem tien online
hazzaz
 
web optimization
web optimizationweb optimization
web optimization
hazzaz
 
speed up ntvv2 by php ext module
speed up ntvv2 by php ext modulespeed up ntvv2 by php ext module
speed up ntvv2 by php ext module
hazzaz
 
zingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphpzingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphp
hazzaz
 
mysql optimization
mysql optimizationmysql optimization
mysql optimization
hazzaz
 
EAV in Magento
EAV in MagentoEAV in Magento
EAV in Magento
hazzaz
 
css_trends
css_trendscss_trends
css_trends
hazzaz
 
Phan mem tu do nguon mo
Phan mem tu do nguon moPhan mem tu do nguon mo
Phan mem tu do nguon mo
hazzaz
 

Mais de hazzaz (20)

Coffee1
Coffee1Coffee1
Coffee1
 
Suy ngam
Suy ngamSuy ngam
Suy ngam
 
how startups can benefit from launch community
how startups can benefit from launch communityhow startups can benefit from launch community
how startups can benefit from launch community
 
social network game
social network gamesocial network game
social network game
 
trung oss magento overview
trung oss magento overviewtrung oss magento overview
trung oss magento overview
 
su dung drupal xay dung mang xa hoi
su dung drupal xay dung mang xa hoisu dung drupal xay dung mang xa hoi
su dung drupal xay dung mang xa hoi
 
html5 css3 the future of web technology
html5 css3 the future of web technologyhtml5 css3 the future of web technology
html5 css3 the future of web technology
 
java script unit testing framework
java script unit testing frameworkjava script unit testing framework
java script unit testing framework
 
build your own php extension
build your own php extensionbuild your own php extension
build your own php extension
 
kiem tien online
kiem tien onlinekiem tien online
kiem tien online
 
web optimization
web optimizationweb optimization
web optimization
 
speed up ntvv2 by php ext module
speed up ntvv2 by php ext modulespeed up ntvv2 by php ext module
speed up ntvv2 by php ext module
 
zingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphpzingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphp
 
mysql optimization
mysql optimizationmysql optimization
mysql optimization
 
EAV in Magento
EAV in MagentoEAV in Magento
EAV in Magento
 
Albus
AlbusAlbus
Albus
 
css_trends
css_trendscss_trends
css_trends
 
Cloud
CloudCloud
Cloud
 
Phan mem tu do nguon mo
Phan mem tu do nguon moPhan mem tu do nguon mo
Phan mem tu do nguon mo
 
Zing
ZingZing
Zing
 

Tu dong dat hang tu he thong ban le lon nhat trung quoc

  • 1. Tự động đặt hàng từ Hệ thống bán lẻ lớn nhất Trung Quốc Phan Thái Trung PHP Day 2010 PHPDay 2010 LOGO 18/12/2010 1
  • 2. Nội dung 1 Giới thiệu Đặt hàng web TQ 2 Giới thiệu Kami8x 3 Bên trong Kami8x 4 Kết luận – Trao đổi 2 18/12/2010
  • 3. Giới thiệu Đặt hàng qua web Trung Quốc  Trung Quốc là trung tâm hàng hoá của thế giới  Đặt hàng sỉ, lẻ qua web có nhiều ưu điểm mà ai cũng biết  Đối tượng:  Các shop kinh doanh thời trang, mỹ phẩm  Người dùng lẻ  Hãy xem họ hoạt động như thế nào:  http://www.google.com.vn/search? q=đặt+hàng+web+trung+quốc 3 18/12/2010
  • 4. Alibaba.com & Taobao.com  Alibaba là thị trường giao dịch bán buôn lớn nhất Trung quốc và thế giới.  Taobao.com  Là thương hiệu bán lẻ hàng hoá của Alibaba.  Là hệ thống trang web ưu tiên số 1 của người mua hàng VN và thế giới.  “Cần tìm sản phẩm gì, vào taobao.com”. 4 18/12/2010
  • 5. Ví dụ minh hoạ: Taobao.com  Thẻ nhớ SD 32 G SD SDHC  Vi mạch robot  Quạt không cánh Dyson  Áo thời trang dành cho teen giống các hot girl  Áo da beo H&M: H&M 豹  http://item.taobao.com/item.htm?id=8579218972  http://item.taobao.com/item.htm?id=6013307001& 5 18/12/2010
  • 6. Phần 2: Giới thiệu Kami8x  Dịch vụ đặt hàng toàn cầu  Có chi nhánh đại lý tại 4 tỉnh thành Hà Nội, Hải Phòng, Đà Nẵng, Hồ Chí Minh.  Đầu tư rất kỹ cho đặt hàng taobao.com mà không dịch vụ cạnh tranh nào có được. 6 18/12/2010
  • 7. Kami8x đặt hàng tự động như thế nào  Phía người dùng khách hàng  Chỉ cần nhập đường dẫn link web  Chọn thuộc tính sản phẩm (màu sắc, kích cỡ…) (tự dịch từ tiếng TQ sang tiếng Việt)  Danh sách các sản phẩm cùng hình ảnh, giá, số lượng và thuộc tính được quản lý trong CSDL.  Phía đại lý, nhân viên Kami8x  Tự động đặt hàng hàng nghìn sản phẩm mỗi đợt  Kiểm hàng về và báo cho khách qua email, SMS.  Quản lý danh sách các đợt hàng từ trước 7 18/12/2010
  • 8. Các công nghệ đã sử dụng  Drupal CMS (Framework)  Tự động dịch: Google translate API  Taobao Open Platform (TOP)  http://open.taobao.com  PHP Http Client Class:  http://scripts.incutio.com/httpclient/  PHPExcel:  http://www.codeplex.com/PHPExcel  Mã PHP chuyển từ số sang chữ tiếng Việt (đếm bằng chữ)  SMS gate way  phpQuery:  jQuery-like DOM manipulation for PHP  Bảo Kim API (class BaoKimPayment)  Ngân lượng API (class NL_Checkout) 8 18/12/2010
  • 9. Drupal CMS / Framework  Drupal là một hệ thống rất mạnh để phát triển CMS và ứng dụng web  Với Drupal, người phát triển không phải lo viết các mã cấp thấp mà chỉ tập trung vào phát triển phần ứng dụng  Ví dụ nâng cao:  AHAH form  Batch API  Bulk Views Operations  Phân quyền khách, đại lý, quản lý  Sử dụng Google Apps Email (SMTP) cho gửi mail với Drupal 9 18/12/2010
  • 10. Công cụ dịch  Google dịch (tiếng TQ – tiếng Anh và ngược lại)  http://translate.google.com.vn/#zh-CN|en|  Dịch tích hợp Mozilla Firefox:  gTranslator https://addons.mozilla.org/en-US/firefox/addon/76233/  “Google translate gadget for firefox. This extension translates entire webpages into a language of your choice with one click. Idea comes from Google Translation Bar for Chrome”.  Dịch tích hợp Internet Explorer:  Google Toolbar  Dịch tích hợp Google Chrome:  Đã tích hợp sẵn. 10 18/12/2010
  • 11. Google translate API function _digipro_google_translate ( $text, $destLang = 'vi', $srcLang = 'zh') { $text = urlencode( $text ); $google_url = "http://ajax.googleapis.com/ajax/services/language/translate? v=1.0&q={$text}&langpair={$srcLang}|{$destLang}"; $trans = @file_get_contents( $google_url ); $json = json_decode( $trans, true ); if( $json['responseStatus'] != '200' ) return false; else return $json['responseData']['translatedText']; } 11 18/12/2010
  • 12. Taobao Open Platform (TOP)  Hỗ trợ tự động tương tác với hệ thống taobao qua API  Kami8x đã sử dụng các lệnh sau:  taobao.item.get • Lấy thông tin thuộc tính, hình ảnh sản phẩm  taobao.itempropvalues.get • Lấy thông tin về các thuộc tính (màu sắc, size…)  taobao.items.get • Tự động nhập sản phẩm cho theo các danh mục hoặc theo từng shop  taobao.itemcats.get • Lấy hết các danh mục hàng hoá của taobao.com về. 12 18/12/2010
  • 13. Taobao Open Platform (tiếp)  API test:  http://open.taobao.com/api_tool/api_test.html  Ví dụ minh hoạ: 13 18/12/2010
  • 14. SMS gateway  Brand name SMS gateway  Gateway API  Demo Gateway API 14 18/12/2010
  • 15. Kami8x – tự động đặt hàng  Từ danh sách hàng nghìn sản phẩm của khách hàng đã nhập  Dùng javascript (client side) mở cửa sổ named popup sang đường link web sản phẩm  Dùng GreaseMonkey để chèn mã js vào trang web  Gọi hàm trigger để giả lập sự kiện kích nút Nhập vào giỏ hàng. var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var aaa = document.querySelector("ul li[data-value='" + data_key_value + "']:not(.tb-selected) a"); if (aaa) { aaa.dispatchEvent(evt); }  (tiếp trang sau) 15 18/12/2010
  • 16. Kami8x – tự động đặt hàng (tiếp)  Dùng querySelector() để tìm thành phần DOM var li = document.querySelector("ul li[data-value='" + data_key_value + "'].tb-selected");  Dùng addEventListener() với sự kiện 'DOMNodeInserted‘ để bắt sự kiện Giỏ hàng thành công hay không  Dùng javascript opener.postMessage() để phản hồi lại tình trạng tới người đặt hàng  (Demo) parentPopup[0].addEventListener ('DOMNodeInserted', function (event) { var textNode = event.target; if (textNode.id == "J_CartInfo") { if (opener) { opener.postMessage( checksum , "*"); // feedback }}}, false); 16 18/12/2010
  • 17. Một ví dụ nữa của GreaseMonkey  Công cụ tính giá & đặt hàng ngay trong Taobao  http://kami8x.net/cong-cu-tinh-gia-dat-hang-ngay-trong-taobao  “Với công cụ này, ngay trong trang web Taobao, người sử dụng có thể trực tiếp tính giá sản phẩm theo VNĐ, và thực hiện đặt hàng sản phẩm tới hệ thống của Kami8x.net một cách dễ dàng”  http://kami8x.net/sites/kami8x.net/files/greasemonkey/kami8x_order.user.js 17 18/12/2010
  • 18. Kami8x – tự động kiểm hàng và báo giá  Kiểm hàng bằng Views Bulk Operation (VBO)  Gửi thông báo có hàng / hết hàng / lỗi web tới khách hàng qua Email, SMS  Lập file báo giá Excel và tính giá tuỳ theo số lượng 18 18/12/2010
  • 19. Bonus – Mã chuyển số thành chữ - PHP  http://phanthaitrung.thxd.nuce.edu.vn/article/helper-function-for-counting-big-number-currency-in- vietnamese-string  function so_bang_chu($so, $mien_nam = false){ $NHOM = array('', 'mươi', 'trăm'); $NHOM_NGHIN = array(($mien_nam ? 'ngàn' : 'nghìn'), 'triệu', ($mien_nam ? 'tỷ' : 'tỉ')); $CHU = array('không', 'một' , 'hai' , 'ba' , 'bốn' , 'năm' , 'sáu' , 'bảy' , 'tám' , 'chín'); $LINH = ($mien_nam ? 'lẻ' : 'linh'); $chuso = (string)$so; $chuso = str_replace(' ', '', $chuso); $kq = array(); $nhom = 3; if ($nhom > strlen($chuso)) { $count = 3 - $nhom + strlen($chuso); if ($count <= 0) return; $nhom = strlen($chuso); } $count = 3; $has_last_group = false; while ($nhom3so = substr($chuso, -$nhom, $count)) { if (intval($nhom3so)) { $kq_nhom = array(); $last= ''; for ($j = -strlen($nhom3so); $j <= -1; $j++) { // đếm ngược từ hàng trăm $has_NHOM = true; $chu = (substr($nhom3so, $j, 1)); if (strlen($chu)) { if ($chu == '1' && $last && $last != '0' && $last != '1') { $kq_nhom[] = 'mốt'; } else if ($chu == '5' && $last != '0' && $last) { $kq_nhom[] = 'lăm'; } else if ($chu == '0' && $j == -1) { // 0 don vi // nothing } else if ($chu != '0' && $last === '0' && $j == -1) { // 0 chuc x don vi $kq_nhom[] = $LINH; $kq_nhom[] = $CHU[$chu]; } else if ($chu == '0' && $j == -2) { // 0 chuc // nothing $has_NHOM = false; } else if ($chu == '1' && $j == -2) { // 1 chuc $kq_nhom[] = 'mười'; $has_NHOM = false; } else if ($j == -3 && $chu == '0' && !$has_last_group && substr($nhom3so, -2, 1) == '0') { // 0 tram // nothing $has_NHOM = false; } else { $kq_nhom[] = $CHU[$chu]; } if ($has_NHOM && $NHOM[-1 - $j]) $kq_nhom[] = $NHOM[-1 - $j]; } $last = $chu; } $NHOM_NGHIN_index = ceil($nhom / 3) - 2; if ($NHOM_NGHIN_index >= 0) $kq_nhom[] = $NHOM_NGHIN[$NHOM_NGHIN_index % 3]; if ($NHOM_NGHIN_index > 2) { for ($i = 2; $i < $NHOM_NGHIN_index; $i += 3) { $kq_nhom[] = $NHOM_NGHIN[2]; // ty? } } $has_last_group = true; $kq[] = implode(' ', $kq_nhom); } else { $has_last_group = false; } $nhom += 3; if ($nhom > strlen($chuso)) { $count = 3 - $nhom + strlen($chuso); if ($count <= 0) break; $nhom = strlen($chuso); } } $kq = array_reverse($kq); $kq = implode(', ', $kq); // remove ", linh" to no comas $kq = str_replace(', ' . $LINH, ' ' . $LINH, $kq); $kq = ucfirst($kq); return $kq;} 19 18/12/2010
  • 20. Tham khảo  How to Buy from Taobao (English version)  http://taobaofieldguide.com/how-to-buy-from- taobao/how-to-buy-from-taobao  Hướng dẫn xem hàng từ website Taobao.com và Paipai.com  http://kami8x.net/huong-dan-xem-hang-tu- website-taobaocom-va-paipaicom  Công cụ tính giá & đặt hàng ngay trong Taobao  http://kami8x.net/cong-cu-tinh-gia-dat-hang- ngay-trong-taobao 20 18/12/2010
  • 21. Kết luận – Trao đổi  Kết luận  Sử dụng rất nhiều công nghệ để làm nên một hệ thống thương mại điện tử tuỳ biến.  Trao đổi  Trao đổi với cử toạ 21 18/12/2010
  • 22. Chúc hội thảo thành công tốt đẹp! Phan Thái Trung PHPDay 2010 LOGO 18/12/2010 22