簡體   English   中英

Magento列出所有缺貨商品

[英]Magento List all out of stock items

我正在嘗試制作一個列出所有缺貨商品的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;
   }

但它沒有用。 它列出了所有項目。 列出qty = 0或is_in_stock = 0的所有項目的方法是什么?

這是我一直在使用的功能

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;
}

你應該使用不同的集合

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

這是我最終使用的方式。 提供后端缺貨的所有商品清單

protected function _getProductCollection()
   {


         $stockCollection = Mage::getModel('cataloginventory/stock_item')->getCollection()

        /*->addFieldToFilter('is_in_stock', 0);*/ //this can also be used to filter
        ->addFieldToFilter('qty', 0);


$productIds = array();

    foreach ($stockCollection as $item) {
        $productIds[] = $item->getOrigData('product_id');
    }

    $productCollection = Mage::getModel('catalog/product')->getCollection();
    $productCollection = $this->_addProductAttributesAndPrices($productCollection)
        ->addIdFilter($productIds)
         ->addAttributeToSort('entity_id', 'desc') //THIS WILL SHOW THE LATEST PRODUCTS FIRST
         ->setPageSize($this->get_prod_count())
         ->setCurPage($this->get_cur_page());
        $this->setProductCollection($productCollection);
        return $productCollection;
   }// _getProductCollection
}// Mage_Catalog_Block_Product_Outofstock

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM