Magento:按类别过滤报告/ product_collection似乎不起作用

时间:2012-04-20 17:12:41

标签: magento report

我认为对于那些对Magento有点熟悉的人来说,这应该是一个简单的问题,但我对它很陌生并找不到解决方案。

我正在尝试过滤报表/ product_collection,我需要使用它来按类别按订单数量订购产品,示例代码:

$store = Mage::app()->getStore();
$category = 42; // just an example
$products = Mage::getResourceModel('reports/product_collection')
                ->addAttributeToSelect('*')
                ->addAttributeToFilter("status", Mage_Catalog_Model_Product_Status::STATUS_ENABLED)     
                ->setPageSize(9)
                ->setCurPage(1) 
                ->addOrderedQty()
                ->setOrder("ordered_qty", "desc")
                ->setStore($store)
                ->addStoreFilter($store)
                ->addCategoryFilter(Mage::getModel('catalog/category')->load($category)); 

在catalog / product_collection上使用addCategoryFilter()方法可以正常工作,但在reports / product_collection上它似乎没有做任何事情,它仍然查询所有类别的产品。 顺便说一句,addAttributeToFilter()方法似乎也不起作用。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

虽然只是漫无目的,但不应该更像这样吗? 我认为你没有正确地进行过滤。 IMHO

$store = Mage::app()->getStore();

$category = 42; // just an example

$products = Mage::getResourceModel('reports/product_collection')
            ->addAttributeToSelect('*')
            ->addAttributeToFilter("status", Mage_Catalog_Model_Product_Status::STATUS_ENABLED)     
            ->setPageSize(9)
            ->setCurPage(1) 
            ->addOrderedQty()
            ->setOrder("ordered_qty", "desc")
            ->setStore($store)
            ->addStoreFilter($store)
            ->addAttributeToFilter('category_id', array('in' => $category)); 

答案 1 :(得分:0)

您要查询的类别是否设为锚点?我认为这会导致它包含所有subcat的产品。