Bối cảnh và vấn đề nghiên cứu

Đề tài khóa luận tốt nghiệp "Bổ sung chức năng và cải tiến quy trình cho sàn thương mại điện tử Funimart" được thực hiện bởi sinh viên Đồng Hữu Hiếu (ngành Hệ thống thông tin, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM), dưới sự hướng dẫn của thầy Vũ Minh Sang và sự hỗ trợ thực tế từ Công ty TNHH Giải Pháp Công Nghệ Funitech Việt Nam.

Funimart là nền tảng thương mại điện tử (TMĐT) hoạt động theo mô hình kết nối nhà cung cấp (NCC) nguồn hàng giá gốc với các cộng tác viên (CTV) bán hàng trực tuyến. Mô hình vận hành cho phép CTV chọn sản phẩm, phân phối lại cho khách hàng; khi phát sinh đơn, hệ thống hỗ trợ đẩy thông tin sang NCC đóng gói, kết nối đơn vị vận chuyển và quyết toán tiền hàng, hoa hồng qua ví điện tử tích hợp. Trong bối cảnh đại dịch Covid-19 thúc đẩy nhu cầu mua sắm trực tuyến, hệ thống đối mặt với sự gia tăng nhanh về số lượng người dùng và bộc lộ các điểm nghẽn trong vận hành thực tế:

  1. Quy trình thủ công, dễ phát sinh sai sót: Khi CTV nhận đơn hàng từ các sàn TMĐT (Shopee, Lazada...), việc tạo lại đơn thủ công trên Funimart làm tiêu tốn nhiều thời gian. Đồng thời, thông tin tồn kho của NCC thay đổi liên tục nhưng không được đồng bộ tự động sang các gian hàng của CTV trên sàn TMĐT, dẫn đến tình trạng đơn hàng đã tạo trên sàn nhưng Funimart phải hủy vì NCC hết hàng.
  2. Thiếu công cụ hỗ trợ bán hàng đa kênh: Khảo sát của VECOM năm 2019 cho thấy khoảng 39% doanh nghiệp tham gia kinh doanh trên diễn đàn, mạng xã hội; theo báo cáo của Cục TMĐT và Kinh tế số, khoảng 57% người tiêu dùng mua sắm qua mạng xã hội. CTV của Funimart chủ yếu bán qua Facebook, Zalo, tốn nhiều công sức tư vấn tin nhắn thủ công. Đồng thời, sự kiện TikTok Shop chính thức ra mắt tại Việt Nam ngày 29/04/2022 đặt ra yêu cầu cấp thiết phải tích hợp kênh bán hàng mới này.
  3. Cơ chế tìm kiếm sản phẩm chưa tối ưu: Hệ thống tìm kiếm mặc định trên MongoDB chưa hỗ trợ xử lý ngôn ngữ tiếng Việt, đòi hỏi người dùng phải nhập chính xác từ khóa, gây khó khăn cho CTV khi tìm kiếm nguồn hàng.
  4. Quy trình xử lý khiếu nại, đổi trả chưa tinh gọn: Thiếu quy trình hoàn trả hàng và hoàn tiền tự động vào ví điện tử, tạo gánh nặng xử lý công việc cho bộ phận hỗ trợ khách hàng.

Từ thực trạng trên, tác giả xác định 6 mục tiêu nghiên cứu cụ thể:

  1. Cho phép đơn vị cung cấp và CTV tích hợp với các sàn TMĐT mới nổi (Lazada, TikTok Shop), đồng bộ hai chiều về sản phẩm, tồn kho, đơn hàng và vận chuyển.
  2. Thu hút đối tượng người dùng mới từ các sàn TMĐT về nền tảng Funimart.
  3. Giảm tải công việc cho bộ phận xử lý khiếu nại thông qua quy trình trả hàng/hoàn tiền tối ưu.
  4. Nâng cao trải nghiệm mua hàng an toàn và thuận tiện cho người dùng cuối.
  5. Cho phép CTV tạo website bán hàng tự động mang thương hiệu cá nhân để mở rộng tiếp cận khách hàng.
  6. Cải thiện công cụ tìm kiếm sản phẩm bằng công nghệ chuyên dụng, hỗ trợ quảng cáo gian hàng và banner.

