2011-10-24 27 views
6

Tôi đang viết một người quan sát rằng kiểm tra tất cả các mục trong một trật tự, tại một số điểm tôi nhận được các mục

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

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

nhưng tôi nhận được gấp đôi so với cùng mục với cùng một sku tất nhiên, đó là bắt? có thể trong một số tập tin cấu hình?

Trả lời

11

Tôi tin rằng bạn muốn sử dụng getAllVisibleItems() thay vì getAllItems().

Tôi tin rằng getAllItems có thể định cấu hình cùng với sản phẩm đơn giản được liên kết của nó.

+0

getAllVisibleItems trên Magento 1.8.x hoạt động tốt. Tks! – medina

8

Tùy chọn getAllVisibleItems không làm việc

Bạn phải sử dụng mã này

$_items = $order->getItemsCollection(); 

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

'getAllVisibleItems' kiểm tra nội bộ rằng mục không có parent_item_id, vì vậy nếu nó không hoạt động cho bạn, điều gì đó khác là sai. – kojiro

2

Nếu getAllVisibleItems() không được làm việc, chắc chắn rằng bạn đang nhận được nó một cách chính xác:

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

Nguồn : https://stackoverflow.com/a/5512656/922522

Các vấn đề liên quan