Example #1
0
 public function checkQuantities($item, $qty)
 {
     if (is_numeric($item)) {
         $_product = Mage::getModel('catalog/product')->load($item);
     } elseif ($item instanceof Mage_Catalog_Model_Product) {
         $_product = $item;
     } elseif ($item->getData('product') instanceof Mage_Catalog_Model_Product) {
         $_product = $item->getData('product');
     } else {
         throw new Exception(Mage::helper('qquoteadv')->__("incorrect first parameter for checkQuantities should be product or product_id"));
     }
     $stockItem = $_product->getStockItem();
     $result = new Varien_Object();
     $result->setProductUrl($_product->getProductUrl());
     if ($stockItem->getMinSaleQty() && $qty < $stockItem->getMinSaleQty()) {
         $result->setHasError(true)->setMessage(Mage::helper('cataloginventory')->__('The minimum quantity allowed for quotation for %s is %s.', $_product->getName(), $stockItem->getMinSaleQty() * 1))->setErrorCode('qty_min')->setQuoteMessage(Mage::helper('cataloginventory')->__('%s cannot be quotated for in requested quantity.', $_product->getName()))->setQuoteMessageIndex('qty');
         return $result;
     }
     if ($stockItem->getMaxSaleQty() && $qty > $stockItem->getMaxSaleQty()) {
         $result->setHasError(true)->setMessage(Mage::helper('cataloginventory')->__('The maximum quantity allowed for quotation for %s is %s.', $_product->getName(), $stockItem->getMaxSaleQty() * 1))->setErrorCode('qty_max')->setQuoteMessage(Mage::helper('cataloginventory')->__('%s cannot be ordered in requested quantity.', $_product->getName()))->setQuoteMessageIndex('qty');
         return $result;
     }
     $result->addData($this->checkQtyIncrements($item, $qty)->getData());
     return $result;
 }
Example #2
0
 private function _getProductInformationWork($item, $getInfo, $hasChildren, $children)
 {
     $getProduct = in_array('product', $getInfo);
     $getImage = in_array('image_url', $getInfo);
     $getLink = in_array('product_url', $getInfo);
     $result = new Varien_Object();
     $result->setProductId((int) $item->getProductId());
     $result->setIsConfigurable(false);
     $result->setIsBundle(false);
     $result->setSku($item->getSku());
     if (Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $item->getProductType() && $hasChildren) {
         $result->setIsConfigurable(true);
         $result->setParentId($result->getProductId());
         $result->setProductId((int) $children[0]->getProductId());
     }
     if (Mage_Catalog_Model_Product_Type::TYPE_BUNDLE == $item->getProductType() && $hasChildren) {
         $result->setIsBundle(true);
         $product = Mage::getModel('catalog/product')->load($result->getProductId());
         $result->setSku($product->getSku());
         $result->setProduct($product);
     } else {
         if ($getProduct || $getImage || $getLink && !$result->getIsConfigurable()) {
             $result->setProduct(Mage::getModel('catalog/product')->load($result->getProductId()));
         }
     }
     if ($getLink) {
         $result->setProductUrl($this->getProductUrl($result->getIsConfigurable() ? Mage::getModel('catalog/product')->load($result->getParentId()) : $result->getProduct()));
     }
     if ($getImage) {
         $result->setImageUrl($this->getProductImage($result['product']));
     }
     return $result;
 }