magento $ order-> getAllItems () возвращает дважды один и тот же элемент - PullRequest
7 голосов
/ 24 октября 2011

Я пишу наблюдателю, который проверяет каждый элемент в заказе, в какой-то момент я получаю элементы

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

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

но я получаю дважды один и тот же предмет с тем же номером, конечно, в чем прикол? может быть, в каком-нибудь файле конфигурации?

Ответы [ 3 ]

14 голосов
/ 24 октября 2011

Полагаю, вы хотите использовать getAllVisibleItems() вместо getAllItems().

Я считаю, что getAllItems получает возможность конфигурирования вместе со связанным с ним простым продуктом.

9 голосов
/ 10 декабря 2013

Опция getAllVisibleItems не работает

Вы должны использовать этот код

$_items = $order->getItemsCollection();

 foreach ($_items as $item) {
    if ($item->getParentItem()) continue;
    //do something
    echo $item->getSku();
}
2 голосов
/ 31 марта 2015

Если getAllVisibleItems() не работает, убедитесь, что вы получаете его правильно:

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

Источник: https://stackoverflow.com/a/5512656/922522

...