public function prepareForCartAdvanced(Varien_Object $buyRequest, $product = null, $processMode = null) { if (!$product) { $product = $this->getProduct(); } return parent::prepareForCartAdvanced($buyRequest, $product); }
public function prepareForCartAdvanced(Varien_Object $buyRequest, $product = null, $processMode = null) { $product = $this->getProduct($product); $data = $buyRequest->getData(); $product->addCustomOption('src_option', $data['src_option']); return parent::prepareForCartAdvanced($buyRequest, $product, $processMode); }
public function prepareForCartAdvanced(Varien_Object $buyRequest, $product = null, $processMode = null) { if (!$product) { $product = $this->getProduct(); } Mage::dispatchEvent('prepare_buy_request_cart_advanced', array('buy_request' => $buyRequest, 'product' => $product)); $prepare = Mage::helper('payperrentals/rendercart')->prepareForCartAdvanced($buyRequest, $product, $processMode, 'simple'); if ($prepare == 'call_parent') { return parent::prepareForCartAdvanced($buyRequest, $product, $processMode); } else { return $prepare; } }
public function prepareForCartAdvanced(Varien_Object $buyRequest, $product = null, $processMode = null) { if (!$product->getAwSarpEnabled()) { return parent::prepareForCartAdvanced($buyRequest, $product, $processMode); } Mage::getModel('sarp/product_type_default')->checkPeriod($product, $buyRequest); $this->prepareForCart($buyRequest, $product, true); return parent::prepareForCartAdvanced($buyRequest, $product); }
public function prepareForCartAdvanced(Varien_Object $buyRequest, $product = null, $processMode = null) { Mage::getModel('sarp/product_type_default')->checkPeriod($product, $buyRequest); $Period = Mage::getModel('sarp/period'); /* We should add custom options that doesnt exist */ if ($buyRequest->getAwSarpSubscriptionType()) { if ($Period->load($buyRequest->getAwSarpSubscriptionType())->getId()) { $product->addCustomOption('aw_sarp_subscription_type', $Period->getId()); } } $options = $buyRequest->getOptions(); if (isset($options['aw_sarp_subscription_start']) && is_array($options['aw_sarp_subscription_start'])) { $subscriptionStart = $options['aw_sarp_subscription_start']; $date = new Zend_Date(); $date->setMinute(0)->setHour(0)->setSecond(0)->setDay($subscriptionStart['day'])->setMonth($subscriptionStart['month'])->setYear($subscriptionStart['year']); $buyRequest->setAwSarpSubscriptionStart($date->toString(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT))); } if ($buyRequest->getAwSarpSubscriptionStart() && $Period->getId()) { $date = new Zend_Date($buyRequest->getAwSarpSubscriptionStart(), Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT)); // Check date // Never check if start date //$performDateCompare = !!Mage::getSingleton('customer/session')->getCustomer()->getId(); $performDateCompare = !AW_Sarp_Model_Cron::$isCronSession; $today = new Zend_Date(); if (!$this->isVirtual($product)) { $today->addDayOfYear($Period->getPaymentOffset()); } if ($performDateCompare && ($date->compare($today, Zend_Date::DATE_SHORT) < 0 || !$Period->isAllowedDate($date, $product))) { throw new Mage_Core_Exception(Mage::helper('sarp')->__("Selected date is not valid for specified period")); } } else { $date = Mage::app()->getLocale()->date(); } $product->addCustomOption('aw_sarp_subscription_start', $date->toString('Y-MM-dd')); if ($attributes = $buyRequest->getSuperAttribute()) { $result = Mage_Catalog_Model_Product_Type_Abstract::prepareForCartAdvanced($buyRequest, $product); if (is_array($result)) { $product = $this->getProduct($product); /** * $attributes = array($attributeId=>$attributeValue) */ if ($subProduct = $this->getProductByAttributes($attributes, $product)) { $product->addCustomOption('attributes', serialize($attributes)); $product->addCustomOption('product_qty_' . $subProduct->getId(), 1, $subProduct); $product->addCustomOption('simple_product', $subProduct->getId(), $subProduct); $_result = $subProduct->getTypeInstance(true)->prepareForCartAdvanced($buyRequest, $subProduct); if (is_string($_result) && !is_array($_result)) { return $_result; } if (!isset($_result[0])) { return Mage::helper('checkout')->__('Can not add item to shopping cart'); } /** * Adding parent product custom options to child product * to be sure that it will be unique as its parent */ if ($optionIds = $product->getCustomOption('option_ids')) { $optionIds = explode(',', $optionIds->getValue()); foreach ($optionIds as $optionId) { if ($option = $product->getCustomOption('option_' . $optionId)) { $_result[0]->addCustomOption('option_' . $optionId, $option->getValue()); } } } if ($buyRequest->getAwSarpSubscriptionType()) { if ($Period->getId()) { $_result[0]->addCustomOption('aw_sarp_subscription_start', $date->toString('Y-MM-dd')); $_result[0]->addCustomOption('aw_sarp_subscription_type', $Period->getId()); } } $_result[0]->setParentProductId($product->getId())->addCustomOption('parent_product_id', $product->getId())->setCartQty(1); $result[] = $_result[0]; return $result; } } } return $this->getSpecifyOptionMessage(); }