[ec-cube] 通常価格と販売価格が違う場合は「○○%OFF」の表示する
毎度のことながらコアファイルはイジらずにテンプレートだけで処理します。
基本的になロジックは
■販売価格と通常価格が同じ金額であれば、
通常価格は表示せず、販売価格だけの表示になります。
■販売価格と通常価格が違う金額であれば、
打ち消し線を入れた通常価格と「○○%OFF」を表示させます。
ついでに、販売価格も赤字のボールド文字にします。
「○○%OFF」の表記は
『100 – (販売価格 ÷ 通常価格 × 100) =○○%OFF』(※小数点以下は四捨五入で切り上げ)
という計算で自動で出しています。
やってみる
/data/Smarty/templates/default/products/detail.tpl
の価格表示部分だけ抜粋します。
<!--{if $arrProduct.price01_min == $arrProduct.price02_min}--> <!--{if $arrProduct.price01_max > 0}--> <tr> <td style="white-space: nowrap;width:1%;">販売価格: </td> <td> <!-- 販売価格 --> <!--{if $arrProduct.price02_min == $arrProduct.price02_max}--> <!--{$arrProduct.price02_min|number_format}-->円 (税込<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円) <!--{else}--> <!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->〜<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円 <!--{/if}--> <!-- /販売価格 --> </td> </tr> <!--{/if}--> <!--{else}--> <tr> <td style="white-space: nowrap;width:1%;line-height: 180%;vertical-align:top;">通常価格 </td> <td style="line-height: 180%;"> <!--{php}--> //OFF値表示の計算 $arrProduct = $this->get_template_vars('arrProduct'); $OffPrice1 = "" . 100-($arrProduct[price02_min]/$arrProduct[price01_min]*100) . ""; $OffPrice2 = "" . 100-($arrProduct[price02_max]/$arrProduct[price01_max]*100) . ""; $this->assign('OffPrice1',$OffPrice1); $this->assign('OffPrice2',$OffPrice2); <!--{/php}--> <!-- 通常価格 --> <!--{if $arrProduct.price01_min == $arrProduct.price01_max}--> <s><!--{$arrProduct.price01_min|number_format}--></s>円 <span style="color:#993300;font-weight:bold;">▼<!--{$OffPrice1|round:0}-->% OFF</span> <!--{else}--> <s><!--{$arrProduct.price01_min|number_format}-->〜<!--{$arrProduct.price01_max|number_format}--></s>円<br /> <span style="color:#993300;font-weight:bold;">▼Max<!--{$OffPrice2|round:0}-->% OFF</span> <!--{/if}--> <!-- /通常価格 --> </td> </tr> <!--{if $arrProduct.price01_max > 0}--> <tr> <td style="white-space: nowrap;width:1%;">販売価格: </td> <td> <!-- 販売価格 --> <!--{if $arrProduct.price02_min == $arrProduct.price02_max}--> <span style="color:#993300;font-weight:bold;font-size:12px;"><!--{$arrProduct.price02_min|number_format}-->円</span> (税込<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円) <!--{else}--> <span style="color:#993300;font-weight:bold;font-size:12px;"><!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->〜<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円</span> <!--{/if}--> <!-- /販売価格 --> </td> </tr> <!--{/if}--> <!--{/if}-->