在Magento中按2个或更多参数过滤产品集合

时间:2013-09-06 06:17:17

标签: php magento

在为我的Magento网站尝试create a best product ranking的过程中,我遇到了另一个障碍。我有3个不同的商店,有不同的产品,所以我尝试在我的查询中添加商店过滤器,所以我的查询看起来像这样:

$productCollection = Mage::getResourceModel('reports/product_collection')
        ->addAttributeToSelect('*')
        ->addStoreFilter($storeId)
        ->addOrderedQty()
        ->setOrder('ordered_qty', 'desc')
        ->setPage(1, 10);

问题是,我注意到如果我添加addOrderedQty参数,它会完全忽略addStoreFilter,所以我的排名会返回所有产品,无论它在哪个商店。我试图重新排列我的查询,所以我在商店过滤器之前调用了订购数量但是有了这个,查询完全忽略了订购的数量过滤器,但它只获得商店特定的产品。是否有可能使两个参数一起工作而不忽略1?请帮忙!

1 个答案:

答案 0 :(得分:1)

试试这个

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

$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);

希望这一定会对你有所帮助。