我认为对于那些对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()方法似乎也不起作用。
我错过了什么?
答案 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的产品。