API CHANGE

在庫転送Webhookに
拠点ID(origin/destination)が追加

余計なAPI呼び出しゼロで転送元・先ロケーションを即判別 — 2026-07リリース予定

BEFOREWebhook Payloadtransfer_idstatusline_items別途API呼び出しが必要だったAFTERWebhook Payloadtransfer_idstatusline_itemsorigin.id ★NEWdestination.id ★NEWGLOBAL ID FORMATorigin.id:gid://shopify/Location/123destination.id:gid://shopify/Location/456

在庫転送系の6つのWebhookトピックのペイロードに origin.iddestination.id が新たに追加されました。これによりアプリ側は転送元・転送先のロケーションを追加APIコールなしで即座に特定できます。新フィールドは unstable APIバージョンで即時利用可能、パブリックリリースは 2026-07 を予定しています。

OVERVIEW

01変更内容:追加されたフィールドと対象トピック

対象Webhookトピック(全6件)と新フィールドinventory_transfers/add_items…/update_item_quantities…/remove_items…/ready_to_ship…/cancel…/completeNEW FIELDS IN PAYLOADorigin.idgid://shopify/Location/123destination.idgid://shopify/Location/456アプリ側で即ルーティング追加API呼び出し不要効率UP ✓※ 旧バージョンのサブスクリプションやサプライヤーフルフィルメント転送ではキー自体が省略される(nullではなく)

新フィールドはLocation Global ID形式(gid://shopify/Location/数字)で返されます。旧APIバージョンのサブスクリプションや、転送元・先がロケーションでない場合(例: サプライヤーフルフィルメント)はキー自体がペイロードから省略されます(null返却ではありません)。

USE CASES

02業務に活かせるユースケース

課題
複数倉庫・店舗間の在庫転送を監視するアプリで、Webhookを受信するたびに転送詳細APIを再呼び出しして転送元・先を取得していた。レート制限を圧迫しやすく、処理遅延が発生していた。
打ち手
2026-07以降のAPIバージョンにWebhookサブスクリプションを更新し、ペイロードの origin.id / destination.id を直接参照してルーティングロジックを実装する。
効果
Webhook受信 → ロケーション特定のAPIコールが不要になり、処理ステップを削減。Admin APIのレート制限消費を抑えながらリアルタイム在庫監視を実現できる。
技術メモ
Global IDはそのままGraphQLクエリの引数として使用可能。gid://shopify/Location/123 の形式で location(id: $id) に渡せる。
課題
EC基幹システムと連携する際、在庫転送のWebhook受信後に「どの拠点からどの拠点へ」という情報をDBに記録する必要があり、毎回追加リクエストが発生していた。
打ち手
inventory_transfers/complete Webhookを受信した際に origin.iddestination.id をそのままERPや在庫DBへ書き込む処理を組み込む。
効果
転送完了イベントの記録処理をシンプル化。基幹システムとのリアルタイム同期の信頼性が向上し、在庫差異の発生を防ぎやすくなる。
技術メモ
サプライヤーフルフィルメントなど拠点が存在しないケースでは origin / destination キー自体が存在しないため、コード側で key in payload チェックを入れること。
課題
転送キャンセルイベント (inventory_transfers/cancel) 発生時に、どの拠点の在庫影響かをすぐ判断できず、在庫補正のオペレーションが後手に回っていた。
打ち手
キャンセルWebhookの origin.id を使って影響拠点を即特定し、在庫補正アラートを自動送信するワークフローを構築する。
効果
転送キャンセル発生から在庫確認・補正指示までの時間を大幅短縮。オペレーションチームへの自動通知で人的ミスを削減できる。
技術メモ
inventory_transfers/cancel も新フィールド対象トピックに含まれているため、同じペイロード構造で処理できる。ただし対象APIバージョン (2026-07以降) でのサブスクリプション登録が前提。
DEV NOTES

03技術者が押さえるべきポイント

項目 詳細
対応APIバージョン unstable で即時利用可能。パブリックリリースは 2026-07 予定。旧バージョンのサブスクリプションには新フィールドは含まれない。
フィールド省略の条件 旧APIバージョンのサブスクリプション、またはサプライヤーフルフィルメントのように転送元・先がロケーションでない場合、origin / destination キー自体がペイロードから省略される (null ではない)。
inventoryTransferSetItems の挙動明確化 ドキュメント記述が整理された(挙動変更なし)。渡したアイテムのみ追加・更新、渡さなかったアイテムは不変。READY_TO_SHIP / IN_PROGRESS 状態では processableQuantity のみ置換。DRAFTのみ quantity:0 が有効。
inventoryTransferRemoveItems の挙動明確化 ドキュメント記述が整理された(挙動変更なし)。空の transferLineItemIds はno-op扱いになり転送をそのまま返す。READY_TO_SHIP時に削除するとorigin拠点のavailable在庫に戻る。
エラーメッセージの改善 3つのユーザーエラー (READY_TO_SHIP_TRANSFER_REQUIRES_AT_LEAST_ONE_ITEM / ALL_QUANTITY_SHIPPED / ITEM_PRESENT_ON_DRAFT_SHIPMENT_WITH_ZERO_QUANTITY) のメッセージがより説明的になった。エラーコード自体は変更なし。既存のエラーハンドリングは影響を受けない。
MUTATION DETAIL

04ミューテーション挙動サマリ(ドキュメント整理)

inventoryTransferSetItems / RemoveItems — 状態別挙動DRAFTREADY_TO_SHIPIN_PROGRESSSetItems渡したIDを追加または数量更新quantity:0 有効(ゼロ数量アイテム残る)渡さなかったアイテムは不変SetItemsprocessableQuantityのみ置換quantity:0 → INVALID_QUANTITYエラー出荷済・ピック済数量は保持されるSetItemsprocessableQuantityのみ置換quantity:0 → INVALID_QUANTITYエラー出荷済・ピック済数量は保持されるRemoveItems未割当なら行アイテムを削除空IDリストはno-opRemoveItems未割当なら削除。削除するとorigin在庫に戻る空IDリストはno-op全削除不可→キャンセル推奨RemoveItemsIN_TRANSIT出荷経由で削除可能(InventoryShipmentRemoveItem使用)

なお、今回のドキュメント更新はいずれも 挙動変更ではなく説明の明確化 です。既存コードへの影響はありませんが、エラーメッセージが詳しくなっているため、デバッグ時のユーザビリティは向上しています。

✦ Webhookペイロードへの origin.id / destination.id 追加により、在庫転送監視アプリのAPI呼び出し数を削減しながらリアルタイム拠点追跡を実現できます。サブスクリプションを2026-07バージョンに更新するだけで利用可能です。

Source: https://shopify.dev/changelog/inventory-transfer-webhooks-include-origin-and-destination-location-ids-and-mutation-documentation-clarified | 公開日: 2026年6月5日
※本記事はShopify公式ではなく独立系メディアによる解説です。最終確認は必ず公式ドキュメントをご参照ください。