在我的magento网站上可以看到缺货产品。我想在分层导航中使用自定义过滤器,它会说“排除缺货”,当客户点击它时,应该隐藏缺货产品。
(默认情况下,我启用在系统 - >配置 - > CATALOG->库存)下显示/显示缺货产品
即。我希望客户控制他/她是否应该看到“缺货”产品。
示例 this link
任何人都可以帮忙吗?我希望以magento的方式完成......
答案 0 :(得分:1)
基本上你需要为产品创建属性。
例如。 'exclude_out_of_stock'。
然后你需要在Mage / Catalog / Block / Product / List.php
中编码修改function _getProductCollection()
这
$this->_productCollection = $layer->getProductCollection();
要
$this->_productCollection = $layer->getProductCollection();
if ($this->getRequest()->getParam('exclude_out_of_stock',0)) {
$oCollection = Mage::getModel('cataloginventory/stock_item')
->getCollection()
->addFieldToFilter('is_in_stock',0);
$oProducts = array();
foreach($oCollection as $_collection) {
$oProducts[] = $_collection->getProductId();
}
if(!empty($oProducts))
$this->_productCollection->addIdFilter($oProducts,true);
}