チェックアウトスクリプトのtotal_priceについて

Topic summary

テーマ:チェックアウトスクリプトの total_price が割引適用前後どちらの金額か。

背景・問題:Liquid テンプレートで {{ total_price | money_without_currency }} を使ったコンバージョン計測が、ディスカウントアプリ導入後に ASP 側で不具合報告。原因調査として total_price の定義を確認。

技術ポイント:

  • Liquid(Shopifyのテンプレート言語)での total_price は「割引適用後の合計」。
  • cart オブジェクトでは original_total_price(割引前)と total_price(割引後)が区別されている。
  • checkout オブジェクトへ引き継がれる際、total_price は対応通貨の最小単位(例:380.25 → 38025)に変換される。
  • money_without_currency は通貨記号なしで金額を表示。

参考:Shopify開発ドキュメントの cart と checkout の記載(リンク提示あり)。

結論・現在のステータス:total_price は割引後金額。投稿者も認識を確認し、感謝を表明。議論は解決済み。

Summarized with AI on February 7. AI used: gpt-5.

お世話になります.

コンバージョントラッキングのため,チェックアウトスクリプトに

{{ total_price | money_without_currency }}

を記述して計測していました.ところが,先日ディスカウントのアプリを入れたところ, ASPからうまく機能しなくくなったと報告されました.原因としてはtotal_priceが異なるということなのですが,ディスカウントを適用した場合,このtotal_priceは割引適用前の価格なのでしょうか?それとも割引後の合計でしょうか?

お手数おかけしますが,よろしくお願いします.

Sionworks 様

はじめまして、フルバランスのドウケと申します。

ご質問確認いたしました。

金額関連のプロパティが多くあり、わかりにくいですよね。

結論としては、total_priceは割引後の価格と推測します。

参考として、以下のページのとおり、cartオブジェクトのtotal_priceが割引後と記載があります。

(すぐ下の例で以下のようになっているのが確認できるかと思います。)

・original_total_price【割引前価格】が424.99

・total_price【割引後価格】380.25

https://shopify.dev/api/liquid/objects#cart

次に、cart情報がcheckoutオブジェクトに引き継がれ、total_priceが対応通貨の値に変換されています。

(こちらもすぐ下の例で、total_priceが38025と変換されていることが確認できるかと思います。)

https://shopify.dev/api/liquid/objects#checkout

よって、チェックアウトスクリプトと取得されるtotal_priceは割引後になるかと思います。

なにかヒントになりましたら幸いです。

私たちの励みにもなりますので、

お役に立てていればBest Answerボタンを押して頂ければ嬉しいです。

分からない点があれば、またいつでもご連絡ください。

お返事遅くなりましてすみません.

丁寧なご説明ありがとうございます.やはり割引適用後ですよね.

ありがとうございます!