Magento 1.3
I'm trying to filter out of stock items from the productCollection. Using:
->addAttributeToFilter('status',array('neq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED))
I can filter by status, but in this store , enabled products can still have 0 quantity.
Using:
->addAttributeToFilter('qty', array('gt' => 0))
returns a 'qty' is not an attribute error.
$this->_productCollection = $this->_productCollection->addAttributeToSelect('*')
->setStoreId($storeId)
->addStoreFilter($storeId)
->addAttributeToFilter('status',array('neq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED))
->setPageSize($this->getToolbarBlock()->getLimit());
Any ideas? Thanks.
You could use something like this:
$oCollection = Mage::getModel('catalog/product')
->getCollection()
->joinField(
'qty',
'cataloginventory/stock_item',
'qty',
'product_id=entity_id',
'{{table}}.stock_id=1',
'left'
)
->addAttributeToFilter('qty', array('eq' => 0));
In case you need no catalog/product
data at all (except the product id), but only want to know which product ids have a quantity of zero in general, you also could use:
$oCollection = Mage::getModel('cataloginventory/stock_item')
->getCollection()
->addQtyFilter('=', 0);