商品ごとに注文完了メールの文章を変える方法

イベント商品が注文されたときはメールの文章が変わるように、商品タグを使って条件分岐を書いてみたのですが、メールに反映されません。

過去の記事等を参考に書いたのですが、コードが間違っているのでしょうか?

(追加したコードは

の部分です。)

解決方法についてご存じの方がいらっしゃいましたらご教授いただけますと幸いです。

宜しくお願い致します。

{% capture email_title %}ご購入いただきありがとうございました! {% endcapture %}
{% capture email_body %}

      
  {% if product.tags contains 'クリスマス' %}
   ### メリークリスマス
  {%- endif -%}
  
  {% if product.tags contains 'ひな祭り' %}
   ### ひな祭り
  {%- endif -%}
    

  {% if requires_shipping %}
  {% case delivery_method %}
      {% when 'pick-up' %}
        ご注文の受取の準備が整いましたら、こちらのメールでお知らせいたします。
      {% when 'local' %}
        {{ customer.last_name }}様、ご注文の品を配達する準備を行っております。
      {% else %}
        {{ customer.last_name }}様、ご注文いただき、誠にありがとうございます。注文の発送準備を行なっております。商品が発送されましたら、Eメールにてお知らせいたします。
    {% endcase %}

購入データの構造はまずラインアイテムを見ないとどの商品かわからないので、

line_itemssubtotal_line_items のループで line を取得し、

line.product.tags のループで tag を取得できます。

※ヘルプには line.product.tags の記述はないのですが、構造的にはあるはずです。

▼LINE ITEM PROPERTIES

https://help.shopify.com/ja/manual/orders/notifications/email-variables#line-item-properties

▼購入した商品のタグ取得例

{% for line in line_items %}
{% for tag in line.product.tags %}
#{{ tag }}
{% endfor %}
{% endfor %}

ご連絡いただきありがとうございます!

取得例を参考にコードを入力してみたところ、

タグのテキストは表示されるようになったのですが

タグが3行表示されてしまいました。

1行だけ表示されれば十分なのですが、どうすればいいでしょうか?

もしわかれば教えていただきたいです…!

{% capture email_title %}ご購入いただきありがとうございました! {% endcapture %}
{% capture email_body %}

   
  {% for line in line_items %}
    {% for tag in line.product.tags %}
    
  {% if line.product.tags contains 'クリスマス' %}
   ### メリークリスマス
  {%- endif -%}   
      
  {% if line.product.tags contains 'ひな祭り' %}
   ### ひな祭り
  {%- endif -%}

   {% endfor %}
   {% endfor %}
 

単純な間違い探しです。あえて答えは言いませんので、配列が何を保持して、何を繰り返しているのかよく考えてみてください。

解決できました!ありがとうございました。

1 Like