FROM CACHE - jp_header

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

解決済

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

ponuco
Shopify Partner
34 1 2

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

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

(追加したコードは<div>〜</div>の部分です。)

 

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

宜しくお願い致します。

 

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

    <div style="margin-top:24px;">  
  {% if product.tags contains 'クリスマス' %}
   <h3>メリークリスマス</h3>
  {%- endif -%}
  
  {% if product.tags contains 'ひな祭り' %}
   <h3>ひな祭り</h3>
  {%- endif -%}
    </div>

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

 

1 件の受理された解決策

_osamu_iwasaki_
Shopify Partner
188 47 194

成功

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

line_items か subtotal_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 %}

元の投稿で解決策を見る

4件の返信4

_osamu_iwasaki_
Shopify Partner
188 47 194

成功

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

line_items か subtotal_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 %}

ponuco
Shopify Partner
34 1 2

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

 

取得例を参考にコードを入力してみたところ、<p>タグのテキストは表示されるようになったのですが

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

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

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

 

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

 <div style="margin-top:24px;">  
  {% for line in line_items %}
    {% for tag in line.product.tags %}
    
  {% if line.product.tags contains 'クリスマス' %}
   <h3>メリークリスマス</h3>
  {%- endif -%}   
      
  {% if line.product.tags contains 'ひな祭り' %}
   <h3>ひな祭り</h3>
  {%- endif -%}

   {% endfor %}
   {% endfor %}
 </div>

 

スクリーンショット 2022-08-26 18.30.16.png

_osamu_iwasaki_
Shopify Partner
188 47 194

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

ponuco
Shopify Partner
34 1 2

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