magento(1.9.1)的custom options商品选项允许设定价格,价格可以是正值或者负值的差价,此差价对应的是商品的基础价;在magento前端的商品选项右侧,显示的是差价(以加减号分别标识正负差价),而不是商品总价,一些用户会不习惯不理解这种逻辑,故需略作修改。
修改文件:app/code/core/Mage/Catalog/Block/Product/View/Options/Abstract.php中的function _formatPrice($value, $flag=true),将:
$sign = '+';
if ($value['pricing_value'] < 0) {
$sign = '-';
$value['pricing_value'] = 0 - $value['pricing_value'];
}
改为:
if ($value['pricing_value'] < 0) { $value['pricing_value'] = $this->getProduct()->getFinalPrice() + $value['pricing_value'];
} else {
$value['pricing_value'] = $this->getProduct()->getFinalPrice() + $value['pricing_value'];
}
即可。
可选:
显示差价为0的选项价格。注释掉以下代码,最后如:
/*if ($value['pricing_value'] == 0) {
return '';
}*/
源文:http://sourcelibrary.org/2011/04/21/magento-custom-options-change-the-option-to-show-total-price/