get /shops/{SHOP_ID}/inventory_analytics/inventory
GET/shops/{SHOP_ID}/inventory_analytics/inventoryGọi qua 360: GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/inventory_analytics/inventory
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
Báo cáo xuất nhập tồn THEO MẪU MÃ trong kỳ: tồn đầu, nhập (phiếu nhập / trả hàng / kiểm / chuyển đến), xuất (bán / chuyển đi / kiểm / trả NCC), tồn cuối, kèm giá trị. Dùng cho báo cáo NXT và vòng quay tồn từng SKU.
- Số lượng XUẤT trả về là số ÂM (gọi thật: sell_export = -1 khi bán 1 cái); tồn cuối = tồn đầu + total_import + total_export.
- Giá trị (…_value) tính theo giá vốn: mẫu mã chưa có giá nhập → 0.
- Mảng trong query: lặp
variation_ids[]=a&variation_ids[]=b(gọi thật: lọc 1 mẫu mã → total_entries = 1). - Không gửi start_date / end_date / type Pancake vẫn trả 200 nhưng không rõ kỳ tính — luôn gửi đủ.
- Tham số
data_sort(JSON) gửi thử theosell_exportkhông đổi thứ tự — đừng dựa vào sắp xếp phía Pancake.
Request
Địa chỉ
GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/inventory_analytics/inventory
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. |
| start_date | query | int | Có | 1790787600 | Đầu kỳ (Unix giây). |
| end_date | query | int | Có | 1793466000 | Cuối kỳ (Unix giây). |
| type | query | string | Có | actual | actual = theo tồn kho thực · remain = theo số có thể bán. |
| page | query | int | Không | 1 | |
| page_size | query | int | Không | 30 | |
| warehouse_ids[] | query | string[] | Không | 6d1b3245-… | Chỉ tính phát sinh ở các kho này. |
| variation_ids[] | query | string[] | Không | f40a94fe-… | Lọc mẫu mã (is_exclude_variation=true để loại trừ). |
| product_ids[] | query | string[] | Không | Lọc sản phẩm (is_exclude_product=true để loại trừ). | |
| category_ids[] | query | int[] | Không | 40619 | Lọc danh mục. |
| supplier_product_ids[] | query | string[] | Không | Lọc NCC. | |
| product_tags[] | query | string[] | Không | Lọc tag sản phẩm. |
Phân trang
Tăng page tới total_pages. Trả MỌI mẫu mã (kể cả không phát sinh) — cửa hàng thử có 27.283 dòng.
Ví dụ request
curl -s "https://partner.quantri360.com/v1/pancake_pos/shops/1234567/inventory_analytics/inventory?start_date=1790787600&end_date=1793466000&type=actual&page=1&page_size=100" \ -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/inventory_analytics/inventory",
params={
"start_date": 1790787600,
"end_date": 1793466000,
"type": "actual",
"page": 1,
"page_size": 100
},
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/inventory_analytics/inventory');
for (const [k, v] of Object.entries({"start_date":1790787600,"end_date":1793466000,"type":"actual","page":1,"page_size":100})) 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/inventory_analytics/inventory' . '?' . http_build_query(['start_date' => 1790787600, 'end_date' => 1793466000, 'type' => 'actual', 'page' => 1, 'page_size' => 100]); $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 dòng / mẫu mã. | |
| id | string | Mã mẫu mã. | |
| begin_inventory | number | 8 | Tồn đầu kỳ (SL). |
| end_inventory | number | 7 | Tồn cuối kỳ. |
| begin_inventory_value / end_inventory_value | int | 0 | Giá trị tồn (VND, theo giá vốn). |
| purchase_import | number | 0 | Nhập từ phiếu nhập. |
| return_import | number | 0 | Nhập từ đơn hoàn. |
| stocktaking_import | number | 0 | Nhập từ kiểm kho. |
| transfer_import | number | 0 | Nhập từ chuyển kho. |
| total_import / total_import_value | number | 0 | Tổng nhập (SL / VND). |
| sell_export | number | -1 | Xuất bán — số ÂM. |
| transfer_export | number | 0 | Chuyển đi. |
| stocktaking_export | number | 0 | Kiểm kho giảm. |
| purchase_export | number | 0 | Xuất trả từ phiếu nhập. |
| total_export / total_export_value | number | -1 | Tổng xuất — số ÂM. |
| variation | object | id, custom_id, display_id, barcode, images, fields[], product{id, name, custom_id, display_id, category_ids}. | |
| page_number / page_size / total_pages / total_entries | int |
Mẫu phản hồi
{
"success": true,
"data": [
{
"id": "f40a94fe-6265-427a-a9c7-bd2720fd0000",
"begin_inventory": 8,
"end_inventory": 7,
"begin_inventory_value": 0,
"end_inventory_value": 0,
"purchase_import": 0,
"return_import": 0,
"stocktaking_import": 0,
"transfer_import": 0,
"total_import": 0,
"total_import_value": 0,
"sell_export": -1,
"transfer_export": 0,
"stocktaking_export": 0,
"purchase_export": 0,
"total_export": -1,
"total_export_value": 0,
"variation": {
"id": "f40a94fe-…",
"custom_id": "SDPBC2075-M",
"display_id": 3,
"barcode": "17530000",
"fields": [],
"product": {
"name": "Đầm xòe phối ren",
"display_id": 1299,
"category_ids": [
40619
]
}
}
}
],
"page_size": 100,
"total_pages": 273,
"page_number": 1,
"total_entries": 27283
}
Bắt đầu dùng
- Đăng ký tài khoản Partner
- Mở loại dữ liệu thuộc nhóm Kho ở trang nền tảng
- Tạo API key (tick kênh Pancake POS)
- Gọi theo ví dụ ở trên