0
$storeId = Mage::app()->getStore()->getId();
$products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect(array('name', 'price', 'small_image', 'short_description', 'description'))
->addStoreFilter($storeId)
->setPageSize(4)
->setCurPage(1)
->setOrder('ordered_qty', 'desc')->load();

Magento 1.6.2 でベストセラー コードが機能しない。コレクションはストアによってもフィルタリングされません。

Zend_Debug::dump($storeId); 私に与えますが、次のようなエラーが表示され、次のクエリが表示されるため、string '2' (length=1)実行できません。Zend_Debug::dump($products->getSelect());There has been and error processing your request

SELECT SUM(order_items.qty_ordered) AS ordered_qty, order_items.name AS order_items_name, order_items.product_id AS entity_id, e.entity_type_id, e.attribute_set_id, e.type_id, e.sku, e.has_options, e.required_options, e.created_at, e.updated_at, e.name, e.price, e.small_image, e.short_description FROM tp_sales_flat_order_item AS order_items INNER JOIN tp_sales_flat_order AS order ON order.entity_id = order_items.order_id AND order.state <> 'cancelled' LEFT JOIN tp_catalog_product_entity AS e ON (e.type_id NOT IN ('grouped', 'configurable', 'bundle')) AND e.entity_id = order_items.product_id AND e.entity_type_id = 4 WHERE (parent_item_id IS NULL) GROUP BY order_items.product_id HAVING (SUM(order_items.qty_ordered) > 0) ORDER BY ordered_qty desc LIMIT 4

私を助けてください。

4

4 に答える 4

1

これを試して:

<?php 
    $products = Mage::getResourceModel('reports/product_collection')
               ->addAttributeToSelect('*')
               ->addOrderedQty($from, $to, true)
               ->addAttributeToSelect(array('name', 'price', 'small_image'))
               ->addCategoryFilter($category)
               ->setStoreId($storeId)
               ->addStoreFilter($storeId)
               ->setOrder('ordered_qty', 'desc');
?>
于 2015-01-31T09:32:57.123 に答える
0

私はmagento 1.6.2でもこの種の問題に直面していました。コレクションをフィルタリングしているときに、属性フィルターに問題があることがわかりました。

addAttributeToFilteraddFieldToFilterに置き換えましたが、うまくいきました。

これを試してみてください。

于 2012-04-21T11:42:40.810 に答える
0

これを試して:

$storeId = Mage::app()->getStore()->getId();
$products = Mage::getResourceModel('reports/product_collection')
->addOrdersCount()
->addAttributeToSelect(array('name', 'price', 'small_image', 'short_description', 'description'))
->addStoreFilter($storeId)
->setPageSize(4)
->setCurPage(1)
->setOrder('orders', 'desc')->load();

変更点は addOrdersCount() メソッドと ->setOrder() メソッドです。

于 2012-04-12T15:57:46.887 に答える
0

コレクションの storeid を設定してみてください。OrderedQty を追加した後に、次の行を挿入します。

->setStoreId($storeId)
于 2013-06-11T11:07:49.383 に答える