我有一个非常奇怪的问题,我希望有人能帮助我。
以下是影响我的问题的主要配置设置:
到目前为止一切正常。问题出在一个定制的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.
}
PS:我正在谈论的自定义选项是用户选择的,例如安装复选框,可以为产品的价格增加+ 50 $。
答案 0 :(得分:2)
- Get products id, name, price, quantity, etc. present in your cart.
- Get number of items in cart and total quantity in cart.
- Get base total price and grand total price of items in cart.
Get all items information in cart
// $items = Mage::getModel('checkout/cart')->getQuote()->getAllItems();
$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
foreach($items as $item) {
echo 'ID: '.$item->getProductId().'<br />';
echo 'Name: '.$item->getName().'<br />';
echo 'Sku: '.$item->getSku().'<br />';
echo 'Quantity: '.$item->getQty().'<br />';
echo 'Price: '.$item->getPrice().'<br />';
echo "<br />";
}
Get total items and total quantity in cart
$totalItems = Mage::getModel('checkout/cart')->getQuote()->getItemsCount();
$totalQuantity = Mage::getModel('checkout/cart')->getQuote()->getItemsQty();
Get subtotal and grand total price of cart
$subTotal = Mage::getModel('checkout/cart')->getQuote()->getSubtotal();
$grandTotal = Mage::getModel('checkout/cart')->getQuote()->getGrandTotal();
答案 1 :(得分:1)
你试过了吗?
$product->getFinalPrice();
// or this?
$product->getPriceModel()->getFinalPrice($qty, $product);
答案 2 :(得分:1)
$item->getOptions()
的输出是什么?
你试过$item->getData('price')
吗?
您如何应用自定义选项? $item->debug()
的输出是多少?也许你可以找到你需要的东西。
此致 西蒙
答案 3 :(得分:1)
我没有找到解决我确切问题的方法,但我更改了设置以模仿这个确切的功能,我遇到的问题不再存在。
首先,我删除了网站上的所有税款,并告诉magento所有价格都不含税(即使它们含税)。
现在通过应用于自定义组的促销来减税,对于
$tax = 20; // percent
我添加了
的减少量(1 - (1 / ($tax / 100 + 1)))*100
// for 20% tax => 16.6667% reduction
// for 24% tax => 19.3548% reduction
有4位小数(这与magento接受的一样多)。它可能会不时出现1美分的错误 - 所以如果这不是问题,那就去吧!
现在,整个网站的价格将准确显示在产品上(因为促销是按推车应用的,而不是按产品应用)。
答案 4 :(得分:0)
你可以试试这个:
$grandTotal = $this->helper('checkout/cart')->getQuote()->getGrandTotal();
echo $text .= $this->__(' Total: %s', $this->helper('core')->formatPrice($grandTotal, false));
答案 5 :(得分:0)
在标题中显示购物车的数量
if ($parentBlock = $this->getParentBlock()) {
$count = $this->helper('checkout/cart')->getSummaryCount();
if( $count == 1 ) {
echo $text = $this->__('My Cart (%s item)', $count);
} elseif( $count > 0 ) {
echo $text = $this->__('My Cart (%s items)', $count);
} else {
echo $text = $this->__('My Cart (0 items)');
}
}
在标题中显示购物车的总价
$grandTotal = $this->helper('checkout/cart')->getQuote()->getGrandTotal();
echo $text .= $this->__(' Total: %s', $this->helper('core')->formatPrice($grandTotal, false));