VI | EN
Nhắn Messenger
Dành cho developer

Statistics by variant — API Pancake POS

get /shops/{SHOP_ID}/inventory_analytics/inventory · gọi qua Quantri360 bằng một API key cho chính tài khoản / tài sản bạn đã kết nối và ủy quyền — 360 lo việc ký request và làm mới phiên đăng nhập bạn đã cấp.

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ử theo sell_export khô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ênVị tríKiểuMẫuMô tả
AuthorizationheaderheaderBearer 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_idquerystring1234567SHOP_ID đã nối — có thể bỏ khi đường dẫn có /shops/{SHOP_ID}.

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
SHOP_IDpathintegerCó1234567Mã cửa hàng đã nối với 360.
start_datequeryintCó1790787600Đầu kỳ (Unix giây).
end_datequeryintCó1793466000Cuối kỳ (Unix giây).
typequerystringCóactualactual = theo tồn kho thực · remain = theo số có thể bán.
pagequeryintKhông1
page_sizequeryintKhông30
warehouse_ids[]querystring[]Không6d1b3245-…Chỉ tính phát sinh ở các kho này.
variation_ids[]querystring[]Khôngf40a94fe-…Lọc mẫu mã (is_exclude_variation=true để loại trừ).
product_ids[]querystring[]KhôngLọc sản phẩm (is_exclude_product=true để loại trừ).
category_ids[]queryint[]Không40619Lọc danh mục.
supplier_product_ids[]querystring[]KhôngLọc NCC.
product_tags[]querystring[]KhôngLọ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ênKiểuMẫuMô tả
successbooltrue
dataobject[]Một dòng / mẫu mã.
idstringMã mẫu mã.
begin_inventorynumber8Tồn đầu kỳ (SL).
end_inventorynumber7Tồn cuối kỳ.
begin_inventory_value / end_inventory_valueint0Giá trị tồn (VND, theo giá vốn).
purchase_importnumber0Nhập từ phiếu nhập.
return_importnumber0Nhập từ đơn hoàn.
stocktaking_importnumber0Nhập từ kiểm kho.
transfer_importnumber0Nhập từ chuyển kho.
total_import / total_import_valuenumber0Tổng nhập (SL / VND).
sell_exportnumber-1Xuất bán — số ÂM.
transfer_exportnumber0Chuyển đi.
stocktaking_exportnumber0Kiểm kho giảm.
purchase_exportnumber0Xuất trả từ phiếu nhập.
total_export / total_export_valuenumber-1Tổng xuất — số ÂM.
variationobjectid, custom_id, display_id, barcode, images, fields[], product{id, name, custom_id, display_id, category_ids}.
page_number / page_size / total_pages / total_entriesint

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

  1. Đăng ký tài khoản Partner
  2. Mở loại dữ liệu thuộc nhóm Kho ở trang nền tảng
  3. Tạo API key (tick kênh Pancake POS)
  4. Gọi theo ví dụ ở trên