API ドキュメント
ヘルプセンター/API ドキュメント/WMS 印刷ジョブ API(クラウド印刷)

WMS 印刷ジョブ API(クラウド印刷)

最終更新 2026-10-13

ZPL 付きクラウド印刷ジョブの投入、ステータス照会、キャンセルと再試行——スマホから Hub へのクラウド印刷リレー。

クラウド印刷ジョブの投入#

スマホ web(ローカル Hub 機能なし)は ZPL を print_jobs に queued として書き込みます。倉庫 PC の Device Hub が購読/ポーリングで取得し、Zebra でローカル印刷して結果を書き戻します。device_id を省略すると倉庫のデフォルトラベルプリンタが使われます。

POST /api/wms/print-jobs
POST /api/wms/print-jobs
{
  "device_id": "<uuid>",       // optional; default label printer of the warehouse if omitted
  "warehouse_id": "<uuid>",    // optional; scope for default-printer lookup
  "label_kind": "pallet",      // required: e.g. pallet | carton | ucc
  "ref_type": "pallet",        // optional
  "ref_id": "<uuid>",          // optional
  "copies": 2,                 // optional, default 1
  "zpl_content": "^XA\n^FO40,40^FDHello^FS\n^XZ"   // required
}

ジョブステータスの照会#

GET /api/wms/print-jobs/[id] — スマホのポーリング用
GET /api/wms/print-jobs/<job-id>
// -> { ok: true, data: {
//   id, status: "queued|printing|done|failed|cancelled",
//   error, device_id, label_kind, copies, created_at } }

GET /api/wms/print-jobs?status=queued&warehouse_id=<uuid>&page=1&page_size=50
// print-center queue list (page_size default 50, max 200)

ジョブのライフサイクル:queued → printing → done、または → failed(error テキスト付き)、または → cancelled。Hub は queued ジョブを原子的に取得するため(UPDATE … WHERE status='queued')、キャンセル済みジョブが印刷されることはありません。

キャンセル/再試行#

PATCH /api/wms/print-jobs/[id]
PATCH /api/wms/print-jobs/<job-id>
{ "action": "cancel" }   // only from queued  -> cancelled
{ "action": "retry" }    // only from failed  -> queued (error cleared)
// conditional update: 0 rows affected means the state already changed -> HTTP 409
クラウドリレーの注意:ZPL はクラウド(テナント自身の Supabase、RLS 保護)を経由します——migration 211 で zpl_content 列が追加されました。5 分以上待機中のジョブは印刷センターでハイライトされます。デバイスの健全性:GET /api/wms/print-devices;last_seen_at が 2 分以内ならオンラインです。