【发布时间】:2012-08-23 22:21:08
【问题描述】:
我为产品创建了一个自定义 Yes/No 属性,该属性将确定是显示包含和不包含增值税的产品价格还是仅包含(我的默认设置)的价格。 Magento 可以做到这一点,但不适用于特定产品。我不得不修改 price.phtml 文件以通过更改来显示两个价格:
<?php if ($_taxHelper->displayBothPrices()): ?>
收件人:
<?php if ($_taxHelper->displayBothPrices() || $_product->getData('show_both_prices')): ?>
这将显示格式化为两种格式的价格。即
不包括。税费: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);
}
}
我需要以某种方式模仿“显示两个价格”代码的工作方式,到目前为止,我尝试过的任何方法都没有奏效。非常感谢任何帮助!
【问题讨论】: