magento $order->getAllItems() возвращает дважды один и тот же товар
Я пишу наблюдателю, который проверяет каждый элемент в заказе, в какой-то момент я получаю элементы
foreach($order->getAllItems() as $item){
//do something
echo $item->getSku();
}
//output
sku-first
sku-first
sku-second
sku-second
Но я получаю дважды один и тот же товар с одним и тем же артикулом, конечно, в чем подвох? может быть, в каком-нибудь файле конфигурации?
7
3 answers
Я полагаю, что вы хотите использовать getAllVisibleItems()
вместо getAllItems()
.
Я считаю, что getAllItems получает настраиваемый вместе со связанным с ним простым продуктом.
13
Author: Josh Pennington, 2015-12-18 14:28:47
Опция getAllVisibleItems
не работает
Вы должны использовать этот код
$_items = $order->getItemsCollection();
foreach ($_items as $item) {
if ($item->getParentItem()) continue;
//do something
echo $item->getSku();
}
9
Author: lvillarino, 2015-12-18 14:29:46
Если getAllVisibleItems()
не работает, убедитесь, что вы правильно его поняли:
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
echo $item->getQty();
}
2
Author: Justin, 2017-05-23 11:46:40