Phạm vi nghiên cứu tập trung vào hệ thống phần mềm sàn TMĐT Funimart; xây dựng cổng tích hợp tài khoản với Lazada và TikTok Shop; triển khai cơ chế đồng bộ sản phẩm/đơn hàng; thiết lập luồng xét duyệt đổi trả; phát triển trang web bán hàng tự động bằng công nghệ Next.js và tích hợp search engine Elasticsearch.


Cơ sở lý thuyết và phương pháp

Khóa luận sử dụng các nền tảng lý thuyết công nghệ và mô hình kiến trúc phần mềm tiêu chuẩn:

  • RESTful API: Kiến trúc giao tiếp máy khách - máy chủ (Client - Server) phi trạng thái (stateless) qua giao thức HTTP, sử dụng các phương thức chuẩn (GET, POST, PUT, DELETE) với định dạng dữ liệu trao đổi JSON.
  • Giao thức ủy quyền OAuth2: Áp dụng luồng cấp quyền Authorization Code Grant nhằm bảo mật quyền truy cập tài nguyên giữa Funimart và sàn TMĐT của bên thứ ba (như TikTok Shop), bao gồm 4 vai trò: Resource Owner, Resource Server, Client, Authorization Server, cùng cơ chế quản lý vòng đời của Access Token và Refresh Token.
  • Kỹ thuật Webhook và hàm băm mật mã (Cryptographic Hash Functions): Cơ chế truyền nhận dữ liệu hướng sự kiện (event-driven) thời gian thực giữa các hệ thống; xác thực tính toàn vẹn và nguồn gốc thông báo thông qua các hàm băm MD5, SHA-1, SHA-2 kết hợp kỹ thuật thêm chuỗi ngẫu nhiên (salt) chống tấn công giả mạo.
  • Công cụ tìm kiếm phân tán Elasticsearch: Xây dựng trên nền tảng Apache Lucene, sử dụng cấu trúc chỉ mục đảo (inverted index), tổ chức dữ liệu theo Cluster, Node, Shard (Primary Shard và Replica Shard). Hệ thống hỗ trợ tìm kiếm toàn văn (full-text search), tìm kiếm mờ (fuzzy search) với độ trễ xử lý gần thời gian thực (~1 giây).
  • Framework Next.js: Ứng dụng cơ chế kết xuất phía máy chủ (Server-Side Rendering - SSR) nhằm giảm thời gian tải trang ban đầu và tối ưu hóa khả năng lập chỉ mục của các công cụ tìm kiếm (SEO) cho hệ thống website bán hàng của CTV.

Phương pháp nghiên cứu kết hợp giữa phân tích nghiệp vụ TMĐT, mô hình hóa luồng xử lý bằng sơ đồ Use Case, sơ đồ tuần tự (Sequence Diagram), sơ đồ hoạt động (Activity Diagram), thiết kế cơ sở dữ liệu quan hệ/tài liệu, và hiện thực hóa chức năng trên môi trường phần mềm thực tế.

Nguồn dữ liệu của đề tài bao gồm cơ sở dữ liệu vận hành thực tế của dự án Funimart, số liệu báo cáo từ Hiệp hội Thương mại điện tử Việt Nam (VECOM 2019) và Cục Thương mại điện tử và Kinh tế số.


Thiết kế và triển khai

Hệ thống được thiết kế theo hướng module hóa, phân tách rõ ràng giữa giao diện người dùng và hạ tầng xử lý phía sau:

