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

Order statistics — API Pancake POS

get /shops/{SHOP_ID}/analytics/sale · 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}/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.status là 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ê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.
sincequerystringKhông2026-10-01T00:00:00+07:00Từ — chuỗi ISO 8601 (nên kèm múi giờ).
untilquerystringKhông2026-10-28T23:59:59+07:00Đến.
split_by[]querystring[]KhôngTime.dayChiề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[]querystring[]KhôngpriceSố liệu cần thêm (id lấy từ /analytics/get_analytic_fields, vd profit, success_order_count, returned_order_count).
filterquerystring (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_statusquerystringKhôngsend_to_partnerMốc tính đơn chốt: send_to_partner (khi đẩy ĐVVC) · 1 (khi xác nhận).
success_recordquerystringKhônginserted_atDoanh thu ghi vào: inserted_at ngày tạo đơn · updated_at ngày đổi trạng thái.
returned_recordquerystringKhônginserted_atĐơn hoàn trừ vào: inserted_at · updated_at · success_record.
user_typequerystringKhôngcreateGá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ênKiểuMẫuMô tả
successbooltrue
dataobject[]Một phần tử / giá trị chiều (ngày không có đơn bị BỎ QUA).
Time.daystring2026-10-06Giá trị chiều chia (tên khóa = chiều đã chọn, vd `Order.status`).
resultobjectSố liệu tổng của nhóm.
order_countint1Số đơn chốt.
total_order_countint1Tổng đơn (mọi trạng thái).
priceint798000Tiền hàng (VND).
codint173500Tiền thu hộ.
shipping_feeint0Phí ship thu khách.
partner_feeint26000Phí trả ĐVVC.
surchargeint0Phụ thu.
prepaidint0Khách trả trước.
…Thêm các trường đã chọn ở select_fields[] (profit, capital, …).
successobjectNhư result nhưng chỉ đơn thành công.
returnedobjectnullNhư result cho đơn hoàn; null nếu không có.
summaryobjectTổng cả kỳ (cùng các trường).
paginationnull

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

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