2011-10-24 10 views
6

私は順番にすべての項目をチェックし、観察、いくつかの点で私はアイテムを取得

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

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

を書いているが、私は二回キャッチだもちろん同じSKUで同じアイテムを取得しますか?多分いくつかの設定ファイルですか?

答えて

11

getAllItems()の代わりにgetAllVisibleItems()を使用したいと思います。

getAllItemsは、関連するシンプルな製品と共に設定可能であると私は信じています。

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

出典:

+0

Magento 1.8.xのgetAllVisibleItems正常に動作します。 Tks! – medina

8

オプションgetAllVisibleItems

を動作しないgetAllVisibleItems()は、あなたがそれを正しく取得していることを確認し、動作していない場合は、このコード

$_items = $order->getItemsCollection(); 

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

'getAllVisibleItems'は、項目にparent_item_idがないかどうかを内部的にチェックします。そうでない場合は、何か間違っています。 – kojiro

関連する問題