/** * get a product option based on quote option * * @param Mage_Sales_Model_Quote_Item_Option $option * @return Mage_Catalog_Model_Product_Option|null */ public function getOptionProductOption($option) { $optionId = null; if (strpos($option->getCode(), Mage_Catalog_Model_Product_Type_Abstract::OPTION_PREFIX) === 0) { $optionId = str_replace(Mage_Catalog_Model_Product_Type_Abstract::OPTION_PREFIX, '', $option->getCode()); if ((int) $optionId != $optionId) { $optionId = null; } } $productOption = null; if ($optionId) { /** @var $productOption Mage_Catalog_Model_Product_Option */ $productOption = Mage::getModel('catalog/product_option')->load($optionId); } if (!$productOption || !$productOption->getId() || $productOption->getProductId() != $option->getProductId()) { return null; } else { return $productOption; } }
/** * Register option code * * @param Mage_Sales_Model_Quote_Item_Option $option * @return Mage_Sales_Model_Quote_Item */ protected function _addOptionCode($option) { if (!isset($this->_optionsByCode[$option->getCode()])) { $this->_optionsByCode[$option->getCode()] = $option; } else { Mage::throwException(Mage::helper('Mage_Sales_Helper_Data')->__('An item option with code %s already exists.', $option->getCode())); } return $this; }
/** * Register option code * * @param Mage_Sales_Model_Quote_Item_Option $option * @return Mage_Sales_Model_Quote_Item */ protected function _addOptionCode($option) { if (!isset($this->_optionsByCode[$option->getCode()])) { $this->_optionsByCode[$option->getCode()] = $option; } else { AO::throwException(AO::helper('sales')->__('Item option with code %s already exist', $option->getCode())); } return $this; }