INVENTORY API

inventoryActivate が在庫数を
ゼロリセットしなくなった

API 2026-04以降、ロケーション再有効化時の在庫数がそのまま引き継がれる

〜 2026-01 (旧挙動)inventoryActivate引数なし → 在庫数 0 にリセット履歴が消える2026-04〜 (新挙動)inventoryActivate引数なし → 既存の在庫数を保持履歴が引き継がれる ✓

この変更は、GraphQL/REST API を通じてShopifyの在庫を操作しているすべてのアプリ・カスタム連携の開発者に影響します。2026-04以降のAPIバージョン(unstable含む)から適用されており、既存の業務ロジックが「inventoryActivate = 在庫ゼロ化」を前提にしている場合は見直しが必要です。

1Before / After 図解

Before(〜2026-01)After(2026-04〜)非アクティブ状態の InventoryLevelavailable: 50 / onHand: 60(inactive)非アクティブ状態の InventoryLevelavailable: 50 / onHand: 60(inactive)inventoryActivate(引数なし)inventoryActivate(引数なし)アクティブ後の InventoryLevelavailable: 0 / onHand: 0⚠ 在庫履歴が消えるアクティブ後の InventoryLevelavailable: 50 / onHand: 60✓ 在庫履歴がそのまま保持

2業務ユースケース

課題
倉庫の棚卸し後、一時的に無効化したロケーションを再有効化すると在庫が0になってしまい、手動で再入力する手間が発生していた。
打ち手
API 2026-04以降に移行することで、inventoryActivate 後も棚卸し前の数量が自動保持される。引数なしで呼び出すだけでよい。
効果
再有効化後の在庫入力ミス・追加対応工数がゼロになる。
技術メモ
GraphQL: inventoryActivate ミューテーション、REST: POST inventory_levels/connect.json いずれも同様に保持される。
課題
複数拠点を持つD2Cブランドで、季節オフのロケーションを無効化・再有効化するたびに在庫管理システムとの差異が生じ、在庫同期コストが高かった。
打ち手
アクティベーション時にavailable/onHandを明示指定しないフローに統一し、差分同期のロジックをシンプル化する。
効果
外部在庫管理システムとのズレ解消に要していたバッチ処理を削減できる。
技術メモ
既存の「アクティブ化直後にsetQuantitiesを呼ぶ」ロジックが不要になる場合があるため、二重書き込みに注意して見直すこと。
課題
フルフィルメントサービス連携アプリが inventoryActivate 後に在庫をゼロと仮定して後続処理を走らせており、意図しない欠品通知が送られていた。
打ち手
アプリのロジックを「アクティブ化後も既存の数量が保持されている」前提に変更し、欠品チェックのタイミングを見直す。
効果
誤った欠品アラートが排除され、マーチャントへの不要な通知が減少する。
技術メモ
2026-04未満のAPIバージョンでは旧挙動のままのため、バージョンを明示的に指定しているアプリは必ずバージョンを確認すること。

3開発者が押さえるべきポイント

項目 内容
対象バージョン GraphQL / REST ともに unstable および 2026-04以降
GraphQL への影響 inventoryActivate ミューテーションで available または onHand 引数を省略した場合、既存の数量が保持される(旧挙動: 0にリセット)
REST への影響 POST inventory_levels/connect.json でも同様に、既存の数量が保持されるよう変更される
対応が必要なコード 「inventoryActivate 後に在庫が0になる」ことを前提にした業務ロジックを持つ箇所をすべて洗い出し、動作を見直すこと(公式ドキュメントで改めて確認を推奨)
明示指定時の挙動 元記事に記載なし。available / onHand を明示的に指定した場合の挙動変更については公式ドキュメントで最新情報を確認すること
inventoryActivateを呼んでいる?引数なし orゼロを前提?ロジックの見直しが必要2026-04移行前に対応推奨

在庫の有効化と在庫数管理を分離できるようになった今回の変更により、ロケーション再有効化時の数量ロストがなくなります。ただし「アクティブ化後に在庫ゼロ」を前提にしたアプリロジックは破壊的変更となるため、2026-04移行前に必ず該当箇所を洗い出して対応してください。

Source: https://shopify.dev/changelog/inventoryactivate-now-preserves-available-quantity | 公開日: 2026年4月17日