【Shopify GraphQL Admin API】特定のロケーションの商品在庫を確認する方法
公開日2024.11.15
今回は、Shopify GraphQL Admin APIを使用して、特定ロケーションの商品在庫を確認する方法をご紹介します。
前提知識
- Shopify Admin APIのアクセス権限が設定済みであること
- GraphQLの基本的な理解があること
- 対象となるShop、Location IDの準備があること
在庫データの取得方法
Shopifyでは、商品の在庫情報を取得するための複数の方法が用意されています:
- ProductVariant.availableForSale
- 登録されているロケーションのいずれかで販売可能な場合に
true
を返します
- ProductVariant.sellableOnlineQuantity
- オンラインチャネルでの販売可能数を返します
- inventoryLevelオブジェクト
- 特定ロケーションの詳細な在庫情報を取得できます
本記事では、特定ロケーションの正確な在庫数を取得する必要があるため、inventoryLevelオブジェクトを使用する方法を詳しく見ていきます。
特定商品の取得なのでproductVariantベースで在庫数を取得するクエリを書いてみます
query ($id: ID!, $locationId: ID!) {
productVariant(id: $id) {
inventoryItem {
inventoryLevel(locationId: $locationId) {
quantities(names: ["available"]) {
name
quantity
}
}
}
}
}
クエリのポイント
productVariant(id: $id)
で特定の商品バリアントを指定inventoryLevel(locationId: $locationId)
で特定のロケーションを指定quantities(names: ["available"])
で販売可能な在庫数を取得
レスポンスの解説
inventoryLevelオブジェクトからは以下の情報が返されます
inventoryLevel.quantities.name
: 在庫状態名(例:available
)inventoryLevel.quantities.quantity
: 指定したロケーションでの在庫数
Shopifyの在庫ステータス一覧
今回のクエリではavailableが指定されていますが、Shopifyには以下の在庫ステータスが用意されています。各ステータスの詳細については、Shopifyのinventory statesのドキュメントをご参照ください!
- incoming(入荷予定) - 商品が店舗・倉庫に向かっている状態
- on_hand(在庫総数) - ロケーションに物理的に存在する総数。available, committed, reserved, damaged, safety_stock, quality_controlの合計
- available(販売可能) - 実際に販売可能な在庫数
- committed(確定済み) - 注文は入っているが未出荷の商品数
- reserved(予約済み) - 一時的に確保されている在庫
- damaged(破損) - 破損により販売・使用不可の商品
- safety_stock(安全在庫) - 在庫切れ防止用の確保分
- quality_control(品質管理中) - 品質検査中の商品
まとめ
Shopify GraphQL Admin APIを使用し在庫情報の取得に関して解説しました! さらに詳しい情報については、Shopify開発者ドキュメントをご確認ください!