v2.principal.get_shop_sales_performance_detail
POST/api/v2/principal/get_shop_sales_performance_detailVia 360: POST https://partner.quantri360.com/v1/shopee/api/v2/principal/get_shop_sales_performance_detail
Description
CẤP PRINCIPAL: Tra cứu hiệu quả kinh doanh, doanh số và chuyển đổi trong kỳ, trả tổng hợp và chi tiết theo gian hàng.
- HIỆN CHƯA GỌI ĐƯỢC QUA 360: đây là API cấp principal, 360 hiện ký theo gian hàng nên Shopee trả
error_param"There is no principal_id in query.". Cần dùng API này → liên hệ 360. - Áp dụng: tài khoản principal (chủ thể quản lý nhiều gian hàng).
- API chỉ đọc; error rỗng mới là thành công.
- Khoảng ngày và biên kỳ được kiểm theo timezone; xem start_date, end_date và granularity. Tiền tệ LOCAL hoặc USD; bỏ currency mặc định USD.
- Doanh số gồm đơn chưa thanh toán, đơn hủy và trả hàng/hoàn tiền, sau khoản giảm giá người bán chịu.
Request
Endpoint
POST https://partner.quantri360.com/v1/shopee/api/v2/principal/get_shop_sales_performance_detail
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 | 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. |
Request parameters
| Name | In | Type | Required | Sample | Description |
|---|---|---|---|---|---|
| start_date | body | string | Yes | 2026-10-01 | Ngày bắt đầu hợp lệ YYYY-MM-DD, không sau end_date; tính theo timezone. Mốc sớm nhất = ngày hiện tại theo timezone − 1 ngày − 2 năm. customize không được trước mốc này; day cùng ngày với end_date; week bắt đầu Chủ nhật; month ngày đầu tháng; quarter ngày đầu quý; year ngày đầu năm. |
| end_date | body | string | Yes | 2026-10-07 | Ngày kết thúc hợp lệ YYYY-MM-DD, không trước start_date. customize: không sau hôm qua theo timezone, tối đa 366 ngày tính cả hai đầu. day: bằng start_date. week: từ start_date đến min(start_date + 6 ngày, hôm qua). month/quarter/year: trong tháng/quý/năm đã chọn, không quá min(ngày cuối kỳ, hôm qua). |
| timezone | body | string | Yes | GMT+7 | Múi giờ tính biên ngày, kiểm khoảng ngày và chuyển đổi dấu thời gian; chỉ GMT+7, GMT+8, GMT-3. Mọi kiểm tra ngày dùng múi giờ này. |
| granularity | body | string | Yes | customize | Độ chi tiết: customize, day, week, month, quarter, year. customize truy vấn dữ liệu theo ngày; day một ngày; week tuần Chủ nhật–thứ Bảy; month/quarter/year theo tháng/quý/năm lịch. Giá trị khác bị từ chối với invalid_parameter. |
| shop_list | body | object[] | No | Bỏ qua hoặc [] để lấy tất cả gian hàng thuộc principal. Tối đa 50 gian hàng, đều phải thuộc principal; không được trùng gian hàng. | |
| shop_list[].shop_id | body | int64 | Yes | 100001 | Bắt buộc trong mỗi phần tử; mã gian hàng phải thuộc principal. |
| shop_list[].currency | body | string | No | USD | Tiền tệ LOCAL hoặc USD, mặc định USD; giá trị khác bị từ chối với invalid_parameter. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/shopee/api/v2/principal/get_shop_sales_performance_detail" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"start_date":"2026-10-01","end_date":"2026-10-07","timezone":"GMT+7","granularity":"customize","shop_list":[]}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/shopee/api/v2/principal/get_shop_sales_performance_detail",
params={},
json={
"start_date": "2026-10-01",
"end_date": "2026-10-07",
"timezone": "GMT+7",
"granularity": "customize",
"shop_list": []
},
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/principal/get_shop_sales_performance_detail');
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({"start_date":"2026-10-01","end_date":"2026-10-07","timezone":"GMT+7","granularity":"customize","shop_list":[]}),
});
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/principal/get_shop_sales_performance_detail' . '?' . 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, '{"start_date":"2026-10-01","end_date":"2026-10-07","timezone":"GMT+7","granularity":"customize","shop_list":[]}');
$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)
Mẫu thành công minh họa; response.summary và response.details đều là mảng, mỗi phần tử chứa chỉ số cho toàn kỳ yêu cầu. unique_visitors ở cấp gian hàng còn tính lượt xem trang chi tiết và thẻ sản phẩm trong Live/Video; nhiều lượt xem cùng trang của một khách tính một.
| Name | Type | Sample | Description |
|---|---|---|---|
| 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ả hiệu quả trong kỳ. | |
| summary | object[] | Tổng hợp trong kỳ của các gian hàng đã chọn. | |
| currency | string | USD | Mã tiền tệ dùng cho các chỉ số tiền. |
| sales | float | 100 | Tổng giá trị đơn đã đặt, gồm đã và chưa thanh toán, sau khi trừ khoản giảm giá do người bán chịu; gồm cả đơn hủy và trả hàng/hoàn tiền. |
| orders | int64 | 10 | Số đơn đã đặt, gồm đơn chưa thanh toán. |
| units_sold | int64 | 10 | Số đơn vị sản phẩm trong đơn đã đặt, gồm đơn chưa thanh toán. |
| average_basket_size | float | 1 | Doanh số trung bình mỗi đơn = sales / orders. |
| items_per_order | float | 1 | Số đơn vị sản phẩm trung bình mỗi đơn = units_sold / orders. |
| average_selling_price | float | 1 | Giá bán trung bình mỗi đơn vị = sales / units_sold. |
| product_clicks | int64 | 10 | Tổng lượt nhấp thẻ sản phẩm trên ứng dụng và máy tính; chỉ có dữ liệu sau 31/12/2023. |
| product_views | int64 | 10 | Số lượt truy cập trang sản phẩm. |
| unique_visitors | int64 | 10 | Số khách truy cập duy nhất đã xem gian hàng hoặc trang sản phẩm; nhiều lượt xem của cùng khách tính một. Chỉ có dữ liệu sau 31/12/2023. |
| item_conversion_rate | float | 1 | Tỷ lệ chuyển đổi sản phẩm = units_sold / product_views. |
| order_conversion_rate | float | 1 | Tỷ lệ chuyển đổi đơn = orders / product_clicks; chỉ có dữ liệu sau 31/12/2023. |
| flash_sale_sales | float | 100 | Tổng giá trị đơn flash sale do người bán hoặc nền tảng tổ chức, gồm chưa thanh toán, sau khoản giảm giá người bán chịu; gồm đơn hủy và trả hàng/hoàn tiền. |
| flash_sale_orders | int64 | 10 | Số đơn flash sale do người bán hoặc nền tảng tổ chức, gồm chưa thanh toán. |
| flash_sale_units_sold | int64 | 10 | Số đơn vị sản phẩm trong đơn flash sale do người bán hoặc nền tảng tổ chức, gồm chưa thanh toán. |
| voucher_sales | float | 100 | Tổng giá trị đơn đã đặt có dùng voucher của bạn, gồm phí vận chuyển và không gồm khuyến mãi khác trong kỳ. |
| voucher_buyers | int64 | 10 | Số người mua duy nhất dùng voucher của bạn ít nhất một lần trong các đơn đã đặt trong kỳ. |
| voucher_usage_rate | float | 1 | Tỷ lệ sử dụng = số voucher đã dùng / số voucher đã nhận × 100%. |
| voucher_cir | float | 1 | Tỷ lệ chi phí trên doanh thu = voucher_cost / doanh thu gộp; đo chi phí voucher so với doanh thu sản phẩm tạo ra qua voucher. |
| voucher_cost | float | 1 | Tổng chi phí voucher áp dụng khi thanh toán trong kỳ, gồm phí vận chuyển và không gồm khuyến mãi khác. |
| details | object[] | Chi tiết trong kỳ theo từng gian hàng. | |
| shop_id | int64 | 100001 | Mã gian hàng. |
| shop_name | string | Gian hàng mẫu | Tên gian hàng. |
| shop_region_code | string | VN | Mã khu vực của gian hàng. |
| currency | string | USD | Mã tiền tệ dùng cho các chỉ số tiền. |
| sales | float | 100 | Tổng giá trị đơn đã đặt, gồm đã và chưa thanh toán, sau khi trừ khoản giảm giá do người bán chịu; gồm cả đơn hủy và trả hàng/hoàn tiền. |
| orders | int64 | 10 | Số đơn đã đặt, gồm đơn chưa thanh toán. |
| units_sold | int64 | 10 | Số đơn vị sản phẩm trong đơn đã đặt, gồm đơn chưa thanh toán. |
| average_basket_size | float | 1 | Doanh số trung bình mỗi đơn = sales / orders. |
| items_per_order | float | 1 | Số đơn vị sản phẩm trung bình mỗi đơn = units_sold / orders. |
| average_selling_price | float | 1 | Giá bán trung bình mỗi đơn vị = sales / units_sold. |
| product_clicks | int64 | 10 | Tổng lượt nhấp thẻ sản phẩm trên ứng dụng và máy tính; chỉ có dữ liệu sau 31/12/2023. |
| product_views | int64 | 10 | Số lượt truy cập trang sản phẩm. |
| unique_visitors | int64 | 10 | Số khách truy cập duy nhất đã xem gian hàng hoặc trang sản phẩm; nhiều lượt xem của cùng khách tính một. Chỉ có dữ liệu sau 31/12/2023. |
| item_conversion_rate | float | 1 | Tỷ lệ chuyển đổi sản phẩm = units_sold / product_views. |
| order_conversion_rate | float | 1 | Tỷ lệ chuyển đổi đơn = orders / product_clicks; chỉ có dữ liệu sau 31/12/2023. |
| atp_top_skus_l1d | float | 1 | ATP% trung bình hằng ngày của các SKU đóng góp 80% GMV cao nhất trong kỳ; dữ liệu từ 2023-10-01. |
| atp_top_skus_l30d | float | 1 | ATP% trung bình trong cửa sổ trượt 30 ngày của các SKU đóng góp 80% GMV cao nhất trong kỳ; dữ liệu từ 2023-10-01. |
| atp_live_skus_l1d | float | 1 | ATP% trung bình hằng ngày của toàn bộ SKU đóng góp GMV trong kỳ; dữ liệu từ 2023-10-01. |
| atp_live_skus_l30d | float | 1 | ATP% trung bình trong cửa sổ trượt 30 ngày của toàn bộ SKU đóng góp GMV trong kỳ; dữ liệu từ 2023-10-01. |
| flash_sale_sales | float | 100 | Tổng giá trị đơn flash sale do người bán hoặc nền tảng tổ chức, gồm chưa thanh toán, sau khoản giảm giá người bán chịu; gồm đơn hủy và trả hàng/hoàn tiền. |
| flash_sale_orders | int64 | 10 | Số đơn flash sale do người bán hoặc nền tảng tổ chức, gồm chưa thanh toán. |
| flash_sale_units_sold | int64 | 10 | Số đơn vị sản phẩm trong đơn flash sale do người bán hoặc nền tảng tổ chức, gồm chưa thanh toán. |
| voucher_sales | float | 100 | Tổng giá trị đơn đã đặt có dùng voucher của bạn, gồm phí vận chuyển và không gồm khuyến mãi khác trong kỳ. |
| voucher_buyers | int64 | 10 | Số người mua duy nhất dùng voucher của bạn ít nhất một lần trong các đơn đã đặt trong kỳ. |
| voucher_usage_rate | float | 1 | Tỷ lệ sử dụng = số voucher đã dùng / số voucher đã nhận × 100%. |
| voucher_cir | float | 1 | Tỷ lệ chi phí trên doanh thu = voucher_cost / doanh thu gộp; đo chi phí voucher so với doanh thu sản phẩm tạo ra qua voucher. |
| voucher_cost | float | 1 | Tổng chi phí voucher áp dụng khi thanh toán trong kỳ, gồm phí vận chuyển và không gồm khuyến mãi khác. |
Response sample
{
"request_id": "demo-request",
"error": "",
"message": "",
"response": {
"summary": [
{
"currency": "USD",
"sales": 100,
"orders": 10,
"units_sold": 10,
"average_basket_size": 1,
"items_per_order": 1,
"average_selling_price": 1,
"product_clicks": 10,
"product_views": 10,
"unique_visitors": 10,
"item_conversion_rate": 1,
"order_conversion_rate": 1,
"flash_sale_sales": 100,
"flash_sale_orders": 10,
"flash_sale_units_sold": 10,
"voucher_sales": 100,
"voucher_buyers": 10,
"voucher_usage_rate": 1,
"voucher_cir": 1,
"voucher_cost": 1
}
],
"details": [
{
"shop_id": 100001,
"shop_name": "Gian hàng mẫu",
"shop_region_code": "VN",
"currency": "USD",
"sales": 100,
"orders": 10,
"units_sold": 10,
"average_basket_size": 1,
"items_per_order": 1,
"average_selling_price": 1,
"product_clicks": 10,
"product_views": 10,
"unique_visitors": 10,
"item_conversion_rate": 1,
"order_conversion_rate": 1,
"atp_top_skus_l1d": 1,
"atp_top_skus_l30d": 1,
"atp_live_skus_l1d": 1,
"atp_live_skus_l30d": 1,
"flash_sale_sales": 100,
"flash_sale_orders": 10,
"flash_sale_units_sold": 10,
"voucher_sales": 100,
"voucher_buyers": 10,
"voucher_usage_rate": 1,
"voucher_cir": 1,
"voucher_cost": 1
}
]
}
}
Shopee error codes (5)
Show
| Code | Meaning |
|---|---|
| error_param | Tham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào. |
| error_permission | Gian hàng không có quyền xem dữ liệu này (vd yêu cầu trả / đơn không thuộc gian hàng). |
| 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). |
Get started
- Sign up for Partner
- Enable a data type of the Sản phẩm group on the platform page
- Create an API key (tick the Shopee channel)
- Call it as in the examples above