2011-10-24 12 views
6

Her öğeyi bir sırayla kontrol eden bir gözlemci yazıyorum, bir noktada

 foreach($order->getAllItems() as $item){ 
    //do something 
    echo $item->getSku(); 
    } 

    //output 
    sku-first 
    sku-first 
    sku-second 
    sku-second 

öğelerini alıyorum ama aynı sku ile aynı öğeyi iki kez aldım, yakalama nerede? belki bazı yapılandırma dosyasında?

cevap

11

Sana getAllVisibleItems() yerine getAllItems() kullanmak istiyor inanıyoruz.

Ben getAllItems ilişkili basit ürün ile birlikte yapılandırılabilir alır inanıyoruz.

$quote = Mage::getSingleton('checkout/session')->getQuote(); 
$cartItems = $quote->getAllVisibleItems(); 
foreach ($cartItems as $item) { 
    echo $item->getQty(); 
} 

Kaynak:

+0

getAllVisibleItems iyi çalışıyor. Tks! – medina

8

seçenek getAllVisibleItems Sen doğru aldığınızdan emin olun,

$_items = $order->getItemsCollection(); 

foreach ($_items as $item) { 
    if ($item->getParentItem()) continue; 
    //do something 
    echo $item->getSku(); 
} 
+0

'getAllVisibleItems öğesi, öğenin parent_item_id içermediğini denetler, bu nedenle eğer sizin için çalışmıyorsa, başka bir şey yanlıştır. – kojiro

İlgili konular