# Order printerで返金額を差し引いた合計金額を表示させたい

**URL:** <https://community.shopify.com/t/order-printer/198181>\
**Category:** 技術的なQ＆A\
**Created:** [March 9, 2023, 6:52am UTC](https://community.shopify.com/t/order-printer/198181 "2023-03-09T06:52:26Z")\
**Posts on this page:** 4\
**Page:** 1

## AI-generated summary

Order Printerで明細書作成時、返金額を差し引いた最終合計金額の表示方法について質問が投稿されました。

**問題点:**
- `total_paid`を使用すると、銀行振込など未払いの場合に0円と表示される
- `total_price`から返金額を差し引く処理を実装したが、返金がない場合に表示されない

**解決策:**
Qcoltd氏から、Order Printerの`total_price`は通常のShopify Liquidとは仕様が異なり、既に返金額が差し引かれた金額が表示されることが指摘されました。

**検証結果:**
開発環境でのテストでは、`total_price`単体で返金後の金額が正しく表示されることを確認。ただし、質問者の環境では`total_price`に返金額が反映されない可能性があり、環境による動作の違いが示唆されています。

**推奨アプローチ:**
シンプルに`{{ total_price | money }}`を使用する方法が提案されましたが、環境差異により追加検証が必要な状況です。

<div class="post-metadata">

**Author:** ![withD](https://avatars.discourse-cdn.com/v4/letter/w/8dc957/32.png) [@withD](https://community.shopify.com/u/withD)\
**Post date:** [March 9, 2023, 6:52am UTC](https://community.shopify.com/t/order-printer/198181/1 "2023-03-09T06:52:26Z")

</div>

Order printerで明細書を作成しております。

商品価格・送料・割引・返金などを加味した最終的な合計金額を表示させたいです。

total\_paidでこれらをひっくるめた支払金額が表示をされるのですが、それだと銀行振り込み等未払いの場合、表示額が０円になってしまいます。

返金があった場合に、total\_priceから返金額を差し引ければ解決しそうなのですが、上手くいきません。

下記のような書き方をすると、返金があった場合はきちんと表示されますが、返金が無かった場合は表示がされません。

```auto
{% for transaction in refund_transactions %}
  <tr>
    <td><strong>合計:</strong></td>
    <td><strong>{{total_price |minus: for transaction in refund_transactions.amount | money }}</strong></td>
  </tr>
{% endfor %}

```

プログラミングの知識がないので手探り状態です。

お知恵を拝借できれば幸いです。

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

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [March 16, 2023, 1:23pm UTC](https://community.shopify.com/t/order-printer/198181/2 "2023-03-16T13:23:37Z")

</div>

total\_priceは返金額を考慮した金額が表示されると思いますので、

シンプルに、

```markup

    **合計:**
    **{{ total_price | money }}**
  

```

としてはいかがでしょうか？

十分に検証していないため、

質問者様の状況ですとうまくいかないのかもしれませんね。

その場合は、もう少し状況をお教えいただけますと、

他のやり方も考えられるかもしれません。

(解決のお約束はできませんが。。。)

ご参考まで。

(キュー田辺)

---

<div class="post-metadata">

**Author:** ![withD](https://avatars.discourse-cdn.com/v4/letter/w/8dc957/32.png) [@withD](https://community.shopify.com/u/withD)\
**Post date:** [April 12, 2023, 9:56am UTC](https://community.shopify.com/t/order-printer/198181/3 "2023-04-12T09:56:02Z")

</div>

ご回答頂いていたにもかかわらずご返信が遅れ申し訳ありません。

認識が誤っていたら申し訳ないのですが、返金額が反映されるのはtotal\_paid ではないでしょうか？

total\_priceだと返金額は反映されませんでした。

（多分初期設定のinvoiceのテンプレートもtotal\_paidになっているかと思います）。

order printerで印刷したものを注文書として管理、発送完了をしたらそのまま紙を経理に回して売り上げを計上してもらっています。

ただ、銀行振り込みなど未払いのものはtotal\_paidだと合計金額が0円と表記されてしまうので、total\_priceで合計金額を表示させ、その額を計上してもらっていました。

ただ、返金などがあった場合にその額が反映されないので、これをどうにか出来ないかと思っております。

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [April 12, 2023, 10:50am UTC](https://community.shopify.com/t/order-printer/198181/4 "2023-04-12T10:50:13Z")

</div>

@withD 様

おっしゃる通り、

[https://shopify.dev/docs/api/liquid/objects/order#order-total\_price](https://shopify.dev/docs/api/liquid/objects/order#order-total_price)

```markup
The total price is calculated before refunds are applied.

```

orderのtotal\_priceは、

liquidの仕様としては返金が適用される前の金額が出力されます。

しかし、

Order Printerのliquidは、

Shopify上でのliquidとは少し仕様が異なるようでして、

返金額を差し引いた金額が表示されるようです。

下記のコードを開発環境で試したのですが、

```markup
{% assign = total_refund_amount = 0 %}
{% for transaction in refund_transactions %}
  {% assign total_refund_amount = total_refund_amount | plus: transaction.amount %}
{% endfor %}
{{ total_price | money }}
  
    **合計:**
    **{{ total_price | minus: total_refund_amount | money }}**
  

```

2,200円の商品と、

22,000円の商品を購入した注文を、

発送した後、

22,000円の商品を返金した場合、

下図のように出力されました。

 ![screenshot_20230412_03.png](https://canada1.discourse-cdn.com/shopifyforum/original/3X/2/7/27ebdcd90c43247a10fcbf70b81aa8482219cf79.png)

1つ目の¥2,200がtotal\_priceで、

2つ目の¥-19,800がtotal\_priceから返金総額を差し引いた(¥2,200 - ¥22,000 = -¥19,800)ものです。

さて、

私が開発環境で試しているため、

本番運用しているストアと挙動が異なる可能性もありますので、

total\_priceの仕様については一旦横に置かせていただきまして、

返金額の総額は、上記のコードのうち、下記の部分で計算できるはずです。

```markup
{% assign = total_refund_amount = 0 %}
{% for transaction in refund_transactions %}
  {% assign total_refund_amount = total_refund_amount | plus: transaction.amount %}
{% endfor %}

```

上記のコードより下で、

{{ total\_refund\_amount | money }}

と記載することで返金額の総額が表示されるはずです。

上記コードを利用して下記のようなコードを組むと、

返金があった場合にのみ表示されるセクションを作れます。

```markup
{% assign = total_refund_amount = 0 %}
{% for transaction in refund_transactions %}
  {% assign total_refund_amount = total_refund_amount | plus: transaction.amount %}
{% endfor %}

{% if total_refund_amount != 0 %}
  返金があった際に下記を表示。
　　　　返金額: {{ total_refund_amount | money }}
{% endif %}

```

もし、

質問者様の環境では、

total\_priceが総合計を出力するようでしたら、

{{ total\_price | minus: total\_refund\_amount | money }}

で、返金額を差し引いた金額が表示されるはずです。

ご参考まで。

(キュー田辺)
