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

In đơn hàng (file PDF) — API Pancake POS

Print order as PDF · 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.

Print order as PDF

GET/shops/{SHOP_ID}/orders/{ORDER_ID}/printGọi qua 360: GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/orders/{ORDER_ID}/print
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

In đơn ra FILE PDF theo mẫu in của cửa hàng (như bấm In trên POS web). Không truyền label_id thì tự chọn: mẫu in theo ĐVVC của đơn → mẫu mặc định → mẫu đầu tiên → mẫu hệ thống. Dùng để in phiếu giao / hóa đơn bán lẻ từ hệ thống của bạn.

  • Lỗi thật: đơn không tồn tại → HTTP 404 {"message":"Bạn không có quyền xem đơn hàng này","success":false}; label_id sai → HTTP 404 {"message":"Không tìm thấy mẫu in","success":false}.
  • Khổ trang theo mẫu in; giấy cuộn (K80, K58) trả một trang cao vừa nội dung. In qua API KHÔNG tăng số lần in của đơn.
  • Chưa hỗ trợ: biến CRM, hóa đơn điện tử nháp, link theo dõi đơn, sản phẩm cấu thành, mẫu theo nguồn đơn / đơn hoàn, phiếu in do ĐVVC cấp.
  • Font chỉ có trên máy tính (Segoe UI, Tahoma…) bị thay thế; ảnh trong mẫu chỉ tải được nếu công khai, ≤ 5 MB, tải < 5 giây, tổng ≤ 15 MB và nằm trong 30 ảnh đầu.

Request

Địa chỉ

GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/orders/{ORDER_ID}/print

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_IDpathintCó1234567Mã cửa hàng đã nối với 360.
ORDER_IDpathstringCó9721Mã đơn, mã hệ thống hoặc mã đơn tùy chỉnh.
label_idqueryintKhông922009896Mã mẫu in của cửa hàng; bỏ trống để tự chọn.

Ví dụ request

curl -s "https://partner.quantri360.com/v1/pancake_pos/shops/1234567/orders/9721/print" \
  -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/orders/9721/print",
    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/orders/9721/print');
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/orders/9721/print' . '?' . 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)

Thành công trả FILE PDF (lưu thẳng thành .pdf); lỗi trả JSON.

TênKiểuMẫuMô tả
(nội dung file)binary%PDF-1.4…Thành công: HTTP 200, `Content-Type: application/pdf`, thân là file PDF (đơn thử thật ~148 KB).
successboolfalseChỉ có khi lỗi (JSON).
messagestringKhông tìm thấy mẫu inThông báo lỗi theo ngôn ngữ cửa hàng.
error / error_code / message_codeMã lỗi cho máy (nếu có).

Mẫu phản hồi

%PDF-1.4 … (file PDF nhị phân, Content-Type: application/pdf; charset=utf-8, ~148 KB)

Bắt đầu dùng

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