tiktok.product.202509.products.product_id
PUT/product/202509/products/{product_id}Via 360: PUT https://partner.quantri360.com/v1/tiktok/product/202509/products/{product_id}
Write endpoint — changes data on TikTok Shop. The key must be created with "Allow write API calls" ticked, otherwise you get 403 write_not_allowed. Every call is logged.
Description
Sửa toàn bộ thông tin sản phẩm không ở trạng thái FREEZE hoặc DELETED. Bản nội dung mới được gửi duyệt và chỉ công bố khi được duyệt.
- Gọi qua /v1/tiktok/product/202509/products/{product_id} với Authorization: Bearer <key>; dùng platform_shop_id khi có nhiều shop. 360 tự gắn app_key, shop_cipher, sign và access_token.
- API GHI: thay đổi dữ liệu thật trên TikTok Shop; cần key có quyền ghi (can_write) và gói mở module products. Thay thế nội dung sản phẩm và gửi duyệt lại.
- HTTP 200 vẫn có thể có lỗi nghiệp vụ; kiểm code trước khi dùng kết quả.
Request
Endpoint
PUT https://partner.quantri360.com/v1/tiktok/product/202509/products/{product_id}
Authentication & shop
| Name | In | Type | Sample | Description |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | 100001 | Gian hàng (lấy ở GET /v1/platforms → shops[].platform_shop_id). BẮT BUỘC khi brand có > 1 gian hàng trên nền tảng; 360 bỏ tham số này trước khi chuyển tiếp. |
Request parameters
| Name | In | Type | Required | Sample | Description |
|---|---|---|---|---|---|
| product_id | path | string | Yes | 900000000000000001 | Mã sản phẩm. |
| save_mode | body | string | No | AS_DRAFT | AS_DRAFT lưu nháp, LISTING gửi đăng, mặc định LISTING. Thay đổi cần duyệt chỉ công bố sau duyệt; giá và tồn kho áp dụng ngay. Không lưu nháp khi DELETED hoặc PENDING/FREEZE trên bất kỳ nền tảng nào. Khi lưu nháp sau đăng, inventory không được lưu; delivery_option_ids cũng không được lưu; giá trị liên quan: AS_DRAFT, LISTING, DELETED, PENDING, FREEZE. |
| description | body | string | Yes | <p>Sản phẩm minh họa.</p> | Mô tả HTML tối đa 10.000 ký tự. Tối đa 30 thẻ img, mỗi ảnh dưới 4000 px, có src, width, height; ảnh phải được tải lên trước. Một số thẻ được chuyển đổi để hiển thị, như table thành ảnh. Nên mô tả trên 300 ký tự và 3–5 điểm nổi bật, mỗi điểm dưới 250 ký tự; ảnh khuyến nghị 1600×1600 px; độ dài tối đa: 10,000. |
| category_id | body | string | Yes | 900000000000000001 | Mã ngành hàng lá; giá trị liên quan: INVITE_ONLY, PRE_APPROVED, PENDING. |
| brand_id | body | string | No | 900000000000000001 | Mã thương hiệu. |
| main_images | body | object[] | Yes | [{"uri": "anh-minh-hoa"}] | Ảnh chính sản phẩm; dùng URI ảnh được tải lên trước; số phần tử tối đa: 9. |
| main_images[].uri | body | string | Yes | anh-minh-hoa | URI ảnh đã tải lên; giá trị liên quan: MAIN_IMAGE. |
| skus | body | object[] | Yes | [{"id": "900000000000000001", "sales_attributes": [{"id": "900000000000000001", "name": "Minh họa", "value_id": "900000000000000001", "value_name": "Minh họa", "sku_img": {"uri": "anh-minh-hoa"}, "supplementary_sku_images": [{"uri": "anh-minh-hoa"}]}], "seller_sku": "SKU-MAU-01", "price": {"amount": "150000", "currency": "VND", "sale_price": "150000", "starting_bid_price": "Minh họa"}, "external_sku_id": "900000000000000001", "identifier_code": {"code": 0, "type": "GTIN"}, "inventory": [{"warehouse_id": "900000000000000001", "quantity": 1, "backorder_quantity": 1, "handling_time": 1793494800}], "combined_skus": [{"product_id": "900000000000000001", "sku_id": "900000000000000001", "sku_count": 1}], "sku_unit_count": "Minh họa", "external_urls": [""], "extra_identifier_codes": ["Minh họa"], "pre_sale": {"type": "PRE_ORDER", "fulfillment_type": {"handling_duration_days": 1, "release_date": 1}}, "list_price": {"amount": "150000", "currency": "VND"}, "external_list_prices": [{"source": "SHOPIFY_COMPARE_AT_PRICE", "amount": "150000", "currency": "VND"}], "fees": [{"type": "PFAND", "amount": "150000", "additional_attribute": "SINGLE_USE"}], "sku_dimensions": {"length": "Minh họa", "width": "Minh họa", "height": "Minh họa", "unit": "CENTIMETER"}, "sku_weight": {"value": "0.5", "unit": "KILOGRAM"}}] | Các SKU biến thể; tối đa 300 tại BR, EU, MX, JP, UK, US, khu vực khác tối đa 100; nên đặt biến thể quan trọng nhất ở đầu. |
| skus[].id | body | string | No | 900000000000000001 | Mã định danh. |
| skus[].sales_attributes | body | object[] | No | [{"id": "900000000000000001", "name": "Minh họa", "value_id": "900000000000000001", "value_name": "Minh họa", "sku_img": {"uri": "anh-minh-hoa"}, "supplementary_sku_images": [{"uri": "anh-minh-hoa"}]}] | Thuộc tính bán hàng tạo biến thể. |
| skus[].sales_attributes[].id | body | string | No | 900000000000000001 | Mã định danh. |
| skus[].sales_attributes[].name | body | string | No | Minh họa | Tên; độ dài tối đa: 20. |
| skus[].sales_attributes[].value_id | body | string | No | 900000000000000001 | Mã giá trị. |
| skus[].sales_attributes[].value_name | body | string | No | Minh họa | Tên giá trị; độ dài tối đa: 50. |
| skus[].sales_attributes[].sku_img | body | object | No | {"uri": "anh-minh-hoa"} | Ảnh biến thể. |
| skus[].sales_attributes[].sku_img.uri | body | string | Yes | anh-minh-hoa | URI ảnh đã tải lên; giá trị liên quan: ATTRIBUTE_IMAGE. |
| skus[].sales_attributes[].supplementary_sku_images | body | object[] | No | [{"uri": "anh-minh-hoa"}] | Ảnh SKU bổ sung. |
| skus[].sales_attributes[].supplementary_sku_images[].uri | body | string | Yes | anh-minh-hoa | URI ảnh đã tải lên; giá trị liên quan: ATTRIBUTE_IMAGE. |
| skus[].seller_sku | body | string | No | SKU-MAU-01 | Mã SKU do người bán quản lý. |
| skus[].price | body | object | No | {"amount": "150000", "currency": "VND", "sale_price": "150000", "starting_bid_price": "Minh họa"} | Giá. |
| skus[].price.amount | body | string | No | 150000 | Số tiền. |
| skus[].price.currency | body | string | Yes | VND | Mã tiền tệ; giá trị liên quan: BRL, EUR, GBP, IDR, JPY, MXN, MYR, PHP, SGD, THB, USD, VND. |
| skus[].price.sale_price | body | string | No | 150000 | Giá hiển thị trước giảm giá. |
| skus[].price.starting_bid_price | body | string | No | Minh họa | Giá bắt đầu đấu giá. |
| skus[].external_sku_id | body | string | No | 900000000000000001 | Mã SKU trong hệ thống bên ngoài; độ dài tối đa: 999. |
| skus[].identifier_code | body | object | No | {"code": 0, "type": "GTIN"} | Mã định danh bổ sung. |
| skus[].identifier_code.code | body | string | No | 0 | Mã kết quả; 0 là thành công; giá trị liên quan: X. |
| skus[].identifier_code.type | body | string | No | GTIN | Loại; giá trị liên quan: GTIN, EAN, UPC, ISBN, JAN. |
| skus[].inventory | body | object[] | No | [{"warehouse_id": "900000000000000001", "quantity": 1, "backorder_quantity": 1, "handling_time": 1793494800}] | Tồn kho theo từng kho; giá trị liên quan: AS_DRAFT. |
| skus[].inventory[].warehouse_id | body | string | Yes | 900000000000000001 | Mã kho. |
| skus[].inventory[].quantity | body | int | No | 1 | Số lượng; giới hạn: [1, 99,999]. |
| skus[].inventory[].backorder_quantity | body | int | No | 1 | Số lượng hàng đặt trước. |
| skus[].inventory[].handling_time | body | int | No | 1793494800 | Thời gian xử lý hàng đặt trước. |
| skus[].combined_skus | body | object[] | No | [{"product_id": "900000000000000001", "sku_id": "900000000000000001", "sku_count": 1}] | Các SKU kết hợp. |
| skus[].combined_skus[].product_id | body | string | Yes | 900000000000000001 | Mã sản phẩm. |
| skus[].combined_skus[].sku_id | body | string | Yes | 900000000000000001 | Mã SKU. |
| skus[].combined_skus[].sku_count | body | int | Yes | 1 | Số SKU. |
| skus[].sku_unit_count | body | string | No | Minh họa | Số đơn vị trong SKU; giới hạn: [0.01, 99,999.9999]. |
| skus[].external_urls | body | string[] | No | [""] | Các địa chỉ bên ngoài. |
| skus[].extra_identifier_codes | body | string[] | No | ["Minh họa"] | Các mã định danh bổ sung; giá trị liên quan: X. |
| skus[].pre_sale | body | object | No | {"type": "PRE_ORDER", "fulfillment_type": {"handling_duration_days": 1, "release_date": 1}} | Cấu hình bán trước. |
| skus[].pre_sale.type | body | string | No | PRE_ORDER | Loại; giá trị liên quan: PRE_ORDER, MADE_TO_ORDER, US, CUSTOM, UK, EU, SEA, JP, LATAM, ALL, NONE. |
| skus[].pre_sale.fulfillment_type | body | object | No | {"handling_duration_days": 1, "release_date": 1} | Hình thức hoàn tất đơn. |
| skus[].pre_sale.fulfillment_type.handling_duration_days | body | int | No | 1 | Số ngày xử lý; giá trị liên quan: MADE_TO_ORDER, PRE_ORDER, CUSTOM. |
| skus[].pre_sale.fulfillment_type.release_date | body | int | No | 1 | Ngày phát hành; giá trị liên quan: PRE_ORDER. |
| skus[].list_price | body | object | No | {"amount": "150000", "currency": "VND"} | Giá niêm yết. |
| skus[].list_price.amount | body | string | Yes | 150000 | Số tiền; giới hạn: [0.01, 7600]. |
| skus[].list_price.currency | body | string | Yes | VND | Mã tiền tệ; giá trị liên quan: USD. |
| skus[].external_list_prices | body | object[] | No | [{"source": "SHOPIFY_COMPARE_AT_PRICE", "amount": "150000", "currency": "VND"}] | Giá niêm yết bên ngoài. |
| skus[].external_list_prices[].source | body | string | Yes | SHOPIFY_COMPARE_AT_PRICE | Nguồn; giá trị liên quan: SHOPIFY_COMPARE_AT_PRICE. |
| skus[].external_list_prices[].amount | body | string | Yes | 150000 | Số tiền; giới hạn: [0.01, 7600]. |
| skus[].external_list_prices[].currency | body | string | Yes | VND | Mã tiền tệ; giá trị liên quan: USD. |
| skus[].fees | body | object[] | No | [{"type": "PFAND", "amount": "150000", "additional_attribute": "SINGLE_USE"}] | Các khoản phí. |
| skus[].fees[].type | body | string | No | PFAND | Loại; giá trị liên quan: PFAND. |
| skus[].fees[].amount | body | string | No | 150000 | Số tiền. |
| skus[].fees[].additional_attribute | body | string | No | SINGLE_USE | Thuộc tính bổ sung; giá trị liên quan: SINGLE_USE, NOT_APPLICABLE, REUSABLE. |
| skus[].sku_dimensions | body | object | No | {"length": "Minh họa", "width": "Minh họa", "height": "Minh họa", "unit": "CENTIMETER"} | Kích thước SKU. |
| skus[].sku_dimensions.length | body | string | Yes | Minh họa | Chiều dài. |
| skus[].sku_dimensions.width | body | string | Yes | Minh họa | Chiều rộng. |
| skus[].sku_dimensions.height | body | string | Yes | Minh họa | Chiều cao. |
| skus[].sku_dimensions.unit | body | string | Yes | CENTIMETER | Đơn vị; giá trị liên quan: SKU, US, CENTIMETER, INCH, KILOGRAM. |
| skus[].sku_weight | body | object | No | {"value": "0.5", "unit": "KILOGRAM"} | Khối lượng SKU; giá trị liên quan: KILOGRAM, CENTIMETER. |
| skus[].sku_weight.value | body | string | Yes | 0.5 | Giá trị. |
| skus[].sku_weight.unit | body | string | Yes | KILOGRAM | Đơn vị; giá trị liên quan: SKU, US, KILOGRAM, POUND, BR, JP, MX, GRAM, CENTIMETER. |
| title | body | string | Yes | Áo thun cotton cổ tròn minh họa | Tiêu đề sản phẩm; DE, ES, FR, IE, IT, JP, UK, US dài 1–255 ký tự; BR, MX dài 1–300; khu vực khác 25–255 ký tự. |
| is_cod_allowed | body | bool | No | false | Cho phép thanh toán khi nhận hàng. |
| certifications | body | object[] | No | [{"id": "900000000000000001", "images": [{"uri": "anh-minh-hoa"}], "files": [{"id": "900000000000000001", "name": "chungnhan.pdf", "format": "PDF"}], "expiration_date": 1793494800}] | Chứng nhận sản phẩm; số phần tử tối đa: 10. |
| certifications[].id | body | string | Yes | 900000000000000001 | Mã định danh. |
| certifications[].images | body | object[] | No | [{"uri": "anh-minh-hoa"}] | Danh sách ảnh. |
| certifications[].images[].uri | body | string | Yes | anh-minh-hoa | URI ảnh đã tải lên; giá trị liên quan: CERTIFICATION_IMAGE. |
| certifications[].files | body | object[] | No | [{"id": "900000000000000001", "name": "chungnhan.pdf", "format": "PDF"}] | Danh sách tệp. |
| certifications[].files[].id | body | string | Yes | 900000000000000001 | Mã định danh. |
| certifications[].files[].name | body | string | Yes | chungnhan.pdf | Tên. |
| certifications[].files[].format | body | string | Yes | Định dạng tệp. | |
| certifications[].expiration_date | body | int | No | 1793494800 | Thời điểm hết hạn chứng nhận; Unix giây UTC+0. |
| package_weight | body | object | No | {"value": "0.5", "unit": "KILOGRAM"} | Khối lượng sau đóng gói; mặc định bắt buộc, trừ ngành hàng sản phẩm ảo. Phải khai chính xác vì ảnh hưởng phí giao hàng. |
| package_weight.value | body | string | Yes | 0.5 | Giá trị; giá trị liên quan: GRAM, KILOGRAM, POUND. |
| package_weight.unit | body | string | Yes | KILOGRAM | Đơn vị; giá trị liên quan: US, KILOGRAM, POUND, BR, JP, MX, GRAM, CENTIMETER. |
| product_attributes | body | object[] | No | [{"id": "900000000000000001", "values": [{"id": "900000000000000001", "name": "Minh họa", "metric_standard_info": {"id": "900000000000000001", "metric_value_module_infos": [{"id": "900000000000000001", "value": "Minh họa", "unit_id": "900000000000000001"}]}}]}] | Thuộc tính sản phẩm; điền đủ thuộc tính bắt buộc của ngành hàng. |
| product_attributes[].id | body | string | Yes | 900000000000000001 | Mã định danh. |
| product_attributes[].values | body | object[] | Yes | [{"id": "900000000000000001", "name": "Minh họa", "metric_standard_info": {"id": "900000000000000001", "metric_value_module_infos": [{"id": "900000000000000001", "value": "Minh họa", "unit_id": "900000000000000001"}]}}] | Các giá trị. |
| product_attributes[].values[].id | body | string | No | 900000000000000001 | Mã định danh. |
| product_attributes[].values[].name | body | string | No | Minh họa | Tên; độ dài tối đa: 2000. |
| product_attributes[].values[].metric_standard_info | body | object | No | {"id": "900000000000000001", "metric_value_module_infos": [{"id": "900000000000000001", "value": "Minh họa", "unit_id": "900000000000000001"}]} | Thông tin chuẩn đo lường. |
| product_attributes[].values[].metric_standard_info.id | body | string | No | 900000000000000001 | Mã định danh. |
| product_attributes[].values[].metric_standard_info.metric_value_module_infos | body | object[] | No | [{"id": "900000000000000001", "value": "Minh họa", "unit_id": "900000000000000001"}] | Thông tin các thành phần số đo. |
| product_attributes[].values[].metric_standard_info.metric_value_module_infos[].id | body | string | No | 900000000000000001 | Mã định danh. |
| product_attributes[].values[].metric_standard_info.metric_value_module_infos[].value | body | string | No | Minh họa | Giá trị. |
| product_attributes[].values[].metric_standard_info.metric_value_module_infos[].unit_id | body | string | No | 900000000000000001 | Mã đơn vị. |
| size_chart | body | object | No | {"image": {"uri": "anh-minh-hoa"}, "template": {"id": "900000000000000001"}} | Bảng kích cỡ sản phẩm; có thể bắt buộc hoặc không được hỗ trợ tùy ngành hàng. Nếu ngành không hỗ trợ thì nội dung gửi sẽ bị bỏ qua. |
| size_chart.image | body | object | No | {"uri": "anh-minh-hoa"} | Ảnh. |
| size_chart.image.uri | body | string | Yes | anh-minh-hoa | URI ảnh đã tải lên; giá trị liên quan: SIZE_CHART_IMAGE. |
| size_chart.template | body | object | No | {"id": "900000000000000001"} | Mẫu. |
| size_chart.template.id | body | string | Yes | 900000000000000001 | Mã định danh. |
| package_dimensions | body | object | No | {"length": "Minh họa", "width": "Minh họa", "height": "Minh họa", "unit": "CENTIMETER"} | Kích thước sau đóng gói, ảnh hưởng phí giao hàng; không bắt buộc tại ID, TH, VN. |
| package_dimensions.length | body | string | Yes | Minh họa | Chiều dài. |
| package_dimensions.width | body | string | Yes | Minh họa | Chiều rộng. |
| package_dimensions.height | body | string | Yes | Minh họa | Chiều cao. |
| package_dimensions.unit | body | string | Yes | CENTIMETER | Đơn vị; giá trị liên quan: US, CENTIMETER, INCH, KILOGRAM. |
| external_product_id | body | string | No | 900000000000000001 | Mã sản phẩm trong hệ thống bên ngoài; độ dài tối đa: 999. |
| delivery_option_ids | body | string[] | No | ["900000000000000001"] | Danh sách mã phương thức giao hàng; giá trị liên quan: AS_DRAFT. |
| video | body | object | No | {"id": "900000000000000001"} | Video giới thiệu sản phẩm; khuyến nghị tỷ lệ 1:1, độ phân giải HD 720p trở lên, dài 20–60 giây. |
| video.id | body | string | Yes | 900000000000000001 | Mã định danh. |
| category_version | body | string | No | v2 | Phiên bản cây ngành hàng; v2 là cây 7 cấp tại Mỹ, EU, Đông Nam Á; v1 là cây 3 cấp mặc định cho khu vực khác; giá trị liên quan: US, SEA. |
| manufacturer_ids | body | string[] | No | ["900000000000000001"] | Danh sách mã nhà sản xuất. |
| responsible_person_ids | body | string[] | No | ["900000000000000001"] | Danh sách mã người chịu trách nhiệm. |
| listing_platforms | body | string[] | No | ["TIKTOK_SHOP"] | Nền tảng hiển thị cho người bán chuyển từ Tokopedia. Chỉ truyền một nền tảng sẽ ẩn sản phẩm ở nền tảng bị bỏ. Muốn ẩn cả hai dùng thao tác deactivate; bỏ mảng thì gửi duyệt ở nền tảng đang hoạt động hoặc đã chọn trước đó; giá trị liên quan: TIKTOK_SHOP, TOKOPEDIA, IMPORTANT. |
| shipping_insurance_requirement | body | string | No | REQUIRED | Yêu cầu bảo hiểm vận chuyển; giá trị liên quan: NOT_SUPPORTED, REQUIRED, OPTIONAL, TOKOPEDIA. |
| is_pre_owned | body | bool | No | false | Sản phẩm đã qua sử dụng. |
| minimum_order_quantity | body | int | No | 1 | Số lượng mua tối thiểu; giới hạn: [1, 20]. |
| replicated_products | body | object[] | No | [{"region": "VN", "skus": [{"id": "900000000000000001", "seller_sku": "SKU-MAU-01", "price": {"currency": "VND", "sale_price": "150000"}, "inventory": [{"warehouse_id": "900000000000000001", "quantity": 1}]}], "inventory_mode": "SHARED"}] | Đồng bộ toàn bộ trường tới các thị trường đã có bản sao. Phải gửi đủ SKU đích; SKU đích bị bỏ sẽ bị xóa. Mỗi SKU đích cần giá và tồn kho, riêng đồng bộ Mỹ sang Mexico có thể bỏ tồn kho. Khi đổi ngành hàng hoặc mã/tên thuộc tính bán hàng, phải gửi seller_sku nguồn và đầy đủ thông tin đồng bộ, nếu thiếu sẽ lỗi. |
| replicated_products[].region | body | string | Yes | VN | Thị trường; giá trị liên quan: DE, ES, FR, GB, IE, IT, JP, MY, PH, SG, TH, US, VN. |
| replicated_products[].skus | body | object[] | No | [{"id": "900000000000000001", "seller_sku": "SKU-MAU-01", "price": {"currency": "VND", "sale_price": "150000"}, "inventory": [{"warehouse_id": "900000000000000001", "quantity": 1}]}] | Danh sách SKU. |
| replicated_products[].skus[].id | body | string | No | 900000000000000001 | Mã định danh. |
| replicated_products[].skus[].seller_sku | body | string | No | SKU-MAU-01 | Mã SKU do người bán quản lý. |
| replicated_products[].skus[].price | body | object | Yes | {"currency": "VND", "sale_price": "150000"} | Giá. |
| replicated_products[].skus[].price.currency | body | string | Yes | VND | Mã tiền tệ; giá trị liên quan: EUR, GBP, IDR, JPY, MYR, PHP, SGD, THB, USD, VND. |
| replicated_products[].skus[].price.sale_price | body | string | Yes | 150000 | Giá hiển thị trước giảm giá. |
| replicated_products[].skus[].inventory | body | object[] | No | [{"warehouse_id": "900000000000000001", "quantity": 1}] | Tồn kho theo từng kho. |
| replicated_products[].skus[].inventory[].warehouse_id | body | string | No | 900000000000000001 | Mã kho. |
| replicated_products[].skus[].inventory[].quantity | body | int | No | 1 | Số lượng; giới hạn: [1, 999,999]. |
| replicated_products[].inventory_mode | body | string | No | SHARED | Chế độ tồn kho; SHARED dùng chung và phải nhất quán, EXCLUSIVE độc lập; mặc định EXCLUSIVE tại EU. |
| subscribe_info_edit | body | object | No | {"subscribe_status": "ENABLED", "discount_details": [{"discount_level": "REGULAR", "discount_value": 1}]} | Thông tin mua định kỳ cần sửa. |
| subscribe_info_edit.subscribe_status | body | string | No | ENABLED | Trạng thái mua định kỳ; giá trị liên quan: NOT_ENABLED. |
| subscribe_info_edit.discount_details | body | object[] | No | [{"discount_level": "REGULAR", "discount_value": 1}] | Chi tiết giảm giá. |
| subscribe_info_edit.discount_details[].discount_level | body | string | No | REGULAR | Mức giảm giá; giá trị liên quan: FIRST_ORDER. |
| subscribe_info_edit.discount_details[].discount_value | body | int | No | 1 | Giá trị giảm giá. |
| shipping_template_id | body | string | No | 900000000000000001 | Mã mẫu vận chuyển. |
| scheduled_sale | body | object | No | {"is_enabled_scheduled_sale": false, "schedule_sale_time": 1793494800} | Cấu hình bán theo lịch. |
| scheduled_sale.is_enabled_scheduled_sale | body | bool | Yes | false | Bật bán theo lịch. |
| scheduled_sale.schedule_sale_time | body | int | Yes | 1793494800 | Thời điểm bắt đầu bán theo lịch. |
| locale | body | string | No | vi-VN | Mã ngôn ngữ hiển thị; mặc định theo gian hàng; giá trị liên quan: BCP, DE, GB, IE, US, ES, MX, FR, IT, JP, MY, BR, TH, VN, CN. |
| auto_translate_enabled | body | bool | No | false | Tự động dịch. |
| search_terms | body | string[] | No | ["Minh họa"] | Từ khóa tìm kiếm không hiển thị với khách; phải phù hợp mô tả, tối đa 15 từ khóa và tổng 250 ký tự. |
| key_product_features | body | string[] | No | ["Minh họa"] | Điểm nổi bật hiển thị trên trang sản phẩm và dùng cho tìm kiếm; tối đa 5 mục, tổng 1500 ký tự. |
| inventory_mode | body | string | No | SHARED | Chế độ tồn kho; SHARED dùng chung và phải nhất quán, EXCLUSIVE độc lập; mặc định EXCLUSIVE tại EU. |
| product_tag_operations | body | object[] | No | [{"product_tag": "AUCTION", "enable": false}] | Thao tác cũ để bật/tắt nhãn AUCTION; nếu có selling_format thì ưu tiên selling_format; giá trị liên quan: AUCTION. |
| product_tag_operations[].product_tag | body | string | Yes | AUCTION | Nhãn sản phẩm; giá trị liên quan: AUCTION. |
| product_tag_operations[].enable | body | bool | Yes | false | Bật hoặc tắt; giá trị liên quan: AUCTION. |
| purchase_order_quantity_limit | body | object | No | {"maximum_order_quantity": 1, "cumulative_order_quantity": 1} | Giới hạn số lượng mua. |
| purchase_order_quantity_limit.maximum_order_quantity | body | int | No | 1 | Số lượng mua tối đa. |
| purchase_order_quantity_limit.cumulative_order_quantity | body | int | No | 1 | Giới hạn số lượng mua tích lũy. |
| selling_format | body | string | No | FIXED_PRICE_AND_LIVE_AUCTION | FIXED_PRICE bán giá cố định, mặc định; FIXED_PRICE_AND_LIVE_AUCTION kết hợp đấu giá LIVE và cần starting_bid_price; giá trị liên quan: FIXED_PRICE, FIXED_PRICE_AND_LIVE_AUCTION, LIVE. |
| is_live_quick | body | bool | No | false | Sản phẩm LIVE_QUICK; chỉ người bán có quyền tương ứng mới được tạo; giá trị liên quan: LIVE_QUICK. |
| is_blind_box | body | bool | No | false | Sản phẩm hộp mù. |
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok/product/202509/products/900000000000000001" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/tiktok/product/202509/products/900000000000000001",
params={},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/tiktok/product/202509/products/900000000000000001');
for (const [k, v] of Object.entries({})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'PUT',
headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());PHP
<?php $key = 'q360_live_...'; // khóa API của brand $url = 'https://partner.quantri360.com/v1/tiktok/product/202509/products/900000000000000001' . '?' . http_build_query([]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]); $res = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status, "\n", $res;
Response
Response fields (as returned by TikTok Shop)
| Name | Type | Sample | Description |
|---|---|---|---|
| code | int | 0 | Mã kết quả; 0 là thành công. |
| message | string | Success | Thông báo kết quả. |
| request_id | string | YEU_CAU_MINH_HOA | Mã yêu cầu để tra cứu lỗi. |
| data | object | Dữ liệu. | |
| product_id | string | 900000000000000001 | Mã sản phẩm. |
| skus | object[] | Danh sách SKU. | |
| id | string | 900000000000000001 | Mã định danh. |
| seller_sku | string | SKU-MAU-01 | Mã SKU do người bán quản lý. |
| sales_attributes | object[] | Thuộc tính bán hàng tạo biến thể. | |
| id | string | 900000000000000001 | Mã định danh. |
| value_id | string | 900000000000000001 | Mã giá trị. |
| external_sku_id | string | 900000000000000001 | Mã SKU trong hệ thống bên ngoài. |
| fees | object[] | Các khoản phí. | |
| type | string | PFAND | Loại; giá trị liên quan: PFAND. |
| amount | string | 150000 | Số tiền. |
| additional_attribute | string | SINGLE_USE | Thuộc tính bổ sung; giá trị liên quan: SINGLE_USE, NOT_APPLICABLE, REUSABLE. |
| warnings | object[] | Cảnh báo. | |
| message | string | Success | Thông báo kết quả. |
| audit | object | Thông tin duyệt. | |
| status | string | AUDITING | Trạng thái; giá trị liên quan: NONE, AUDITING, APPROVED. |
Response sample
{
"code": 0,
"message": "Success",
"request_id": "YEU_CAU_MINH_HOA",
"data": {
"product_id": "900000000000000001",
"skus": [
{
"id": "900000000000000001",
"seller_sku": "SKU-MAU-01",
"sales_attributes": [
{
"id": "900000000000000001",
"value_id": "900000000000000001"
}
],
"external_sku_id": "900000000000000001",
"fees": [
{
"type": "PFAND",
"amount": "150000",
"additional_attribute": "SINGLE_USE"
}
]
}
],
"warnings": [
{
"message": "Success"
}
],
"audit": {
"status": "AUDITING"
}
}
}
Get started
- Sign up for Partner
- Enable a data type of the Sản phẩm group on the platform page
- Create an API key (tick the TikTok Shop channel)
- Call it as in the examples above