VI | EN
Message us on Messenger
Developer resources

Update Add-on Deal — Shopee API

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

POST/api/v2/add_on_deal/update_add_on_dealVia 360: POST https://partner.quantri360.com/v1/shopee/api/v2/add_on_deal/update_add_on_deal
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 thời gian, tên và điều kiện mua của chương trình mua kèm hiện có.

  • Gọi qua /v1/shopee/api/v2/add_on_deal/update_add_on_deal 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ả.
  • Đọ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.
  • 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

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á trị >=1.
start_timebodyintNo1794009600Thời điểm bắt đầu, Unix giây; sau thời điểm hiện tại ít nhất 1 giờ.
end_timebodyintNo1794182400Thời điểm kết thúc, Unix giây; phải sau thời điểm bắt đầu.
purchase_min_spendbodyfloatNo100000Chi tiêu tối thiểu để nhận quà; chỉ dùng cho quà tặng theo mức chi tiêu.
per_gift_numbodyintNo1Số quà người mua có thể nhận.
promotion_purchase_limitbodyintNo2Số sản phẩm mua kèm tối đa một khách được mua trong mỗi đơn.
sub_item_prioritybodyint64[]No[100011]Thứ tự ưu tiên sản phẩm mua kèm.
add_on_deal_namebodystringNoƯu đãi minh họaTên chương trình mua kèm.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/shopee/api/v2/add_on_deal/update_add_on_deal" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"add_on_deal_id":100003,"add_on_deal_name":"Mua kèm minh họa"}'
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",
    params={},
    json={
        "add_on_deal_id": 100003,
        "add_on_deal_name": "Mua kèm minh họa"
    },
    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');
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,"add_on_deal_name":"Mua kèm minh họa"}),
});
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' . '?' . 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,"add_on_deal_name":"Mua kèm minh họa"}');
$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ả. response có thể kèm source và sub_item_priority; đọc các trường này khi có.

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ý.
start_timeint1794009600Thời điểm bắt đầu, Unix giây; sau thời điểm hiện tại ít nhất 1 giờ.
end_timeint1794182400Thời điểm kết thúc, Unix giây; phải sau thời điểm bắt đầu.
promotion_typeint0Loại mua kèm: 0 = giảm giá mua kèm, 1 = quà tặng khi đạt chi tiêu tối thiểu.
purchase_min_spendfloat100000Chi tiêu tối thiểu để nhận quà; chỉ dùng cho quà tặng theo mức chi tiêu.
add_on_deal_idint64100003Mã chương trình mua kèm.
per_gift_numint1Số quà người mua có thể nhận.
promotion_purchase_limitint2Số sản phẩm mua kèm tối đa một khách được mua trong mỗi đơn.
add_on_deal_namestringƯu đãi minh họaTên chương trình mua kèm.

Response sample

{
  "request_id": "demo-request",
  "error": "",
  "message": "",
  "response": {
    "start_time": 1794009600,
    "end_time": 1794182400,
    "promotion_type": 0,
    "purchase_min_spend": 100000,
    "add_on_deal_id": 100003,
    "per_gift_num": 1,
    "promotion_purchase_limit": 2,
    "add_on_deal_name": "Ưu đãi minh họa"
  }
}

Shopee error codes (30)

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.add_on_item_delete_errorChương trình phải có ít nhất một sản phẩm mua kèm.
add_on.add_on_edit_errorTham số, giá hoặc thời điểm chỉnh sửa mua kèm không hợp lệ; xem `message`.
add_on.add_on_deal_time_errorThời gian chương trình không quá 6 tháng.
add_on.add_on_deal_end_time_errorKết thúc phải sau bắt đầu ít nhất 1 giờ.
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_deal_name_invalidTên chương trình mua kèm không quá 25 ký tự.
add_on.add_on_deal_not_existsChương trình mua kèm không tồn tại.
add_on.add_on_update_errorKhông được sửa trường được nêu trong message khi chương trình đang diễn ra.
add_on.add_on_page_no_errorpage_no phải từ 1 đến 1000.
add_on.add_on_page_size_errorKích thước trang phải từ 1 đến 100.
add_on.add_on_deal_set_errorSố quà hoặc giới hạn mua ngoài khoảng cho phép; xem `message`.
add_on.add_on_status_errorTrạng thái: 0 = tất cả, 1 = đang diễn ra, 2 = sắp diễn ra, 3 = hết hạn.
add_on.add_on_set_errorThiếu purchase_min_spend.
bundle.bundle_deal_item_under_block_categoriesNgành hàng bị cấm khuyến mãi theo quy định thị trường.
bundle.bundle_deal_multi_tier_invalid_discount_value_per_itemMức cao hơn phải có số tiền giảm mỗi sản phẩm lớn hơn (discount_value/min_amount).
bundle.bundle_deal_rule_type_value_errorGiá trị quy tắc không hợp lệ.
bundle.bundle_deal_max_span_beyondThời gian chương trình không quá 6 tháng.
follow_prize.end_time_max_limitKết thúc không được quá 6 tháng sau bắt đầu.
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.
voucher_oversize_listChỉ thêm tối đa 1000 sản phẩm.
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