我为产品创建了自定义是/否属性,以确定是否显示产品价格,包括但不包括增值税或仅包括(我的默认值)。这可以使用Magento,但不适用于特定产品。我不得不破解price.phtml文件以通过更改来显示两个价格:
<?php if ($_taxHelper->displayBothPrices()): ?>
要:
<?php if ($_taxHelper->displayBothPrices() || $_product->getData('show_both_prices')): ?>
现在将显示格式化为show两种格式的价格。即
EXCL。税:£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而不是真实,但它似乎以某种方式被视为特殊价格产品:S
protected function _calculatePrice($price, $percent, $type)
{
if ($type) {
return $price * (1+($percent/100));
} else {
return $price/(1+$percent/100);
}
}
我需要以某种方式模仿“显示两个价格”代码的工作方式,到目前为止我所尝试过的任何东西都没有用。任何帮助最受赞赏!
答案 0 :(得分:4)
我会避免在价格代码渲染块中走得太远,因为弄清楚那里发生的事情很复杂。
您可以设置前端以显示价格 - 两者 - 使用system-&gt; config-&gt; tax-&gt;价格显示设置。
现在您可以查看价格是否正确。如果没有,请检查您的税/增值税设置和费率。
解决了这个问题后,你可以考虑尝试一种不同的方法来有选择地显示/隐藏inc / ex选项。如果您有选择地将类添加到类别列表和产品页面,则可以在CSS中完成此操作。在列表/视图页面中,将这样的内容放在li标签类的位置:
if($ _ item-&gt; getWhatever()== 1)echo'what what'
然后在css中:
.whatever .price-excluded-tax {display:none;}
使用此类,具体取决于您的属性。当然你只是隐藏了增值税前的价格,但我怀疑是否有人会注意到这一点。