2017-06-16 56 views
0

// Observer function $ order = $ observer-> getEvent() - > getOrder();Magento:如何獲得訂購的每個包選項的數量

的foreach($命令 - > getAllItems()作爲$項目){

if($item->getProductType() == 'bundle') 
{  
    //Loading bundle product object 
    $bundle_product = Mage::getModel('catalog/product')->load($item->getProductId()); 

    //Getting bundle items collection 
    $selectionCollection = $bundle_product->getTypeInstance(true)->getSelectionsCollection($bundle_product->getTypeInstance(true)->getOptionsIds($bundle_product), $bundle_product); 

    foreach($selectionCollection as $option) 
    { 
     //Loading each bundle item 
     $bundle_item = Mage::getModel('catalog/product')->load($option->getId()); 

     //How to get the quantity that was ordered? example: 
     $bundle_item->getQtyOrdered(); //Note: I know this is wrong, this is not the correct object. 
    } 
} 

}

回答

0

請使用以下代碼:

//Observer function $order = $observer->getEvent()->getOrder(); 

foreach($order->getAllItems() as $item){ 

if($item->getProductType() == 'bundle') 
{ 
    $options = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); 
    $bundleOption=$options['info_buyRequest']['bundle_option_qty']; 
    foreach($bundleOption as $bundleItemQty){ 
     echo 'Bundle Item Qty='.$bundleItemQty; 
    } 
} 
} 
相關問題