Order Printer で 特定の商品タグごとに納品書を作成したい。

Order Printer で 特定の商品タグごとに納品書を作成したいと考えています。

背景

  • 一度の注文に対して複数回の配送があります。
  • そのため、配送ごとに配送した商品が分かるように、配送ごとに商品が一覧化された納品書を作成したいと考えています。

現状検討している方針

  • 現状、配送ごとに納品書を作成する事ができないため、OrderPrinterを活用する
  • OrderPrinterで配送ごとに納品書を分ける事ができないため、商品に配送時期を示すタグとして”DEL-01”などのタグを付与する。
  • OrderPrinterのテンプレートにて、商品タグごとに商品を表示・合計金額を計算する

現状の問題点

  • 商品のタグをDEL-の接頭辞がついているものだけを表示したいができない。
  • 以下の様なコードを記載しているが、商品タグごとに合計料金を計算する事ができない。
{% for line in line_items %}
  {% for tag in line.product.tags %}
    {% if tag == 'DEL-01' %}
      {% assign total_price_for_tag_DEL01 = total_price_for_tag_DEL01 + line.price * line.quantity %}
    {% elsif tag == 'DEL-02' %}
      {% assign total_price_for_tag_DEL02 = total_price_for_tag_DEL02 + line.price * line.quantity %}
    {% elsif tag == 'DEL-03' %}
      {% assign total_price_for_tag_DEL03 = total_price_for_tag_DEL03 + line.price * line.quantity %}
    {% endif %}
    <!-- 省略 -->
  {% endfor %}

是非皆様の知見

@shogof

ご質問いただいているソースコードですが、liquidでの四則演算と異なっておりますので
ご希望の動きをしていないと思われます。

下記に調整を加えたコードを記載させていただきます。

{% for line in line_items %}
  {% for tag in line.product.tags %}
    {% if tag == 'DEL-01' %}
      {% assign total_price_for_tag_DEL01 = total_price_for_tag_DEL01 | plus:line.price | times:line.quantity %}
    {% elsif tag == 'DEL-02' %}
       {% assign total_price_for_tag_DEL02 = total_price_for_tag_DEL02 | plus:line.price | times:line.quantity %}
    {% elsif tag == 'DEL-03' %}
      {% assign total_price_for_tag_DEL03 = total_price_for_tag_DEL03 | plus:line.price | times:line.quantity %}
    {% endif %}
  {% endfor %}
{% endfor %}

上記コードの下部に下記コードを記載いただくとタグ毎の合計額がご確認いただけると思います。

total_price_for_tag_DEL01の合計

{{ total_price_for_tag_DEL01 | money }}

total_price_for_tag_DEL02の合計

{{ total_price_for_tag_DEL02 | money }}

total_price_for_tag_DEL03の合計

{{ total_price_for_tag_DEL03 | money }}

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