我正在编写一个观察者来检查订单中的每个项目,在某个时候我会得到这些项目
foreach($order->getAllItems() as $item){
//do something
echo $item->getSku();
}
//output
sku-first
sku-first
sku-second
sku-second
但是我当然得到了两次具有相同 sku 的相同商品,问题在哪里?也许在某些配置文件中?
我相信您想使用
getAllVisibleItems()
而不是 getAllItems()
。
我相信 getAllItems 可以获得可配置及其关联的简单产品。
选项
getAllVisibleItems
不起作用
您必须使用此代码
$_items = $order->getItemsCollection();
foreach ($_items as $item) {
if ($item->getParentItem()) continue;
//do something
echo $item->getSku();
}
如果
getAllVisibleItems()
不起作用,请确保您正确获取:
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
echo $item->getQty();
}