Таблица продуктов Magento flat - получение названий продуктов «Самые популярные» - PullRequest
2 голосов
/ 06 августа 2010

В настоящее время я показываю коллекцию наиболее популярных товаров в виде списка в моем нижнем колонтитуле.Я получаю коллекцию, используя следующий код:

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

Это работает нормально, пока я не активирую плоские продукты, а затем больше не могу получать названия продуктов или цены.Однако он все еще может получить URL, 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 Ответ

2 голосов
/ 05 сентября 2010

Я думаю, что это на самом деле ошибка, так как почему вы не сможете получить название продукта?Итак, я представил это так:

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, который вы можете получить прямо из коллекции продуктов, чтобы загрузить имя отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...