2015-07-21 35 views
0

將過濾器添加到Magento中加載的集合的最佳做法是什麼?我想隱藏沒有庫存的商品,上次更新的日期不在最近30天內。如何過濾Magento Loaded Collection?

我嘗試創建一個函數來隱藏前端的產品,然後我意識到它不會影響在尋呼機中加載的總項目數。我發現_getProductCollection()可能是我可以使用的方法,但我無法在其上添加過濾器。

我還是Magento的新手,所以任何指導都非常感謝。

回答

0
$collection = Mage::getModel('catalog/product')->getCollection(); 
$collection->addFieldToFilter('status', '1'); 
$collection->addFieldToFilter(
'created_at', 
    array(
     'lteq'=>$last_day 
    ) 
);  
$collection->addFieldToFilter(
    'updated_at', 
    array(
     'gteq'=>$first_day 
    ) 
); 
0

可以system->configuration->catalof->invemtory 下篩選出來的股票產品,從管理設置的保藏,並設置`

顯示缺貨產品選項沒有

希望這將幫你

`

+0

謝謝,但我需要用兩個過濾規則。缺貨和上次更新不在30天內。 – sayzlim

+0

爲此,您可以檢查\ app \ code \ core \ Mage \ Catalog \ Block \ Product \ List.php到和_getProductCollection()函數,並且您可以在其中添加您的篩選器以創建 –

0

你可以在app \代碼\核心\法師\目錄中_getProductCollection()函數中添加過濾器\塊\產品\ list.php的

from 
> $this->_productCollection = $layer->getProductCollection(); 

to 

$this->_productCollection = $layer->getProductCollection()->addAttributeToFilter('created_at', 'your_value')); 

`

+0

您還可以使用篩選器值像Shack Ro回答 - > addFieldToFilter( 'created_at', array( 'lteq'=> $ last_day ) ); $ this - > _ productCollection-> addFieldToFilter( 'updated_at', array( 'gteq'=> $ first_day ) –