bins(棚・ラック)/ counts(棚単位の在庫数セット)/ purchase orders(発注データの読み取り)という 3 つのプリミティブが、GraphQL Admin API の unstable バージョンに先行公開。開発ストアでフィーチャープレビューを有効にしたときだけ叩ける。
GraphQL Admin API の unstable バージョンにのみ載っている。まだ活発に開発中のため、安定版になる前にスキーマと挙動へフィードバックを返せる、という位置づけ。
development store(または既存ストア)で「Physical inventory feature preview」を ON にして、そこに対してビルド・テストする。
プレビューを有効にしていないストアからの呼び出しは access error を返す。全ストアで一律に使える機能ではない。
記事で「What's included」として明示されているのは以下の 3 つ。
「棚(shelf)」「ラック(rack)」のような、ロケーションの中の保管場所を名前付きで表現する。作成・更新ができ、各 bin が持つ on-hand 数量を読み取れる。
inventoryCountCreate ミューテーションで、特定の bin にある特定の在庫アイテムの on-hand 数量をセットする。加減算ではなく「その棚の実数はこれ」と確定させる操作。
GraphQL Admin API 経由で発注データを read できる。取得対象として明示されているのは purchase order 本体 / その line items / その supplier(仕入先)。
development store を新規作成、もしくは既存のものを使う。
そのストアで「Physical inventory feature preview」を有効にする。
physical inventory 系の query / mutation はすべて unstable バージョンで叩く設定にする。
| 項目 | 記事の記述 | 読み取れること |
|---|---|---|
| bins | 明記 作成・更新・on-hand 読み取り | 棚マスタを外部から構築・同期できる |
| counts | 明記 inventoryCountCreate で bin 内アイテムの on-hand をセット |
棚卸し結果の書き戻しが可能 |
| purchase orders | 明記(read のみ) PO 本体 / line items / supplier | 入荷予定の参照はできる。書き込みは記載なし |
| API バージョン | unstable のみ | 安定版リリース時期は記載なし。破壊的変更は前提 |
| 対象ストア | プレビュー有効ストアのみ。未有効は access error | 本番ストアでの利用可否は記載なし(案内は development store 前提) |
| bin と既存 location 在庫の統合 | ガイド参照とだけ記載 | 本文中には記載なし。ガイドで要確認 |
| bin の階層・容量・対応プラン | — | 記載なし |
「under active development」と明言されている。フィールド名・引数・戻り値が変わりうるので、アプリ側に薄いアダプタ層を挟み、ドメインモデルを API 形状に直結させないのが安全。
プレビュー未有効ストアからの呼び出しは access error。マルチストアに配布するアプリなら、「physical inventory 機能が使えるストアか」を実行時に判定して UI を出し分ける設計が要る。
inventoryCountCreate は「特定 bin の特定アイテムの on-hand を設定する」と書かれている。差分加算 API ではないため、スキャン結果を積み上げてから最終値を投げるクライアント側の集計が必要になる。
記事が挙げているのは read のみ。発注の起票・更新を Shopify 側に持たせる前提の設計は現時点では立てられない。発注のマスタは引き続き外部(基幹・WMS)側に置き、Shopify からは参照するのが無難。
記事は「安定版になる前にスキーマと挙動へフィードバックできる」ことを目的として明示している。日本の 3PL / 倉庫運用(ロケーション命名規則、ロット・賞味期限、棚移動)で足りない要素があるなら、安定版が固まる前に検証して出すのが最もコスパの良い動き。逆に言えば、今のスキーマを本番前提で作り込むのは早い。
inventoryCountCreate で bin 単位に確定、という棚卸しフローを実装。棚ごとの確定履歴を残す。