FROM CACHE - jp_header

注文通知メールで商品タイトルとバリエーション名を箇条書きにしたい

解決済

注文通知メールで商品タイトルとバリエーション名を箇条書きにしたい

n_ogawa3
遊覧客
21 0 6

各商品にバリエーションを設定しており、注文が入ったときにスタッフに注文内容の通知メールを配信しています。

・ShopifyFlowにて設定

・ShopifyのプランはBasicです

 

理想としては通知メールの本文(テキストカラーは関係ないです)を

---------------------

■注文番号:*******

■購入した商品

 ●商品名A

  ・バリエーションa-2 / バリエーションb-1 × 〇個

  ・バリエーションa-3 / バリエーションb-4 × 〇個

 ●商品名B

  ・バリエーションa-1 / バリエーションb-2 × 〇個

 ●商品名C

  ・バリエーションa-1 / バリエーションb-1 × 〇個

  ・バリエーションa-2 / バリエーションb-1 × 〇個

---------------------

のように表示させたいです。

 

現状以下のように設定しているのですが、

■注文番号:{{order.name}}
---------------------
{% for lineItems_item in order.lineItems %}
●  {{lineItems_item.title}}
{% for lineItems_item in order.lineItems %}
  ・{{ lineItems_item.variant.title }}  ×  {{lineItems_item.quantity}}  
{% endfor %}
{% endfor %}
---------------------

結果は、

---------------------

■注文番号:*******

■購入した商品

 ●商品名A

  ・バリエーションa-2 / バリエーションb-1 × 〇個

  ・バリエーションa-3 / バリエーションb-4 × 〇個

 ●商品名A

  ・バリエーションa-2 / バリエーションb-1 × 〇個

  ・バリエーションa-3 / バリエーションb-4 × 〇個

 ●商品名B

  ・バリエーションa-1 / バリエーションb-2 × 〇個

 ●商品名C

  ・バリエーションa-1 / バリエーションb-1 × 〇個

  ・バリエーションa-2 / バリエーションb-1 × 〇個

 ●商品名C

  ・バリエーションa-1 / バリエーションb-1 × 〇個

  ・バリエーションa-2 / バリエーションb-1 × 〇個

---------------------

のように、購入したバリエーションの数を繰り返されてしまいます…。

(バリエーションが2パターンある商品A商品Cが2回入ってしまっている…)

 

素人の質問で申し訳ないのですが、理想通りに表示させる方法はないでしょうか?

教えていただけると嬉しいです。

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

 

1 件の受理された解決策

Qcoltd
Shopify Partner
1059 435 427

成功

@n_ogawa3

 

記載いただいているコードを拝見したところ、

{% for lineItems_item in order.lineItems %}

のループの中でもう一回、

{% for lineItems_item in order.lineItems %}

が入っているため、二重にループしているのではとお見受けできます。

 

下記のようにコードを変更いただければ、ご希望の処理になるのではと思われます。

※深くコードのテストはしておりませんので、使用の際はご確認の上ご利用ください。

 

■注文番号:{{order.name}}
---------------------
■購入した商品
{% assign previous_product_title = '' %}
{% for lineItems_item in order.lineItems %}
  {% if lineItems_item.title != previous_product_title %}
    {% assign previous_product_title = lineItems_item.title %}
    ● {{ lineItems_item.title }}
  {% endif %}
  ・{{ lineItems_item.variant.title }} × {{ lineItems_item.quantity }}
{% endfor %}
---------------------

 

 

ご参考まで。

(キュー小坂)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
私たちについて: https://web.q-co.jp/ テックブログ: https://techlab.q-co.jp/

元の投稿で解決策を見る

2件の返信2

Qcoltd
Shopify Partner
1059 435 427

成功

@n_ogawa3

 

記載いただいているコードを拝見したところ、

{% for lineItems_item in order.lineItems %}

のループの中でもう一回、

{% for lineItems_item in order.lineItems %}

が入っているため、二重にループしているのではとお見受けできます。

 

下記のようにコードを変更いただければ、ご希望の処理になるのではと思われます。

※深くコードのテストはしておりませんので、使用の際はご確認の上ご利用ください。

 

■注文番号:{{order.name}}
---------------------
■購入した商品
{% assign previous_product_title = '' %}
{% for lineItems_item in order.lineItems %}
  {% if lineItems_item.title != previous_product_title %}
    {% assign previous_product_title = lineItems_item.title %}
    ● {{ lineItems_item.title }}
  {% endif %}
  ・{{ lineItems_item.variant.title }} × {{ lineItems_item.quantity }}
{% endfor %}
---------------------

 

 

ご参考まで。

(キュー小坂)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
私たちについて: https://web.q-co.jp/ テックブログ: https://techlab.q-co.jp/
n_ogawa3
遊覧客
21 0 6

丁寧に教えていただきありがとうございます!

早速試したところ、希望通りになりました!

ありがとうございました!