Magento扁平产品表 - 检索“观看次数最多”的产品名称

时间:2010-08-06 15:07:27

标签: magento

我目前在我的页脚中显示“最受欢迎”产品的集合作为列表。我使用以下代码获取集合:

$_viewed_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addViewsCount()
->setOrder('views_count', 'desc')
$_viewed_productCollection->load();

在我启用平板产品之前,此工作正常,然后它无法再检索产品名称或价格。然而,它仍然可以得到网址,sku等,这真的让我感到困惑。我打印出可以返回的数组,似乎根本没有名称数据,只有以下内容:

Array (     
[views] => 29     
[entity_id] => 18     
[entity_type_id] => 10     
[attribute_set_id] => 38     
[type_id] => simple     
[sku] => sw810i     
[created_at] => 2007-08-23 15:47:44     
[updated_at] => 2008-08-08 14:50:56     
[has_options] => 0     
[required_options] => 0     
[is_salable] => 1     
[stock_item] => Varien_Object Object         
( [_data:protected] => Array                 
( [is_in_stock] => 1 )              
[_origData:protected] =>              
[_idFieldName:protected] =>              
[_isDeleted:protected] => )      
[gift_message_available] => 2 
) 

无论如何使用它的SKU获得产品名称?也许是这样的事情:

<?php $sku = $_product->getData('sku'); echo $this->htmlEscape($_product->getName($sku)) ?> 

1 个答案:

答案 0 :(得分:2)

我认为这实际上是一个错误,为什么你不能获得产品名称?所以,我已经提交了它:

http://www.magentocommerce.com/bug-tracking/issue?issue=9812

如果有人需要,我确实想出了一个解决方法:

<?php foreach ($_productCollection as $_product):  ?>
        <?php $sku = $_product->getData('sku'); $_currentproduct = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);  ?>
        <li><a href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->htmlEscape($_currentproduct->getName()) ?></a></li>
<?php endforeach;  ?>

基本上你只是使用sku,你可以直接从产品系列中获取,分别加载名称。