2016-07-27 151 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);