Vinaya Maheshwari
Vinaya Maheshwari

Reputation: 575

How to get correct quantity for child product in cart

I get cart items information using following code:

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

In above code $items->getQty() always return "float(1)" while more than 1 quantity add in cart for child product.

How to get correct quantity for child product?

Thanks in advance.

Upvotes: 1

Views: 1564

Answers (3)

Vinaya Maheshwari
Vinaya Maheshwari

Reputation: 575

Finally I found my solution:

$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;
}

Upvotes: 1

SeStro
SeStro

Reputation: 279

Did you tried getAllVisibleItems() instead of getAllItems()?

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

Upvotes: 0

Vladimir Ramik
Vladimir Ramik

Reputation: 1930

For simple products your code should work. Try using a model call to see if it makes a difference. Also check sales_flat_quote table and see what items/quantity is found under the sales_flat_quote_item table and if they mismatch with the frontend display.

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

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

Also are you seeing this show up from a simple product with quantity > 1 or a different product type?

Upvotes: 0

Related Questions