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

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」とかに増やしてみても、クエリコスト?の制限でエラーが発生してしまいます・・

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

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

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

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

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

1 Like

@junichiokamura

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

下記のページネーションを使うのはいかがでしょうか?> > https://shopify.dev/concepts/graphql/pagination

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

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

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

また、大量データ用のBulk API もあります。> > https://shopify.dev/docs/admin-api/graphql/reference/bulk-operations

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

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

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

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

1 Like