Get products within a TikTok Shop
GET/store/product/get/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/store/product/get/
Description
Sản phẩm (theo SPU) trong gian hàng TikTok Shop: tên, ảnh, giá thấp / cao nhất, đã bán, tồn, trạng thái dùng được cho quảng cáo, và (khi lọc GMV Max) sản phẩm đã nằm trong chiến dịch GMV Max nào chưa.
- Thiếu
advertiser_idkhi cóad_creation_eligible→ TikTok báo lỗi tham số.
Request
Endpoint
GET https://partner.quantri360.com/v1/tiktok_business/store/product/get/
Authentication & shop
| Name | In | Type | Sample | Description |
|---|---|---|---|---|
| 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 | 7000000000000000001 | Tài sản TikTok Business đã kết nối — "Mã tài sản" ở trang Nền tảng hoặc GET /v1/platforms (tài khoản quảng cáo cho Marketing API, tài khoản TikTok cho Organic / Messaging). Có thể bỏ khi chỉ kết nối một tài sản. |
Request parameters
| Name | In | Type | Required | Sample | Description |
|---|---|---|---|---|---|
| bc_id | query | string | Yes | 7300000000000000001 | Id Business Center = store_authorized_bc_id của gian hàng ở /gmv_max/store/list/ hoặc /store/list/. |
| store_id | query | string | Yes | 7495000000000000001 | Id gian hàng TikTok Shop = store_id ở /gmv_max/store/list/ hoặc /store/list/. |
| filtering | query | object | No | {"ad_creation_eligible":"GMV_MAX","product_status":"AVAILABLE"} | Bộ lọc (JSON):
- item_group_ids: mảng id SPU, tối đa 10.
- ad_creation_eligible: GMV_MAX = kèm khả năng dùng cho GMV Max sản phẩm · CUSTOM_SHOP_ADS = cho Shopping Ads (video / sản phẩm). Không gửi = không có thông tin GMV Max. Có trường này thì PHẢI gửi thêm `advertiser_id` = đúng id tài khoản quảng cáo đang dùng (bằng `platform_shop_id`) — 360 không tự gắn trong trường hợp này.
- product_name: lọc theo tên.
- product_status (chỉ khi GMV_MAX): AVAILABLE · NOT_AVAILABLE · ALL (mặc định).
- exclude_gmv_max_occupied_products: true = bỏ sản phẩm đã nằm trong một chiến dịch GMV Max. |
| sort_field | query | string | No | historical_sales | min_price · historical_sales · update_time. |
| sort_type | query | string | No | DESC | ASC · DESC. |
| page | query | int | No | 1 | Trang, từ 1. Mặc định 1. |
| page_size | query | int | No | 100 | Số dòng mỗi trang: 1–100, mặc định 10. |
Pagination
Tăng page tới khi page = data.page_info.total_page.
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok_business/store/product/get/?platform_shop_id=7000000000000000001&advertiser_id=7000000000000000001&bc_id=7300000000000000001&store_id=7495000000000000001&filtering=%7B%22ad_creation_eligible%22%3A%22GMV_MAX%22%2C%22product_status%22%3A%22AVAILABLE%22%7D&sort_field=historical_sales&sort_type=DESC&page=1&page_size=50" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/tiktok_business/store/product/get/",
params={
"platform_shop_id": "7000000000000000001",
"advertiser_id": "7000000000000000001",
"bc_id": "7300000000000000001",
"store_id": "7495000000000000001",
"filtering": {
"ad_creation_eligible": "GMV_MAX",
"product_status": "AVAILABLE"
},
"sort_field": "historical_sales",
"sort_type": "DESC",
"page": 1,
"page_size": 50
},
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/tiktok_business/store/product/get/');
for (const [k, v] of Object.entries({"platform_shop_id":"7000000000000000001","advertiser_id":"7000000000000000001","bc_id":"7300000000000000001","store_id":"7495000000000000001","filtering":{"ad_creation_eligible":"GMV_MAX","product_status":"AVAILABLE"},"sort_field":"historical_sales","sort_type":"DESC","page":1,"page_size":50})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'GET',
headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/tiktok_business/store/product/get/' . '?' . http_build_query(['platform_shop_id' => '7000000000000000001', 'advertiser_id' => '7000000000000000001', 'bc_id' => '7300000000000000001', 'store_id' => '7495000000000000001', 'filtering' => '{"ad_creation_eligible":"GMV_MAX","product_status":"AVAILABLE"}', 'sort_field' => 'historical_sales', 'sort_type' => 'DESC', 'page' => 1, 'page_size' => 50]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]);
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;Response
Response fields (as returned by TikTok Business)
| Name | Type | Sample | Description |
|---|---|---|---|
| code | int | 0 | 0 = thành công; khác 0 xem `message` (TikTok trả HTTP 200 kèm code lỗi; vd 40002 = tham số sai, message liệt kê giá trị hợp lệ). |
| message | string | OK | Thông điệp của TikTok. |
| request_id | string | 2021080307532501024502410704A7306F | Mã request TikTok — ghi lại khi cần tra lỗi. |
| data | object | Dữ liệu. | |
| store_products | object[] | Sản phẩm của trang hiện tại. | |
| item_group_id | string | 1729000000000000001 | Id SPU — dùng làm `spu_id_list` ở /gmv_max/video/get/, `asset_ids` (loại `SPU`) ở /gmv_max/occupied_custom_shop_ads/list/. |
| store_id | string | 7495000000000000001 | |
| title | string | Áo sơ mi nam dài tay | Tên sản phẩm. |
| product_image_url | string | Ảnh sản phẩm. | |
| min_price | string | 299000 | Giá thấp nhất (chuỗi số). Một giá duy nhất → `min_price` = `max_price`. |
| max_price | string | 349000 | Giá cao nhất. |
| currency | string | VND | Tiền tệ. |
| historical_sales | int | 1520 | Số lần đã bán (lũy kế). |
| quantity | int | 5 | Số lượng trong gian hàng. |
| category | string | Ngành hàng. | |
| status | string | AVAILABLE | `AVAILABLE` = dùng được cho quảng cáo · `NOT_AVAILABLE` = không. |
| update_time | string | 2026-10-20 00:00:00 | Lần cập nhật cuối, `YYYY-MM-DD HH:MM:SS` giờ UTC. |
| gmv_max_ads_status | string | UNOCCUPIED | Chỉ khi có `ad_creation_eligible`: `OCCUPIED` = đang chạy trong một chiến dịch GMV Max sản phẩm đang bật · `UNOCCUPIED` = chưa. Dùng được cho GMV Max khi `status = AVAILABLE` VÀ `UNOCCUPIED`. |
| is_running_custom_shop_ads | bool | false | Chỉ khi `ad_creation_eligible = GMV_MAX`: `true` = sản phẩm đang chạy Shopping Ads (video / sản phẩm) đang bật — xem quảng cáo nào ở /gmv_max/occupied_custom_shop_ads/list/ (loại `SPU`), tắt bằng /ad/status/update/ (`DISABLE`). |
| catalog_id | string | Đã ngừng, luôn null. | |
| page_info | object | Phân trang. | |
| page | int | 1 | Trang hiện tại. |
| page_size | int | Cỡ trang. | |
| total_number | int | 57 | Tổng số dòng. |
| total_page | int | 3 | Tổng số trang. |
Get started
- Sign up for Partner
- Enable a data type of the Ads (Marketing API) group on the platform page
- Create an API key (tick the TikTok Business channel)
- Call it as in the examples above