Quản lý nhóm sản phẩmBiến thể sản phẩm
Cập nhật biến thể
Cập nhật thông tin một biến thể sản phẩm
Endpoint
PUT /v1/productvariants/:id
Quyền:
product.managehoặcproduct.managecontent
Path Parameters
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
id | int | Có | ID biến thể |
Request Body
Cấu trúc giống Tạo biến thể (trừ product_id, is_bom_kit chỉ dùng khi tạo mới). Các trường SKU, giá, trạng thái, kích thước... chỉ được cập nhật khi có quyền product.manage; option_values và photo_gallery_file_id_list chỉ được cập nhật khi có quyền product.managecontent.
| 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 |
sku | string | Không | Mã SKU (duy nhất trong công ty, mọi khoảng trắng sẽ bị loại bỏ). Không thể đổi SKU khi biến thể còn tồn kho |
price | int | Có | Giá bán |
status | int | Có | Trạng thái (3: Active, 5: Archived) |
uuid | string | Không | UUID biến thể |
option_values | array | Không | Danh sách giá trị tùy chọn định danh biến thể |
barcode | string | Không | Mã barcode (chỉ cập nhật khi có gửi trường này) |
display_name | string | Không | Tên hiển thị riêng (chỉ cập nhật khi có gửi trường này) |
note | string | Không | Ghi chú nội bộ (chỉ cập nhật khi có gửi trường này) |
compare_price | int | Không | Giá so sánh (chỉ cập nhật khi có gửi trường này) |
min_stock | int | Không | Tồn kho tối thiểu (chỉ cập nhật khi có gửi trường này) |
is_serial_tracked | int | Không | 1: Theo dõi serial/IMEI (chỉ cập nhật khi có gửi trường này) |
length | int | Không | Chiều dài (mm) (chỉ cập nhật khi có gửi trường này) |
width | int | Không | Chiều rộng (mm) (chỉ cập nhật khi có gửi trường này) |
height | int | Không | Chiều cao (mm) (chỉ cập nhật khi có gửi trường này) |
weight | int | Không | Trọng lượng (gram) (chỉ cập nhật khi có gửi trường này) |
external_id | string | Không | ID tham chiếu ngoài |
price_by_uom | array | Không | Giá theo đơn vị tính (xem cấu trúc) |
photo_gallery_file_id_list | array | Không | Danh sách ID ảnh gallery |
combo_data | array | Không | Dữ liệu combo, chỉ hợp lệ với sản phẩm loại Combo (xem cấu trúc) |
bom | array | Không | Bill of Materials |
display_order | int | Không | Thứ tự hiển thị |
Lưu ý
Các trường không có ghi chú "chỉ cập nhật khi có gửi trường này" sẽ bị ghi đè bằng giá trị rỗng/0 nếu không gửi lên. Để cập nhật một vài trường, dùng Cập nhật một phần biến thể.
Ví dụ JSON
{
"company_id": 1,
"creator_id": 10,
"sku": "POLO-RED-M",
"price": 260000,
"status": 3,
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"option_values": [
{ "option_id": 10, "option_value_id": 101, "option_value_name": "Do", "uuid": "..." }
],
"external_id": "",
"price_by_uom": [],
"photo_gallery_file_id_list": [],
"combo_data": [],
"bom": [],
"display_order": 1001
}Response Schema
HTTP 200 - OK
Trả về ProductVariant Object sau khi cập nhật (bao gồm price_by_policy).
Error Codes
Lỗi dữ liệu đầu vào (HTTP 422). Trả về mảng các mã lỗi trong trường error:
| Mã lỗi | Mô tả |
|---|---|
error_product_permission_not_found | Quyền hạn không đủ (cần product.manage hoặc product.managecontent) |
error_sku_exist | Mã SKU đã tồn tại |
error_product_variant_onhold_remain | Không thể đổi SKU vì biến thể còn tồn kho (kèm các dòng " > <Tên kho> (<số tồn>)") |
error_fetch_product_variant_stats_before_delete | Không lấy được thông tin tồn kho để kiểm tra khi đổi SKU |
error_parse_product_variant_stats_before_delete | Thông tin tồn kho trả về không hợp lệ |
error_status_not_exist | Trạng thái không tồn tại (chỉ chấp nhận 3 hoặc 5) |
error_combo_data_not_valid_for_non_combo | combo_data chỉ dùng cho sản phẩm loại Combo |
error_combo_data_must_be_array | combo_data phải là mảng |
error_combo_element_invalid_property | Phần tử combo thiếu/sai kiểu product_id, product_variant_id, quantity, variant_exchange_mode, variant_exchange_id_list |
error_combo_product_variant_id_invalid(X) | Biến thể thành phần không tồn tại hoặc không thuộc product_id đã khai báo |
error_combo_quantity_invalid(X) | Số lượng thành phần không hợp lệ (âm) |
error_combo_variant_exchange_mode_invalid(X) | variant_exchange_mode không hợp lệ |
error_combo_variant_exchange_id_list_item_notfound(Variant: X, ID: Y) | Biến thể được phép đổi không tồn tại |
error_combo_variant_exchange_id_list_item_invalid(Variant: X, ID: Y) | ID biến thể được phép đổi không phải là số |
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 thao tác không được để trống |
error_user_id_notfound | ID người thao tác không tìm thấy |
error_not_found | Biến thể không tồn tại hoặc không thuộc công ty của bạn (HTTP 404) |
error_edit | Lỗi hệ thống khi lưu dữ liệu (HTTP 500) |