moneyフィルタと価格表示
価格の内部表現を理解し、money系フィルタで正しい通貨表示ができる
最終確認: 2026-09
解説
受託の現場でなぜ必要か: この回では、価格の内部の持ち方を理解し、money系のフィルタで正しい通貨表示ができるようになります。
受託では、価格を自前で整形したテーマが多通貨で壊れるので、ここを自作しないことが壊れないテーマの条件です。
価格はどう保存されているか
product.priceは、1,000円なら100000です(最小単位×100)。
JPYに小数は無いですが、内部の表現は同じです。
自前で`divided_by: 100`して表示してはいけません。
money系フィルタとは
money(¥1,000)/ money_with_currency(¥1,000 JPY)/ money_without_currency / money_without_trailing_zerosの4つです。
書式はストアの通貨設定に従います。
設定は管理画面の「設定 › 一般」にある「ストアのデフォルト」から変えます(場所とラベルは公式ヘルプを参照)。
セール表示は、compare_at_price > priceのときだけ取り消し線を出し、両方をmoneyで整形します。
多通貨で壊れない理由
表示する通貨は、買い手の設定で切り替わります。moneyフィルタは自動で追従しますが、自作の表示は追従しません。
通貨記号・桁区切り・小数の有無は、ストアの設定とmoneyフィルタに任せます。
この演習環境
moneyはダミーストアの書式(¥{{amount_no_decimals}})で整形しています。
本物は、Shopifyのサーバーがストアの設定で整形します。
※ ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。