过滤"is_salable"上的产品集合

Bri*_*VPS 14 magento magento-1.4

我想过滤产品系列,只显示库存商品.我认为这很容易,因为有一个名为'is_salable'的属性,如果有库存则为1(真),否则为0(假).但无论我做什么,它都行不通.此外,它似乎在查询完成之前停止执行.

这是一些示例代码:

$this->_productCollection = Mage::getModel('catalog/product')->getCollection();
$this->_productCollection->addAttributeToSelect('*');
$this->_productCollection->addAttributeToFilter('my_attribute', true);
//So far, so good...filtering on 'my_attribute' works!
Mage::Log("select: " . $this->_productCollection->getSelect());
//Successfully outputs the SQL query
$this->_productCollection->addFieldToFilter('is_salable', '1');
Mage::Log("select: " . $this->_productCollection->getSelect());
//does NOT output any query...it's like it died trying
Run Code Online (Sandbox Code Playgroud)

那么我做错了什么?我尝试了'addFieldToFilter','addAttributeToFilter'以及其他各种查询,例如:addFieldToFilter('is_salable', array('eq' => true))等等...

有人知道怎么做吗?如果'is_salable'不是答案,那么我需要做的就是过滤掉没有库存的产品...所以无论做什么都可以做到这一点:)

谢谢!

Iva*_*nyi 45

is_salable产品中没有属性,因此会出现异常.如果您只想显示库存产品,请使用此库存模型addInStockFilterToCollection方法:

Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($this->_productCollection);
Run Code Online (Sandbox Code Playgroud)

  • 产品列表中的@BrianVPS`is_salable`属性是可能的`isSalable`方法调用的索引值.`isSalable`方法调用的结果可能不同,取决于`Mage_CatalogInventory`模块观察器中定义的产品类型和逻辑.它也可能与实际的方法调用不同,如果在自定义模块开发期间,也没有自定义适当的索引. (2认同)