Products 'Reports/Product_Collectionからカテゴリ名を取得する
-
16-10-2019 - |
質問
ベストセラー製品とそのカテゴリ名をリストする必要があります。このために使用しました
$_storeId = Mage::app()->getStore()->getId();
$_products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect('*')
->addAttributeToFilter('visibility', array(
Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH
))
->setOrder('ordered_qty', 'desc');
そして、個々の製品を取得するために:
foreach ($_products as $_product) {
//code need to be added here
}
しかし、私はカテゴリ名をから取得する方法を得ていません $_product
.
私はもう試した
$_product->getCollection()->getCategoryIds();
しかし、私のスクリプトは死に、さらに実行しません。
解決
これは、技術的にはタイプの製品コレクションではありません catalog/product
, 、あなたがする必要があるのは次のとおりです。
$_storeId = Mage::app()->getStore()->getId();
$_products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect('*')
->addAttributeToFilter('visibility', array(
Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH
))
->setOrder('ordered_qty', 'desc');
foreach ($_products as $_product){
$product = Mage::getModel('catalog/product')->load($_product->getId());
$category_ids = $product->getCategoryIds();
foreach ($category_ids as $category_id){
$category = Mage::getModel('catalog/category')->load($category_id);
<!-- do what you want to with the category here -->
}
}
編集:コメントによると、コレクションサイズを制限するには:
$_products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect('*')
->addAttributeToFilter('visibility', array(
Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH
))
->setOrder('ordered_qty', 'desc');
$_products->getSelect()->limit(5); //or whatever integer you want
所属していません magento.stackexchange