public function getBackorders() { $isMP = Mage::helper('udropship')->isModuleActive('Unirgy_DropshipVendorProduct'); if (!$isMP) { $backorders = parent::getBackorders(); } else { $backorders = $this->getData('backorders'); if ($this->getUseConfigBackorders()) { $productVendor = $this->getUdropshipVendor(); $backorders = $productVendor ? (int) Mage::helper('udropship')->getVendorUseCustomFallbackField($productVendor, 'is_udprod_backorders', 'udprod_backorders', self::XML_PATH_BACKORDERS) : (int) Mage::getStoreConfigFlag(self::XML_PATH_BACKORDERS); } } Mage::dispatchEvent('udropship_stock_item_getBackorders', array('item' => $this, 'vars' => array('backorders' => &$backorders))); return $backorders; }
/** * Check if the given quote item is allocatable. * * @param Mage_CatalogInventory_Model_Stock_Item * @return bool */ protected function isAllocatable(Mage_CatalogInventory_Model_Stock_Item $stockItem) { return (int) $stockItem->getBackorders() === Mage_CatalogInventory_Model_Stock::BACKORDERS_NO || (int) $stockItem->getQty(); }
/** * If the inventory configuration allow order item to be backorderable simply check if the * Manage stock for the item is greater than zero. Otherwise, if the inventory configuration * do not allow order items to be backorderable, then ensure the item is not backorder and has * manage stock. * * @param Mage_CatalogInventory_Model_Stock_Item * @return bool */ protected function isManagedStock(Mage_CatalogInventory_Model_Stock_Item $stock) { return ($this->_config->isBackorderable || (int) $stock->getBackorders() === Mage_CatalogInventory_Model_Stock::BACKORDERS_NO) && $stock->getManageStock() > 0; }