Я пытаюсь построить массив заказов => продуктов, которые я могу использовать в атрибутах отчетности/обновления. Формат Я иду в:Получить количество заказов на продукт
//$orders[<number of orders>] = <array of product ids with this many orders>
$orders = array(
1 => array(1, 2, 3),
2 => array(4, 5)
//etc
);
До сих пор лучшее, что я могу сделать, это
$productCollection = Mage::getModel('catalog/product')
->addAttributeToSelect("sku")
->getCollection();
$orders = array();
foreach ($productCollection as $product) {
$ordered = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToFilter('sku', $product->getSku())
->setOrder('ordered_qty', 'desc')
->getFirstItem();
$qtyOrdered = $ordered->getOrderedQty();
$total = $this->_counter - (int)(!$ordered ? 0 : $qtyOrdered);
if (!is_array($orders[$total])) {
$orders[$total] = array();
}
$orders[$total][] = $product->getId();
}
Но это, очевидно, использует много ресурсов, загружая всю коллекцию изделий.
Я думаю, что я могу получить только с помощью
$ordered = Mage::getResourceModel('reports/product_collection')
->addOrderedQty();
Но у меня возникают проблемы возвращения/переборе результатов. Как получить информацию, которую я ищу?
Не заказ 'orderId', сколько раз продукт был заказан. –