/** * Add join for catalog in stock field to product collection * * @param Mage_Catalog_Model_Entity_Product_Collection $productCollection * @return Mage_CatalogInventory_Model_Mysql4_Stock_Item */ public function addCatalogInventoryToProductCollection($productCollection) { $isStockManagedInConfig = (int) Mage::getStoreConfig(Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MANAGE_STOCK); $inventoryTable = $this->getTable('cataloginventory/stock_item'); $productCollection->joinTable('cataloginventory/stock_item', 'product_id=entity_id', array('is_saleable' => new Zend_Db_Expr("(\n IF(\n IF(\n {$inventoryTable}.use_config_manage_stock,\n {$isStockManagedInConfig},\n {$inventoryTable}.manage_stock\n ), \n {$inventoryTable}.is_in_stock,\n 1\n )\n )"), 'inventory_in_stock' => 'is_in_stock'), null, 'left'); return $this; }
/** * Add join for catalog in stock field to product collection * * @param Mage_Catalog_Model_Entity_Product_Collection $productCollection * @return Mage_CatalogInventory_Model_Mysql4_Stock_Item */ public function addCatalogInventoryToProductCollection($productCollection) { $isStockManagedInConfig = (int) Mage::getStoreConfig(Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MANAGE_STOCK); $productCollection->joinTable('cataloginventory/stock_item', 'product_id=entity_id', array('is_saleable' => new Zend_Db_Expr('(IF(IF(use_config_manage_stock, ' . $isStockManagedInConfig . ', manage_stock), is_in_stock, 1))'), 'inventory_in_stock' => 'is_in_stock'), null, 'left'); return $this; }
/** * Add join for catalog in stock field to product collection * * @param Mage_Catalog_Model_Entity_Product_Collection $productCollection * @return Mage_CatalogInventory_Model_Mysql4_Stock_Item */ public function addCatalogInventoryToProductCollection($productCollection) { $productCollection->joinField('inventory_in_stock', 'cataloginventory/stock_item', 'is_in_stock', 'product_id=entity_id', null, 'left'); return $this; }