Storefront APIでの在庫数取得について

AI-generated summary

Gatsbyとgatsby-source-shopifyを使ったGraphQL取得で、商品ごとの「在庫数」をどのフィールドで参照できるかが主題です。提示されたクエリでは商品情報やvariants(商品バリエーション)は取得できているものの、在庫数に相当する値が見つかっていません。

確認されたのは、variants内のavailableForSaleで、これは在庫の有無を示す真偽値です。実際に返り値はtrueでしたが、「在庫数」そのものではない点が整理されました。

その後、Storefront APIのProductにtotalInventoryというフィールドがある可能性が示されました。ただし、gatsby-source-shopify経由でそのフィールドが使えるかは不明で、ドキュメント上でも該当情報は見当たらないという認識です。

現時点の結論は、ライブラリ経由での取得方法は未解決のままです。在庫数が必要なら、gatsby-source-shopifyではなくStorefront APIを直接呼ぶほうが簡単そう、という方向で話がまとまっています。

初めて質問させていただきます。

GatsbyとStorefront APIで開発を行っております。

gatsby-source-shopifyというライブラリを使用し、GraphQLでデータを取得し表示しています。

データの取得表示は問題なく行えているのですが、その中で商品の在庫数に該当する変数がわからず思案しております。
実際に取得しているコードが以下になります。

graphql`
query shopifyDetail($id: String) {
    shopifyProduct(shopifyId: { eq: $id }) {
      id
      shopifyId
      title
      description
      images {
        originalSrc
      }
      variants {
        price(locale: "ja")
        selectedOptions {
          name
          value
        }
      }
    }
  }
`

是非ご存知の皆様のお知恵をいただけますと幸いです。
何卒よろしくお願い致します。

variantsの中に availableForSale というフィールドがありますでしょうか?

https://www.gatsbyjs.org/packages/gatsby-source-shopify/#query-products

variantsの中に availableForSale という値ございました。

返り値はtrueでした。

あ、「在庫があるかどうか」と勘違いしてました。storefront APIを直接叩けるのであれば productに totalInventoryというフィールドがあるようですが、https://shopify.dev/docs/storefront-api/reference/object/product

gatsby-source-shopifyからどのフィールドが使えるのかはよくわかってません

そうですよね…。
gatsby-source-shopifyのドキュメントにも該当する値が見当たらずでして。。。

最悪直接叩く方が良いですかね…?

直接叩いたほうが簡単なような気がします