Kiến trúc phần mềm

  • Frontend (Giao diện quản lý): Xây dựng bằng React.js kết hợp mô hình quản lý trạng thái Redux. Trạng thái toàn cục (global state) được lưu trữ tập trung tại Store. Các tương tác từ View phát đi Action, được chuyển qua Middleware/Store Enhancers để thực hiện tiền xử lý và gọi API backend, sau đó Reducer cập nhật dữ liệu vào Store để tái hiển thị giao diện.
  • Backend (Hệ thống xử lý nghiệp vụ): Thiết kế theo mô hình Monolith phân lớp rõ ràng:
    • Middleware: Đảm nhận xác thực (Authentication/Authorization) và kiểm tra dữ liệu hợp lệ (Validation).
    • Controller: Tiếp nhận yêu cầu từ Client, điều phối thực thi và chuẩn hóa dữ liệu phản hồi.
    • Package: Thực hiện các logic nghiệp vụ lõi của sàn TMĐT.
    • Queue Service: Quản lý hàng đợi cho các tác vụ bất đồng bộ (xử lý biến động số dư ví CTV/NCC, sự kiện tích điểm, mua hàng tặng quà).
    • Repository: Lớp trung gian thao tác trực tiếp với cơ sở dữ liệu (Database/Cache).
    • Interface: Đóng gói các chuẩn kết nối với bên thứ ba (đơn vị vận chuyển, API sàn TMĐT), giúp cô lập thay đổi khi các đối tác cập nhật API.

Cải tiến và bổ sung quy trình nghiệp vụ

Quy trình nghiệp vụ Trạng thái hiện tại Giải pháp cải tiến / Bổ sung
Tạo đơn hàng từ sàn TMĐT CTV kiểm tra tồn kho và nhập thông tin đơn hàng thủ công lên Funimart; dễ nhầm lẫn thông tin khi lượng đơn tăng. Nhận Webhook tự động từ sàn TMĐT, hệ thống tự gọi API lấy chi tiết đơn và khởi tạo đơn hàng trên Funimart; CTV chỉ cần xác nhận gửi NCC.
Đồng bộ thông tin sản phẩm/tồn kho CTV tự kiểm tra và chỉnh sửa thủ công số lượng tồn kho trên từng sàn TMĐT. Hệ thống bắt sự kiện thay đổi sản phẩm/tồn kho từ NCC, tự động gọi API sàn TMĐT cập nhật đồng bộ hai chiều.
Kênh bán hàng của CTV Bán qua bài đăng, nhắn tin thủ công trên mạng xã hội Facebook/Zalo. Tự động tạo Website bán hàng với sub-domain riêng bằng Next.js SSR, hỗ trợ khách tự lên đơn 24/7 và tối ưu SEO.
Liên kết & Đẩy sản phẩm sang TikTok Shop Chưa hỗ trợ. Tích hợp OAuth2 xác thực tài khoản; xây dựng module ánh xạ danh mục, thuộc tính sản phẩm và đẩy hàng loạt sang TikTok Shop qua API.
Đổi trả hàng và hoàn tiền Xử lý khiếu nại phân tán, đối soát thủ công. Quy trình tạo đơn hoàn trả khép kín: CTV lập yêu cầu -> NCC duyệt -> gọi đơn vị vận chuyển -> hệ thống tự động cấn trừ/hoàn tiền ví điện tử.

Thiết kế cơ sở dữ liệu

Hệ thống sử dụng các thực thể bảng dữ liệu chính để quản trị các phân hệ: brands (thương hiệu), shopLayoutData (cấu hình giao diện website bán hàng), tokens (lưu trữ access token, refresh token của các sàn liên kết), productCategories (danh mục nội bộ), linkedData (dữ liệu liên kết tài khoản), products (sản phẩm), marketCategories (danh mục sàn TMĐT đối tác), orders và productOrders (đơn hàng), returnOrder, returnDetails, returnDelivery (quản lý đổi trả và vận chuyển hoàn hàng).


Nội dung chính theo từng chương

Chương 1. TỔNG QUAN ĐỀ TÀI

