VI | EN
Nhắn Messenger
Dành cho developer

Batch add products to the Open Campaign for a given list of product IDs — API Shopee AMS

v2.ams.batch_add_products_to_open_campaign · gọi qua Quantri360 bằng một API key cho chính tài khoản / tài sản bạn đã kết nối và ủy quyền — 360 lo việc ký request và làm mới phiên đăng nhập bạn đã cấp.

v2.ams.batch_add_products_to_open_campaign

POST/api/v2/ams/batch_add_products_to_open_campaignGọi qua 360: POST https://partner.quantri360.com/v1/shopee_ams/api/v2/ams/batch_add_products_to_open_campaign
Endpoint ghi — thay đổi dữ liệu trên Shopee AMS. Key phải được tạo với tick "Cho phép gọi API ghi", nếu không sẽ nhận 403 write_not_allowed. Mỗi lần gọi được ghi nhật ký.
Mô tả API

Thêm danh sách tối đa 50 sản phẩm vào Chiến dịch mở với cùng tỷ lệ hoa hồng và thời gian.

  • Gọi qua /v1/shopee_ams/api/v2/ams/batch_add_products_to_open_campaign 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 Affiliate. Thay đổi cài đặt chiến dịch. Đổi tỷ lệ hoa hồng là đổi chi phí phải trả.
  • 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ả, kể cả khi error và message rỗng.

Request

Địa chỉ

POST https://partner.quantri360.com/v1/shopee_ams/api/v2/ams/batch_add_products_to_open_campaign

Xác thực & gian hàng

TênVị tríKiểuMẫuMô tả
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.

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
item_id_listbodyint64[]Có[800001]Danh sách mã sản phẩm, tối đa 50.
commission_ratebodyfloatCó1.25Tỷ lệ hoa hồng: 1.25 nghĩa là 1.25%, hỗ trợ hai chữ số thập phân.
period_start_timebodytimestampKhông1800000000Thời điểm bắt đầu, Unix giây. Bỏ trống: mặc định sau 10 phút.
period_end_timebodytimestampKhông32503651199Thời điểm kết thúc, Unix giây; 32503651199 (2999-12-31 23:59:59) nghĩa là không giới hạn. Bỏ trống: mặc định 32503651199.

Ví dụ request

curl -s -X POST "https://partner.quantri360.com/v1/shopee_ams/api/v2/ams/batch_add_products_to_open_campaign" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_id_list":[800001],"commission_rate":1.25,"period_start_time":1800000000,"period_end_time":32503651199}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/shopee_ams/api/v2/ams/batch_add_products_to_open_campaign",
    params={},
    json={
        "item_id_list": [
            800001
        ],
        "commission_rate": 1.25,
        "period_start_time": 1800000000,
        "period_end_time": 32503651199
    },
    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_ams/api/v2/ams/batch_add_products_to_open_campaign');
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_list":[800001],"commission_rate":1.25,"period_start_time":1800000000,"period_end_time":32503651199}),
});
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_ams/api/v2/ams/batch_add_products_to_open_campaign' . '?' . 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_list":[800001],"commission_rate":1.25,"period_start_time":1800000000,"period_end_time":32503651199}');
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;

Response

Tham số phản hồi (nguyên của Shopee AMS)

TênKiểuMẫuMô tả
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ý.
failed_listobject[]Kết quả thất bại; kiểm từng phần tử nếu nhận danh sách.
item_idint64800001Mã sản phẩm.
fail_errorstringMã lỗi của phần tử; rỗng nếu không lỗi.
fail_messagestringChi tiết lỗi của phần tử.
success_listint64[]Danh sách mã sản phẩm thành công.

Mẫu phản hồi

{
  "error": "",
  "message": "",
  "request_id": "demo-request",
  "response": {
    "failed_list": [],
    "success_list": [
      800001
    ]
  }
}

Mã lỗi của Shopee AMS (8)

Bấm để xem
MãÝ nghĩa
error_businessKhông thể thực hiện nghiệp vụ Affiliate; kiểm message để biết điều kiện hoặc cài đặt cần xử lý.
error_serverLỗi hệ thống Shopee — thử lại sau ít phút.
error_paramTham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào.
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.

Bắt đầu dùng

  1. Đăng ký tài khoản Partner
  2. Mở loại dữ liệu thuộc nhóm Affiliate ở trang nền tảng
  3. Tạo API key (tick kênh Shopee AMS)
  4. Gọi theo ví dụ ở trên