FROM CACHE - jp_header

Shopify管理画面上に表示される顧客数と、Admin API 経由で取得できる顧客の総数が一致しない

mojibakeo
Shopify Partner
1 0 0

自社 EC における顧客数の推移を記録するため、毎朝バッチ処理で Customers API をコールし、

pagination にも対応した上で顧客を全件取得し、取得できた顧客の総数を記録してスプレッドシートに日付を添えて書き込んでいます。

 

本日の集計結果を確認したところ、前日と比較して急激に顧客数が減ったので調査してみたところ、

そもそも Shopify管理画面上の顧客数と API 経由で取得できる顧客数が一致していないことがわかりました。

 

Admin API をコールするときはフィルタ設定なし、Shopify 管理画面上では以下のフィルタのみを適用しています。

customer_account_status != 'DECLINED'

20顧客ほどのズレが生じしているのですが、どういうケースでズレが発生するのでしょうか?

2件の返信2

ogasawarakyohei
Shopify Partner
109 43 39

ズレている原因なのかはわかりませんが、Shopify管理画面の顧客管理ページ上の顧客総数はCustomers APIではなく、customerSegmentMembersを使って取得してそうです。

下記のようなクエリで顧客数を取得してます。

 

{
  customerSegmentMembers(first: 1) {
    statistics {
      totalCount
    }
  }
}

 

管理画面のページ上でリクエストしているのを確認しただけですので、これが正しいというわけではないですが、customerSegmentMembersで取得できる数と比較してみると原因がわかるかもしれません。

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
ogasawarakyohei
Shopify Partner
109 43 39

クエリを一部間違えていたので訂正します。

{
  customerSegmentMembers(first: 1, query: "") {
    statistics {
      totalCount
    }
  }
}

 

また、APIバージョン2023-07以降ではstatistics.totalCountが非推奨になるので、下記のクエリで同様のことができます。

https://shopify.dev/changelog/moving-total_count-field-from-segmentstatistics-to-customersegmentmemb...

{
  customerSegmentMembers(first: 1, query: "") {
    totalCount
  }
}
小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。