Customer Orders — 顧客注文照会
メールアドレスを突合キーに、その顧客の注文履歴と出荷ステータスを返す read API です。マイページ・注文照会画面などの BFF(アプリのサーバー側)から server-to-server で呼び出す想定です。突合キーは Routing(/api/routing/orders)で受け付けた注文の shipTo.email(sot.lm_routing_orders)で、明細・金額は sot.order_line_master を transaction_id = externalOrderRef の先頭(- より前)で結合して集計します。1 つの買い物が複数の受注レコードに分かれていても(刻印の -engraved / 出荷元の分割 / 予約分)、同じ取込元・同じ注文番号(orderName)のレコードは 1 注文にまとめて返します。
Base URL
https://api.lmile.io· 認証x-ingest-secretヘッダー(詳細) ·shopはリクエストボディに含めます(省略するとキーのアカウント)
エンドポイント
POST
/api/customer-orders/list
注文一覧(ページネーション付き)
lm_routing_orders / lm_fulfillment_shipments / order_line_master
POST
/api/customer-orders/detail
注文詳細(明細 / 金額 / 配送先 / 出荷元別ステータス)
上記 + lm_fulfillment_units / products
read API ですが
前提: 対象になるのは Routing に
shipTo.email付きで投入された注文だけです。email なしで投入された注文・routing を通っていない注文は返りません。また金額・明細の結合には、Order Line Master のtransaction_idと routing のexternalOrderRefの先頭(-より前)が同一の注文識別子で投入されている必要があります(突合できない注文はtotal/amountsがnullになります)。
集約ステータス(status)
注文全体のステータスは出荷元(shipment)単位のステータスから次の 4 値に集約します。配達完了(delivered)はキャリアの配達イベントを持たないため存在しません(終端は shipped)。
判定順
条件
status
1
注文が取消済(または全出荷元が cancelled)
cancelled
2
全出荷元が出荷完了
shipped
3
一部の出荷元のみ出荷完了
partially_shipped
4
それ以外(受付済 / 引き当て済 / 確保済 / 梱包中 / 在庫不足 等)
processing
POST /api/customer-orders/list
メールアドレスに紐づく注文の一覧を新しい順(受付日時 降順)に返します。1 行 = 1 つの買い物です(複数の受注レコードに分かれた注文は 1 行にまとめ、totalCount もまとめた後の数です)。
リクエスト
ボディパラメータ
shop
string
店舗識別子(省略するとキーのアカウント)
email
string
✓
顧客メールアドレス。大文字小文字・前後空白は無視して突合
limit
number
1 ページの件数。既定 20・最大 50
cursor
string
前ページの pageInfo.endCursor。省略で先頭ページ
レスポンス
totalCount
この email に紐づく注文の総数(ページに依らず全件。まとめた後の数)
orders[].id
注文 ID(lm_routing_orders.id。まとめた注文は最初に作られた受注レコードの ID)。詳細取得(detail)に渡す
orders[].orderNumber
注文番号(routing の orderName。例 BJP1001)。無い場合は externalOrderRef
orders[].externalOrderRef
カート側の注文識別子(routing の externalOrderRef。まとめた注文は最初に作られた受注レコードの値)
orders[].orderedAt
受注日時(order_line_master.ordered_at。突合できない場合は routing 受付日時)
orders[].status
集約ステータス(4 値。まとめた受注レコード全体の出荷元で判定)
orders[].itemCount
購入点数(per-unit 行数)。order_line_master と突合できない場合 null
orders[].total / currency
合計(税込・値引/返金考慮前の net 合算)。突合できない場合 null
orders[].thumbnailUrl
先頭明細の商品画像(products.primary_image_url)。未登録は null
orders[].items[]
明細を barcode 単位に集約(detail の items[] と同じ形)。商品名は商品マスターの値。突合できない注文は []
pageInfo
keyset カーソル。hasNextPage: true なら endCursor を次リクエストの cursor に渡す
挙動
該当注文が無い email は
200+orders: [](email の存在判定をさせない)。1 つの買い物が複数の受注レコードに分かれていても(刻印の
-engraved/ 出荷元の分割-{拠点}/ 予約分-p.{key})、同じ取込元・同じorderNameのレコードは 1 行にまとめます。orderNameが無い受注はexternalOrderRefの先頭(-より前)でまとめます。転送先で顧客へ出荷するためだけの受注レコードは行にせず、元の注文の出荷元として数えます。statusでのサーバー側フィルタは未対応です(ページ内をクライアント側でフィルタしてください)。
POST /api/customer-orders/detail
注文 1 件の明細・金額・配送先・出荷元別の出荷ステータスを返します。email と注文の組み合わせが所有権チェックになっており、email が一致しない注文 ID は存在しない扱い(404)になります。
リクエスト
ボディパラメータ
shop
string
店舗識別子(省略するとキーのアカウント)
email
string
✓
顧客メールアドレス(所有権チェックに使用)
orderId
string (uuid)
✓
list が返した注文 ID
レスポンス
orderNumber / externalOrderRef
list と同じ(注文番号 / カート側の注文識別子)。orderId がまとめた受注レコードのどれでも、同じ買い物として明細・出荷元をまとめて返す
items[]
order_line_master の per-unit 行を barcode 単位に集約。quantity = 行数、unitPrice = 税込単価(gross_amount_taxincl)。商品名は注文明細に書かれていた名前(注文時点・注文したストアの言語)を優先し、無ければ products を barcode で結合(未登録は null)
amounts
order_line_master の合算(subtotal = 税込定価合計 / discount = 値引合計(正の値) / tax = 内税合計 / refund = 返金済合計 / total = 税込支払合計)。shipping は SoT に送料を持たないため常に null。突合できない注文は amounts 全体が null(items は fulfillment 単位に fallback し unitPrice: null)
shippingAddress
routing の shipTo(住所修正が反映された最新値)
shipments[]
出荷元(梱包)単位のステータス・キャリア・追跡番号。複数拠点から分割出荷される場合は複数行
timeline.shippedAt
全出荷元の出荷完了時のみ設定(max(shipped_at))。一部出荷の途中経過は shipments[] を参照
timeline
配達完了(deliveredAt)は持ちません(集約ステータス参照)
決済手段(カードブランド等)は LMile の SoT に存在しないため返しません。
エラー
エンドポイント固有:
400
email 欠落・形式不正 / orderId が uuid でない / cursor 不正
{ "ok": false, "error": "invalid email" } 等
404
注文が存在しない、または email が注文の宛先と一致しない(存在を判別させない)
{ "ok": false, "error_kind": "order_not_found", "error": "order not found" }
共通エラー(401 / 400 共通形 / 403 / 405 / 500 / 503)は Error Codes を参照。
データモデル
sot.lm_routing_orders— 突合キーship_to_email(正規化生成列ship_to_email_normで検索)。注文ヘッダ・配送先sot.lm_fulfillment_shipments— 出荷元単位のステータス・追跡番号・出荷日時sot.lm_fulfillment_units— 明細 fallback(order_line_masterと突合できない注文)sot.order_line_master— 明細・金額の正(shop + source_system + transaction_id=externalOrderRefの先頭(-より前)で結合)sot.products— 商品名 / バリアント名 / 画像(barcode 結合)
read 専用 API のため SoT への書き込みはありません(Idempotency)。
Last updated
Was this helpful?