Example #1
0
 /**
  * Check if product can be bought
  *
  * @param Mage_Catalog_Model_Product $product
  * @return Mage_Bundle_Model_Product_Type
  * @throws Mage_Core_Exception
  */
 public function checkProductBuyState($product = null)
 {
     parent::checkProductBuyState($product);
     $product = $this->getProduct($product);
     $option = $product->getCustomOption('info_buyRequest');
     if ($option instanceof Mage_Sales_Model_Quote_Item_Option) {
         $buyRequest = new Varien_Object(unserialize($option->getValue()));
         if (!$buyRequest->hasLinks()) {
             if (!$product->getLinksPurchasedSeparately()) {
                 $allLinksIds = Mage::getModel('downloadable/link')->getCollection()->addProductToFilter($product->getId())->getAllIds();
                 $buyRequest->setLinks($allLinksIds);
                 $product->addCustomOption('info_buyRequest', serialize($buyRequest->getData()));
             } else {
                 Mage::throwException(Mage::helper('downloadable')->__('Please specify product link(s).'));
             }
         }
     }
     return $this;
 }
Example #2
0
 /**
  * Check if product can be bought
  *
  * @param Mage_Catalog_Model_Product $product
  * @return Mage_Bundle_Model_Product_Type
  * @throws Mage_Core_Exception
  */
 public function checkProductBuyState($product = null)
 {
     parent::checkProductBuyState($product);
     $product = $this->getProduct($product);
     $option = $product->getCustomOption('info_buyRequest');
     if ($option instanceof Mage_Sales_Model_Quote_Item_Option) {
         $buyRequest = new Varien_Object(unserialize($option->getValue()));
         if (!$buyRequest->hasLinks()) {
             Mage::throwException(Mage::helper('downloadable')->__('Please specify product link(s).'));
         }
     }
     return $this;
 }