Chương 1 giới thiệu xuất phát điểm của đề tài từ quá trình phát triển của Funimart – dự án khởi nguồn từ sinh viên Đại học Công nghệ Thông tin. Tác giả trình bày mô hình kết nối NCC - CTV qua ví điện tử, nêu rõ những thuận lợi từ làn sóng thương mại số và các thách thức vận hành thực tế. Nội dung xác định chi tiết mục tiêu, nhiệm vụ và phạm vi xây dựng các phân hệ tích hợp, tối ưu tìm kiếm, tạo website bán hàng tự động và tinh gọn quy trình hoàn trả.

Chương 2. QUY TRÌNH NGHIỆP VỤ VÀ CƠ SỞ LÝ THUYẾT

Chương 2 phân tích chi tiết luồng nghiệp vụ hiện tại đối chiếu với luồng cải tiến thông qua sơ đồ quy trình:

  • Phân tích nhược điểm thao tác thủ công trong tạo đơn, đồng bộ tồn kho và đề xuất giải pháp xử lý tự động qua Webhook và API.
  • Mô tả chi tiết quy trình tạo trang web bán hàng tự động theo tên định danh cá nhân, quy trình khách đặt hàng trên web, quy trình ủy quyền OAuth2 với TikTok Shop và quy trình xử lý đơn hoàn trả hàng.
  • Trình bày nền tảng lý thuyết về chuẩn RESTful API, các vai trò và grant type trong OAuth2, cơ chế lắng nghe sự kiện Webhook, đặc tính hàm băm (MD5, SHA-1, SHA-2), cấu trúc lưu trữ và nguyên lý tìm kiếm của Elasticsearch (Node, Cluster, Inverted index, Primary/Replica shard), cùng ưu thế của công nghệ Next.js SSR.

Chương 3. PHÂN TÍCH, THIẾT KẾ HỆ THỐNG

Chương 3 tập trung vào thiết kế kỹ thuật của hệ thống:

  • Phân tích kiến trúc Frontend Redux (Store, Action, Middleware, Reducer) và kiến trúc Backend Monolith phân tầng (Middleware, Controller, Package, Queue service, Repository, Interface).
  • Xây dựng sơ đồ phân rã chức năng (Quản lý trang bán hàng, Quản lý sản phẩm, Quản lý đơn hàng, Tìm kiếm nguồn hàng).
  • Đặc tả ca sử dụng (Use Case), sơ đồ tuần tự (Sequence Diagram) và sơ đồ hoạt động (Activity Diagram) cho các nghiệp vụ: liên kết tài khoản TMĐT, đồng bộ sản phẩm, tạo đơn hàng từ sàn, tạo website cá nhân và xử lý đổi trả.
  • Mô hình hóa cơ sở dữ liệu với chi tiết các thuộc tính của 12 bảng dữ liệu vận hành.

Chương 4. HIỆN THỰC ỨNG DỤNG

Chương 4 minh họa kết quả triển khai giao diện thực tế của hệ thống:

  • Giao diện quản trị cập nhật thông tin, banner, ảnh nền, cấu hình SEO cho website bán hàng của CTV.
  • Giao diện phía khách hàng trên website vệ tinh: trang chủ, danh mục sản phẩm, bộ lọc, trang chi tiết sản phẩm, giỏ hàng, chọn đơn vị vận chuyển và đặt hàng.
  • Giao diện cổng kết nối bên thứ ba: xác thực cấp quyền tài khoản TikTok Shop/Lazada, màn hình ánh xạ danh mục - thuộc tính sản phẩm để đồng bộ sang TikTok Shop, cùng giao diện theo dõi, quản lý chi tiết đơn hàng đa kênh.

Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương 5 tổng kết các kết quả đạt được trong việc hoàn thiện tính năng và tự động hóa quy trình cho Funimart; đồng thời vạch ra các định hướng mở rộng hệ thống trong giai đoạn tiếp theo.


Kết quả và đóng góp

