FROM CACHE - jp_header
解決済

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

ponuco
Shopify Partner
33 1 2

商品のタグを用いて、イベント商品を購入いただいた方には注文完了メールの文章がイベント商品用の文章に変わるようコードを設定しました。

これで大丈夫かと思っていたのですが、イベント商品を複数購入していただいた場合、その数の分だけ文章が表示されてしまうことに気づきました。

色々調べてみました(forloopオブジェクトなど試してみましたがダメでした)が、文章を1回表示させたら2回目以降は表示させないといったような設定をどのように指定すればいいのかわかりませんでした。

どなたかご教示いただけますと幸いです。

よろしくお願いいたします。

 

 

  {% for line in line_items %}
  {% for tag in line.product.tags %}   
     {% if tag contains 'クリスマス' %}
        <h3>Happy Merry Christmas!</h3>
        クリスマスケーキをご注文いただき誠にありがとうございます。
        <br>テストテスト
        {% elsif tag contains 'ひな祭り' %}
        <h3>3月3日はひな祭り</h3>
        ひな祭りケーキをご注文いただき誠にありがとうございます。 
     {% endif %}
  {% endfor %} 
  {% endfor %}

 

 

 

1 件の受理された解決策

株式会社フルバランス
Shopify Partner
1466 519 651

成功

Ponucoさま

 

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

ループの処理って少し複雑なところがありますよね。。

 

いただいているコードですが、以下のように変更されてみてはいかがでしょうか?

{% assign viewText = false %} <!-- テキストが表示されたかどうか判断する変数を定義、初期値はfalse -->

{% for line in line_items %}
    {% for tag in line.product.tags %}   
        {% if tag contains 'クリスマス' %}
            <h3>Happy Merry Christmas!</h3>
            クリスマスケーキをご注文いただき誠にありがとうございます。
            <br>テストテスト
            {% assign viewText = true %} <!-- テキストが表示されたため、値にtrueを入れる -->
        {% elsif tag contains 'ひな祭り' %}
            <h3>3月3日はひな祭り</h3>
            ひな祭りケーキをご注文いただき誠にありがとうございます。 
            {% assign viewText = true %} <!-- テキストが表示されたため、値にtrueを入れる -->
        {% endif %}
    {% endfor %} 

    {% if viewText == true %} <!-- 上の処理でテキストが表示された(true)とき -->
        {% break %} <!-- 「for line・・・」の処理を終了する -->
    {% endif %}
{% endfor %}

上記を参考に一度検証いただけますと幸いです。


ご参考になりましたでしょうか。
 
私たちの励みにもなりますので、
お役に立てていればBest Answerボタンを押して頂ければ嬉しいです。
 
分からない点があれば、またいつでもご連絡ください。
 
フルバランス 園畑

株式会社フルバランス(Shopify Experts)
Shopify専門のEC成長支援会社です。ストアの新規構築から運用や改善のサポートなどShopifyに関する幅広いサービスを行なっております。
ECの技術・実務・成長、お悩みのことがあれば、お気軽にご相談ください。
『すべてのブランドの特大成長エンジンを搭載する』 株式会社フルバランス

元の投稿で解決策を見る

2件の返信2

株式会社フルバランス
Shopify Partner
1466 519 651

成功

Ponucoさま

 

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

ループの処理って少し複雑なところがありますよね。。

 

いただいているコードですが、以下のように変更されてみてはいかがでしょうか?

{% assign viewText = false %} <!-- テキストが表示されたかどうか判断する変数を定義、初期値はfalse -->

{% for line in line_items %}
    {% for tag in line.product.tags %}   
        {% if tag contains 'クリスマス' %}
            <h3>Happy Merry Christmas!</h3>
            クリスマスケーキをご注文いただき誠にありがとうございます。
            <br>テストテスト
            {% assign viewText = true %} <!-- テキストが表示されたため、値にtrueを入れる -->
        {% elsif tag contains 'ひな祭り' %}
            <h3>3月3日はひな祭り</h3>
            ひな祭りケーキをご注文いただき誠にありがとうございます。 
            {% assign viewText = true %} <!-- テキストが表示されたため、値にtrueを入れる -->
        {% endif %}
    {% endfor %} 

    {% if viewText == true %} <!-- 上の処理でテキストが表示された(true)とき -->
        {% break %} <!-- 「for line・・・」の処理を終了する -->
    {% endif %}
{% endfor %}

上記を参考に一度検証いただけますと幸いです。


ご参考になりましたでしょうか。
 
私たちの励みにもなりますので、
お役に立てていればBest Answerボタンを押して頂ければ嬉しいです。
 
分からない点があれば、またいつでもご連絡ください。
 
フルバランス 園畑

株式会社フルバランス(Shopify Experts)
Shopify専門のEC成長支援会社です。ストアの新規構築から運用や改善のサポートなどShopifyに関する幅広いサービスを行なっております。
ECの技術・実務・成長、お悩みのことがあれば、お気軽にご相談ください。
『すべてのブランドの特大成長エンジンを搭載する』 株式会社フルバランス
ponuco
Shopify Partner
33 1 2

株式会社フルバランス 園畑様

 

ご確認いただきありがとうございます!

変数の定義が苦手なので、コメントにご説明を入れてくださりとても勉強になります。

 

検証いたしましたところ、下記のようにコードを分けたら反映できました!

 

ご教授いただき誠にありがとうございました。

 

 

{% assign viewText = false %} <!-- テキストが表示されたかどうか判断する変数を定義、初期値はfalse -->
  {% for line in line_items %}
  {% for tag in line.product.tags %}   
    {% if tag contains 'クリスマス' %}
      <h3 style="margin-bottom: 8px;">Happy Merry Christmas!</h3>
      クリスマスケーキをご注文いただき誠にありがとうございます。<br><br>
      {% assign viewText = true %} <!-- テキストが表示されたため、値にtrueを入れる -->
    {% endif %}
  {% endfor %} 
  {% if viewText == true %} <!-- 上の処理でテキストが表示された(true)とき -->
    {% break %} <!-- 「for line・・・」の処理を終了する -->
    {% endif %}
{% endfor %}

{% assign viewText = false %} <!-- テキストが表示されたかどうか判断する変数を定義、初期値はfalse -->
  {% for line in line_items %}
  {% for tag in line.product.tags %}   
    {% if tag contains 'ひな祭り' %}
      <h3 style="margin-bottom: 8px;">3月3日はひな祭り</h3>
      ひな祭りケーキをご注文いただき誠にありがとうございます。<br><br>
      {% assign viewText = true %} <!-- テキストが表示されたため、値にtrueを入れる -->
    {% endif %}
  {% endfor %} 
   {% if viewText == true %} <!-- 上の処理でテキストが表示された(true)とき -->
    {% break %} <!-- 「for line・・・」の処理を終了する -->
    {% endif %}
{% endfor %}