顧客の過去1年間の購入金額を取得し顧客メタフィールドに保存する

Topic summary

顧客の過去1年間の購入金額を計算し、顧客メタフィールドに保存する実装方法についての質問です。

課題:

  • Shopify FlowでAdmin APIの制限により注文データ取得が100件まで
  • 100件を超える購入がある場合の対応方法

提案された解決策:

方法1: 年間100件以下の購入を前提とする場合

  • Order Created → Get order data → Sum → Update customer metafieldの流れ
  • 高度なクエリでemail:{{order.customer.email}}を設定
  • getOrderData.totalPriceSet.shopMoney.amountを合計
  • 返金時のマイナス処理に注意が必要

方法2: 年間100件以上の購入がある場合

  • メタフィールドをリスト型にして注文情報を追加
  • Liquidを使用してメタフィールド内で1年間の購入金額を計算

修正点:
初回の高度なクエリでは1年以内の絞り込みができていなかったため、正しくはemail:{{order.customer.email}} AND created_at:>'{{order.createdAt | date_minus: "1 year"}}'を設定する必要があります。

質問者は提案に感謝し、参考にする意向を示しています。

Summarized with AI on November 12. AI used: claude-sonnet-4-5-20250929.

@r-irisawa

上記の、

Get order data

高度なクエリで email:{{order.customer.email}} を設定

ですと、1年以内の絞り込みができていませんでした。

正しくは下記になります。

高度なクエリで email:{{order.customer.email}} AND created_at:>'{{order.createdAt | date_minus: "1 year"}}' を設定

失礼いたしました。

(キュー田辺)