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

表題の通りですが、どのように実装すれば考え中です。

shopify flowで注文データ取得件数の上限は100件だと思います。※admin apiの仕様

この100件を反復し、日付で絞り込めばと思いますが、どのようにflowを組めばよいかわからず

またmechanicでに実現できないかの検証も進めていますが、こちらも同じ問題を抱えていると思います。

どなたか、表題のような実装を実現できた方いらっしゃいましたら教えていただけると助かります。

@r-irisawa

やり方は2つ考えられます。

(1) 1年間に100件以上購入することはない、と割り切る場合

Order Created

Get order data

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

Sum

getOrderData.totalPriceSet.shopMoney.amount

Update customer metafield

下図のようになります。

※返金時にマイナスするShopify Flowを組むとなお良いです。

(2) 1年間に100件以上購入することも考える場合

この場合は、やり方のコンセプトの説明だけになるのですが、

まず購入履歴、という顧客メタフィールドを作成します。

このメタフィールドはメタオブジェクトのメタフィールドリストにします。

メタオブジェクトは注文日と注文金額を保存します。

Shopify Flowにて、Order Createdで、そのメタフィールドリストに注文情報を追加していきます。

また、同様のFlow内にて、「1年間の購入金額」メタフィールドのアップデートのvalue内で、liquidを駆使して購入履歴メタフィールドの値を計算して、1年間の購入金額を設定します。

ご参考まで。

(キュー田辺)

@r-irisawa

上記の、

Get order data

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

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

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

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

失礼いたしました。

(キュー田辺)

ありがとうございます!

参考にさせていただきます!