Magento:显示单个产品的含增值税和不含增值税价格


Magento: Show both incl AND excl. VAT prices for single product

我为产品创建了一个自定义的"是/否"属性,该属性将决定是否显示包括和不包括增值税的产品价格或仅包括(我的默认值)。这在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);
    }
}

我需要以某种方式模仿;显示两种价格";代码是有效的,到目前为止,我尝试过的任何东西都不起作用。非常感谢您的帮助!

我会避免过于深入价格代码呈现块,因为计算那里发生的事情很复杂。

您可以通过系统->配置->税收->价格显示设置,将前端设置为显示价格-两者都显示。

现在你可以看看你的价格是否正确。如果没有,请检查您的税务/增值税设置和税率。

解决了这个问题后,你可以考虑尝试一种不同的方法来选择性地显示/隐藏inc/ex选项。如果您有选择地将类添加到类别列表和产品页面中,则可以在CSS中完成此操作。在列表/视图页面中,将类似的内容放在li标记类所在的位置:

if($_item->getWhatever()==1)echo"whatever"

然后在css中:

不含税价格{显示:无;}

这个类取决于你的属性。当然,你只是隐瞒了增值税前的价格,但我怀疑是否有人会注意到。