Kết quả chính

  • Tự động hóa luồng tiếp nhận đơn hàng: Ứng dụng thành công cơ chế Webhook và RESTful API để đồng bộ dữ liệu đơn hàng thời gian thực từ sàn TMĐT về hệ thống Funimart, loại bỏ thao tác nhập liệu thủ công.
  • Đồng bộ hóa sản phẩm đa kênh: Xây dựng hoàn chỉnh tính năng liên kết tài khoản qua giao thức OAuth2, cho phép ánh xạ danh mục, thuộc tính và đẩy thông tin sản phẩm, số lượng tồn kho tự động sang TikTok Shop và Lazada.
  • Triển khai hệ thống Web bán hàng tự động: Cung cấp cho mỗi CTV một trang web bán hàng độc lập dựa trên sub-domain định danh cá nhân, ứng dụng Next.js Server-Side Rendering giúp cải thiện khả năng hiển thị trên công cụ tìm kiếm và hỗ trợ lên đơn tự động.
  • Chuẩn hóa quy trình hoàn trả: Thiết lập quy trình 4 bước xử lý đổi trả hàng và tích hợp cơ chế tự động cấn trừ, hoàn trả số dư trên hệ thống ví điện tử nội bộ giữa CTV và NCC.
  • Nâng cấp công cụ tìm kiếm: Tích hợp thành công search engine Elasticsearch song song với cơ sở dữ liệu chính, giải quyết hạn chế tìm kiếm tiếng Việt và hỗ trợ tìm kiếm mờ (fuzzy search).

Giải pháp và đề xuất

  • Đề xuất tách biệt module giao tiếp bên thứ 3 thành lớp Interface độc lập trong backend để giảm thiểu tác động khi đối tác thay đổi cấu trúc API.
  • Sử dụng mô hình lưu trữ kép: duy trì cơ sở dữ liệu chính cho các thao tác CRUD và đồng bộ sang Elasticsearch chuyên trách xử lý truy vấn tìm kiếm tốc độ cao.

Đóng góp thực tiễn

Khóa luận kế thừa và phát triển trực tiếp từ đề tài nền tảng "Ứng dụng kết nối nhà cung cấp và cộng tác viên trên sàn thương mại điện tử" của Funitech, nâng cấp hệ thống từ mô hình bán hàng phụ thuộc vào thao tác thủ công sang nền tảng bán hàng đa kênh tự động hóa (Omnichannel Dropshipping), đáp ứng kịp thời xu hướng thương mại xã hội (Social Commerce) tại Việt Nam năm 2022.


Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Hệ thống backend hiện vẫn duy trì kiến trúc khối Monolith truyền thống; khi lưu lượng truy cập hoặc tần suất gọi webhook từ các sàn TMĐT tăng đột biến, việc điều phối tài nguyên có thể gặp áp lực. Ngoài ra, việc ánh xạ thuộc tính giữa các sàn TMĐT đối tác và Funimart vẫn đòi hỏi sự can thiệp cấu hình ban đầu từ người dùng.
  • Hướng phát triển:
    • Tiếp tục tối ưu hóa thuật toán tìm kiếm nâng cao và hoàn thiện bộ công cụ phân phối quảng cáo sản phẩm, banner, gian hàng nội bộ.
    • Mở rộng liên kết sâu hơn với các tính năng bổ trợ của sàn TMĐT và nghiên cứu lộ trình phân rã các phân hệ nghiệp vụ độc lập để tối ưu khả năng chịu tải.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo giá trị cho:

  • Sinh viên và học viên chuyên ngành Hệ thống thông tin, Kỹ thuật phần mềm, Thương mại điện tử đang nghiên cứu về kiến trúc ứng dụng web, mô hình dropshipping/affiliate và tích hợp hệ sinh thái TMĐT.
  • Các nhóm phát triển phần mềm cần tài liệu thực tế về quy trình tích hợp API/OAuth2 với TikTok Shop, xử lý dữ liệu sự kiện qua Webhook, áp dụng mô hình Redux trong React.js, và triển khai kết hợp Elasticsearch làm cơ sở dữ liệu tìm kiếm song hành.

