Trong các nền tảng thương mại điện tử hiện nay, việc quản lý sản phẩm có nhiều biến thể (như kích thước, màu sắc) là một phần không thể thiếu. Tuy nhiên, mỗi nền tảng lại có cách tổ chức dữ liệu hoàn toàn khác nhau. Bài viết này sẽ phân tích cách WooCommerce, OpenCart, và EC-CUBE lưu trữ và quản lý biến thể sản phẩm.
WooCommerce được xây dựng trên nền tảng WordPress nên tận dụng hệ thống post
và taxonomy
.
wp_posts
với post type product
.product_variation
, lưu trong cùng bảng wp_posts
nhưng có post_parent
là ID sản phẩm chính.size
, color
được lưu dưới dạng taxonomy (pa_size
, pa_color
).wp_postmeta
với key attribute_pa_size
.attribute_pa_size = 38
trong wp_postmeta
.Ưu điểm | Nhược điểm |
---|---|
Rất linh hoạt, dễ mở rộng | Cấu trúc phức tạp, nhiều bảng |
Tương thích tốt với plugin | Truy vấn chậm khi có nhiều biến thể |
Dễ serialize/deserialize | Dữ liệu không chuẩn hóa hoàn toàn |
OpenCart sử dụng mô hình dữ liệu chuẩn hóa rõ ràng, chia riêng các bảng option
, option_value
, product_option
, product_option_value
.
product
: bảng sản phẩm chínhoption
: định nghĩa loại thuộc tính (Size, Color)option_value
: giá trị cụ thể (38, 39, 40,…)product_option
: liên kết sản phẩm với optionproduct_option_value
: liên kết sản phẩm với option_value cụ thểoption_id = 2
(Size)option_value_id = 5
tương ứng với size 38product_option_value
để tạo biến thể.Ưu điểm | Nhược điểm |
---|---|
Dữ liệu chuẩn hóa → truy vấn nhanh | Hạn chế trong các trường hợp logic phức tạp |
Thân thiện với MySQL JOIN | Không hỗ trợ taxonomy hoặc đa cấp phân loại |
EC-CUBE, một nền tảng mã nguồn mở từ Nhật Bản, có cấu trúc riêng biệt cho biến thể sản phẩm thông qua mô hình class name – class category.
dtb_product
: sản phẩm chínhdtb_product_class
: biến thể sản phẩm (mỗi dòng = 1 SKU)dtb_class_name
: loại thuộc tính (Size, Color,…)dtb_class_category
: giá trị cụ thể (38, M, XL,…)dtb_product_class
gắn class_name_id = 1
(Size), class_category_id = 5
(38)Ưu điểm | Nhược điểm |
---|---|
Tối ưu SKU, tồn kho từng biến thể | Cấu trúc cứng, ít linh hoạt nếu mở rộng |
Dữ liệu rõ ràng, logic phân tách tốt | Khó tích hợp với hệ thống khác nếu chưa quen |
Nền tảng | Cấu trúc biến thể | Linh hoạt | Tối ưu DB | Tìm kiếm nhanh | Dễ mở rộng |
---|---|---|---|---|---|
WooCommerce | wp_posts + taxonomy + postmeta | ✅ Cao | ❌ Trung bình | ❌ Trung bình | ✅ Rất dễ |
OpenCart | product_option_value với bảng chuẩn hóa | ⚠️ Trung | ✅ Rất tốt | ✅ Rất nhanh | ⚠️ Vừa phải |
EC-CUBE | product_class + class_name/category | ⚠️ Trung | ✅ Tốt | ✅ Rất nhanh | ⚠️ Cần hiểu sâu |