【问题标题】:Magento: Show both incl AND excl. VAT prices for single productMagento:同时显示包括和不包括在内。单一产品增值税价格
【发布时间】: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);
    }
}

我需要以某种方式模仿“显示两个价格”代码的工作方式,到目前为止,我尝试过的任何方法都没有奏效。非常感谢任何帮助!

【问题讨论】:

    标签: php magento


    【解决方案1】:

    我会避免在价格代码渲染块中走得太远,因为要弄清楚那里发生了什么很复杂。

    您可以使用 system->config->tax->price display settings 设置前端以显示价格。

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

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

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

    然后在css中:

    .whatever .price- exclude-tax {display:none;}

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

    【讨论】:

    • 为什么我不只是添加一个类并从一开始就隐藏价格!?谢谢,破解价格文件的更简单的解决方案!
    • 同时显示含增值税和不含增值税的价格实际上会触发 Magento 中的舍入错误。如果您使用的是 Magento CE 1.9,当您以这种方式配置您的商店时,您会看到一个警告。更多信息可以在这里找到:magentocommerce.com/knowledge-base/entry/…
    猜你喜欢
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多