Get ids of the products which a bundle product contains from order in Magento

<?php
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app("default");

$orderNumber = 260038;  

$order = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);
$store_id = $order->getStoreId();

foreach ($order->getAllItems() as $item){ 
    $product = Mage::getModel('catalog/product')->setStoreId($store_id)->load($item->product_id);
    $options = Mage::getModel('bundle/option')->getResourceCollection()
                                              ->setProductIdFilter($item->product_id)
                                              ->setPositionOrder(); 
    $options->joinValues($store_id);

    $selections = $product->getTypeInstance(true)
                          ->getSelectionsCollection($product->getTypeInstance(true)
                          ->getOptionsIds($product), $product);

    foreach ($options->getItems() as $option) {
        $option_id = $option->getId();
        echo 'Option: ' . $option->getTitle() . ' [id: ' . $option_id . ']<br />'; 

        foreach($selections as $selection){ 
            if($option_id == $selection->getOptionId()){
                $selection_id         = $selection->getId();
                $selection_name       = $selection->getName();
                $selection_qty        = $selection->getSelectionQty();
                $selection_sku        = $selection->getSku();
                $selection_product_id = $selection->getProductId();
                $selection_weight     = $selection->getWeight();
                $selection_price      = $selection->getPrice();

                $data = 'Selection Name: ' . $selection_name;
                $data .= ', SKU: ' . $selection_sku;
                $data .= ', Qty: ' . $selection_qty;
                $data .= ', ID: ' . $selection_id;
                $data .= ', Product ID: ' . $selection_product_id;
                $data .= ', Weight: ' . $selection_weight;
                $data .= ', Price: ' . $selection_price;

                echo $data . '<br />';
            }
        }
    }
}

?>

Leave a comment