doug48
12/11/2017 - 10:57 AM

magento get bundle selected items in cart

magento get bundle selected

<?php
//ini_set('memory_limit','10G');
require_once('abstract.php');

class Bundle_Cart_Item_Option_Items extends Mage_Shell_Abstract
{
    /**
     * Entry point
     */
    public function run()
    {
        $selections = array();
        $cart = Mage::getModel('checkout/cart')->getQuote();
        if(!$cart->getAllItems()){
            var_dump('empty cart');
            return;
        }
        foreach ($cart->getAllItems() as $_item) {
            $selections = $this->getBundleOrderItemSelections($_item->getProduct());
        }

        var_dump($selections);
    }

    /**
     * @param $bundleProduct Mage_Catalog_Model_Product
     * @return array
     */
    public function getBundleOrderItemSelections($bundleProduct)
    {
        $selectionSkus = array();
        if($bundleProduct->getTypeId()==='bundle') {
            /** @var Mage_Bundle_Model_Product_Type $instance */
            $instance = $bundleProduct->getTypeInstance(true);

            $customOption = $bundleProduct->getCustomOption('bundle_selection_ids');
            $selectionIds = unserialize($customOption->getValue());

            $selections = $instance->getSelectionsByIds($selectionIds, $bundleProduct);

            foreach ($selections->getItems() as $selection) {
                $selectionSkus[] = $selection->getSku();
            }

        }

        return array_unique($selectionSkus);
    }


}



$ids = new Bundle_Cart_Item_Option_Items();
$ids->run();