現在、決済サービスがテストモードにしてあるのですが、
設定 > 配送と配達 > 明細表 > 明細表のテンプレート を編集中です。
下記のように記載したのですが、注文された商品の各価格・小計が表示されません。商品画像・商品名・数量は表示されています。これは決済がテストモードだからでしょうか?
{% for line_item in line_items_in_shipment %}
{% if line_item.image != blank %}Shopifyの明細票テンプレート編集で、出荷明細のline_items_in_shipmentを使うと商品画像・商品名・数量は出る一方、line_item.priceやline_item.line_priceでは価格・小計が表示されない問題が扱われている。決済のテストモードが原因かという問いに対し、テストモード起因とはされていない。
提示された回避策は、order.line_itemsをループし、SKUが一致する商品からfinal_priceを取得して表示する方法。これにより単価の出力はできたと報告されている。
その後の論点は未解決で、同一商品を複数購入した場合の小計がfinal_line_priceでも単価のままになり、order.line_items_subtotal_price、order.shipping_price、order.total_priceでも「数量を反映しない商品合計+送料」になってしまう点が新たな課題として残っている。Liquid(Shopifyのテンプレート記法)で、どのオブジェクト/プロパティを参照すべきかが未回答のまま。
現在、決済サービスがテストモードにしてあるのですが、
設定 > 配送と配達 > 明細表 > 明細表のテンプレート を編集中です。
下記のように記載したのですが、注文された商品の各価格・小計が表示されません。商品画像・商品名・数量は表示されています。これは決済がテストモードだからでしょうか?
{% for line_item in line_items_in_shipment %}
{% if line_item.image != blank %}こちらで表示できます。
{% assign final_price = nil %}
{% for item in order.line_items %}
{% if item.sku == line_item.sku %}
{% assign final_price = item.final_price %}
{% endif %}
{% endfor %}
{% if final_price %}
{{ final_price | money }}
{% endif %}
▼line_itemオブジェクト
https://shopify.dev/docs/themes/liquid/reference/objects/line_item
ご回答ありがとうございます。無事商品の価格は出力できました。
ですが、同一商品を複数個購入したときの金額(価格×個数)を出力するために下記のように記載したのですが、商品の価格しか表示されないのはなぜでしょうか?
例:商品A(1個1000円) 3個 を購入した場合でも → 小計:1000円
{% assign final_line_price = nil %}
{% for item in order.line_items %}
{% assign final_line_price = item.final_line_price %}
{% endfor %}
{% if final_line_price %}
小計:{{ final_line_price | money }}
{% endif %}
また、複数個買った場合に、下記のように記載しても、商品金額合計が複数個の金額ではなく各商品1個分の金額の合計が出力されます。そして、合計金額=商品金額合計(各商品1個分の合計)+送料になっているのですが、何が問題でしょうか?
例:商品A(1個1000円) 3個 を購入した場合でも → 商品合計金額:1000円 送料:500円 合計金額:1500円
商品金額合計:{{ order.line_items_subtotal_price | money }}
送料:{{ order.shipping_price | money }}
合計金額:{{ order.total_price | money }}
お手数おかけしますが、教えていただければ幸いです。