VI | EN
Message us on Messenger
Developer resources

Update Add-on Deal Sub Item — Shopee API

v2.add_on_deal.update_add_on_deal_sub_item · 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.add_on_deal.update_add_on_deal_sub_item

POST/api/v2/add_on_deal/update_add_on_deal_sub_itemVia 360: POST https://partner.quantri360.com/v1/shopee/api/v2/add_on_deal/update_add_on_deal_sub_item
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

Sửa giá, giới hạn mua và trạng thái sản phẩm mua kèm hiện có.

  • Gọi qua /v1/shopee/api/v2/add_on_deal/update_add_on_deal_sub_item 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 Khuyến mãi. Thay đổi cấu hình ưu đãi hoặc giá khuyến mãi người mua thấy.
  • 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 danh sách kết quả, gồm mã lỗi và thông báo của phần tử.
  • Đọc trạng thái hiện tại bằng get_add_on_deal trước khi gọi.
  • Tối đa 1000 chương trình; thời gian không quá 6 tháng, bắt đầu sau hiện tại ít nhất 1 giờ, kết thúc sau bắt đầu ít nhất 1 giờ. Giảm giá mua kèm không gửi purchase_min_spend/per_gift_num; quà tặng theo chi tiêu không gửi promotion_purchase_limit.
  • Tối đa 1000 sản phẩm chính và 100 sản phẩm mua kèm; cần đủ tồn kho, trạng thái hợp lệ và có kênh vận chuyển chung. Thời gian chuẩn bị hàng mua kèm không dài hơn sản phẩm chính; giới hạn mua phải đáp ứng số lượng mua tối thiểu.
  • Không sửa chương trình hết hạn hoặc chương trình do quản trị tạo; chương trình đang diễn ra có trường bị khóa, kiểm message. Chỉ lùi thời điểm bắt đầu chương trình sắp diễn ra và rút ngắn kết thúc.

Request

Endpoint

POST https://partner.quantri360.com/v1/shopee/api/v2/add_on_deal/update_add_on_deal_sub_item

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
add_on_deal_idbodyint64Yes100003Mã chương trình mua kèm. Giới hạn được khai báo là <1; cần đối chiếu mã chương trình hiện có bằng get_add_on_deal trước khi gọi.
sub_item_listbodyobject[]Yes[{"item_id":100011,"model_id":100012,"status":1,"sub_item_input_price":10000,"sub_item_limit":1}]Danh sách sản phẩm mua kèm.
sub_item_list[].item_idbodyint64No100011Mã sản phẩm.
sub_item_list[].model_idbodyint64No100012Mã phân loại sản phẩm; không có phân loại thì có thể bỏ, mặc định 0.
sub_item_list[].statusbodyintNo1Trạng thái sản phẩm: 1 = bật, 2 = tắt.
sub_item_list[].sub_item_input_pricebodyfloatNo10000Giá mua kèm trước thuế.
sub_item_list[].sub_item_limitbodyintNo1Giới hạn mua từng sản phẩm mua kèm; chỉ cấu hình với giảm giá mua kèm, quà tặng theo chi tiêu mặc định là 1.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/shopee/api/v2/add_on_deal/update_add_on_deal_sub_item" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"add_on_deal_id":100003,"sub_item_list":[{"item_id":100011,"model_id":100012,"status":1,"sub_item_input_price":10000,"sub_item_limit":1}]}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/shopee/api/v2/add_on_deal/update_add_on_deal_sub_item",
    params={},
    json={
        "add_on_deal_id": 100003,
        "sub_item_list": [
            {
                "item_id": 100011,
                "model_id": 100012,
                "status": 1,
                "sub_item_input_price": 10000,
                "sub_item_limit": 1
            }
        ]
    },
    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/add_on_deal/update_add_on_deal_sub_item');
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({"add_on_deal_id":100003,"sub_item_list":[{"item_id":100011,"model_id":100012,"status":1,"sub_item_input_price":10000,"sub_item_limit":1}]}),
});
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/add_on_deal/update_add_on_deal_sub_item' . '?' . 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, '{"add_on_deal_id":100003,"sub_item_list":[{"item_id":100011,"model_id":100012,"status":1,"sub_item_input_price":10000,"sub_item_limit":1}]}');
$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 minh họa thành công; đọc error/message trước khi dùng kết quả. Đọc add_on_deal_id trong response; nếu không có thì đọc add_on_deal_id ở cấp ngoài cùng.

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ả xử lý.
sub_item_listobject[]Danh sách sản phẩm mua kèm.
item_idint64100011Mã sản phẩm.
statusint1Trạng thái sản phẩm: 1 = bật, 2 = tắt.
model_idint64100012Mã phân loại sản phẩm; không có phân loại thì có thể bỏ, mặc định 0.
fail_errorstringMã lỗi của phần tử; rỗng khi thành công.
fail_messagestringChi tiết lỗi của phần tử; rỗng khi thành công.
sub_item_input_pricefloat10000Giá mua kèm trước thuế.
sub_item_limitint1Giới hạn mua từng sản phẩm mua kèm; chỉ cấu hình với giảm giá mua kèm, quà tặng theo chi tiêu mặc định là 1.
add_on_deal_idint64100003Mã chương trình mua kèm.

Response sample

{
  "request_id": "demo-request",
  "error": "",
  "message": "",
  "response": {
    "sub_item_list": [
      {
        "item_id": 100011,
        "status": 1,
        "model_id": 100012,
        "fail_error": "",
        "fail_message": "",
        "sub_item_input_price": 10000,
        "sub_item_limit": 1
      }
    ],
    "add_on_deal_id": 100003
  }
}

Shopee error codes (23)

Show
CodeMeaning
add_on.add_on_deal_error_unknownKhông sửa chương trình mua kèm do quản trị tạo.
ADD_ON_DEAL_DTS_ERRORThời gian chuẩn bị hàng mua kèm dài hơn sản phẩm chính.
add_on.add_on_item_exceed_discount_limit_errorSản phẩm đã đạt giới hạn tham gia khuyến mãi.
add_on.add_on_item_overlapSản phẩm đã thuộc danh sách hoặc chương trình mua kèm / mua theo bộ xung đột; xem `message`.
add_on.add_on_shipping_channel_errorKhông có kênh vận chuyển chung với sản phẩm bật đầu tiên.
add_on.add_on_deal_item_under_btocCó sản phẩm B2C không được thêm vào khuyến mãi.
add_on.add_on_deal_expiredKhông sửa chương trình mua kèm đã hết hạn.
add_on.add_on_delete_errorChỉ xóa chương trình mua kèm sắp diễn ra.
add_on.add_on_item_invalidTrạng thái sản phẩm bất thường.
add_on.add_on_item_no_stockSản phẩm hết hàng.
add_on.add_on_no_itemSản phẩm không tồn tại.
add_on.add_on_deal_not_existsChương trình mua kèm không tồn tại.
add_on.add_on_purchase_limit_errorGiới hạn mua phải lớn hơn số lượng mua tối thiểu.
add_on.add_on_duplicate_itemSản phẩm đã tồn tại trong danh sách chính hoặc mua kè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Ủ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_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 Khuyến mãi (Marketing) group on the platform page
  3. Create an API key (tick the Shopee channel)
  4. Call it as in the examples above