税込と税別の値段を同時に表示させる。
最初はテンプレートで
税別
[html]<!–{$arrProduct.price01_min|number_format}–>[/html]
税込
[html]
<!–{$arrProduct.price01_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}–>[/html]
というふうに変更するだけでよいと簡単に思っていました。
そう。規格のことを忘れていました。
詳細ページでは、規格を変更するとこの値段の部分が変更されます。
product.jsで制御しているようだったのですが、ここで扱っているのが「税込」の値段のみです。
最初は
product.jsの
[javascript]
$price02_dynamic.text(classcat2[‘price02’]).show();
[/javascript]
という部分で
[javascript]
$price02_dynamic.text("税込価格"+classcat2[‘price02’]+"円(税別価格:").show();
[/javascript]
なんて、一気に書いてしまって、税別も税込も同時に表示入れ替えをしようと思っていたのですが、
税別の価格を取ってこれていないことに気づきます。表示部分と同じ計算をさせたほうがよいので、javascript上で1.05で割るなんて恐ろしいことしたくないし。と、考えていて……。
このclasscat2[‘price02’]は、商品詳細ページのheader部分に埋め込まれている
[javascript]
<![CDATA[
classCategories =
[/javascript]
以下のデータを読み込んでいるようです。
このデータはどこで作られているかというと
data/class/SC_Product.php の L232あたり
function setProductsClassByProductIds
以下。
ここに
2.11.5まで
[php]
// 価格 税抜価格を表示させるために追加 start
$classCats2[‘price011’]
= strlen($productsClass[‘price01’])
? number_format($productsClass[‘price01’])
: ”;
$classCats2[‘price021’]
= strlen($productsClass[‘price02’])
? number_format($productsClass[‘price02’])
: ”;
//end
[/php]
2.12.1以降(追記:2014.03.13)
[php]
// 税抜価格を表示させるために追加 start
$arrClassCats2[‘price011’]
= strlen($arrProductsClass[‘price01’])
? number_format($arrProductsClass[‘price01’])
: ”;
$arrClassCats2[‘price021’]
= strlen($arrProductsClass[‘price02’])
? number_format($arrProductsClass[‘price02’])
: ”;
//end
[/php]
を追加します。
そして、product.js(html>jsの中の)を
[javascript]
// 販売価格
var $price02_default = $form.find(‘[id^=price02_default]’);
var $price02_dynamic = $form.find(‘[id^=price02_dynamic]’);
var $price021_default = $form.find(‘[id^=price021_default]’);//add 税抜
var $price021_dynamic = $form.find(‘[id^=price021_dynamic]’);//add 税抜
if (classcat2
&& typeof classcat2[‘price02’] != ‘undefined’
&& String(classcat2[‘price02’]).length >= 1) {
$price02_dynamic.text(classcat2[‘price02’]).show();
$price021_dynamic.text(classcat2[‘price021’]).show();//add 税抜
$price02_default.hide();
$price021_default.hide();//add 税抜(2013.03.13追記。addを入れるの忘れてた)
} else {
$price02_dynamic.hide();
$price02_default.show();
$price021_dynamic.hide();//add 税抜
$price021_default.show();//add 税抜
}
[/javascript]
という風に各種追加。とりあえず、販売価格だけ書いてますが、通常価格も必要なら同じように改造を・・・。
テンプレートの方を
[html]
<!–★販売価格★–>
価格:
<!–{strip}–>
<strong>
<span id="price021_default"><!–{$arrProduct.price02_min|number_format}–></span><span id="price021_dynamic"></span>円</strong>
(税込価格:<span id="price02_default"><!–{$arrProduct.price02_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}–></span><span id="price02_dynamic"></span>円)
<!–{/strip}–>
[/html]
としました。
コメントを残す