public function execute(Quote $quote, Product $product) { $ids = $this->_configurableTypeInstance->getParentIdsByChild($product->getId()); if (empty($ids)) { return $quote->addProductAdvanced($product); } if (count($ids) > 1) { throw new Exception("too many parents defined"); } $parent = $this->createProduct(); $parent->load($ids[0]); ///.... }
/** * Prepare selected options for simple subscription product * * @param Mage_Catalog_Model_Product $product * @param Varien_Object $buyRequest * @return array */ public function processBuyRequest($product, $buyRequest) { $options = parent::processBuyRequest($product, $buyRequest); $option = $buyRequest->getData('adyen_subscription'); $options['adyen_subscription'] = $option; return $options; }
public function isSalable($product = null) { if ($this->getProduct($product)->hasData('is_salable')) { return $this->getProduct($product)->getData('is_salable'); } return parent::isSalable($product); }
/** * Select one of the options and "prepare for cart" with a proper buy request */ protected function _prepareForCart() { $attributes = $this->_model->getConfigurableAttributesAsArray($this->_product); $attribute = reset($attributes); $optionValueId = $attribute['values'][0]['value_index']; $buyRequest = new Varien_Object(array('qty' => 5, 'super_attribute' => array($attribute['attribute_id'] => $optionValueId))); $this->_model->prepareForCart($buyRequest, $this->_product); }
/** * Retrieve related products collection * * @param Mage_Catalog_Model_Product $product * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable_Product_Collection */ public function getUsedProductCollection($product = null) { $collection = parent::getUsedProductCollection($product); if (!is_null($this->getStoreFilter($product))) { $collection->setStoreId($this->getStoreFilter($product)); } return $collection; }
public function isVirtual($product = null) { $hasShipping = ITwebexperts_Payperrentals_Helper_Data::getAttributeCodeForId($this->getProduct($product)->getId(), 'payperrentals_has_shipping'); $isReservation = ITwebexperts_Payperrentals_Helper_Data::getAttributeCodeForId($this->getProduct($product)->getId(), 'is_reservation'); if ($isReservation != ITwebexperts_Payperrentals_Model_Product_Isreservation::STATUS_DISABLED && $isReservation != ITwebexperts_Payperrentals_Model_Product_Isreservation::STATUS_NOTSET) { return Mage::helper('payperrentals/config')->removeShipping() || $hasShipping == ITwebexperts_Payperrentals_Model_Product_Hasshipping::STATUS_DISABLED; } else { return parent::isVirtual($product); } }
public function getAttributeById($attributeId, $product = null) { Varien_Profiler::start('CONFIGURABLE:' . __METHOD__); if (1 || $this->_inUnirgyPreload) { $result = Mage::getSingleton('eav/config')->getAttribute('catalog_product', $attributeId); } else { $result = parent::getAttributeById($attributeId, $product); } Varien_Profiler::stop('CONFIGURABLE:' . __METHOD__); return $result; }
/** * Preparing layout * * @return Mage_Catalog_Block_Product_Configurable_AssociatedSelector_Backend_Grid_ColumnSet */ protected function _prepareLayout() { parent::_prepareLayout(); $product = $this->_getProduct(); $attributes = $this->_productType->getUsedProductAttributes($product); foreach ($attributes as $attribute) { /** @var $attribute Mage_Catalog_Model_Entity_Attribute */ /** @var $block Mage_Backend_Block_Widget_Grid_Column */ $block = $this->addChild($attribute->getAttributeCode(), 'Mage_Backend_Block_Widget_Grid_Column', array('header' => $attribute->getStoreLabel(), 'index' => $attribute->getAttributeCode(), 'type' => 'options', 'options' => $this->getOptions($attribute->getSource()), 'sortable' => false)); $block->setId($attribute->getAttributeCode())->setGrid($this); } return $this; }
public function testHasWeightFalse() { $this->assertFalse($this->_model->hasWeight(), 'This product has weight, but it should not'); }
public function beforeSave($product = null) { parent::beforeSave($product); if ($product->getAwSarpEnabled() && $this->getProduct($product)->getAwSarpSubscriptionPrice() == '') { $this->getProduct($product)->setAwSarpSubscriptionPrice($product->getData('price')); } }