一般B2C商城显示在页面上的产品都是有库存的产品,这样访客不会选了一段产品之后突然发现没有库存无法下单。很多朋友在选取有库存产品collection的时候,通常使用addAttributeToFilterI()过滤库存,实际上这样是不准确的。
即使库存(Qty)大于0,如果将可用(Stock Availability)调整为Out Of Stock,客户也同样无法下单。当然,如果同时过滤qty和Stock Availability也能够可以筛选掉无法购买的商品。但是Magento已经封装了一个方法,可以很简单的筛选掉无法购买的商品。代码如下。
$_productCollection = Mage::getModel('catalog/product')
->getCollection()
->addCategoryFilter($cat)
->addUrlRewrite();
Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($_productCollection);
|