/** * 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; }