目次
こんにちは。
ディレクターの田辺です。
Shopify FlowにScheduled Time(予定時刻)トリガーが実装されてしばらく経ちました。
Shopify Flowを指定した時間に定期的に実行できる便利なトリガーです。
このトリガーを使用するとき、Get customer dataアクションやGet order dataアクションを一緒に使うことが多いのではないでしょうか?
しかし、このアクションで扱えるデータ数は100件まで、という制限があります。
そうすると、大切になってくるのが、データ取得のためのクエリの工夫です。
ところが、このクエリの書き方は、GraphQLにおけるクエリの書き方に準拠しており、難易度が高いと感じている方もいらっしゃるのではないでしょうか?
そこで今回は、Get customer dataやGet order dataのクエリの書き方をご説明します。
クエリとは?
クエリとは、Get customer dataやGet order dataで顧客情報や注文情報を取得する際に、情報を絞り込む条件のことを指します。
例えば、特定の日付以降に作成されて、かつ、特定のタグを持つ、顧客や注文を取得するのであれば、「特定の日付以降に作成された」と「特定のタグを持つ」といった「情報を絞りむための条件」がクエリです。
クエリ事例集
事例をご覧いただくのが一番わかりやすいと思いますので、よくありそうなクエリを並べてみます。
事例1. 2023年8月5日の午前10時以降に作成された顧客
customer_date:>='2023-08-05T01:00:01Z'
クエリにおける時間指定について
日本の時差9時間を考慮してくれないため、9時間マイナスして記述します。例えば、午前10時であれば、01:00:00Zと記述します。
事例2. 2023年8月1日の午前10時より後で、かつ、2023年9月1日の午前11時以前に作成された注文
created_at:>'2023-08-01T01:00:00Z' AND created_at:<='2023-09-01T02:00:00Z'
事例3. 2023年8月5日の午前10時以降に作成された"VIP"というタグを持つ顧客
customer_date:>='2023-08-05T01:00:00Z' AND tag:'VIP'
事例4. 2023年8月5日の午前10時以降に作成された"初回購入"というタグを持たない注文
created_at:>='2023-08-05T01:00:00Z' AND -tag:'初回購入'
事例5. "初回購入"というタグかもしくは"特別購入"というタグを持つ注文
tag:'初回購入' OR tag:'特別購入'
参考になるドキュメント
基本的なSyntaxについてはこちらをご確認いただくと良いです。
https://shopify.dev/docs/api/usage/search-syntax
customer_date
やcreated_at
などのクエリについては、APIの仕様書に記載されているものが使用できます。
例えば、顧客データについては下記のページに記載があります。
https://shopify.dev/docs/api/admin-graphql/2023-07/queries/customers
上記ページのqueryの項目に記載があるパラメータがShopify Flowでもクエリとして使用できるものになります。
- accepts_marketing
- country
- customer_date
- last_abandoned_order_date
- order_date
- orders_count
- phone
- state
- tag
- tag_not
- total_spent
- updated_at
注文情報や、商品情報に使用できるクエリは、下記にそれぞれ記載されています。
https://shopify.dev/docs/api/admin-graphql/2023-07/queries/orders
https://shopify.dev/docs/api/admin-graphql/2023-07/queries/products
まとめ
事例と参考ページをご覧いただけば大抵のクエリは作成できると思いますが、いまいちどうやって書いていいか分からないという方もいらっしゃるかもしれません。
もし、お困りであれば、お問い合わせフォームでご相談いただけば、ある程度まででしたら無料で相談に乗らせていただきます。
それでは。