ShopifyやEコマースに関連することを話してみよう
Shopifyの自動化(オートメーション)を使って、単純に「毎月月初に顧客メタフィールドを更新する(全ての顧客のメタフィールドをfalseへ変更する)」というのを設定したいのですが、うまくいきません。
どのように設定したらいいでしょうか?
解決済! ベストソリューションを見る。
成功
興味があり調査してみました。
結論から申しますと、
Matrixifyなどを使用してMetafeildを一括変更した方が良いかもしれません。
https://apps.shopify.com/excel-export-import?locale=ja
さて、
「Shopifyの自動化(オートメーション)」というのはShopify Flowのことを指していると思われますので、Shopify Flowで実現しようとするとどうなるかについても回答いたします。
しかし上述の通り、Shopify Flowで実現するより、
Matrixifyなどで一括変更した方が簡単かつ間違いがないと考えています。
なお、これから説明する内容は動作確認をしておりませんので、
何か不具合がある可能性もあります。
まず、下図のようなフローを組みます。
1. トリガー: Scheduled time
https://help.shopify.com/ja/manual/shopify-flow/reference/triggers/scheduled-time
毎月1日に実行するよう設定します。
2. アクション: Get customer data
https://help.shopify.com/ja/manual/shopify-flow/reference/actions/get-customer-data
下図のように設定をします。
「クエリを編集」に設定されている
tag_not: '_taget_metafield:false'
が今回の設定の肝になります。
「顧客データの取得」は、データの絞り込みにメタフィールドを利用できません。
そのため、メタフィールドと顧客タグの両方に値を埋め込むことで絞り込みを行います。
3. 繰り返し処理: For each loop (iterate)
3つ作成しますが、内容はどれも下図と同じです。
4. それぞれの繰り返し処理において下記を実行します。
このフローによって、
顧客タグ「_taget_metafield:false」を持たない顧客(逆にいうと、「_taget_metafield:true」を持っている顧客)を100件絞り込み、そのそれぞれの顧客に対して、
メタフィールドをfalseにアップデートしつつ、
顧客タグ「_taget_metafield:true」を外し、
顧客タグ「_taget_metafield:false」を追加する、
という処理をします。
(※本来、メタフィールドのアップデートが完了したら、顧客タグの編集を行う、というフローを組みたかったのですが、仕様上断念しました。)
さて、
このやり方の問題点の1つとして、Get Customer Dataは、
100件の顧客データしか扱えない事が挙げられます。
もし、質問者様のストアに100目以上の顧客が登録されている場合、
フローを複製し、毎月1日に10分おきほとで、それぞれのFlowを予定時刻実行するようにします。
※100件のデータ処理を完了するのに10分で足りるかは試してみないとなんとも言えません。もっと長くした方が良いかもしれませんし、もっと早く完了できるかもしれません。
なお、
フローを複数作成するのではなく、
1つのフロー中で完結する方法もあります。
For Eachのthenからwait 10分に繋ぎ、
そこから際にGet Customer Dataを繋いで、
同様の処理を十分に顧客全員を更新できる数まで増やします。
このやり方の問題01
顧客数が多すぎる場合、各処理を作ったり複製したりするだけでも大変。
このやり方の問題02
フローを複製する方法も、フローの中で処理を複製する方法も、
繰り返し処理の中にミスがあるとき、
全てのフローや処理を修正する必要があり大変。
このやり方の問題03
問題、というはわけではないのですが、
顧客タグも併用するため、
対象のメタフィールドを更新する処理に、
顧客タグの編集処理を必ず加える必要があり、
少し手間です。
そのようなわけで、
Matrixifyなどでの一括更新をおすすめしています。
ご参考まで。
(キュー田辺)
成功
興味があり調査してみました。
結論から申しますと、
Matrixifyなどを使用してMetafeildを一括変更した方が良いかもしれません。
https://apps.shopify.com/excel-export-import?locale=ja
さて、
「Shopifyの自動化(オートメーション)」というのはShopify Flowのことを指していると思われますので、Shopify Flowで実現しようとするとどうなるかについても回答いたします。
しかし上述の通り、Shopify Flowで実現するより、
Matrixifyなどで一括変更した方が簡単かつ間違いがないと考えています。
なお、これから説明する内容は動作確認をしておりませんので、
何か不具合がある可能性もあります。
まず、下図のようなフローを組みます。
1. トリガー: Scheduled time
https://help.shopify.com/ja/manual/shopify-flow/reference/triggers/scheduled-time
毎月1日に実行するよう設定します。
2. アクション: Get customer data
https://help.shopify.com/ja/manual/shopify-flow/reference/actions/get-customer-data
下図のように設定をします。
「クエリを編集」に設定されている
tag_not: '_taget_metafield:false'
が今回の設定の肝になります。
「顧客データの取得」は、データの絞り込みにメタフィールドを利用できません。
そのため、メタフィールドと顧客タグの両方に値を埋め込むことで絞り込みを行います。
3. 繰り返し処理: For each loop (iterate)
3つ作成しますが、内容はどれも下図と同じです。
4. それぞれの繰り返し処理において下記を実行します。
このフローによって、
顧客タグ「_taget_metafield:false」を持たない顧客(逆にいうと、「_taget_metafield:true」を持っている顧客)を100件絞り込み、そのそれぞれの顧客に対して、
メタフィールドをfalseにアップデートしつつ、
顧客タグ「_taget_metafield:true」を外し、
顧客タグ「_taget_metafield:false」を追加する、
という処理をします。
(※本来、メタフィールドのアップデートが完了したら、顧客タグの編集を行う、というフローを組みたかったのですが、仕様上断念しました。)
さて、
このやり方の問題点の1つとして、Get Customer Dataは、
100件の顧客データしか扱えない事が挙げられます。
もし、質問者様のストアに100目以上の顧客が登録されている場合、
フローを複製し、毎月1日に10分おきほとで、それぞれのFlowを予定時刻実行するようにします。
※100件のデータ処理を完了するのに10分で足りるかは試してみないとなんとも言えません。もっと長くした方が良いかもしれませんし、もっと早く完了できるかもしれません。
なお、
フローを複数作成するのではなく、
1つのフロー中で完結する方法もあります。
For Eachのthenからwait 10分に繋ぎ、
そこから際にGet Customer Dataを繋いで、
同様の処理を十分に顧客全員を更新できる数まで増やします。
このやり方の問題01
顧客数が多すぎる場合、各処理を作ったり複製したりするだけでも大変。
このやり方の問題02
フローを複製する方法も、フローの中で処理を複製する方法も、
繰り返し処理の中にミスがあるとき、
全てのフローや処理を修正する必要があり大変。
このやり方の問題03
問題、というはわけではないのですが、
顧客タグも併用するため、
対象のメタフィールドを更新する処理に、
顧客タグの編集処理を必ず加える必要があり、
少し手間です。
そのようなわけで、
Matrixifyなどでの一括更新をおすすめしています。
ご参考まで。
(キュー田辺)
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024