/** * prepare stock * * @return Shopgate_Model_Catalog_Stock */ protected function prepareStock() { $stockItem = new Shopgate_Model_Catalog_Stock(); $stockItem->setMinimumOrderQuantity($this->currentProduct->minimal_quantity > 1 ? $this->currentProduct->minimal_quantity : 0); $stockItem->setUseStock($this->currentProduct->depends_on_stock); $stockItem->setStockQuantity($this->currentProduct->quantity); $stockItem->setIsSaleable($this->prepareIsSaleable($this->currentProduct, $stockItem->getStockQuantity())); $stockItem->setAvailabilityText($this->prepareAvailableText($stockItem->getIsSaleable(), $stockItem->getStockQuantity(), $this->currentProduct->out_of_stock)); return $stockItem; }
/** * set stock */ public function setStock() { /** @var Mage_CatalogInventory_Model_Stock_Item $stockItem */ $stockItem = $this->item->getStockItem(); $stock = new Shopgate_Model_Catalog_Stock(); $useStock = false; if ($stockItem->getManageStock()) { switch ($stockItem->getBackorders() && $stockItem->getIsInStock()) { case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NONOTIFY: case Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NOTIFY: break; default: $useStock = true; break; } } $stock->setUseStock((int) $useStock); if ($stock->getUseStock()) { $stock->setIsSaleable((int) $this->item->getIsSalable()); } else { $stock->setIsSaleable(1); } $stock->setBackorders((int) $stockItem->getBackorders()); $stock->setMaximumOrderQuantity((int) $stockItem->getMaxSaleQty()); $stock->setMinimumOrderQuantity((int) $stockItem->getMinSaleQty()); if (method_exists($stockItem, 'getStockQty')) { $stockQuantity = $stockItem->getStockQty(); } else { $stockQuantity = $this->_getExportHelper()->getParentStockQuantity($this->item); } $stock->setStockQuantity((int) $stockQuantity); $stock->setAvailabilityText($this->_getExportHelper()->getAvailableText($this->item, $this->_getConfig()->getStoreViewId())); parent::setStock($stock); }