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 $.
我没有找到解决我的确切问题的方法,但我更改了设置以模仿这个确切的功能,并且我遇到的问题不再存在。
首先,我删除了网站上的所有税费,并告诉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 美分的误差 - 所以如果这不是问题,那就去吧!
现在,整个网站上的价格将准确显示该产品的价格(因为促销是针对每个购物车而不是每个产品应用的)。