Magento列出所有缺货商品

luc*_*nda 3 php magento

我正在尝试制作一个列出所有缺货商品的cms页面.

protected function _getProductCollection()
   {

        $collection = Mage::getModel('catalog/product')->getCollection();
        $collection = $this->_addProductAttributesAndPrices($collection)
         ->addStoreFilter()
         ->addAttributeToSort('entity_id', 'desc') //<b>THIS WILL SHOW THE LATEST PRODUCTS FIRST</b>
         ->addAttributeToFilter('stock_status', 0)


         ->setPageSize($this->get_prod_count())
         ->setCurPage($this->get_cur_page());
        $this->setProductCollection($collection);
        return $collection;
   }
Run Code Online (Sandbox Code Playgroud)

但它没有用.它列出了所有项目.列出qty = 0或is_in_stock = 0的所有项目的方法是什么?

sul*_*abh 7

这是我一直在使用的功能

function getOutOfStockProducts()
{
        $products = Mage::getModel('catalog/product')
                ->getCollection()
                ->joinField(
                        'is_in_stock',
                        'cataloginventory/stock_item',
                        'is_in_stock',
                        'product_id=entity_id',
                        '{{table}}.stock_id=1',
                        'left'
                )
                ->addAttributeToFilter('is_in_stock', array('eq' => 0));

        return $products;
}
Run Code Online (Sandbox Code Playgroud)


Ant*_*n S 6

你应该使用不同的集合

$outOfStockItems = Mage::getModel('cataloginventory/stock_item')
        ->getCollection()
        ->addFieldToFilter('is_in_stock', 0);
Run Code Online (Sandbox Code Playgroud)