PJS

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

让Magento系统目录只显示有库存的产品(Instock Products Only)

Posted on 2009-11-14 22:59  PJS  阅读(366)  评论(0)    收藏  举报

让Magento系统目录只显示有库存的产品:

需要编程实现.(本文面向程序员)

具体通过对产品模型加上joinField操作来实现:

产品模型定义:$_productC = Mage::getResourceModel(’reports/product_collection’);

Join语句写法:$_productC->joinField(’inventory_in_stock’, ‘cataloginventory/stock_item’,'is_in_stock’, ‘product_id=entity_id’, ‘{{table}}.is_in_stock=1′);

范例:

$storeId    = Mage::app()->getStore()->getId();
$category = Mage::registry(’current_category’);
$_productC = Mage::getResourceModel(’reports/product_collection’)
->addViewsCount()
->addAttributeToSelect(’*')
->setStoreId($storeId)
->addStoreFilter($storeId)
->addCategoryFilter($category)
->setPageSize(12)
->setCurPage(1);

Mage::getSingleton(’catalog/product_status’)->addVisibleFilterToCollection($_productC);
Mage::getSingleton(’catalog/product_visibility’)->addVisibleInCatalogFilterToCollection($_productC);
$_productC->joinField(’inventory_in_stock’, ‘cataloginventory/stock_item’,'is_in_stock’, ‘product_id=entity_id’, ‘{{table}}.is_in_stock=1′);
$this->setProductCollection($_productC);