2011-10-24 10 views
6

Piszę to sprawdzić każdy element w celu obserwatora, w pewnym momencie pojawia elementy

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

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

ale mam dwa takie same przedmiot z tym samym sku oczywiście, gdzie jest haczyk? może w jakimś pliku konfiguracyjnym?

Odpowiedz

11

Wierzę, że chcesz użyć getAllVisibleItems() zamiast getAllItems().

Wierzę, że getAllItems ma konfigurowalny i skojarzony z nim prosty produkt.

+0

getAllVisibleItems na Magento 1.8.x działa w porządku. Tks! – medina

8

Opcja getAllVisibleItems nie działają

Musisz użyć tego kodu

$_items = $order->getItemsCollection(); 

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

'getAllVisibleItems' wewnętrznie sprawdza, czy element nie ma parent_item_id, więc jeśli to nie działa, coś innego jest nie tak. – kojiro

2

Jeśli getAllVisibleItems() nie działa, upewnij się, że są coraz to poprawnie:

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

Źródło : https://stackoverflow.com/a/5512656/922522

Powiązane problemy