ベストセラーまたはホット販売製品リストを入手してください
-
16-10-2019 - |
質問
私はPHPが初めてです。私が見つけたコードを使用して、ベストセラー製品リストを取得しようとしています Mage_Adminhtml_Block_Dashboard_Tab_Products_Ordered
からのクラス _prepareCollection
方法。
if ($this->getParam('website')) {
$storeIds = Mage::app()->getWebsite($this->getParam('website'))->getStoreIds();
$storeId = array_pop($storeIds);
} else if ($this->getParam('group')) {
$storeIds = Mage::app()->getGroup($this->getParam('group'))->getStoreIds();
$storeId = array_pop($storeIds);
} else {
$storeId = (int)$this->getParam('store');
}
$_productCollection = Mage::getResourceModel('sales/report_bestsellers_collection')
->setModel('catalog/product')
;
?>
しかし、私はベストセラー製品リストを取得することはできません。使用してチェックしたときに何か他のもの(非常に大きなダンプテキスト)を取得しています
<?php echo Zend_Debug::dump($_productCollection); ?>
PS:$ _ProductCollectionは変数であり、一連の製品を保存して、後でForeachループで使用できるようにします。
解決
繰り返すことができます $_productCollection
製品を入手してください。
foreach ($_productCollection as $product){
//do something with $product
//for example
//Zend_Debug::dump($product->getData());
}
編集コレクション内の各製品は、実際には製品ではありません。注文された数量に関する詳細のみが含まれています。
あなたが電話するなら getData
製品では、このようなものを手に入れます:
Array
(
[period] => 2013-01-01 // probably January 1st current year
[qty_ordered] => 2.0000// qty ordered
[product_id] => 176 // id of product
[product_name] => PRODUCT NAME HERE
[product_price] => 44.99 //product price here
)
完全な製品を取得するには、これを行う必要がある場合があります。
foreach ($_productCollection as $product){
$p = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($product->getProductId());
//attach the ordered qty
$p->setQtyOrdered($product->getQtyOrdered());
//do something with $p
//for example
//Zend_Debug::dump($p->getData());
}
使用しても大丈夫ではないことを知っています load
ループで。パフォーマンスの問題を引き起こす可能性がありますが、多くの製品がない場合は大丈夫です。
所属していません magento.stackexchange