if関数について、一定の金額以上の場合に表示させたい

Topic summary

課題: OrderPrinterで代引き決済手数料を納品書に表示したい。条件は税込30,000円未満で400円、30,000円以上60,000円未満で500円。

問題点:

  • cart.total_price変数が正しく動作せず、金額判定が機能しない
  • 30,000円未満の購入でも400円が表示される
  • 合計金額の表示が太字になってしまう

解決策:

  • cart.total_priceの代わりにtotal_price変数を使用
  • total_priceは100倍された値なので、divided_by: 100で除算して比較
  • 手数料表示は{{ total_price | plus: 40000 | money }}のように100倍の値(40000、50000)で加算
  • if文の条件も100倍の値(30000、60000)で比較

結果: 質問者は提案されたコード修正により問題を解決。

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

初歩的ですみません。

orderprinterを使用しているんですが、納品書に代引き決済の場合の手数料を追記したいです。

※「代引き手数料の場合」のコード部分は他の決済の場合の明細書と分けるので不要です

代引き決済手数料として、税込で0~30,000円未満なら400円、30,000円以上〜60,000円未満なら500円かかります。

※60,000以上は代引き対応していませんが、それは別途対応しているので不要です

orderprinterで作成する明細表で、金額の部分に以下のように設定しています。

ーーーーーーーーーーーーー

お支払い内訳

{% for discount in discounts %} {% endfor %}

{% if shipping_address %}

{% endif %}


{% assign total_price_with_tax = cart.total_price | divided_by: 100 %}







小計 (税込): {{ subtotal_price | money }}
割引コード "{{ discount.code }}" {{ discount.savings | money }}
(内消費税): {{ tax_price | money }}
送料 (税込): {{ shipping_price | money }}
代引き決済手数料:
{% if total_price_with_tax < 30000 %}
¥400
{% elsif total_price_with_tax >= 30000 and total_price_with_tax < 60000 %}
¥500
{% endif %}
総合計 (税込):

{% if total_price_with_tax < 30000 %}
{{ total_price | plus: 400 | money }}
{% elsif total_price_with_tax >= 30000 and total_price_with_tax < 60000 %}
{{ total_price | plus: 500 | money }}
{% endif %}

ーーーーーーーーーーーーー

主に変更を加えている部分(問題になっている部分)が太字になります。

こちらで設定すると、

0~30,000円に関しては正しく400円と表記されますが、30,000円以上の買い物に対しても400円と表示されてしまいます。

また、合計金額で商品代+送料+代引き手数料をたした額を表示させたいんですが、商品代+送料+4円の合計額になってしまいます。

何か対処法はありますでしょうか。

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

@A_a11

{% assign total_price_with_tax = cart.total_price | divided_by: 100 %} 

こちらですが、

cart.total_priceは、値を返しているでしょうか?

{{ cart.total_price }} で、合計金額が出力されているかご確認ください。

もし、されていないようでしたら、下記のようにされると良いかと思います。

{% assign total_price_with_tax = total_price | divided_by: 100 %} 

上記で100で除算していることからも分かる通り、

total_priceは100倍された金額が入っていますので、

{% if total_price_with_tax < 30000 %}
{{ total_price | plus: 400 | money }}
{% elsif total_price_with_tax >= 30000 and total_price_with_tax < 60000 %}
{{ total_price | plus: 500 | money }}

は、

{% if total_price_with_tax < 30000 %}
{{ total_price | plus: 40000 | money }}
{% elsif total_price_with_tax >= 30000 and total_price_with_tax < 60000 %}
{{ total_price | plus: 50000 | money }}

とされると良いかと思います。

ご参考まで。

(キュー田辺)

解決しました!大変助かりました、

ありがとうございました。

1 Like