注文確認メールのカスタマイズ

AI-generated summary

Riseテーマの商品詳細ページに追加したカスタム項目「のしの有無」「名入れ」を、注文確認メールの各商品の「商品名×個数」の下にも表示したい、という質問です。商品ページでは properties[...] として追加し、カートと注文管理画面にはすでに表示できていました。

回答では、注文確認メールの該当箇所の直下に line_item.properties をループするLiquidコードを追加する方法が提示されました。

  • p.first:項目名
  • p.last:入力値
  • 空の値は if p.last != blank で非表示

挿入例:

  • {% for p in line_item.properties %}
  • {{ p.first }}:{{ p.last }}

その後、質問者から「同じ方法で既に解決済み」との報告があり、結論としてはこの方法で解決済みです。未解決点は特に残っていません。

Riseを使用しています。

商品詳細ページに「のしの有無」「名入れ」を追加したく、
snippets/buy-buttons.liquidのカートに追加するボタンの上に
<label> <input type="checkbox" name="properties[{{ noshi_label }}]" value="{{ noshi_available }}"> {{ noshi_label }} </label>

<label>{{ ‘gift_settings.name’ | t }}:</label>
<input type="text" name="properties[{{ 'gift_settings.name' | t }}]" placeholder="{{ 'gift_settings.name_placeholder' | t }}">

このように挿入し、カート、注文管理には表示されています。
お客さんの注文確認メールの”商品名×個数”の下に表示されるようにしたく、

<span class="order-list__item-title">{{ line_title }}&nbsp;&times;&nbsp;{{ line_display }}</span><br/>

上記のコードの下に挿入すればいいことまでは検討がつくのですが、
ここに具体的にどんなコードを入れればいいのか分からず困っています。

どなたか教えていただけませんでしょうか。
よろしくお願いいたします。

@user1719 様

すでに解決されているかもしれませんが、メール文に下記処理を追加すると解決するかもしれません。

{% for p in line_item.properties %}
  {% if p.last != blank %}
    <div>
      {{ p.first }}:{{ p.last }}
    </div>
  {% endif %}
{% endfor %}

説明

  • line_item.properties には、properties[〜] として追加した「のし」「名入れ」などがすべて入っています。
  • p.first が「項目名(例:のし、名入れ)」
    p.last が「入力された値(チェックの有無や入力文字)」に相当します。
  • 値が空の場合は表示しないように if p.last != blank を付けています。

挿入位置について
ご提示の下記コード の すぐ下に、上記の for 文を追加してください。

<span class="order-list__item-title">{{ line_title }}&nbsp;&times;&nbsp;{{ line_display }}</span><br/>

ご参考まで。
(キュー小坂)

お答えいただきありがとうございます!!

既に同じ方法で解決済みでしたが、聞きっぱなしは良くないですね :sweat_smile:
同じ問題を抱えた方のために返信をつけさせていただきます。