2016-07-27 104 views
1

我想用下面的查询,但过滤大部分销售产品的产品不能正常工作过滤器系列产品由最畅销的产品在Magento

$category = Mage::getModel('catalog/category')->load($cat_id); 

$collection = Mage::getResourceModel('catalog/product_collection')->addCategoryFilter($category); 
$collection->addAttributeToFilter('city',array('finset' => Mage::getResourceModel('catalog/product')->getAttribute('city')->getSource()->getOptionId($city_name))); 
$collection->addAttributeToSelect('*'); 
$collection->setOrder('ordered_qty', 'DESC'); 
$collection->setOrder('name', 'ASC'); 
$collection->getSelect(); 

请建议什么,我做错了上面的查询?

+0

http://inchoo.net/magento/bestseller-products-in-magento/ – GoatHater

回答

1

请尝试以下查询。

$category = Mage::getModel('catalog/category')->load($cat_id); 

    $collection = Mage::getResourceModel('catalog/product_collection')->addCategoryFilter($category); 
    $collection->addAttributeToFilter('city',array('finset' => Mage::getResourceModel('catalog/product')->getAttribute('city')->getSource()->getOptionId($city_name))); 
    $collection->addAttributeToSelect('*'); 

    $collection->getSelect() 
       ->joinLeft(
        array('aggregation' => $collection->getResource()->getTable('sales/bestsellers_aggregated_monthly')), 
        "e.entity_id = aggregation.product_id", 
        array('SUM(aggregation.qty_ordered) AS sold_quantity') 
       ) 
       ->group('e.entity_id') 
       ->order(array("sold_quantity DESC")); 
0
$collection = Mage::getResourceModel('catalog/product_collection') 
      ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) 
      ->addStoreFilter() 
      ->addPriceData() 
      ->addTaxPercents() 
      ->addUrlRewrite() 
      ->setPageSize(6); 

     $collection->getSelect() 
      ->joinLeft(
       array('aggregation' => $collection->getResource()->getTable('sales/bestsellers_aggregated_monthly')), 
       "e.entity_id = aggregation.product_id AND aggregation.store_id={$storeId} AND aggregation.period BETWEEN '{$fromDate}' AND '{$toDate}'", 
       array('SUM(aggregation.qty_ordered) AS sold_quantity') 
      ) 
      ->group('e.entity_id') 
      ->order(array('sold_quantity DESC', 'e.created_at')); 

     Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection); 
     Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);