/**
  * 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;
 }
Example #2
0
 public function isSalable($product = null)
 {
     $salable = parent::isSalable($product);
     /*if (!is_null($salable)) {
       return $salable;
        }*/
     $optionCollection = $this->getOptionsCollection($product);
     if (!count($optionCollection->getItems())) {
         return false;
     }
     $requiredOptionIds = array();
     foreach ($optionCollection->getItems() as $option) {
         if ($option->getRequired()) {
             $requiredOptionIds[$option->getId()] = 0;
         }
     }
     $selectionCollection = $this->getSelectionsCollection($optionCollection->getAllIds(), $product);
     if (!count($selectionCollection->getItems())) {
         return false;
     }
     $salableSelectionCount = 0;
     foreach ($selectionCollection as $selection) {
         if ($selection->isSalable()) {
             $requiredOptionIds[$selection->getOptionId()] = 1;
             $salableSelectionCount++;
         }
     }
     return array_sum($requiredOptionIds) == count($requiredOptionIds) && $salableSelectionCount;
 }
Example #3
0
 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);
     }
 }
Example #4
0
 /**
  * Allow Fixed Bundles to be added to the cart without needing to submit the add to cart form
  *
  * @param Varien_Object $buyRequest
  * @param Mage_Catalog_Model_Product $product
  * @param string $processMode
  * @return array|string
  * @author Paul Hachmang <paul@h-o.nl>
  */
 protected function _prepareProduct(Varien_Object $buyRequest, $product, $processMode)
 {
     $product = $this->getProduct($product);
     $options = $buyRequest->getBundleOption();
     $optionsCollection = $this->getOptionsCollection($product);
     if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_BUNDLE && count($options) <= 0) {
         foreach ($optionsCollection->getItems() as $option) {
             if ($option->getType() == self::OPTION_TYPE_FIXED && $option->getRequired() && !isset($options[$option->getId()])) {
                 $selectionData = Mage::getResourceSingleton('bundle/bundle')->getSelectionsData($product->getId());
                 foreach ($selectionData as $prod) {
                     $options[$option->getId()][] = $prod['selection_id'];
                 }
             }
         }
         //we are placing the new information in the request
         $buyRequest->setBundleOption($options);
     }
     return parent::_prepareProduct($buyRequest, $product, $processMode);
 }
Example #5
0
 public function testHasWeightTrue()
 {
     $this->assertTrue($this->_model->hasWeight(), 'This product has not weight, but it should');
 }
 /**
  * Get all the bundle data for a product
  *
  * @param Mage_Bundle_Model_Product_Type
  * @return array
  */
 protected function getBundleParentData(Mage_Bundle_Model_Product_Type $bundleParent)
 {
     /** @var Mage_Bundle_Model_Resource_Option_Collection */
     $optionCollection = $bundleParent->getOptionsCollection();
     /** @var int[] */
     $optionIds = $bundleParent->getOptionsIds();
     /** @var Mage_Bundle_Model_Resource_Selection_Collection */
     $selectionCollection = $bundleParent->getSelectionsCollection($optionIds);
     /** @var Mage_Bundle_Model_Option[] */
     $options = $optionCollection->appendSelections($selectionCollection);
     /** @var array */
     $bundleData = [];
     /** @var Mage_Bundle_Model_Option $option */
     foreach ($options as $option) {
         /** @var Mage_Catalog_Model_Product[] */
         $bundleItems = $option->getSelections();
         $bundleData[$option->getDefaultTitle()] = $this->getBundleItemData($bundleItems);
     }
     return $bundleData;
 }