sacnoha's Stories

カラーミーショップで商品一覧ページや商品詳細ページに掛け率や割引率を計算して表示する方法

NO IMAGE

カラーミーショップを利用して卸売サイトを作っているんですが、その際に掛け率(割引率)を表示したいなーなんて思ったのです。

そんなわけで、カラーミーショップで掛け率を表示する方法をメモっときます。

今回作っているのは卸売サイトというわけで、定価欄に上代を入れ、通常価格欄と会員価格欄に下代を入れる、というふうに商品登録をしてます。

商品詳細ページでそれぞれの価格を呼び出すにはこちらの変数名で呼び出します。

  • $product.price ⇒ 定価
  • $product.sales ⇒ 会員価格

このまま計算できそうな感じですが、これだとカラーミーでの設定にもよりますが、

1,800円

とか

1,800円(税込1,890円)

とか

1,890円(税90円)

とかになってて計算に使えません。
,とか円とか(とか税とか9とか0とか円とか)が邪魔なわけです。

そこで、こちらのコード!

<{assign var="price_regular" value=$product.price|regex_replace:"/円.*|[^0-9]/":""}>
<{assign var="price_orosi" value=$product.sales|regex_replace:"/円.*|[^0-9]/":""}>
<{math equation="round(('$price_orosi'/'$price_regular')*100)" assign="ratio"}>

ってやって

<{$ratio}>%

とやるとかけ率が表示できます。

最初の「円」以降の文字と数字以外の文字を消すようにしてあるので、どの設定でもできるはず・・・たぶん(未検証

割引率なら

<{assign var="price_regular" value=$product.price|regex_replace:"/円.*|[^0-9]/":""}>
<{assign var="price_orosi" value=$product.sales|regex_replace:"/円.*|[^0-9]/":""}>
<{math equation="round((1-('$price_orosi'/'$price_regular'))*100)" assign="ratio"}>

で割引率が表示できます。

商品一覧ページでも掛け率表示

そんなよくばりなあたなにはこちらのコード!

<{assign var="price_regular" value=$productlist&#91;num&#93;.teika|regex_replace:"/円.*|&#91;^0-9&#93;/":""}>
<{assign var="price_orosi" value=$productlist&#91;num&#93;.price|regex_replace:"/円.*|&#91;^0-9&#93;/":""}>
<{math equation="round(('$price_orosi'/'$price_regular')*100)" assign="ratio"}>
<{$ratio}>

というかんじで行けますぜー!
商品詳細ページと使う変数名が違うのでご注意あれ。

追記:
よく見たら割引率はもともと表示機能があったのでした。
自分のアーホー!

リンク:
カラーミー 独自タグ一覧