Magento 1.7按订购数量分类 - 畅销产品问题

时间:2013-04-09 04:43:07

标签: php magento

有几个案例报告此查询的标准解决方案不起作用(关于SO的类似问题是abunding,没有任何明确的解决方案)。

检索“畅销书”集合的做法是使用此查询构建器:

    $storeId = Mage::app()->getStore()->getId();
    $collection = Mage::getResourceModel('reports/product_collection');

    $collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());

    $collection = $collection
        ->addFieldToFilter('*')
        ->addOrderedQty()
        ->addStoreFilter()
        ->setStoreId($storeId)
        ->setOrder('ordered_qty', 'desc')
        ->setPageSize(10)
        ->setCurPage(1);

现在,$collection结果包含一些虚假值,并且它完全缺少重要属性(没有名称,价格等)。我甚至无法在1.7中尝试this core-code workaround

有人可以发布Magento 1.7验证/认证/测试的解决方案吗? (或最新的Magento发布)。

1 个答案:

答案 0 :(得分:2)

这可能适用于您,也可能不适合您,它可能不是最有效的方式,但它可以帮我完成工作,所以它在这里与您的部分代码合并。

$storeId = Mage::app()->getStore()->getId();
$collection = Mage::getResourceModel('reports/product_collection');
$collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());

$collection = $collection
    ->addFieldToFilter('*')
    ->addStoreFilter()
    ->setStoreId($storeId)
    ->setPageSize(10)
    ->setCurPage(1);

$collection->getSelect()
    ->joinLeft(
        'sales_flat_order_item AS order_item',
        'e.entity_id = order_item.product_id',
        'SUM(order_item.qty_ordered) AS ordered_qty')
    ->group('e.entity_id')
    ->order('ordered_qty DESC')
;