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;
 }
Exemple #8
0
 /**
  * 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;
 }
Exemple #9
0
 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'));
     }
 }