inventoryPurchaseOrder / inventoryPurchaseOrders クエリで、発注書の詳細・明細・仕入先名・紐づく在庫移動を取得可能に。ショップをフィーチャープレビューに登録しなくても使える読み取り専用のリリース。
read_inventory_purchase_orders だけ。
unstable のプレビュー経由でしか読めず、ショップを physical inventory のフィーチャープレビューに登録する必要があった。権限は read_inventory で扱っていた。
API ベータ申請もショップのプレビュー登録も不要。read_inventory_purchase_orders スコープで発注書を読める。読み取り専用。
read_inventory_purchase_orders で読める。ただし transfers 接続の先にある InventoryTransfer を読むには read_inventory_transfers も必要。transfers が不要ならその選択とスコープは省いてよい。
今回は読み取り専用のリリース。作成・更新などのミューテーションは含まれない。
InventoryPurchaseOrder.referenceName は公開 2026-10 API に存在しない。プレビューのクエリで選択しているなら、移行前に外す。
2026-07 以前の API バージョンには、これらの公開クエリは追加されない。
| アプリの状況 | 必要な対応 | ポイント |
|---|---|---|
| これから発注書を読みたい | スコープ追加 read_inventory_purchase_orders をリクエスト |
API ベータ申請もショップのプレビュー登録も不要 |
| 既存のプレビュー連携 read_inventory で読んでいた |
要対応 read_inventory_purchase_orders を取得 |
unstable を含め、read_inventory だけでは発注書を読めなくなった。他の在庫リソースに使うなら read_inventory は残す |
| 発注書スコープを付与済み | スコープ追加不要 | read_inventory_purchase_orders か write_inventory_purchase_orders(読み取りを含む)があれば OK。クエリは公開版のフィールド名・型と照合する |
| 発注書を読まないアプリ | 対応不要 | — |
read_inventory_purchase_orders を追加。transfers が必要なら read_inventory_transfers も追加。他の必要なスコープは残す。
設定変更をデプロイし、既存インストールでスコープ承認フローを完了。リクエストを変えただけでは付与されない。currentAppInstallation.accessScopes で確認。
/admin/api/2026-10/graphql.json を叩く。2026年10月1日より前に組み込む場合、2026-10 はリリース候補なのでテスト用途に限る。
発注書と紐づく在庫移動があるストアで、スキーマ検証エラーや ACCESS_DENIED が出ないことを確認する。
発注書と紐づく在庫移動の両方が必要な Shopify CLI アプリの例。
[access_scopes]
scopes = "read_inventory_purchase_orders,read_inventory_transfers"
先頭 5 件の発注書を、明細と紐づく移動を最大 5 件ずつ付けて取得する例。
query PurchaseOrders {
inventoryPurchaseOrders(first: 5) {
nodes {
id
name
status
origin {
supplierName
}
lineItems(first: 5) {
nodes {
id
title
}
}
transfers(first: 5) {
nodes {
id
name
}
}
}
}
}
残りのレコードは各接続をページングして取得する。transfers が不要なら、その選択と追加スコープは省く。
プレビュー連携は unstable も含め、read_inventory だけでは発注書を読めない。既存連携を放置すると ACCESS_DENIED になりうるので、read_inventory_purchase_orders を先に取得する。
InventoryPurchaseOrder.referenceName は公開 API に無い。プレビューのクエリに残っているとスキーマ検証で落ちるので、2026-10 へ切り替える前に外す。
発注書から辿れる InventoryTransfer を読むには read_inventory_transfers も必要。不要なら選択ごと省いて、スコープを最小に保てる。
設定をデプロイした後、既存インストールでスコープ承認フローを完了させて初めて付与される。currentAppInstallation.accessScopes で付与状況を必ず確認する。
使えるのは 2026-10 以降だけ(2026-07 以前には追加されない)。2026年10月1日より前は 2026-10 がリリース候補なので本番では使わない。今回のリリースは読み取り専用でミューテーションは含まれないため、発注書の作成・更新を伴う設計はこの API だけでは組めない。
inventoryPurchaseOrders をページング取得し、status と origin.supplierName で集計して一覧表示する。read_inventory_purchase_orders だけ。transfers を表示しないなら read_inventory_transfers は不要。lineItems を定期的に読み取り、社内システムに転記する。transfers 接続を選択し、発注書と紐づく InventoryTransfer を 1 回のクエリでまとめて取得する。read_inventory_purchase_orders に加えて read_inventory_transfers が必要。開発ストアで発注書と紐づく移動を用意して、ACCESS_DENIED が出ないか確認する。