我为产品创建了一个自定义是/否属性,该属性将确定是否显示包含和不包含增值税或仅包含(我的默认值)的产品价格。Magento 可以做到这一点,但不适用于特定产品。我不得不修改 price.phtml 文件以通过更改来显示两个价格:
<?php if ($_taxHelper->displayBothPrices()): ?>
至:
<?php if ($_taxHelper->displayBothPrices() || $_product->getData('show_both_prices')): ?>
这将显示格式化为显示两种格式的价格。IE
不包括。税费:856.80 英镑
包括。税费:856.80 英镑
但是,您可以看到价格计算实际上并未完成,因为两者都显示了包含增值税的价格。
我已将其追溯到税务助手中的一段代码(app/code/Mage/Tax/Helper/Data.php)
if ($percent != 0) {
$price = $this->getCalculator()->round($price); // price = 714
// price changes from the excl VAT to including VAT on line below.
$price = $this->_calculatePrice($price, $percent, true); // now 856.8
}
这是似乎正在改变价格的功能。尝试传递 FALSE 而不是 true,但它似乎随后以某种方式被视为特价产品:S
protected function _calculatePrice($price, $percent, $type)
{
if ($type) {
return $price * (1+($percent/100));
} else {
return $price/(1+$percent/100);
}
}
我需要以某种方式模仿“显示两个价格”代码的工作原理,到目前为止我尝试过的任何东西都没有奏效。非常感谢任何帮助!