VI | EN
Message us on Messenger
Developer resources

Add model — Shopee API

v2.product.add_model · call it through Quantri360 with one API key for your own accounts / assets that you connected and authorized — 360 handles request signing and refreshing the authorization you granted.

v2.product.add_model

POST/api/v2/product/add_modelVia 360: POST https://partner.quantri360.com/v1/shopee/api/v2/product/add_model
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 phân loại hàng vào sản phẩm đang có trên sàn, kèm giá gốc và tồn kho theo kho. Tối đa 50 phân loại mỗi lần.

  • Gọi qua /v1/shopee/api/v2/product/add_model 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/tính năng trên sàn như mô tả; cần key có quyền ghi (can_write) và gói mở module Sản phẩm. Kiểm tra shop, mã sản phẩm và nội dung trước khi gửi.
  • model_list từ 1 đến 50 phần tử. seller_stock phải đủ lượng đang được giữ cho đơn; SSP/CSSP chỉ gửi khi shop có tính năng.

Request

Endpoint

POST https://partner.quantri360.com/v1/shopee/api/v2/product/add_model

Authentication & shop

NameInTypeSampleDescription
AuthorizationheaderheaderBearer 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_idquerystring100001Gian 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

NameInTypeRequiredSampleDescription
item_idbodyint64Yes100001Mã sản phẩm của shop đang chọn.
model_listbodyobject[]YesCác phân loại hàng cùng cấu hình giá, tồn hoặc chỉ số lựa chọn.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/shopee/api/v2/product/add_model" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_id":100001,"model_list":[{"tier_index":[0],"original_price":100000,"seller_stock":[{"stock":10}]}]}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/shopee/api/v2/product/add_model",
    params={},
    json={
        "item_id": 100001,
        "model_list": [
            {
                "tier_index": [
                    0
                ],
                "original_price": 100000,
                "seller_stock": [
                    {
                        "stock": 10
                    }
                ]
            }
        ]
    },
    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/product/add_model');
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({"item_id":100001,"model_list":[{"tier_index":[0],"original_price":100000,"seller_stock":[{"stock":10}]}]}),
});
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/product/add_model' . '?' . 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, '{"item_id":100001,"model_list":[{"tier_index":[0],"original_price":100000,"seller_stock":[{"stock":10}]}]}');
$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)

Phản hồi giữ nguyên cấu trúc của API. Xem error/message trước khi dùng response; ví dụ tham số là dữ liệu minh họa.

NameTypeSampleDescription
request_idstringd52ca43b277a4f9292fb8be658bfd33dMã request của Shopee để tra lỗi.
errorstringMã lỗi Shopee; rỗng = thành công.
messagestringMô tả lỗi.
responseobjectKết quả nghiệp vụ.
modelobject[]Các phân loại hàng đã tạo.

Response sample

{
	"error": "-",
	"message": "-",
	"warning": "-",
	"request_id": "-",
	"response": {
		"model": [
			{
				"model_sku": "sku",
				"price_info": [
					{
						"original_price": 52.4
					}
				],
				"seller_stock": [
					{
						"location_id": "-",
						"stock": 0
					}
				],
				"weight": 1.1
			}
		]
	}
}

Shopee error codes (30)

Show
CodeMeaning
product.error_busiThe GTIN code is mandatory, please check and upload again.
error_dataDữ 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_paramTham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào.
error_serverLỗi hệ thống Shopee — thử lại sau ít phút.
error_shopGian hàng không hợp lệ — kiểm tra platform_shop_id.
error_auth_product_is_pffItem/Model Fulfillment by Shopee can not be update.
error_item_not_belong_shopItem not belong to shop.
error_param_shop_id_not_foundShop_id is not found.
error_innerLỗi hệ thống Shopee — thử lại sau.
error_item_not_foundKhông tìm thấy item_id.
error_invalid_priceInvalid price, please use the correct format
error_invalid_price_for_logisticShipping channel cannot be enabled as product price exceeds limit.
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_param_validateThiết lập bán sỉ hoặc thị trường của merchant chưa hợp lệ; xem `message`.
error_busi_cannot_edit_vskuCan not use OpenAPI to edit/create VSKU, please connect with your manager
error.paramCan not update item with stock less than reserved stock
error_busiMerchant/gian hàng có nhiều kho; cần gửi location_id.
error_system_busyHệ thống đang bận; thử lại sau.
error_nil_shopid_or_itemidQuery information failed.
error_holiday_on_add_itemShop is under vocation mode.
error_nil_name_new_item_modelItem tier_variation name cannot be empty.
error_price_exceed_min_limittOriginal_price is less than min price limit.
error_price_exceed_max_limittOriginal_price is bigger than max price limit.
error_wholesale_price_less_than_ratio_limitWholesale price is less than ratio limit.
error_slash_price_nomodel_to_models_lockIn slash sale, can't add model.
error_price_should_be_same_for_wholesalesAll model price should be the same when the item has been set wholesales.
error_limitChạ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_limitGọ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_bannedGian hàng đang bị Shopee khóa — mọi API tạm ngưng tới khi gỡ khóa.
error_kyc_authGian hàng chưa hoàn tất đăng ký người bán trên Kênh Người Bán.

Get started

  1. Sign up for Partner
  2. Enable a data type of the Sản phẩm group on the platform page
  3. Create an API key (tick the Shopee channel)
  4. Call it as in the examples above