inventoryActivate が在庫数を
ゼロリセットしなくなった
API 2026-04以降、ロケーション再有効化時の在庫数がそのまま引き継がれる
この変更は、GraphQL/REST API を通じてShopifyの在庫を操作しているすべてのアプリ・カスタム連携の開発者に影響します。2026-04以降のAPIバージョン(unstable含む)から適用されており、既存の業務ロジックが「inventoryActivate = 在庫ゼロ化」を前提にしている場合は見直しが必要です。
1Before / After 図解
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 を明示的に指定した場合の挙動変更については公式ドキュメントで最新情報を確認すること |
在庫の有効化と在庫数管理を分離できるようになった今回の変更により、ロケーション再有効化時の数量ロストがなくなります。ただし「アクティブ化後に在庫ゼロ」を前提にしたアプリロジックは破壊的変更となるため、2026-04移行前に必ず該当箇所を洗い出して対応してください。
Source: https://shopify.dev/changelog/inventoryactivate-now-preserves-available-quantity | 公開日: 2026年4月17日






Share:
InventoryLevelにisActiveフィールドが追加
決済アプリのmTLS証明書更新【2026年6月】