如何在购物车中获得正确的儿童产品数量

时间:2015-03-05 04:27:49

标签: magento

我使用以下代码获取购物车商品信息:

$cart_items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
foreach( $cart_items as $items )
{
        $items->getQty();
}

在上面的代码中$items->getQty()总是返回" float(1)"超过1个数量添加到儿童产品的购物车。

如何获得正确的儿童产品数量?

提前致谢。

3 个答案:

答案 0 :(得分:0)

对于简单的产品,您的代码应该有效。 尝试使用模型调用来查看它是否有所作为。还要检查sales_flat_quote表,看看sales_flat_quote_item表下的项目/数量是否与前端显示不匹配。

$oQuote = Mage::getModel( 'checkout/cart' )->getQuote();

// For all items.
$iTotalItemQty = $oQuote->getItemsQty();
echo $iTotalItemQty;

你是否也看到这个显示来自一个数量为>的简单产品? 1或不同的产品类型?

答案 1 :(得分:0)

您是否尝试过getAllVisibleItems()而不是getAllItems()

$cart_items = Mage::getSingleton('checkout/session')->getQuote()->getAllVisibleItems();
foreach( $cart_items as $items )
{
    $items->getQty();
}

答案 2 :(得分:0)

最后我找到了解决方案:

$cart_items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
foreach( $cart_items as $items )
{
    STATIC $qty='';
    if($items->getProductType() == 'configurable')  //configurable products
    {
        $qty = $items->getQty();
        continue;
    }
    else                                            // non-configurable product
    {
        if (!$items->getParentItem())               // product which has not parent product 
        {
            $qty = $items->getQty();
        }
    }
    echo $qty;
}