Câu hỏi thường gặp

1. Tại sao Funimart cần thay thế cơ chế tìm kiếm mặc định của MongoDB bằng Elasticsearch?
Trả lời: Cơ chế tìm kiếm mặc định của MongoDB chưa hỗ trợ xử lý tiếng Việt tốt, buộc người dùng phải gõ chính xác từ khóa mới tìm thấy sản phẩm. Elasticsearch là search engine chuyên dụng, hỗ trợ xử lý full-text search tiếng Việt, tìm kiếm mờ (fuzzy search) cho phép sai lỗi chính tả nhẹ và trả kết quả gần thời gian thực (~1 giây).

2. Giao thức OAuth2 trong hệ thống Funimart được áp dụng cụ thể như thế nào khi tích hợp TikTok Shop?
Trả lời: Hệ thống áp dụng phương thức Authorization Code. Khi CTV yêu cầu liên kết, Funimart tạo mã liên kết tạm thời (state code) và chuyển hướng CTV sang trang xác thực của TikTok Shop. Sau khi CTV cấp quyền, TikTok Shop trả về Authorization Code; Funimart dùng mã này gọi API lấy Access Token và Refresh Token để lưu trữ, phục vụ cho các thao tác đồng bộ dữ liệu sau đó.

3. Tại sao hệ thống sử dụng Next.js để xây dựng website bán hàng cho cộng tác viên thay vì React client-side thông thường?
Trả lời: Next.js hỗ trợ Server-Side Rendering (SSR), cho phép máy chủ biên dịch sẵn mã HTML hoàn chỉnh trước khi gửi về trình duyệt. Cơ chế này giúp tối ưu tốc độ tải trang ban đầu và giúp các công cụ tìm kiếm dễ dàng thu thập dữ liệu (cào web), từ đó nâng cao thứ hạng SEO cho website của CTV.

4. Quy trình xử lý tài chính trong ví điện tử khi phát sinh đơn hoàn trả hàng diễn ra như thế nào?
Trả lời: Khi đơn hoàn trả được NCC xác nhận và gọi đơn vị vận chuyển thành công, số tiền hàng sẽ được trừ trước ở tài khoản ví của NCC. Khi quá trình giao hàng hoàn trả hoàn tất, hệ thống sẽ thực hiện trừ tiền hoa hồng tương ứng trong ví của CTV.

5. Lớp Interface trong kiến trúc Backend của Funimart đảm nhận vai trò gì?
Trả lời: Lớp Interface có nhiệm vụ chuẩn hóa việc giao tiếp giữa hệ thống Funimart với các hệ thống bên ngoài (đơn vị vận chuyển, các sàn TMĐT bên thứ ba). Việc cô lập logic kết nối vào một lớp riêng giúp hệ thống dễ dàng cập nhật hoặc bổ sung đối tác mới mà không làm ảnh hưởng đến tầng xử lý nghiệp vụ chính (Package).


Kết luận

Khóa luận tốt nghiệp của tác giả Đồng Hữu Hiếu đã giải quyết trọn vẹn bài toán tự động hóa quy trình và mở rộng kênh bán hàng cho nền tảng TMĐT Funimart trong giai đoạn chuyển dịch số sau đại dịch. Bằng việc kết hợp các công nghệ hiện đại như Redux, Monolith phân lớp, Next.js SSR, Elasticsearch và giao thức OAuth2/Webhook, đề tài đã xây dựng thành công các phân hệ đồng bộ đa sàn với TikTok Shop/Lazada, tạo website cá nhân hóa cho CTV và tối ưu quy trình xử lý đổi trả. Kết quả thực hiện mang lại giá trị ứng dụng thực tiễn cao cho doanh nghiệp, đồng thời cung cấp mô hình thiết kế hệ thống hoàn chỉnh cho các nghiên cứu thuộc lĩnh vực Hệ thống thông tin và Thương mại điện tử.