public function quoteItemHasCustomTagOptions(Mage_Sales_Model_Quote_Item $quoteItem) { return array_reduce($quoteItem->getOptions(), function ($acc, Mage_Sales_Model_Quote_Item_Option $option) { if ($acc || !preg_match('/^option_/', $option->getCode())) { return $acc; } return !!Mage::getResourceModel('catalog/product_option_value_collection')->addFieldToFilter('option_type_id', $option->getValue())->addFieldToFilter('is_custom_tag', '1')->setPageSize(1)->load()->getSize(); }, false); }
/** * Generate hash from cart item options data. * * @param Mage_Sales_Model_Quote_Item * @param array $avoidCodes * @return string */ public function getCartItemOptionHash(Mage_Sales_Model_Quote_Item $item, array $avoidCodes) { /* @var $product Mage_Catalog_Model_Product */ $product = $item->getProduct(); if ($product && $product->getId()) { $options = $item->getOptions(); $optionHash = $product->getId(); if (count($options)) { foreach ($options as $o) { if (!in_array($o->getCode(), $avoidCodes)) { $optionHash .= $o->getCode() . '_' . $o->getValue(); } } } } if (!is_null($optionHash)) { $optionHash = sha1($optionHash); } return $optionHash; }