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; }
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; }