Quản lý nhóm sản phẩmGiá biến thể
Cập nhật giá theo lô
Cập nhật/Tạo mới giá cho các biến thể của một sản phẩm thuộc một chính sách giá cụ thể.
Endpoint
PUT /v1/productvariantprices/product/{product_id}/policy/{price_policy_id}
Path Parameters
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
product_id | int | Có | ID sản phẩm |
price_policy_id | int | Có | ID chính sách giá |
Request Body
Gửi danh sách các biến thể và giá tương ứng của chúng. Hệ thống sẽ:
- Tạo mới: Nếu giá cho biến thể đó chưa có.
- Cập nhật: Nếu giá đã tồn tại và có thay đổi.
- Xóa: Nếu
price_by_uomtrống, bản ghi giá sẽ bị xóa.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
company_id | int | Có | ID công ty |
creator_id | int | Có | ID người thao tác |
items | array | Có | Danh sách giá biến thể. Tối đa 1000 items. |
Cấu trúc Item trong mảng items
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
product_id | int | Có | ID sản phẩm |
product_variant_id | int | Có | ID biến thể |
price_by_uom | array | Có | Mảng giá theo đơn vị tính (xem Object Schema). Nếu rỗng [], giá cũ sẽ bị xóa. |
price_policy_id | int | Có | ID chính sách giá (phải trùng với URL) |
price | int | Không | (Legacy field, thường không dùng, nên gửi 0) |
Ví dụ JSON
{
"company_id": 1,
"creator_id": 10,
"items": [
{
"product_id": 123,
"product_variant_id": 101,
"price_policy_id": 1,
"price": 0,
"price_by_uom": [
{ "uom_id": 0, "value": 150000, "min_quantity": 0 },
{ "uom_id": 5, "value": 3000000, "min_quantity": 1 }
]
},
{
"product_id": 123,
"product_variant_id": 102,
"price_policy_id": 1,
"price": 0,
"price_by_uom": []
}
]
}Response Schema
HTTP 200 - OK
Trả về danh sách các giá đã được xử lý (Tạo mới/Cập nhật). Các giá bị xóa sẽ không xuất hiện trong danh sách trả về.
{
"currentpage": 1,
"limit": 200,
"total": 1,
"items": [
{
"company_id": 1,
"creator_id": 10,
"id": 501,
"product_id": 123,
"product_variant_id": 101,
"price_policy_id": 1,
"price_by_uom": [
{ "uom_id": 0, "value": 150000, "min_quantity": 0 },
{ "uom_id": 5, "value": 3000000, "min_quantity": 1 }
],
"source": 1,
"note": "",
"date_created": 1710748200,
"date_modified": 1710748200
}
],
"__count_ignore_changed": 0
}Error Codes
Lỗi dữ liệu đầu vào. Trả về mảng các mã lỗi:
| Mã lỗi | Mô tả |
|---|---|
error_items_property_is_required | Trường items không được để trống |
error_items_count_max_1000 | Số lượng items tối đa là 1000 |
error_company_id_required | ID công ty không được để trống |
error_company_id_notfound | ID công ty không tìm thấy |
error_user1_id_required | ID người tạo không được để trống |
error_user_id_notfound | ID người tạo không tìm thấy |
error_create_product_variant_price_failed(Variant ID #ID) | Lỗi khi tạo giá cho biến thể cụ thể |
error_update_product_variant_price_failed(Variant ID #ID) | Lỗi khi cập nhật giá cho biến thể cụ thể |
error_delete_product_variant_price_failed(Variant ID #ID) | Lỗi khi xóa giá cho biến thể cụ thể |