Search code examples
phparraysmagentoparameters

how to calculate bundle product price from array of custom selection through parameter(post data)?


the data got from post is.

[productid] => 3
[product_type] => bundle
[bundle_option] => Array
    (
        [1] => Array
            (
                [0] => 1
                [1] => 2
            )

        [2] => Array
            (
                [0] => 3
                [1] => 4
            )

    )

[qty] => 1

how to calculate the bundle price for my selections. The magento core funtions are more preferable.


Solution

  • I solved it by own method, not sure its acceptable or not.

    $bundle_option = Mage::app ()->getRequest ()->getParam('bundle_option');
    $bundle_option_array = call_user_func_array('array_merge', $bundle_option);
    $price =  Mage::Helper('airhotels/bundle')->getBundlePrice($productid,$bundle_option_array);
    

    my helper file is

    public function getBundlePrice($productId,$bundle_option_array) {
    $product = new Mage_Catalog_Model_Product();
    $product->load($productId);
    $price=0;
    $selectionCollection = $product->getTypeInstance(true)->getSelectionsCollection($product->getTypeInstance(true)->getOptionsIds($product), $product);
    foreach($selectionCollection as $option) 
    {
        if (in_array($option->getSelectionId(), $bundle_option_array)){
            $price += $option->price; 
        }
    }
    return $price;
    }