Сортировка Magento 1.7 по заказу – проблемы с бестселлерами

Сообщается о нескольких случаях, когда стандартное решение (ы) для этого запроса не работает (аналогичные вопросы по SO изобилуют, без какого-либо окончательного решения).

Что нужно сделать для извлечения коллекции «бестселлеров», так это использовать этот построитель запросов:

$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.

Может ли кто-нибудь отправить сообщение, которое Magento 1.7 проверено / сертифицировано / проверено? (или последней версии Magento).

Solutions Collecting From Web of "Сортировка Magento 1.7 по заказу – проблемы с бестселлерами"

Это может или не может работать для вас, это может быть не самый эффективный способ, но он выполняет эту работу для меня, поэтому здесь он объединяется с частями вашего кода.

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