【发布时间】:2011-10-02 19:44:11
【问题描述】:
我在这里遇到了一些严重的 Magento 问题。正如预期的那样:
$products = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', array('eq' => 1));
将为我的 $category_id 返回所有已启用的产品。然而这个:
$products = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', array('eq' => 0));
不退回已禁用的产品。我似乎找不到退货的方法,我也不知道为什么。
我试过了:
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
这本来是可行的,但显然可能已被弃用。
有谁知道如何获取一个类别中的所有产品,启用和禁用?
【问题讨论】:
-
如果您使用平面目录,您将无法退回已禁用的产品,因为平面目录仅收集已启用的产品。
-
我明白了,有没有办法解决这个问题?编辑:查看我的设置,使用平面目录产品和使用平面目录类别都设置为否。这是否意味着我没有使用平面目录?
-
确实,说明你没有使用平面目录...
-
那么从技术上讲,我应该能够退回已禁用的产品!
标签: magento collections filter status