数値・日付フィルタ
数値計算と日付整形をフィルタで行い、割引率や日付表示を実装できる
最終確認: 2026-09
解説
受託の現場でなぜ必要か: この回では、数値の計算と日付の整形をフィルタで行い、割引率や日付の表示を作れるようになります。
受託では、「◯% OFF」の表示と記事の日付の整形が、どちらも改修で頻出です。
計算のフィルタ
plus / minus / times / divided_by / moduloで計算します。
`divided_by`は両方が整数だと整数除算になります(7 | divided_by: 2は3)。
小数が欲しいときは、Shopifyではdivided_by: 2.0のように小数で書きます。
丸めはround(桁数を指定できます)/ ceil / floor、範囲の制限はat_least / at_most、絶対値はabsです。
割引率はどう計算するか
compare_at_price | minus: price | times: 100 | divided_by: compare_at_priceで、整数の割引率になります(切り捨て)。
価格は最小単位×100の整数ですが、比率を出すだけなので、そのまま計算してかまいません。
整数除算を知らないと、小数が切り捨てられた結果に戸惑います。
日付はどう整形するか
dateフィルタに、strftimeの書式を渡します。'%Y年%m月%d日'で日本語の日付になり、'now'で現在時刻を扱えます。article.published_at | date: '%Y.%m.%d'が定番の形です。
タイムゾーンは、ストアの設定に従います。
この演習環境の制約
本物のShopifyは、100.0のような小数リテラルを小数として扱います。
この演習環境では、整数と区別できません。
そのため、演習は整数の計算だけにしてあります。
※ ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。