get /shops/{SHOP_ID}/analytics/sale
GET/shops/{SHOP_ID}/analytics/saleGọi qua 360: GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/analytics/sale
Sắp mở. API này đã chạy thật qua 360 và đang được chốt giá — bạn có thể đọc tài liệu và chuẩn bị tích hợp trước.
Mô tả API
Thống kê đơn hàng / doanh thu tổng hợp theo chiều tùy chọn (ngày, tháng, trạng thái, nguồn đơn, kho, nhân viên…): số đơn, tiền hàng, COD, phí ĐVVC, phí ship thu khách, lợi nhuận… tách nhóm đơn thành công / hoàn, kèm summary cả kỳ. Dùng cho báo cáo doanh thu không phải tự cộng từng đơn.
- Các số liệu cơ bản (cod, price, order_count, partner_fee, shipping_fee, surcharge, prepaid…) LUÔN có;
select_fields[]chỉ THÊM trường. - Gọi thật 01–28/10/2026 chia Time.day: 12 ngày có đơn, ngày không đơn không xuất hiện → tự điền 0 khi vẽ biểu đồ. summary: 12 đơn chốt / 17 tổng đơn, tiền hàng 5.205.800.
- Mã trong
Order.statuslà mã trạng thái đơn Pancake (0 mới, 1 đã xác nhận, …).
Request
Địa chỉ
GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/analytics/sale
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 | 1234567 | SHOP_ID đã nối — có thể bỏ khi đường dẫn có /shops/{SHOP_ID}. |
Tham số request
| Tên | Vị trí | Kiểu | Bắt buộc | Mẫu | Mô tả |
|---|---|---|---|---|---|
| SHOP_ID | path | integer | Có | 1234567 | Mã cửa hàng đã nối với 360. |
| since | query | string | Không | 2026-10-01T00:00:00+07:00 | Từ — chuỗi ISO 8601 (nên kèm múi giờ). |
| until | query | string | Không | 2026-10-28T23:59:59+07:00 | Đến. |
| split_by[] | query | string[] | Không | Time.day | Chiều chia: Time.hour · Time.day · Time.month · Time.year · Order.status · Order.source · Order.warehouse_id · Order.partner_id… Lặp tham số cho nhiều chiều. |
| select_fields[] | query | string[] | Không | price | Số liệu cần thêm (id lấy từ /analytics/get_analytic_fields, vd profit, success_order_count, returned_order_count). |
| filter | query | string (JSON) | Không | {"Order.status":["3"]} | Bộ lọc: khóa <Bảng>.<trường> → mảng chuỗi; hậu tố _exclude để loại trừ. |
| success_status | query | string | Không | send_to_partner | Mốc tính đơn chốt: send_to_partner (khi đẩy ĐVVC) · 1 (khi xác nhận). |
| success_record | query | string | Không | inserted_at | Doanh thu ghi vào: inserted_at ngày tạo đơn · updated_at ngày đổi trạng thái. |
| returned_record | query | string | Không | inserted_at | Đơn hoàn trừ vào: inserted_at · updated_at · success_record. |
| user_type | query | string | Không | create | Gán đơn cho nhân viên theo: create · update · assign · care · marketer. |
Ví dụ request
curl -s "https://partner.quantri360.com/v1/pancake_pos/shops/1234567/analytics/sale?since=2026-10-01T00%3A00%3A00%2B07%3A00&until=2026-10-28T23%3A59%3A59%2B07%3A00&split_by[]=Time.day&select_fields[]=profit" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/pancake_pos/shops/1234567/analytics/sale",
params={
"since": "2026-10-01T00:00:00+07:00",
"until": "2026-10-28T23:59:59+07:00",
"split_by[]": "Time.day",
"select_fields[]": "profit"
},
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/pancake_pos/shops/1234567/analytics/sale');
for (const [k, v] of Object.entries({"since":"2026-10-01T00:00:00+07:00","until":"2026-10-28T23:59:59+07:00","split_by[]":"Time.day","select_fields[]":"profit"})) 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/pancake_pos/shops/1234567/analytics/sale' . '?' . http_build_query(['since' => '2026-10-01T00:00:00+07:00', 'until' => '2026-10-28T23:59:59+07:00', 'split_by[]' => 'Time.day', 'select_fields[]' => 'profit']); $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
Tham số phản hồi (nguyên của Pancake POS)
| Tên | Kiểu | Mẫu | Mô tả |
|---|---|---|---|
| success | bool | true | |
| data | object[] | Một phần tử / giá trị chiều (ngày không có đơn bị BỎ QUA). | |
| Time.day | string | 2026-10-06 | Giá trị chiều chia (tên khóa = chiều đã chọn, vd `Order.status`). |
| result | object | Số liệu tổng của nhóm. | |
| order_count | int | 1 | Số đơn chốt. |
| total_order_count | int | 1 | Tổng đơn (mọi trạng thái). |
| price | int | 798000 | Tiền hàng (VND). |
| cod | int | 173500 | Tiền thu hộ. |
| shipping_fee | int | 0 | Phí ship thu khách. |
| partner_fee | int | 26000 | Phí trả ĐVVC. |
| surcharge | int | 0 | Phụ thu. |
| prepaid | int | 0 | Khách trả trước. |
| … | Thêm các trường đã chọn ở select_fields[] (profit, capital, …). | ||
| success | object | Như result nhưng chỉ đơn thành công. | |
| returned | object | null | Như result cho đơn hoàn; null nếu không có. |
| summary | object | Tổng cả kỳ (cùng các trường). | |
| pagination | null |
Mẫu phản hồi
{
"success": true,
"data": [
{
"Time.day": "2026-10-06",
"result": {
"cod": 173500,
"exchange_payment": 0,
"order_count": 1,
"order_count_pagination": 1,
"partner_fee": 26000,
"prepaid": 0,
"price": 798000,
"price_data": 798000,
"range": 1,
"shipping_fee": 0,
"surcharge": 0,
"total_order_count": 1
},
"returned": null,
"success": {
"cod": 173500,
"order_count": 1,
"partner_fee": 26000,
"price": 798000,
"shipping_fee": 0,
"total_order_count": 1
}
}
],
"summary": {
"cod": 4821300,
"exchange_payment": 0,
"order_count": 12,
"order_count_pagination": 12,
"partner_fee": 227974,
"prepaid": 0,
"price": 5205800,
"price_data": 5205800,
"range": 28,
"shipping_fee": 240000,
"surcharge": 744500,
"total_order_count": 17
},
"pagination": null
}
Bắt đầu dùng
- Đăng ký tài khoản Partner
- Mở loại dữ liệu thuộc nhóm Khác ở trang nền tảng
- Tạo API key (tick kênh Pancake POS)
- Gọi theo ví dụ ở trên