v2.shop_category.add_item_list
POST/api/v2/shop_category/add_item_listVia 360: POST https://partner.quantri360.com/v1/shopee/api/v2/shop_category/add_item_list
Write endpoint — changes data on Shopee. The key must be created with "Allow write API calls" ticked, otherwise you get 403 write_not_allowed. Every call is logged.
Description
Thêm tối đa 100 sản phẩm vào một danh mục của gian hàng. Sản phẩm lỗi được trả riêng, các sản phẩm còn lại vẫn được thêm.
- Gọi qua /v1/shopee/api/v2/shop_category/add_item_list với Authorization: Bearer <key>; dùng platform_shop_id khi có nhiều shop. 360 tự gắn partner_id, shop_id, sign và access_token.
- API GHI: thay đổi dữ liệu thật trên Shopee; cần key có quyền ghi (can_write) và gói mở module Sản phẩm. Đổi sản phẩm người mua thấy trong danh mục.
- HTTP 200 vẫn có thể có lỗi nghiệp vụ; kiểm error trước khi dùng kết quả. Kiểm từng phần tử trong invalid_item_id_list.
Request
Endpoint
POST https://partner.quantri360.com/v1/shopee/api/v2/shop_category/add_item_list
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 |
|---|---|---|---|---|---|
| shop_category_id | body | int64 | Yes | 100071 | Mã danh mục. |
| item_list | body | int64[] | Yes | [100011, 100012] | Mã sản phẩm, tối đa 100 mỗi lần. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/shopee/api/v2/shop_category/add_item_list" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"shop_category_id":100071,"item_list":[100011,100012]}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/shopee/api/v2/shop_category/add_item_list",
params={},
json={
"shop_category_id": 100071,
"item_list": [
100011,
100012
]
},
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/shopee/api/v2/shop_category/add_item_list');
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: 'POST',
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"shop_category_id":100071,"item_list":[100011,100012]}),
});
console.log(r.status, await r.json());PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/shopee/api/v2/shop_category/add_item_list' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"shop_category_id":100071,"item_list":[100011,100012]}');
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;Response
Response fields (as returned by Shopee)
Kiểm error và `invalid_item_id_list` trước khi dùng kết quả; mẫu chỉ dùng dữ liệu minh họa.
| Name | Type | Sample | Description |
|---|---|---|---|
| request_id | string | d52ca43b277a4f9292fb8be658bfd33d | Mã request của Shopee để tra lỗi. |
| error | string | Mã lỗi Shopee; rỗng = thành công. | |
| message | string | Mô tả lỗi. | |
| response | object | Kết quả. | |
| shop_category_id | int64 | 100071 | Mã danh mục. |
| current_count | int | 2 | Số sản phẩm trong danh mục sau khi thêm. |
| invalid_item_id_list | object[] | Sản phẩm lỗi; có thể không có. | |
| item_id | int64 | 100011 | Mã sản phẩm. |
| fail_error | string | Mã lỗi. | |
| fail_message | string | Chi tiết lỗi. |
Response sample
{
"request_id": "demo-request",
"error": "",
"message": "",
"response": {
"shop_category_id": 100071,
"current_count": 2
}
}
Shopee error codes (11)
Show
| Code | Meaning |
|---|---|
| error_data | Dữ liệu không tồn tại hoặc không hợp lệ cho thao tác (vd mã không có, loại yêu cầu không cho phép). |
| error_param | Tham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào. |
| error_server | Lỗi hệ thống Shopee — thử lại sau ít phút. |
| error_shop | Gian hàng không hợp lệ — kiểm tra platform_shop_id. |
| error_service | Lỗi dịch vụ phía Shopee — thử lại sau. |
| error_param_name_item | Thiếu tham số item_list. |
| error_auth | Ủy quyền gian hàng cho 360 đã hết hạn hoặc bị thu hồi (360 đã tự làm mới token một lần) — chủ gian hàng kết nối lại Shopee trong Partner. |
| error_limit | Chạm hạn mức gọi Shopee trong ngày của kết nối — 360 trả kèm thời điểm thử lại; giảm tần suất gọi. |
| error_rate_limit | Gọi quá nhanh — chờ vài giây rồi gọi lại (360 cũng giới hạn theo key: 429 + Retry-After). |
| shop_banned | Gian hàng đang bị Shopee khóa — mọi API tạm ngưng tới khi gỡ khóa. |
| error_kyc_auth | Gian hàng chưa hoàn tất đăng ký người bán trên Kênh Người Bán. |
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 Shopee channel)
- Call it as in the examples above