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

**URL:** <https://community.shopify.com/t/storefront-api/10975>\
**Category:** 技術的なQ＆A\
**Created:** [April 11, 2020, 5:50am UTC](https://community.shopify.com/t/storefront-api/10975 "2020-04-11T05:50:06Z")\
**Posts on this page:** 6\
**Page:** 1

## AI-generated summary

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

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

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

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

<div class="post-metadata">

**Author:** ![akkey](https://avatars.discourse-cdn.com/v4/letter/a/90db22/32.png) [@akkey](https://community.shopify.com/u/akkey)\
**Post date:** [April 11, 2020, 5:50am UTC](https://community.shopify.com/t/storefront-api/10975/1 "2020-04-11T05:50:06Z")

</div>

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

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

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

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

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

```

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

---

<div class="post-metadata">

**Author:** ![kazuki](https://avatars.discourse-cdn.com/v4/letter/k/e9c0ed/32.png) [@kazuki](https://community.shopify.com/u/kazuki)\
**Post date:** [April 13, 2020, 6:05am UTC](https://community.shopify.com/t/storefront-api/10975/2 "2020-04-13T06:05:15Z")

</div>

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

[https://www.gatsbyjs.org/packages/gatsby-source-shopify/#query-products](https://www.gatsbyjs.org/packages/gatsby-source-shopify/#query-products)

---

<div class="post-metadata">

**Author:** ![akkey](https://avatars.discourse-cdn.com/v4/letter/a/90db22/32.png) [@akkey](https://community.shopify.com/u/akkey)\
**Post date:** [April 13, 2020, 1:38pm UTC](https://community.shopify.com/t/storefront-api/10975/3 "2020-04-13T13:38:10Z")

</div>

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

返り値はtrueでした。

---

<div class="post-metadata">

**Author:** ![kazuki](https://avatars.discourse-cdn.com/v4/letter/k/e9c0ed/32.png) [@kazuki](https://community.shopify.com/u/kazuki)\
**Post date:** [April 14, 2020, 5:11am UTC](https://community.shopify.com/t/storefront-api/10975/4 "2020-04-14T05:11:17Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![akkey](https://avatars.discourse-cdn.com/v4/letter/a/90db22/32.png) [@akkey](https://community.shopify.com/u/akkey)\
**Post date:** [April 14, 2020, 3:29pm UTC](https://community.shopify.com/t/storefront-api/10975/5 "2020-04-14T15:29:39Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![kazuki](https://avatars.discourse-cdn.com/v4/letter/k/e9c0ed/32.png) [@kazuki](https://community.shopify.com/u/kazuki)\
**Post date:** [April 14, 2020, 3:47pm UTC](https://community.shopify.com/t/storefront-api/10975/6 "2020-04-14T15:47:27Z")

</div>

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