Liquid、JavaScriptなどに関する質問
各商品にバリエーションを設定しており、注文が入ったときにスタッフに注文内容の通知メールを配信しています。
・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回入ってしまっている…)
素人の質問で申し訳ないのですが、理想通りに表示させる方法はないでしょうか?
教えていただけると嬉しいです。
よろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
記載いただいているコードを拝見したところ、
{% 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 %}
---------------------
ご参考まで。
(キュー小坂)
成功
記載いただいているコードを拝見したところ、
{% 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 %}
---------------------
ご参考まで。
(キュー小坂)
丁寧に教えていただきありがとうございます!
早速試したところ、希望通りになりました!
ありがとうございました!
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024