get /shops/{SHOP_ID}/statistic_custom/folders
GET/shops/{SHOP_ID}/statistic_custom/foldersGọi qua 360: GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/statistic_custom/folders
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
Danh sách thư mục báo cáo tùy chỉnh và các báo cáo bên trong (doanh thu, đơn hàng, công nợ, kho, nhập hàng, vận chuyển…): tên, cấu hình, khoảng thời gian mặc định, kiểu biểu đồ so sánh.
- Gọi thật: 14 thư mục — OtherReports, debt, ecommerce, employee, finance, inventory, transports, customer, overview, purchase, Revenue, transaction, transport, OrderReport.
- Chỉ là cấu hình báo cáo, không có số liệu.
Request
Địa chỉ
GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/statistic_custom/folders
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. |
Ví dụ request
curl -s "https://partner.quantri360.com/v1/pancake_pos/shops/1234567/statistic_custom/folders" \ -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/statistic_custom/folders",
params={},
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/statistic_custom/folders');
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: '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/statistic_custom/folders' . '?' . http_build_query([]); $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 | |
| folders | object[] | Thư mục (không có `data`). | |
| name | string | debt | Tên hệ thống. |
| label | string | Báo cáo doanh thu | Nhãn (có thể là khóa dịch như `debt`). |
| order | int | 1 | |
| can_remove / is_removed | bool | ||
| inserted_at / updated_at | string | ||
| folder_items | object[] | Báo cáo. | |
| id | string | ||
| name | string | customer | |
| label | string | analytic.debtLabel.customer | Khóa dịch. |
| time_range | string[] | ["90"] | Khoảng mặc định (ngày). |
| compare_ranges | object | Kiểu biểu đồ + kỳ so sánh. | |
| filter / fields / setting / children |
Mẫu phản hồi
{
"success": true,
"folders": [
{
"label": "debt",
"name": "debt",
"order": 1,
"shop_id": 1234567,
"is_removed": false,
"can_remove": false,
"inserted_at": "2026-08-04T04:05:56",
"updated_at": "2026-08-04T04:05:56",
"folder_items": [
{
"id": "d12dbb29-…",
"name": "customer",
"label": "analytic.debtLabel.customer",
"time_range": [
"90"
],
"compare_ranges": {
"chart": "bar-chart",
"field": null,
"ranges": [
{
"range": "7"
},
{
"range": "-7"
}
]
},
"fields": [],
"children": [],
"can_remove": false
}
]
}
]
}
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