Quản lý nhóm sản phẩmSản phẩm
Cập nhật sản phẩm
Cập nhật toàn bộ thông tin một sản phẩm
Endpoint
PUT /v1/products/:id
Quyền:
product.managehoặcproduct.managecontent. Các trường thông tin chung chỉ được cập nhật khi có quyềnproduct.manage; các trường nội dung (summary,description,info_*,seo_*,badge,certification, ảnh, video) chỉ được cập nhật khi có quyềnproduct.managecontent.
Path Parameters
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
id | int | Có | ID sản phẩm |
Request Body
| 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 |
name | string | Có | Tên sản phẩm |
name_short | string | Không | Tên ngắn của sản phẩm |
code | string | Không | Mã sản phẩm. Phải là duy nhất. |
external_id | string | Không | ID tham chiếu hệ thống ngoài. Phải là duy nhất. |
status | int | Có | 1 (Nháp), 3 (Hoạt động), 5 (Lưu trữ/Đã xóa) |
category_primary | int | Không | ID danh mục chính |
category_id_list | array | Không | Danh sách ID danh mục phụ |
brand_id | int | Không | ID thương hiệu |
supplier_id | array | Không | Danh sách ID nhà cung cấp |
options | array | Không | Cấu trúc tùy chọn biến thể (Size, Color...). Mỗi phần tử gồm option_id và mảng option_values (option_value_id, option_value_name, uuid, file_id_list, file_list, meta). Giá trị chưa có sẽ được tự tạo theo option_value_name. |
sell_on_zero | int | Không | 1: Cho phép bán khi tồn kho bằng 0. Với sản phẩm dạng booking đính kèm thì luôn = 1. |
visibility | int | Không | Trạng thái hiển thị sản phẩm |
installment | array | Không | Cấu hình trả góp |
tax_ratio | float | Không | Thuế suất (%) |
weight_sale_mode | int | Không | Chế độ bán theo trọng lượng (chỉ dùng khi weight_type là trọng lượng) |
weight_presets | array | Không | Các mức cân nặng định sẵn |
physical_catch_weight_uom_id | int | Không | Đơn vị tính vật lý cho Catch weight (khi weight_sale_mode là Counting) |
pricing_type | int | Không | Loại định giá |
allow_preorder | int | Không | Cho phép đặt hàng trước |
default_variant_id | int | Không | ID biến thể mặc định |
country_of_origin | string | Không | Xuất xứ |
hs_code | string | Không | HS Code |
tags | array | Không | Danh sách tag |
note | string | Không | Ghi chú nội bộ |
attribute_detail | array | Không | Thông tin thuộc tính chi tiết |
category_displayorder | array | Không | Thứ tự hiển thị theo danh mục |
session_required | int | Không | 1: Sản phẩm yêu cầu phiên (session) khi bán |
need_customize | int | Không | 1: Cần tùy biến trước khi bán |
mockup_supported | int | Không | 1: Hỗ trợ mockup |
config3d_supported | int | Không | 1: Hỗ trợ cấu hình 3D |
material_type | int | Không | Loại vật liệu |
length | int | Không | Chiều dài (dùng cho logistics/đóng gói) |
width | int | Không | Chiều rộng |
height | int | Không | Chiều cao |
packing_priority | int | Không | Độ ưu tiên khi sắp xếp đóng gói |
page_id | int | Không | ID trang nội dung liên kết |
default_warehouse_location_id | int | Không | Vị trí kho mặc định |
lead_time | int | Không | Thời gian chuẩn bị hàng (ngày) |
expiry_tracked | int | Không | 1: Theo dõi hạn sử dụng |
badge | string | Không | Nhãn hiển thị (Mới, Hot, ...) |
certification | string | Không | Thông tin chứng nhận |
summary | string | Không | Tóm tắt sản phẩm |
description | string | Không | Mô tả chi tiết |
info_package | string | Không | Thông tin đóng gói |
info_warranty | string | Không | Thông tin bảo hành |
info_promotion | string | Không | Thông tin khuyến mãi |
info_promotion_note | string | Không | Ghi chú khuyến mãi |
seo_url | string | Không | URL SEO (nếu trống sẽ được auto-gen từ name + code) |
seo_title | string | Không | Tiêu đề SEO |
seo_meta_description | string | Không | Mô tả Meta SEO |
seo_meta_keyword | string | Không | Từ khóa SEO |
seo_graph_file_id | int | Không | ID ảnh dùng cho Open Graph |
seo_canonical | string | Không | Canonical URL |
seo_options | array | Không | Các tùy chọn SEO khác |
avatar_file_id_list | array | Không | Danh sách ID ảnh đại diện |
photo_gallery_file_id_list | array | Không | Danh sách ID ảnh thư viện |
photo360_file_id_list | array | Không | Danh sách ID ảnh 360 |
embed_video_scripts | string | Không | Script nhúng video |
product_uoms | array | Không | Danh sách đơn vị tính quy đổi, chỉ áp dụng cho sản phẩm có weight_type = 1. Mỗi phần tử gồm uom_id, allow_sale, allow_purchase, factor, weight, is_default, display_order, icon_svg, file_id_list. Đơn vị tính hiện có nhưng không nằm trong danh sách gửi lên sẽ bị xóa. |
Ví dụ Request Body
Ví dụ payload đầy đủ khi cập nhật một sản phẩm đang hoạt động:
{
"company_id": 10311,
"creator_id": 1,
"name": "Áo Thun Nam BT TEST 01",
"name_short": "",
"summary": "",
"description": "",
"code": "AT.BT.TS001",
"options": [
{
"option_id": 8,
"use_image": 1,
"option_values": [
{
"option_id": 8,
"option_value_id": 4,
"option_value_name": "Đen",
"uuid": "4abdd739-a132-49bd-9ed8-341ae6d48bbc",
"file_id_list": [],
"file_list": [],
"meta": []
}
]
},
{
"option_id": 9,
"use_image": 1,
"option_values": [
{
"option_id": 9,
"option_value_id": 14,
"option_value_name": "L",
"uuid": "7d66253a-9c87-43f2-996b-712e015aa992",
"file_id_list": [],
"file_list": [],
"meta": []
},
{
"option_id": 9,
"option_value_id": 84,
"option_value_name": "S",
"uuid": "70348955-c609-41b0-9b29-ca596d2af292",
"file_id_list": [],
"file_list": [],
"meta": []
},
{
"option_id": 9,
"option_value_id": 85,
"option_value_name": "M",
"uuid": "4606380c-9acb-48c2-a810-d2ceb4892e8d",
"file_id_list": [],
"file_list": [],
"meta": []
}
]
}
],
"external_id": "",
"category_primary": 212,
"category_id_list": [],
"brand_id": 117,
"supplier_id": [36, 40, 41],
"sell_on_zero": 0,
"info_package": "",
"info_warranty": "",
"info_promotion": "",
"info_promotion_note": "",
"visibility": 1,
"installment": [],
"tax_ratio": 0,
"category_displayorder": [
{
"id": 212,
"label": "Áo thun",
"order": 9999
}
],
"weight_sale_mode": 1,
"weight_presets": [],
"physical_catch_weight_uom_id": 0,
"pricing_type": 1,
"allow_preorder": 0,
"default_variant_id": 0,
"country_of_origin": "",
"hs_code": "",
"badge": "",
"certification": "",
"status": 3,
"seo_url": "ao-thun-nam-bt-test-01",
"seo_title": "Áo Thun Nam BT TEST 01",
"seo_meta_description": "",
"seo_meta_keyword": "",
"seo_graph_file_id": 0,
"seo_canonical": "",
"seo_options": {},
"avatar_file_id_list": [4596],
"photo_gallery_file_id_list": [4597],
"photo360_file_id_list": [],
"embed_video_scripts": "[]",
"attribute_detail": [],
"tags": [
"ao-thun",
"bt-test-01"
],
"note": "",
"product_uoms": [
{
"company_id": 10311,
"creator_id": 15526,
"uom_id": 1000,
"allow_sale": 1,
"allow_purchase": 1,
"factor": 1,
"weight": 320,
"is_default": 1,
"display_order": 0,
"icon_svg": "",
"file_id_list": []
}
],
"session_required": 0,
"need_customize": 0,
"mockup_supported": 0,
"config3d_supported": 0,
"material_type": 0,
"length": 100,
"width": 100,
"height": 100,
"packing_priority": 100,
"page_id": 0,
"default_warehouse_location_id": 10003,
"lead_time": 0,
"expiry_tracked": 0
}Response Schema
HTTP 200 - OK
Trả về Product Object sau khi cập nhật.
Lưu ý
Các trường
type, weight_type, is_bom_kit, booking_attachable chỉ được gán khi tạo mới và bị bỏ qua khi cập nhật. Để cập nhật một vài trường, dùng Cập nhật một phần sản phẩm.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 | Không có quyền chỉnh sửa sản phẩm (cần product.manage hoặc product.managecontent) |
error_name_require | Tên sản phẩm không được để trống |
error_name_duplicated | Tên sản phẩm đã tồn tại |
error_code_existed | Mã sản phẩm (code) đã tồn tại |
error_external_id_existed | External ID đã tồn tại |
error_status_not_exist | Trạng thái không hợp lệ |
error_brand_not_valid | ID thương hiệu không hợp lệ |
error_supplier_not_valid | ID nhà cung cấp không hợp lệ |
error_category_not_valid | ID danh mục không hợp lệ |
error_option_id_invalid(ID #X) | ID tùy chọn (option) không hợp lệ |
error_option_value_id_invalid(ID #X, inside Option ID #Y) | ID giá trị tùy chọn không hợp lệ |
error_option_value_created(Name #X, inside Option ID #Y) | Không thể tạo giá trị tùy chọn mới |
error_option_value_file_id_list_invalid(Name #X, inside Option ID #Y) | File ID trong giá trị tùy chọn không hợp lệ |
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_edit | Lỗi hệ thống khi lưu dữ liệu (HTTP 500) |
error_not_found | Sản phẩm không tồn tại hoặc không thuộc công ty của bạn (HTTP 404) |