【Order Printer】割引がある場合の税区分ごとの対象金額取得について

Topic summary

課題: Order Printerで割引適用時に税区分(8%/10%)ごとの正確な対象金額が取得できない問題。

具体例:

  • 8%商品¥5,000、10%商品¥10,440(20%割引適用)の場合
  • 消費税額は正しく取得できる(8%:¥370、10%:¥850)
  • しかし対象商品金額は割引前の¥10,440が表示され、理想の¥9,352にならない

試したこと:

  • line_item.line_priceを使用したコードを作成
  • 割引なしの場合は正常に動作
  • line_item.original_priceも検討したが、line_priceと同じ値が出力され改善せず

求めている情報:

  • 割引後の商品金額を税区分ごとに正確に取得する方法
  • 代替アプローチがあれば教えてほしい

ステータス: 解決策を募集中

Summarized with AI on November 13. AI used: claude-sonnet-4-5-20250929.

Order Printerで自動ディスカウントまたはクーポンにより、割引された商品の金額を取得する方法を教えてください。目的は、税区分ごとの合計金額の取得するためです(以下のようなイメージ)。

8%対象商品:¥○○○○ 消費税:¥○○○

10%対象商品:¥○○○○ 消費税:¥○○○

上記を実現するため、Order Printerで下記のコードを作成しており、割引(自動ディスカウントまたはクーポン)がない場合だと問題ありません。

しかし、割引があると消費税の方は取得できましたが、対象商品の金額は割引前の金額を合計してしまい、想定通りの金額となりません。

例えば、8%商品の金額が¥5,000(税込)、10%商品の金額が¥10,440(税込)で、10%商品が20%割引だった場合は、以下のようになります。

<理想>

8%対象商品:¥5,000 消費税:¥370

10%対象商品:¥9,352 消費税:¥850

<実際>

8%対象商品:¥5,000 消費税:¥370

10%対象商品:¥10,440 消費税:¥850

{% assign tax8_total = 0 %}
{% assign tax8_tax = 0 %}
{% assign tax10_total = 0 %}
{% assign tax10_tax = 0 %}

{% for line_item in line_items %}
  {% for tax in line_item.tax_lines %}
    {% if tax.rate == 0.1 %}
      {% assign tax10_total = tax10_total | plus: line_item.line_price %}
      {% assign tax10_tax = tax10_tax | plus: tax.price %}
    {% else %}
      {% assign tax8_total = tax8_total | plus: line_item.line_price %}
      {% assign tax8_tax = tax8_tax | plus: tax.price %}
    {% endif %}
  {% endfor %}
{% endfor %}
  • tax8_total→消費税8%の対象商品の合計金額
  • tax8_tax→消費税8%の消費税の合計金額
  • tax10_total→消費税10%の対象商品の合計金額
  • tax10_tax→消費税10%の消費税の合計金額

line_item.original_priceを使えば取得できると考えましたが、line_item.line_priceと同じ値が出力されるため、結果は変わりませんでした。

その他の方法も含め、税区分ごとに割引後の金額を取得する方法を教えて頂けると幸いです。