Magento:如何获得订购的每个捆绑选项的数量

时间:2017-06-16 19:25:28

标签: bundle magento-1.9

//观察者功能 $ order = $ observer-> getEvent() - > getOrder();

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

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.
    }
}   

}

1 个答案:

答案 0 :(得分: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;
    } 
}   
}