Quản lý sản phẩm (PIM)Sản phẩm
Variant Object
Cấu trúc đối tượng biến thể sản phẩm (Product Variant).
Mỗi sản phẩm có thể có nhiều biến thể (variants), đại diện cho các phiên bản khác nhau (màu sắc, kích thước, dung lượng...). Variant Object chứa thông tin giá, SKU, ảnh riêng và các thuộc tính vật lý.
Schema
{
"id": 100,
"sku": "IP15PM-256-TITAN",
"display_name": "Iphone 15 Pro Max 256GB Titan",
"note": "",
"base_price": 30000000,
"sell_price": 28000000,
"compare_price": 32000000,
"discount_percent": 6,
"sell_price_for_uoms": [],
"price_by_uom": [],
"price_by_policy": [
{
"price_policy_id": 1,
"price": 27000000,
"price_by_uom": []
}
],
"display_order": 1,
"option_values": [
{
"option_id": 1,
"option_value_id": 101
}
],
"photo_gallery_file_list": [
{
"id": 601,
"url": "https://example.com/variant-image.jpg"
}
],
"min_stock": 0,
"is_serial_tracked": 0,
"length": 0,
"width": 0,
"height": 0,
"weight": 221
}Field Descriptions
Thông tin chung
| Trường | Kiểu | Mô tả |
|---|---|---|
id | integer | ID biến thể |
sku | string | Mã SKU duy nhất |
display_name | string | Tên hiển thị của biến thể |
note | string | Ghi chú |
display_order | integer | Thứ tự hiển thị |
Giá
| Trường | Kiểu | Mô tả |
|---|---|---|
base_price | float | Giá gốc (niêm yết). Luôn >= sell_price |
sell_price | float | Giá bán thực tế (đã áp dụng chính sách giá). ⚠️ Deprecated, sử dụng price_by_policy thay thế |
compare_price | float | Giá so sánh (giá thị trường) |
discount_percent | integer | Phần trăm giảm giá (tự tính: floor((base_price - sell_price) / base_price * 100)) |
sell_price_for_uoms | array | Giá bán theo đơn vị tính. ⚠️ Deprecated, sử dụng price_by_policy[].price_by_uom thay thế |
price_by_uom | array | Bảng giá theo đơn vị tính |
price_by_policy | array | Bảng giá theo chính sách. Xem Price Policy Schema |
Option Values
| Trường | Kiểu | Mô tả |
|---|---|---|
option_values | array | Danh sách giá trị option mà biến thể này đại diện (option_id, option_value_id) |
Media
| Trường | Kiểu | Mô tả |
|---|---|---|
photo_gallery_file_list | array | Ảnh riêng của biến thể (File Object) |
Inventory & Physical
| Trường | Kiểu | Mô tả |
|---|---|---|
min_stock | integer | Tồn kho tối thiểu |
is_serial_tracked | integer | Theo dõi số serial (1 = Có) |
length | integer | Chiều dài |
width | integer | Chiều rộng |
height | integer | Chiều cao |
weight | integer | Cân nặng |
Price Policy Schema
Mỗi item trong price_by_policy đại diện cho một chính sách giá (Khách VIP, Đại lý...).
{
"price_policy_id": 1,
"price": 27000000,
"price_by_uom": [
{
"uom_id": 1,
"price": 320000000
}
]
}| Trường | Kiểu | Mô tả |
|---|---|---|
price_policy_id | integer | ID chính sách giá |
price | float | Giá bán theo chính sách |
price_by_uom | array | Giá theo đơn vị tính trong chính sách (uom_id, price) |
Cách xác định giá hiển thị
Hệ thống xác định giá bán theo thứ tự ưu tiên:
- Nếu có
website_price_policy_idtrong Settings → lấy giá từprice_by_policytương ứng - Nếu không → lấy
base_price discount_percentđược tính tự động: nếubase_price > sell_price,discount_percent = floor((base_price - sell_price) / base_price * 100)