0

これは、Magento に少し慣れている人にとっては簡単な問題だと思いますが、私はまったく初めてで、まだ解決策が見つかりません。

カテゴリごとの注文数で注文された製品を取得するために使用する必要があるレポート/製品コレクションをフィルタリングしようとしています。コード例:

$store = Mage::app()->getStore();
$category = 42; // just an example
$products = Mage::getResourceModel('reports/product_collection')
                ->addAttributeToSelect('*')
                ->addAttributeToFilter("status", Mage_Catalog_Model_Product_Status::STATUS_ENABLED)     
                ->setPageSize(9)
                ->setCurPage(1) 
                ->addOrderedQty()
                ->setOrder("ordered_qty", "desc")
                ->setStore($store)
                ->addStoreFilter($store)
                ->addCategoryFilter(Mage::getModel('catalog/category')->load($category)); 

catalog/product_collection で addCategoryFilter() メソッドを使用しても問題なく動作しますが、reports/product_collection では何もしないようで、すべてのカテゴリの製品を照会します。ちなみに、 addAttributeToFilter() メソッドも機能していないようです。

私は何が欠けていますか?

4

2 に答える 2

0

とりとめのない話ですが、もっとこうあるべきではないでしょうか。フィルターを正しくステージングしているとは思いません。私見では

$store = Mage::app()->getStore();

$category = 42; // just an example

$products = Mage::getResourceModel('reports/product_collection')
            ->addAttributeToSelect('*')
            ->addAttributeToFilter("status", Mage_Catalog_Model_Product_Status::STATUS_ENABLED)     
            ->setPageSize(9)
            ->setCurPage(1) 
            ->addOrderedQty()
            ->setOrder("ordered_qty", "desc")
            ->setStore($store)
            ->addStoreFilter($store)
            ->addAttributeToFilter('category_id', array('in' => $category)); 
于 2012-04-20T18:12:47.673 に答える
0

照会しているカテゴリはアンカーとして設定されていますか? これにより、すべてのサブキャットの製品も含まれるようになると思います。

于 2013-07-17T05:59:27.617 に答える