v2.ams.add_all_products_to_open_campaign
POST/api/v2/ams/add_all_products_to_open_campaignGọi qua 360: POST https://partner.quantri360.com/v1/shopee_ams/api/v2/ams/add_all_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 toàn bộ sản phẩm đủ điều kiện của gian hàng vào Chiến dịch mở với tỷ lệ hoa hồng và thời gian chỉ định.
- Gọi qua /v1/shopee_ams/api/v2/ams/add_all_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. Tác động TOÀN BỘ sản phẩm của gian hàng đủ điều kiện khi thêm vào Chiến dịch mở. Đổ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ả.
- Tác vụ bất đồng bộ trả task_id: kiểm bằng get_open_campaign_batch_task_result. Chỉ trả lỗi chung khiến toàn tác vụ thất bại, không trả lỗi từng sản phẩm. Muốn kết quả từng sản phẩm, tự chia trang gọi batch_add_products_to_open_campaign hoặc dùng API đọc kiểm trạng thái sản phẩm khi tiến độ đạt 100%.
Request
Địa chỉ
POST https://partner.quantri360.com/v1/shopee_ams/api/v2/ams/add_all_products_to_open_campaign
Xác thực & gian hàng
| Tên | Vị trí | Kiểu | Mẫu | Mô tả |
|---|---|---|---|---|
| Authorization | header | header | Bearer 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_id | query | string | 100001 | Gian 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ên | Vị trí | Kiểu | Bắt buộc | Mẫu | Mô tả |
|---|---|---|---|---|---|
| commission_rate | body | float | Có | 1.25 | Tỷ lệ hoa hồng: 1.25 nghĩa là 1.25%, hỗ trợ hai chữ số thập phân. |
| period_start_time | body | timestamp | Không | 1800000000 | Thời điểm bắt đầu, Unix giây. Bỏ trống: mặc định sau 10 phút. |
| period_end_time | body | timestamp | Không | 32503651199 | Thờ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/add_all_products_to_open_campaign" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"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/add_all_products_to_open_campaign",
params={},
json={
"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/add_all_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({"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/add_all_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, '{"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ên | Kiểu | Mẫu | Mô tả |
|---|---|---|---|
| request_id | string | d52ca43b277a4f9292fb8be658bfd33d | Mã request của Shopee để tra lỗi. |
| error | string | Mã lỗi Shopee; rỗng = thành công. | |
| message | string | Mô tả lỗi. | |
| response | object | Kết quả xử lý. | |
| task_type | string | batch_add_open_campaigns | Loại tác vụ: batch_add_open_campaigns, batch_remove_open_campaigns hoặc batch_update_open_campaigns; API này trả batch_add_open_campaigns. |
| task_id | string | demo-task | Mã tác vụ bất đồng bộ; dùng get_open_campaign_batch_task_result để kiểm tiến độ. |
Mẫu phản hồi
{
"error": "",
"message": "",
"request_id": "demo-request",
"response": {
"task_type": "batch_add_open_campaigns",
"task_id": "demo-task"
}
}
Mã lỗi của Shopee AMS (8)
Bấm để xem
| Mã | Ý nghĩa |
|---|---|
| error_server | Lỗi hệ thống Shopee — thử lại sau ít phút. |
| error_param | Tham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào. |
| error_business | Khô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_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_limit | Chạ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_limit | Gọ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_banned | Gian hàng đang bị Shopee khóa — mọi API tạm ngưng tới khi gỡ khóa. |
| error_kyc_auth | Gian 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
- Đăng ký tài khoản Partner
- Mở loại dữ liệu thuộc nhóm Affiliate ở trang nền tảng
- Tạo API key (tick kênh Shopee AMS)
- Gọi theo ví dụ ở trên