Example #1
0
 /**
  * Makes sure that for OPTION_TYPE_FIXED the options aren't required to enter.
  *
  * @param Mage_Catalog_Model_Product $product
  * @return \Mage_Catalog_Model_Product_Type_Abstract
  */
 public function beforeSave($product = null)
 {
     parent::beforeSave($product);
     $product = $this->getProduct($product);
     if (!$product->getCanSaveBundleSelections()) {
         return $this;
     }
     $selections = $product->getBundleSelectionsData();
     $options = $product->getBundleOptionsData();
     if (($selections && !empty($selections) && $options) === false) {
         return $this;
     }
     $isSimpleBundle = true;
     foreach ($options as $option) {
         if (empty($option['delete']) || 1 != (int) $option['delete']) {
             if ((isset($option['type']) && $option['type'] == self::OPTION_TYPE_FIXED) === false) {
                 $isSimpleBundle = false;
             }
         }
     }
     if ($isSimpleBundle) {
         $product->setTypeHasOptions(false);
         $product->setTypeHasRequiredOptions(false);
         $product->canAffectOptions(true);
     }
     return $this;
 }