Magento获得购物车单件商品价格含税.税

Vla*_*eda 10 php magento magento-1.7

我有一个非常奇怪的问题,我希望有人可以帮助我.

以下是影响我的问题的主要配置设置:

  • 显示管理面板中的目录价格,包括税
  • 显示前端目录价格,包括税
  • 购物车中的商品显示不含税(因此它在小计附近单独显示).

到目前为止一切正常.问题出在一个定制的ajax迷你推车模块.我从购物车中抓取了一系列商品,但是,由于我从购物车商品中获得了价格,因此我可以免税.

这里有一些代码来举例说明我的意思.我将假设20%的税和一个管理价格(含税)设置为120美元的产品,这个选项的成本为60美元(也包括税).不计税,这些将是100美元50美元.我想得到价格+期权+税= = 180美元

$quote = Mage::getSingleton('checkout/session')->getQuote();
$items = $quote->getAllVisibleItems();
foreach ($items as $item) {
    echo $item->getPrice(); // 150$ - price excluding tax
    echo $item->getPriceInclTax(); // 150$ - price excluding tax
    echo $item->getProduct()->getPrice(); // 120$ price including tax, BUT without the customer selected options.
}
Run Code Online (Sandbox Code Playgroud)

PS:我所说的自定义选项是用户选择的,例如安装复选框,可以为产品的价格增加+ 50 $.

Vla*_*eda 1

我没有找到解决我的确切问题的方法,但我更改了设置以模仿这个确切的功能,并且我遇到的问题不再存在。

首先,我删除了网站上的所有税费,并告诉magento所有价格都是不含税的(即使它们是含税的)。

现在,减税是通过对定制团体进行促销来实现的,因此对于

$tax = 20; // percent 
Run Code Online (Sandbox Code Playgroud)

我添加减少

(1 - (1 / ($tax / 100 + 1)))*100 
// for 20% tax => 16.6667% reduction
// for 24% tax => 19.3548% reduction
Run Code Online (Sandbox Code Playgroud)

具有 4 位小数(这是 magento 接受的数量)。有时可能会有 1 美分的误差 - 所以如果这不是问题,那就去吧!

现在,整个网站上的价格将准确显示该产品的价格(因为促销是针对每个购物车而不是每个产品应用的)。