Bối cảnh và vấn đề nghiên cứu
Trong xu thế ứng dụng công nghệ thông tin vào hoạt động kinh doanh, thương mại điện tử đã trở thành phương thức giao dịch phổ biến, làm thay đổi căn bản hành vi mua bán của xã hội. Thực tiễn thị trường ghi nhận sự phát triển của nhiều nền tảng website thương mại điện tử khác nhau, kéo theo nhu cầu bán hàng đa kênh của các thương nhân. Để tối ưu hóa hoạt động tiếp cận khách hàng, một đơn vị kinh doanh thường vận hành song song website bán hàng riêng và mở các gian hàng trên các sàn thương mại điện tử tập trung.
Tuy nhiên, do mỗi nền tảng thương mại điện tử được xây dựng trên những nền tảng công nghệ và kiến trúc phần mềm riêng biệt, cấu trúc lưu trữ và quản lý dữ liệu sản phẩm giữa các hệ thống xuất hiện sự không đồng nhất sâu sắc. Việc duy trì tính chính xác, chi tiết và đồng bộ dữ liệu giữa các kênh bán lẻ trở thành yêu cầu kỹ thuật cấp thiết. Trước thời điểm nghiên cứu, quy trình tạo mới, cập nhật thông tin và điều chỉnh số lượng sản phẩm trên sàn thương mại điện tử Lazada chủ yếu được thực hiện thủ công thông qua giao diện quản trị Lazada Seller Center hoặc qua quy trình nhập liệu tệp mẫu hàng loạt. Quy trình này đòi hỏi nhân sự phải tự điền, kiểm tra và tải dữ liệu lên hệ thống, tiêu tốn nhiều thời gian, công sức và tiềm ẩn sai sót dữ liệu khi quy mô gian hàng lên tới hàng trăm hoặc hàng nghìn mặt hàng.
Xuất phát từ thực tế đó, luận văn thạc sĩ chuyên ngành Mạng máy tính và truyền thông dữ liệu của tác giả Nguyễn Lương Mạnh (Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội, 2018) đã tập trung giải quyết bài toán:
- Mục tiêu nghiên cứu: Nghiên cứu và xây dựng giải pháp đồng bộ dữ liệu tự động giữa hệ thống website thương mại điện tử sử dụng nền tảng Magento và sàn thương mại điện tử Lazada.
- Nhiệm vụ nghiên cứu:
- Phân tích và làm rõ sự sai khác về cấu trúc dữ liệu sản phẩm giữa hệ thống Magento và sàn Lazada.
- Khảo sát, phân tích cơ chế giao tiếp qua hệ thống giao diện lập trình ứng dụng (Lazada Open Platform API).
- Thiết kế, giải quyết các hạn chế tồn tại của module API tích hợp sẵn trên Magento nhằm loại bỏ mã hóa cứng (hardcode) và bổ sung tính năng đồng bộ dữ liệu hai chiều.
- Đối tượng và phạm vi nghiên cứu:
- Đối tượng: Cấu trúc dữ liệu sản phẩm phân cấp, cơ chế ánh xạ thuộc tính và giải pháp đồng bộ hóa tự động qua giao diện lập trình ứng dụng giữa Magento và Lazada.
- Phạm vi cấu trúc: Nghiên cứu tập trung giải quyết mô hình sản phẩm hai lớp (cha – con) thông thường giữa Magento và Lazada.
- Thời gian thực hiện: Năm 2018, dựa trên hệ thống API và phiên bản nền tảng tại thời điểm nghiên cứu.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình ứng dụng
Luận văn tiếp cận vấn đề tích hợp hệ thống dựa trên sự kết hợp giữa lý thuyết thương mại điện tử, lý thuyết đồng bộ hóa dữ liệu và kiến trúc phần mềm mã nguồn mở:
- Khung tổng quan thương mại điện tử: Phân loại các mô hình giao dịch trực tuyến bao gồm Doanh nghiệp với Doanh nghiệp (B2B), Doanh nghiệp với Người tiêu dùng (B2C), Chính phủ với Doanh nghiệp (G2B), Chính phủ với Công dân (G2C), Người tiêu dùng với Người tiêu dùng (C2C) và Thương mại điện tử trên thiết bị di động (m-commerce). Luận văn xác định bốn cơ sở phát triển thương mại điện tử gồm: hạ tầng kỹ thuật Internet, hạ tầng pháp lý, phương thức thanh toán và nguồn nhân lực am hiểu công nghệ kết hợp kinh doanh.
- Lý thuyết đồng bộ hóa dữ liệu (Data Synchronization): Quá trình trao đổi và thống nhất thông tin giữa hai hoặc nhiều nguồn dữ liệu theo thời gian. Cơ sở lý thuyết viện dẫn bài toán mã hóa Slepian-Wolf và phân chia dữ liệu thành hai loại hình xử lý:
- Dữ liệu không có thứ tự: Đo lường mức chênh lệch đối xứng giữa hai tập hợp phân tán thông qua ba hướng tiếp cận gồm chuyển giao toàn bộ (full transfer), đánh dấu theo mốc thời gian (timestamp) và mô hình hóa toán học.
- Dữ liệu có thứ tự: Xem xét hai chuỗi ký tự phân tán và giải quyết việc thu hẹp khoảng cách sửa đổi (edit distance) thông qua các thao tác thêm, xóa, sửa cho đến khi khoảng cách bằng 0. Văn bản viện dẫn các thuật toán đồng bộ đã được phát triển trong khoa học máy tính như Palm HotSync, Intellisync, SyncML, CPISync.
- Kiến trúc nền tảng Magento: Nền tảng thương mại điện tử mã nguồn mở được phát triển bởi Varien dựa trên Zend Framework (ZF) viết bằng ngôn ngữ PHP hướng đối tượng. Kiến trúc được cấu trúc thành ba vùng chứa mã nguồn (code pools):
core(mã nguồn lõi),local(mã nguồn tùy biến của người dùng) vàcommunity(mã nguồn mở rộng do cộng đồng phát triển). Cấu trúc thành phần chức năng bên trong một module Magento bao gồm các lớp: Blocks (Structural blocks và Content blocks), Helpers, Model, Controllers, Data, Sql, Etc (cấu hình XML), Interface và Themes (Default theme và Non-default theme). - Hệ sinh thái Lazada Open Platform: Nền tảng tích hợp cung cấp hệ thống API đầu cuối (end-to-end API) phục vụ các nghiệp vụ quản lý sản phẩm, đơn đặt hàng, gói hàng và dữ liệu tài chính của nhà bán lẻ.
Phương pháp nghiên cứu
Tác giả áp dụng các phương pháp nghiên cứu kỹ thuật hệ thống bao gồm:
- Phương pháp phân tích – tổng hợp tài liệu: Khảo sát tài liệu kỹ thuật của Zend Framework, Magento Core Architecture và đặc tả kỹ thuật hệ thống giao tiếp Lazada Open Platform API.
- Phương pháp phân rã bài toán (Problem Breakdown): Chia tách toàn bộ quy trình đồng bộ phức tạp thành các bài toán thành phần độc lập (nghiên cứu cấu trúc sản phẩm, tích hợp API, xử lý thuộc tính, đồng bộ tồn kho).
- Phương pháp thiết kế và thực nghiệm hệ thống: Xây dựng mô đun phần mềm dựa trên quy trình kiểm thử vòng lặp (lập trình giải pháp -> gọi kiểm thử qua API -> kiểm tra phản hồi JSON/XML -> tinh chỉnh mã nguồn Magento -> xây dựng giao diện điều khiển).
Thiết kế và triển khai
Hệ thống tích hợp giữa Magento và sàn Lazada được thiết kế dựa trên chu trình phân tích, triển khai và kiểm thử lặp:
[Phân tích vấn đề] -> [Nghiên cứu Lazada API] -> [Phân rã chức năng]
-> [Thiết kế & Lập trình Module] -> [Kiểm thử giao tiếp API]
-> [Áp dụng lên Magento] -> [Xây dựng giao diện điều khiển]
Kiến trúc phân cấp sản phẩm giữa hai hệ thống
Hệ thống phải xử lý sự khác biệt căn bản trong cách tổ chức và quản trị thông tin sản phẩm giữa Magento và Lazada:
| Tiêu chí | Hệ thống Magento | Hệ thống Lazada |
|---|---|---|
| Mô hình quản lý | Cấu trúc 2 lớp: Configurable Product – Simple Product. |
Cấu trúc 3 lớp: SPU – Product – SKU (thu gọn về 2 lớp Product – SKU khi không dùng SPU chung). |
| Vai trò lớp cha | Configurable Product: Đại diện hiển thị tại giao diện (frontend), quản lý tên, mô tả, đường dẫn URL, danh mục, bảng giá cơ sở và thư viện hình ảnh chung. |
Product (hoặc SPU): Định danh chủng loại sản phẩm đại diện trên sàn, gom các sản phẩm cùng loại của các nhà bán hàng để tránh trùng lặp. |
| Vai trò lớp con | Simple Product: Đại diện cho thực thể hàng hóa lưu kho, quản lý thông số lựa chọn (màu sắc, kích cỡ), trọng lượng và số lượng tồn kho thực tế. |
SKU: Đại diện cho đơn vị hàng hóa cụ thể của người bán hàng, chứa các thuộc tính phân loại trực tiếp và số lượng bán. |
Khóa luận định hướng giải pháp kỹ thuật vào trường hợp phổ biến nhất của các doanh nghiệp vừa và nhỏ: đồng bộ các mặt hàng theo mô hình hai lớp tương đương giữa Configurable Product / Simple Product của Magento sang Product / SKU của sàn Lazada.
Cơ chế kết nối và xử lý giao thức API
Hệ thống giao tiếp thông qua Lazada Open Platform bằng hai phương thức chính:
- Call API with Official SDK: Ứng dụng tích hợp bộ công cụ phát triển phần mềm chính thức, tự động hóa quy trình tạo yêu cầu, mã hóa dữ liệu, giải mã phản hồi và theo dõi gói tin.
- Call API with HTTP Requests: Ứng dụng tự tạo yêu cầu HTTP theo quy chuẩn, điền tham số nghiệp vụ, tạo chữ ký số (signature) bảo mật, gửi yêu cầu tới các điểm cuối (endpoints) và tiếp nhận, chuyển ngữ gói tin phản hồi dạng JSON hoặc XML.
Để hệ thống Magento có quyền trích xuất và đẩy dữ liệu sang gian hàng trên Lazada, quy trình cấp quyền OAuth được thiết lập: người bán đăng nhập tài khoản tại Lazada Seller Center, ủy quyền cho ứng dụng tích hợp để hệ thống cấp mã chứng thực (access token).
Danh mục các API của Lazada được phân tích và sử dụng trong thiết kế kỹ thuật bao gồm:
CreateProduct: Khởi tạo thông tin và tải sản phẩm mới lên sàn.GetCategoryTree: Truy xuất toàn bộ cây danh mục sản phẩm hiện có trên hệ thống Lazada.GetCategoryAttribute: Lấy danh sách các thuộc tính quy định bắt buộc và tùy chọn tương ứng với một mã danh mục cụ thể.GetProducts: Lấy thông tin chi tiết và danh sách sản phẩm hiện diện trên gian hàng.GetResponse: Tiếp nhận phản hồi trạng thái xử lý tác vụ từ máy chủ Lazada.
Nội dung chính theo từng chương
Đặt vấn đề và Tổng quan nghiên cứu
Chương mở đầu hệ thống hóa các khái niệm nền tảng về thương mại điện tử, các hình thức giao dịch từ B2B, B2C đến các phân hệ quản lý công và thương mại di động. Tác giả phân tích số liệu về quy mô phát triển của sàn Lazada tại Đông Nam Á và Việt Nam. Thành lập vào tháng 3/2012 tại Thành phố Hồ Chí Minh (Empress Tower, Quận 1) cùng hai tổng kho tại Tân Bình (Thành phố Hồ Chí Minh) và Thường Tín (Hà Nội), Lazada ra mắt thị trường với khẩu hiệu "Một click, ngàn tiện ích". Báo cáo của comScore cuối năm 2013 ghi nhận Lazada.vn là đơn vị thương mại điện tử nước ngoài duy nhất trong Top 5 website bán lẻ hàng đầu Việt Nam, đạt lưu lượng truy cập khoảng 2,3 triệu lượt/ngày, xử lý bình quân 1.800 đơn hàng/ngày, doanh thu xấp xỉ 2,5 triệu USD/tháng với biên lãi gộp 15–20% và nắm giữ xấp xỉ 30% thị phần trong nhóm Top 10 website thương mại điện tử.
Về nền tảng Magento, văn bản trích dẫn báo cáo năm 2015 của Aheadworks.com cho thấy nền tảng này chiếm 29,1% thị phần thương mại điện tử trong nhóm Top 1 triệu website hàng đầu theo xếp hạng Alexa. Tác giả phân tích lý thuyết đồng bộ dữ liệu, bài toán mã hóa Slepian-Wolf, các dạng dữ liệu có thứ tự/không thứ tự và các kỹ thuật đồng bộ hóa chuỗi dữ liệu.
Chương 2: Cấu trúc hệ thống và giao diện lập trình ứng dụng
Nội dung chương tập trung mổ xẻ sự sai khác trong kiến trúc quản lý dữ liệu giữa Magento và Lazada:
- Trình bày chi tiết cơ chế phân cấp cha – con của Magento: cấu trúc
Configurable Productlàm đại diện cho cácSimple Product. Phân tích các loại sản phẩm mở rộng khác của Magento nhưBundle Product,Grouped Product,Virtual ProductvàDownloadable Product. - Phân tích cấu trúc phân cấp ba lớp của Lazada gồm
SPU(mức quản lý danh mục chung cao nhất),Product(thông tin mặt hàng của từng người bán) vàSKU(thuộc tính biến thể chi tiết). - Mô tả thực trạng quy trình cập nhật dữ liệu thủ công: từng bước đăng nhập Seller Center, nhập liệu thuộc tính, tải tệp bảng tính hàng loạt và chỉ ra các rủi ro dẫn tới sai lệch dữ liệu.
- Phân tích kiến trúc Lazada Open Platform, cơ chế ủy quyền lấy token truy cập dữ liệu và thông số kỹ thuật của các API thao tác dữ liệu sản phẩm (
CreateProduct,GetCategoryTree,GetCategoryAttribute,GetProducts).
Chương 3: Giải quyết vấn đề
Chương này đi sâu vào việc phát hiện lỗi và hiện thực hóa các giải pháp cải tiến trên mã nguồn module tích hợp của Magento:
- Phân tích thay đổi của hệ thống Lazada API: Làm rõ những điểm điều chỉnh trong cấu trúc tham số yêu cầu và phản hồi của hệ thống Lazada Open Platform.
- Khắc phục tình trạng lấy danh sách thuộc tính từ tập tin tĩnh: Trong các phiên bản module Magento hiện hành trước đó, danh sách thuộc tính danh mục được lập trình cứng (hardcode) vào các tệp tĩnh. Điều này khiến module không thích ứng được khi Lazada thay đổi danh mục hoặc thuộc tính sản phẩm.
- Xây dựng tính năng ánh xạ thuộc tính (Attribute Map): Loại bỏ triệt để mã nguồn cứng; phát triển chức năng cho phép hệ thống tự động gọi API
GetCategoryAttributeđể tải danh mục thuộc tính động từ máy chủ Lazada về, sau đó cung cấp giao diện quản trị giúp người dùng ánh xạ tương ứng từng trường dữ liệu giữa Magento và Lazada. - Bổ sung chức năng đồng bộ dữ liệu tồn kho: Khắc phục lỗ hổng của module cũ khi chỉ hỗ trợ đẩy thông tin một chiều từ Magento lên sàn; lập trình giải pháp kỹ thuật cho phép đồng bộ số lượng hàng tồn kho ngược từ Lazada về hệ thống Magento, đảm bảo dữ liệu bán hàng được cập nhật nhất quán giữa hai hệ thống.
Kết quả và đóng góp
Kết quả chính
- Khảo sát và đối sánh cấu trúc dữ liệu: Hoàn thành phân tích đối sánh chi tiết giữa cơ chế
Configurable – Simple Productcủa Magento và cơ chếSPU – Product – SKUcủa Lazada, xác lập mô hình quy đổi dữ liệu tương đương cho cấu trúc sản phẩm hai lớp. - Loại bỏ cơ chế gán cứng (hardcode): Tái cấu trúc thành công module kết nối trên Magento; chuyển đổi toàn bộ cơ chế nạp thuộc tính danh mục từ việc đọc tệp cục bộ sang cơ chế truy vấn động thông qua API của Lazada Open Platform.
- Hiện thực hóa tính năng Attribute Map: Xây dựng hoàn chỉnh mô hình ánh xạ trường thuộc tính linh hoạt trong khu vực quản trị (
adminhtml) của Magento, hỗ trợ người dùng tự cấu hình liên kết dữ liệu giữa các thuộc tính của Magento và các thuộc tính bắt buộc của Lazada. - Thiết lập chu trình đồng bộ tồn kho hai chiều: Lập trình bổ sung chức năng kiểm tra và đồng bộ ngược số lượng sản phẩm tồn kho từ sàn Lazada về lại hệ thống quản trị Magento.
Đóng góp của luận văn
- Luận văn đã chỉ ra và xử lý trực tiếp các điểm nghẽn kỹ thuật trong các module API tích hợp Magento – Lazada thời điểm đó, đặc biệt là tình trạng phụ thuộc vào các tệp thuộc tính tĩnh thiếu linh hoạt.
- Cung cấp giải pháp kỹ thuật thực tế cho bài toán đồng bộ dữ liệu thương mại điện tử đa kênh, làm tiền đề phương pháp luận để các nhà phát triển mở rộng xây dựng các module đồng bộ giữa Magento với các sàn thương mại điện tử khác.
Hạn chế và hướng nghiên cứu tiếp
- Về phạm vi mô hình sản phẩm: Giải pháp mới chỉ tập trung xử lý trọn vẹn mô hình sản phẩm hai lớp cha – con thông thường (
Product–SKU). Hệ thống chưa bao quát và xử lý triệt để mô hình sản phẩm ba lớp hoàn chỉnh có liên kết lớp quản lýSPUtập trung của Lazada. - Về chủng loại sản phẩm Magento: Nghiên cứu mới ứng dụng cho dạng cấu hình
Configurable Productkết hợpSimple Product, chưa mở rộng áp dụng cho các kiểu sản phẩm phức tạp hoặc phi vật thể khác có trên Magento nhưBundle Product,Grouped Product,Virtual ProducthayDownloadable Product. - Hướng mở rộng: Tác giả định hướng tiếp tục hoàn thiện giải pháp đồng bộ dữ liệu trên các mô hình cấu trúc sản phẩm nâng cao, đồng thời phát triển các giải pháp đồng bộ hóa tự động tương thích giữa Magento với nhiều nền tảng sàn thương mại điện tử khác trên thị trường.
Giá trị tham khảo
Tài liệu là nguồn tham khảo hữu ích cho học viên cao học, sinh viên ngành Công nghệ thông tin, Mạng máy tính và truyền thông dữ liệu, Hệ thống thông tin, cũng như các kỹ sư phần mềm làm việc trong lĩnh vực thương mại điện tử:
- Phần cấu trúc thư mục và mô hình phát triển Magento: Tài liệu phân tích rõ ràng cấu trúc phân vùng mã nguồn (
core,local,community), vai trò của từng thành phần trong mô hình MVC của Magento (Blocks, Model, Controller, Helpers, Etc) trên nền Zend Framework. - Phần phân tích Lazada Open Platform: Cung cấp chi tiết các bước xác thực người dùng qua cơ chế Seller Center để lấy mã truy cập (token) và đặc tả kỹ thuật của các API thao tác dữ liệu cốt lõi.
- Phần giải pháp Attribute Map: Mô hình hóa phương thức ánh xạ thuộc tính động giữa hai cấu trúc cơ sở dữ liệu không đồng nhất, giải quyết triệt để vấn đề gán cứng dữ liệu trong tích hợp phần mềm.
Câu hỏi thường gặp
1. Luận văn áp dụng giải pháp đồng bộ cho mô hình sản phẩm nào giữa Magento và Lazada?
Khóa luận tập trung nghiên cứu và xây dựng giải pháp đồng bộ hóa tự động cho mô hình sản phẩm hai lớp cha – con thông thường. Trong mô hình này, cặp sản phẩm Configurable Product (sản phẩm đại diện hiển thị) và Simple Product (sản phẩm biến thể lưu kho thực tế) trên Magento được ánh xạ tương ứng sang cấu trúc hai lớp Product và SKU của sàn Lazada trong trường hợp không gắn với lớp SPU dùng chung.
2. Hạn chế cốt lõi của các module API tích hợp Magento hiện có mà tác giả đã chỉ ra là gì?
Tác giả chỉ ra hai hạn chế kỹ thuật lớn trong module API cũ:
- Danh sách các thuộc tính sản phẩm của từng danh mục Lazada bị lập trình cứng (hardcode) và lưu trong các tập tin tĩnh cục bộ, dẫn đến sai lệch khi phía sàn Lazada cập nhật hệ thống.
- Hệ thống thiếu các chức năng đồng bộ hai chiều, đặc biệt chưa xây dựng chức năng đồng bộ số lượng hàng tồn kho từ Lazada ngược về lại Magento.
3. Tính năng "Attribute Map" được xây dựng trong Chương 3 hoạt động như thế nào?
Tính năng Attribute Map loại bỏ hoàn toàn cơ chế đọc thuộc tính từ tệp tĩnh. Hệ thống sử dụng API GetCategoryAttribute của Lazada để truy xuất động danh sách các thuộc tính mới nhất của từng danh mục sản phẩm từ máy chủ Lazada. Sau đó, giao diện điều khiển trên Magento cho phép người quản trị thiết lập liên kết, ánh xạ từng trường thuộc tính tương ứng giữa Magento và Lazada trước khi thực hiện quy trình đồng bộ.
4. Nền tảng Lazada Open Platform cung cấp những phương thức nào để kết nối và gọi API?
Lazada Open Platform cung cấp hai phương thức:
- Gọi API thông qua bộ công cụ phát triển phần mềm chính thức (Official SDK), tự động xử lý các tác vụ đóng gói yêu cầu, mã hóa dữ liệu, giải mã phản hồi và theo dõi thông điệp.
- Gọi API trực tiếp thông qua các yêu cầu HTTP (HTTP requests) có chữ ký số xác thực (signature), sau đó chuyển ngữ các phản hồi nhận được dưới định dạng JSON hoặc XML.
5. Thị phần của nền tảng Magento và sàn Lazada được trích dẫn trong văn bản đạt bao nhiêu?
Theo các số liệu thống kê được luận văn trích dẫn:
- Nền tảng Magento chiếm 29,1% thị phần thương mại điện tử trong nhóm Top 1 triệu website hàng đầu theo xếp hạng của Alexa (theo báo cáo năm 2015 của Aheadworks.com).
- Sàn Lazada.vn nắm giữ khoảng 30% thị phần trong Top 10 website thương mại điện tử tại Việt Nam (theo ước tính cuối năm 2013 dựa trên báo cáo của hãng comScore).
Kết luận
Luận văn thạc sĩ của tác giả Nguyễn Lương Mạnh đã giải quyết trọn vẹn bài toán kỹ thuật về đồng bộ hóa dữ liệu sản phẩm tự động giữa website nền tảng Magento và sàn thương mại điện tử Lazada. Bằng việc phân tích sâu sắc kiến trúc phân cấp sản phẩm và cơ chế giao tiếp qua Lazada Open Platform, tác giả đã khắc phục triệt để nhược điểm gán cứng dữ liệu thông qua cơ chế ánh xạ thuộc tính linh hoạt (Attribute Map) và hoàn thiện luồng đồng bộ tồn kho hai chiều. Công trình không chỉ cung cấp một module giải pháp ứng dụng thực tiễn cho các doanh nghiệp bán hàng đa kênh mà còn đóng góp khung tham chiếu kỹ thuật cho các nghiên cứu tích hợp hệ thống thương mại điện tử tiếp theo.