記事のサマリー(TL;DR)
- GraphQL Admin APIバージョン2026-10で、在庫出荷(inventory shipments)の受領アクションに新しい「CANCELED」が追加され、既存の accepted・rejected に加えてキャンセル数量を記録・参照できるようになりました。
- 2026-10向けの追加的(additive)な変更であり、対応は不要です。2026-10より前のAPIバージョンを使っているアプリには影響しません。
inventoryShipmentReceiveミューテーションでreason: CANCELEDを指定することで、二度と到着しない数量をキャンセルとして記録でき、inventory_shipments/receive_itemsWebhookのペイロードにも新しいキャンセル数量フィールドが追加されます。
対象と前提条件
この変更が適用されるのは、GraphQL Admin APIバージョン2026-10以降(またはunstable)を使用して、在庫出荷の読み取り、出荷明細の受領、inventory_shipments/receive_items Webhookへの購読のいずれかを行っているアプリです。2026-10より前のバージョンを使用しているアプリは影響を受けず、新しいフィールドや列挙値は利用できず、Webhookペイロードの形式も従来のままで、キャンセルのみの受領はこれまで通り配信が抑制されます。
詳細
変更内容
バージョン2026-10の在庫出荷(inventory shipments)APIにおいて、キャンセル受領(Canceled receiving)が、既存のaccepted(承認)・rejected(却下)の受領アクションに加わりました。
新しいフィールド
InventoryShipmentのtotalCanceledQuantity:出荷内の全明細にわたってキャンセルとしてマークされた数量の合計。既存のtotalAcceptedQuantityとtotalRejectedQuantityフィールドと並んで追加されました。InventoryShipmentLineItemのcanceledQuantity:明細項目でキャンセルとしてマークされた数量。既存のacceptedQuantityとrejectedQuantityフィールドと並んで追加されました。
キャンセルされた数量は InventoryShipment.totalReceivedQuantity にもカウントされるため、2026-10では受領合計が accepted・rejected・canceled の3種類に完全に分解されます。
また、InventoryShipmentReceiveLineItemReason 列挙型に新しい値 CANCELED が追加されました。inventoryShipmentReceive ミューテーションで、明細項目の reason としてこの値を渡すことで該当数量をキャンセルとしてマークできるほか、bulkReceiveAction として渡すことで、出荷の残り全数量をキャンセルとしてマークできます。
Webhookペイロードの変更
バージョン2026-10以降で inventory_shipments/receive_items Webhookトピックを購読している場合、items_received 内の各エントリに old_canceled_quantity と new_canceled_quantity が追加されます。また、キャンセル数量のみが変化した受領でも、配信がトリガーされるようになります。
2026-10より前のバージョンの購読は変更されません。キャンセル関連フィールドはペイロードに含まれず、キャンセルのみの受領では配信はトリガーされません。
この変更が重要な理由
出荷を受領する加盟店は、時として一部の数量が二度と到着しないことを把握する場合があります。これまでAPIは受領(accept)または却下(reject)のみをサポートしていたため、アプリ側ではこの結果を記録・把握する方法がありませんでした。該当の数量は未受領のまま放置されるか、却下として誤って記録するしかありませんでした。キャンセル受領アクションにより、こうした数量を正確に処理できるようになり、購買発注・倉庫管理システム・3PL(サードパーティロジスティクス)と受領状況を同期するアプリは、全体の状況を正確に記録・反映できるようになります。
対応方法
対応は不要です。キャンセル受領アクションを利用する場合は、以下を行ってください。
- アプリをAPIバージョン2026-10に更新する
- 受領の進捗を表示・同期している箇所で、
InventoryShipmentのtotalCanceledQuantityとInventoryShipmentLineItemのcanceledQuantityをクエリする - 到着しない数量をマークする際に、
inventoryShipmentReceiveへreason: CANCELEDを渡す - 開発ストアでテストし、
inventory_shipments/receive_itemsWebhookハンドラーがold_canceled_quantityとnew_canceled_quantityフィールドを処理できることを確認する
以下はサンプルのミューテーションです。出荷の明細項目1件に対して5ユニットをキャンセルとしてマークし、更新後のキャンセル数量を読み取ります。
mutation ReceiveShipment {
inventoryShipmentReceive(
id: "gid://shopify/InventoryShipment/123"
lineItems: [
{
shipmentLineItemId: "gid://shopify/InventoryShipmentLineItem/456"
quantity: 5
reason: CANCELED
}
]
) @idempotent(key: "b105ab7c-4680-4bfc-b350-c766e01a431f") {
inventoryShipment {
totalCanceledQuantity
lineItems(first: 10) {
nodes {
id
canceledQuantity
}
}
}
userErrors {
code
field
message
}
}
}
IDは自分の出荷・明細項目のIDに置き換え、受領ごとに一意のidempotencyキーを生成してください。このキーはバージョン2026-04以降、本ミューテーションで必須となっています。詳細はidempotentリクエストガイドを参照してください。
関連ドキュメント
inventoryShipmentReceiveミューテーションInventoryShipmentオブジェクトInventoryShipmentLineItemオブジェクトInventoryShipmentReceiveLineItemReason列挙型- Webhooksリファレンス