【Shopify GraphQL Admin API】特定のロケーションの商品在庫を確認する方法

【Shopify GraphQL Admin API】特定のロケーションの商品在庫を確認する方法

今回は、Shopify GraphQL Admin APIを使用して、特定ロケーションの商品在庫を確認する方法をご紹介します。

前提知識

  • Shopify Admin APIのアクセス権限が設定済みであること
  • GraphQLの基本的な理解があること
  • 対象となるShop、Location IDの準備があること

在庫データの取得方法

Shopifyでは、商品の在庫情報を取得するための複数の方法が用意されています:

  1. ProductVariant.availableForSale
  • 登録されているロケーションのいずれかで販売可能な場合にtrueを返します
  1. ProductVariant.sellableOnlineQuantity
  • オンラインチャネルでの販売可能数を返します
  1. inventoryLevelオブジェクト
  • 特定ロケーションの詳細な在庫情報を取得できます

本記事では、特定ロケーションの正確な在庫数を取得する必要があるため、inventoryLevelオブジェクトを使用する方法を詳しく見ていきます。

特定商品の取得なのでproductVariantベースで在庫数を取得するクエリを書いてみます

query ($id: ID!, $locationId: ID!) {
 productVariant(id: $id) {
   inventoryItem {
     inventoryLevel(locationId: $locationId) {
       quantities(names: ["available"]) {
         name
         quantity
       }
     }
   }
 }
}

クエリのポイント

  1. productVariant(id: $id)で特定の商品バリアントを指定
  2. inventoryLevel(locationId: $locationId)で特定のロケーションを指定
  3. quantities(names: ["available"])で販売可能な在庫数を取得

レスポンスの解説

inventoryLevelオブジェクトからは以下の情報が返されます

  • inventoryLevel.quantities.name: 在庫状態名(例:available
  • inventoryLevel.quantities.quantity: 指定したロケーションでの在庫数

Shopifyの在庫ステータス一覧

今回のクエリではavailableが指定されていますが、Shopifyには以下の在庫ステータスが用意されています。各ステータスの詳細については、Shopifyのinventory statesのドキュメントをご参照ください!

  1. incoming(入荷予定) - 商品が店舗・倉庫に向かっている状態
  2. on_hand(在庫総数) - ロケーションに物理的に存在する総数。available, committed, reserved, damaged, safety_stock, quality_controlの合計
  3. available(販売可能) - 実際に販売可能な在庫数
  4. committed(確定済み) - 注文は入っているが未出荷の商品数
  5. reserved(予約済み) - 一時的に確保されている在庫
  6. damaged(破損) - 破損により販売・使用不可の商品
  7. safety_stock(安全在庫) - 在庫切れ防止用の確保分
  8. quality_control(品質管理中) - 品質検査中の商品

まとめ

Shopify GraphQL Admin APIを使用し在庫情報の取得に関して解説しました! さらに詳しい情報については、Shopify開発者ドキュメントをご確認ください!

Anycloudではプロダクト開発の支援を行っています

プロダクト開発をお考えの方はぜひAnycloudにご相談ください。

まずは相談する

記事を書いた人

Tsukamura

エンジニア

Tsukamura

株式会社Anycloudでエンジニアをしています。