Magento サイトで「ベストセラー製品」リストを生成しようとしています。hereからの回答をたどってみました。これは問題なく機能しますが、これは単純な製品にのみ理想的であることに気付きました。構成可能な製品のランキングを作成しようとしているので、最初に単純な製品の合計注文を取得する必要があると思いますが、プログラムでどのようにできるかわかりません。これは基本的に私が念頭に置いているアイデアです:
構成可能な製品に関連付けられた単純な製品を取得する
各単純な製品の合計注文を取得し、それらを合計します
合計を構成可能な製品に再度渡し(ここでは配列を使用することを考えています)、ランキング順に並べられた必要なデータを呼び出します。
これまでのところ、私はこのコードを思いつきました:
$storeId = Mage::app()->getStore()->getId();
$_collection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('type_id', 'configurable');
foreach($_collection as $c):
$configurable = $c->getTypeInstance()->getUsedProductIds();
foreach($configurable as $_config):
$_simple = Mage::getModel('catalog/product')->load($_config);
echo $_simple->getName()."<br/>";
echo "qty:".(int)$_simple->ordered_qty."<br/>";
endforeach;
endforeach;
ただし、テストしようとすると、すべての数量が 0 を返すため、行き詰まります。構成可能製品のランキングを実装するにはどうすればよいですか? お知らせ下さい。また、可能であれば、コア ファイルの変更を最小限に抑えたいと考えています。
また、このランキング リストは 10 個に制限されており、他の製品の販売数量が 0 の場合、自動的にアルファベット順に並べ替えられます。たとえば、2 つの商品の販売額が同じ場合も同様です。