2011-10-24 20 views
6

Sto scrivendo un osservatore che controlla ogni elemento in un ordine, ad un certo punto ho gli elementi

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

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

ma ottengo due volte lo stesso elemento con lo stesso sku ovviamente, dov'è il trucco? forse in qualche file di configurazione?

risposta

11

Credo che desideri utilizzare getAllVisibleItems() anziché getAllItems().

Credo che getAllItems sia configurabile insieme al prodotto semplice associato.

+0

getAllVisibleItems su Magento 1.8.x funziona bene. Tks! – medina

8

L'opzione getAllVisibleItems non funzionano

Dovete usare questo codice

$_items = $order->getItemsCollection(); 

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

'getAllVisibleItems' controlla internamente che l'elemento non abbia un parent_item_id, quindi se non funziona per te, qualcos'altro è sbagliato. – kojiro

2

Se getAllVisibleItems() non funziona, assicurarsi che si stanno ottenendo in modo corretto:

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

Fonte : https://stackoverflow.com/a/5512656/922522

Problemi correlati