VI | EN
Message us on Messenger
Developer resources

This api can only be used without changing the tier structure, you can add options, delete options, and update the option image by this api — Shopee API

v2.product.update_tier_variation · 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.update_tier_variation

POST/api/v2/product/update_tier_variationVia 360: POST https://partner.quantri360.com/v1/shopee/api/v2/product/update_tier_variation
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

Cập nhật tùy chọn phân loại và ảnh của sản phẩm trên sàn khi giữ nguyên cấu trúc tầng phân loại. Có thể thêm/bớt lựa chọn; không dùng để đổi số tầng.

  • Gọi qua /v1/shopee/api/v2/product/update_tier_variation 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.
  • Phải gửi ít nhất cấu hình lựa chọn cần đổi; đọc get_model_list trước và giữ ánh xạ model_id/tier_index đúng.

Request

Endpoint

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

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[]NoCác phân loại hàng cùng cấu hình giá, tồn hoặc chỉ số lựa chọn.
standardise_tier_variationbodyobject[]NoCấu trúc phân loại chuẩn hóa và các lựa chọn cần cập nhật.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/shopee/api/v2/product/update_tier_variation" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_id":100001,"standardise_tier_variation":[{"variation_id":10001,"variation_option_list":[{"variation_option_id":10002}]}]}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/shopee/api/v2/product/update_tier_variation",
    params={},
    json={
        "item_id": 100001,
        "standardise_tier_variation": [
            {
                "variation_id": 10001,
                "variation_option_list": [
                    {
                        "variation_option_id": 10002
                    }
                ]
            }
        ]
    },
    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/update_tier_variation');
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,"standardise_tier_variation":[{"variation_id":10001,"variation_option_list":[{"variation_option_id":10002}]}]}),
});
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/update_tier_variation' . '?' . 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,"standardise_tier_variation":[{"variation_id":10001,"variation_option_list":[{"variation_option_id":10002}]}]}');
$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.

Response sample

{
	"error": "-",
	"message": "-",
	"warning": "-",
	"request_id": "-"
}

Shopee error codes (50)

Show
CodeMeaning
error_tier_indextier_index không tồn tại.
error_duplicate_modelidmodel_id bị trùng; xem `message`.
product.error_busiThe GTIN code is mandatory, please check and upload again.
error_wrong_modelidmodel_id sai hoặc không thuộc sản phẩm; xem `message`.
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_model_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_busi_cannot_delete_all_modelCannot delete all models by this api.
error_tier_var_level_not_sameItem tier-variation level not same
error_tier_var_is_Item without tier-variation. Please use init_tier_variation api to upgrade the structure.
error_innerLỗi hệ thống Shopee — thử lại sau.
error_unknown{{.error_info}}
error_item_not_foundKhông tìm thấy item_id.
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_busi_cannot_edit_vskuCan not use OpenAPI to edit/create VSKU, please connect with your manager
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_item_or_variation_not_foundItem or model doesn't exist.
error_seller_under_penaltyThe shop is under penalty.
error_nil_shopid_or_itemidQuery information failed.
error_perm_non_adminDon't have permission.
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_cannt_edit_stock_in_promotionNormal_stock cannot be edited when item is under promotion.
error_cannt_be_no_variation_in_promotionItem cannot be without model when item is under promotion.
error_cannt_delete_option_in_promotionOption of tier_variation cannot be deleted when item is under promotion.
error_cannt_change_tier_variation_in_promotionStructure of tier_variation cannot be edited when item is under promotion.
error_tier_var_too_manyCount of tier_variation is larger than 50.
error_tier_opt_too_manyCount of tier_variation option is larger than 20.
error_tier_opt_val_too_long{{.error_info}}
error_tier_var_name_too_long{{.error_info}}
error_tier_img_partialInteral error, please contact openapi team.
error_tier_img_old_appInteral error, please contact openapi team.
error_tier_img_not_allowerNot allowed to update tier-variation image.
error_in_item_promotion_remove_modelCan't change tier_variation when item is under promotion.
error_price_should_be_same_for_wholesalesAll model price should be the same when the item has been set wholesales.
error_model_tier_index_level_mismatch_var_levelItem tier_index level mismatch tier variation list level.
error_model_count_over_limitThe count of model is too large. Should be under 20 (50 for TW)
error_model_nonempty_itemtier_empty_indexItem tier_index is required.
error_model_duplicate_nameItem tier_variation have duplicate name.
error_model_duplicate_tier_variation_indexItem have duplicate tier_index.
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