For the complete documentation index, see llms.txt. This page is also available as Markdown.

Print Label — ラベル手動再印刷

Storage に保存済みの出荷ラベル PDF を、出荷元の print server(Dispatch Config の action=print)へ再送します。紙詰まり・印刷失敗・プリンター不調からの回収用です。Retry Label と違いキャリア API を再呼び出ししません = 追跡番号は変わりません。

Base URL https://api.lmile.io · 認証 x-ingest-secret ヘッダー または operator JWT(Authorization: Bearer)(詳細) · shop はリクエストボディに含めます(API キーで呼ぶ場合は省略できます)

/api/routing/shipment/print-label は機械間 secret(x-ingest-secret)と倉庫スタッフの operator JWT のどちらでも呼べます(系統はヘッダの有無で明示判別。詳細)。operator JWT 経由は操作スタッフを記録します。

ラベル生成成功時の自動印刷(Fulfillment)が失敗すると sot.lm_fulfillment_shipments.last_print_error に記録されます。本 API で保存済み PDF を再印刷してください。ラベル再発行(Address Recovery の retry-label / autoRetryLabel)の成功時は印刷イベントが自動配信されるため本 API の呼び出しは不要です — 本 API は紙詰まり等の手動再印刷専用です。

エンドポイント

Method
Path
用途

POST

/api/routing/shipment/print-label

保存済みラベル PDF の手動再印刷(キャリア再呼び出しなし)


POST /api/routing/shipment/print-label

リクエスト

POST https://api.lmile.io/api/routing/shipment/print-label
x-ingest-secret: {INGEST_SECRET}
Content-Type: application/json
{
  "shop": "demo-store.myshopify.com",
  "sourceSystem": "shopify",
  "externalOrderRef": "1001"
}

ボディパラメータ

パラメータ
型
必須
説明

shop

string

✓

店舗ドメイン(API キーで呼ぶ場合は省略できます)

routingOrderId

string (uuid)

△

対象注文。無ければ sourceSystem + externalOrderRef で特定

sourceSystem / externalOrderRef

string

△

routingOrderId 未指定時に必須

fromLocationId

string[] (uuid)

対象出荷元を限定。省略時は保存済みラベル(label_pdf_path)がある出荷元すべて

レスポンス

フィールド
説明

printed

印刷送信に成功した出荷元数(action: "printed" の件数)

shipments[].action

printed(送信成功)/ skipped(対象外)/ failed(送信失敗)

shipments[].reason

skip / fail 理由: no_label_pdf(保存済みラベルなし)/ fulfillment_source_unresolved / no_print_config(print 設定なし)/ label_pdf_download_failed

shipments[].labelPdfPath

印刷した PDF の Storage パス(shipping-labels バケット)

shipments[].error

action=failed 時の print server 応答(last_print_error に保存)

挙動・冪等性

  • 対象: fromLocationId 指定 > 省略時は label_pdf_path がある出荷元すべて。ラベル未生成の出荷元は no_label_pdf で skip します(本 API はラベルを生成しません。生成は Fulfillment / Retry Label)。

  • print 設定の解決キーは出荷元(action=label と同じ。Dispatch Config)。設定の無い出荷元は no_print_config で skip(silent skip しません)。

  • 成功: label_printed_at を更新し last_print_error をクリア。失敗: last_print_error を更新。

  • 冪等性はありません(呼ぶたびに物理印刷されます)。同じラベルを複数回 POST すると複数枚出力されます — 再印刷の意図的な操作としてのみ使用してください。

エラー

エンドポイント固有:

Status
条件
レスポンス例

400

注文の特定情報なし / バリデーション失敗

{ "ok": false, "error_kind": "invalid_input", "details": [...] }

404

注文が存在しない

{ "ok": false, "error_kind": "order_not_found", "error": "routing order not found" }

共通エラー(401 / 400 / 403 / 405 / 500 / 503)は Error Codes を参照。

データモデル

  • sot.lm_fulfillment_shipments — 出荷元ごとの label_pdf_path / label_printed_at / last_print_error。再印刷はこの行を更新(Fulfillment)

  • sot.lm_location_dispatch_config.action = 'print' — 出荷元 print server 設定(Dispatch Config)

  • ラベル PDF: Supabase Storage shipping-labels(private)の {shop}/{routingOrderId}/{fromLocationId}.pdf

Last updated

Was this helpful?