FROM CACHE - jp_header
解決済

商品ごとの注文数を取得したい

nowheresville
観光客
6 0 1

Public App内で、商品ごとの当日の注文数を取得したいと思い、GraphQL Admin APIを利用して開発を進めております。

下記のような内容のQueryでは、ある程度は取得できますが、当日の全ての注文を取得できているとは言えない(最初の70件の注文だけになってしまう)なと・・

{
  orders(first: 70, query: "created_at:>TODAY status:any") {
    edges {
      node {
        id
        createdAt
        lineItems(first: 5) {
          edges {
            node {
              id
              name
              title
              variantTitle
              variant {
                id
              }
            }
          }
        }
      }
    }
  }
}

 

そこで、

 

first: 70

 

の「70」を「1000」とかに増やしてみても、クエリコスト?の制限でエラーが発生してしまいます・・

何か良い方法があればご教示いただければ幸いです。

 

1 件の受理された解決策

junichiokamura
Community Manager
1200 280 506

成功

下記のページネーションを使うのはいかがでしょうか?

https://shopify.dev/concepts/graphql/pagination

また、大量データ用のBulk API もあります。

https://shopify.dev/docs/admin-api/graphql/reference/bulk-operations

 

Senior Partner Solutions Engineer

元の投稿で解決策を見る

2件の返信2

junichiokamura
Community Manager
1200 280 506

成功

下記のページネーションを使うのはいかがでしょうか?

https://shopify.dev/concepts/graphql/pagination

また、大量データ用のBulk API もあります。

https://shopify.dev/docs/admin-api/graphql/reference/bulk-operations

 

Senior Partner Solutions Engineer
nowheresville
観光客
6 0 1

 

@junichiokamura 

ご回答ありがとうございます!

下記のページネーションを使うのはいかがでしょうか?

https://shopify.dev/concepts/graphql/pagination

なるほど、こういったアプローチがあるんですね!

取得できたデータが全てではなく一部であった場合は、次ページが存在するので(hasNextPage が true)、

カーソルを変更して次ページ分のデータを取得し続けていければ、全てのデータを取得できそうですね。

 

また、大量データ用のBulk API もあります。

https://shopify.dev/docs/admin-api/graphql/reference/bulk-operations

このアプローチでも取得できそうですね!

欲しいデータは、レスポンスには含まれていなくて、欲しいデータがダウンロードできるURLが含まれているんですかね。

そして、そのダウンロード用URLにアクセスし、欲しいデータを手に入れられる、というイメージですね。

 

どちらも試してみたいと思います、非常に助かりました!