注文メールをコレクション別に出し分けしたい

現在、注文完了メールをデフォルトの機能を利用して送信しています。

これを、商品によって送る内容を変えたいです。

商品は2パターンあり、それぞれのコレクションに追加しています。

商品A コレクション1

商品B コレクション2

というように、コレクションと商品は1:1の関係です。

顧客は、商品AとBを購入する可能性もありますが、その場合は、

商品A用のメールとB用のメールの2通が送信される仕様を想定しています。

liquidは初心者ですが、頑張って実装したいと思っています。

ご教示いただけましたら幸いです…!

@track さま、以前は大変わかりやすくご教示いただきましてありがとうございました。
よろしければまたお力添えいただけますと幸いです。

Yuka_mさま

はじめまして、フルバランスの渡邉です。

ご質問を確認いたしました。

通知メールのカスタマイズって、コードとか少しややこしい部分がありますよね。

一例ですが、以下のように分岐させるのはいかがでしょうか?

{% assign has_item_a = false %}
{% assign has_item_b = false %}
              
 {% for line in subtotal_line_items %}
   {% if line.title contains '商品Aのタイトル' %}
    {% assign has_item_a = true %}
   {% endif %}
 {% if line.title contains '商品Bのタイトル' %}
    {% assign has_item_b = true %}
  {% endif %}
 {% endfor %}
              
{% if has_item_a and has_item_b %}
  

商品Aと商品Bの両方が含まれている場合に表示するテキスト

{% elsif has_item_a %}
  

商品Aが含まれている場合に表示するテキスト

{% elsif has_item_b %}
  

商品Bが含まれている場合に表示するテキスト

{% else %}
  

{{ email_body }}

{% endif %}

仕組みとしては、for line in subtotal_line_itemsで注文に含まれる全商品を取得し、

商品Aが入ってたらhas_item_aという変数をtrueに、商品Bが入ってたらhas_item_bをtrueにします。

そのあとはhas_item_aとhas_item_b両方がtrueだったらこのテキスト、どちらかがtrueだったら別のテキスト、AもBも含まれない場合はデフォルトの{{ email_body }}で指定したテキストを表示します。

参考:

通知メールで使用可能なliquid変数

https://help.shopify.com/ja/manual/orders/notifications/email-variables#part-037871c9c4b5cc05

ご参考になりましたら幸いです。

私たちの励みにもなりますので、
お役に立てていればBest Answerボタンを押して頂ければ嬉しいです。

分からない点があれば、またいつでもご連絡ください。

フルバランス 渡邉

1 Like