Как добавить рейтинг в список сортировки в Magento 1.7

Нужна помощь в добавлении сортировки по рейтингу в Magento. Я добавил фрагменты кода в toolbar.php, которые, кажется, добавляют сортировку по рейтингу, но при попытке выбрать его, он застрял, пока я не перезагрузил страницу. Любая помощь будет принята с благодарностью. Код можно найти ниже: Это файл Toolbar.php.

// Начать новый код

    $this->getCollection()->joinField('rating',
'review/review_aggregate',
'rating_summary',
'entity_pk_value=entity_id',
'{{table}}.store_id=1',
'left');
// End new Code

А ТАКЖЕ

// Добавить рейтинг в «Сортировать по»

$_availableOrder = $this->_availableOrder;
$_availableOrder['rating'] = 'Rating';

return $_availableOrder;

$this->_availableOrder = array(
‘rating_summary’ => Mage::helper(’catalog’)->__(’Rating’),
‘price’ => Mage::helper(’catalog’)->__(’Price’),
‘newest’ => Mage::helper(’catalog’)->__(’Newest’),
‘name’ => Mage::helper(’catalog’)->__(’Name’)
);

2

Решение

Лучше всего сделать это в модуле, но здесь вы идете:

Сначала мы изменим способ извлечения продуктов из базы данных, чтобы включить общий рейтинг (показанный как количество звездочек на продукте) вместе с остальными атрибутами продукта. Скопируйте файл app / code / core / Mage / Catalog / Block / Product / List.php в app / code / local / Mage / Catalog / Block / Product / List.php и откройте его для редактирования.

В новом файле List.php найдите следующую строку (около строки 86):

$this->_productCollection = $layer->getProductCollection();

После этого добавьте следующее:

$this->_productCollection->joinField('rating_summary', 'review_entity_summary', 'rating_summary', 'entity_pk_value=entity_id', array('entity_type'=>1, 'store_id'=> Mage::app()->getStore()->getId()), 'left');

Теперь нам нужно добавить опцию, чтобы клиент мог выбрать «Рейтинг» в качестве атрибута для сортировки. Скопируйте файл app / code / core / Mage / Catalog / Model / Config.php в app / code / local / Mage / Catalog / Model / Config.php и отредактируйте.

В новом файле Config.php найдите следующий код (который должен начинаться со строки 298):

$options = array(
'position'  => Mage::helper('catalog')->__('Position')
);

Заменить кодом на:

$options = array(
'position'  => Mage::helper('catalog')->__('Position'),
'rating_summary' => Mage::helper('catalog')->__('Rating')
);

Теперь при просмотре категорий на вашем сайте у вас должна быть опция «Рейтинг» в дополнение к другим. Обратите внимание, что порядок сортировки по умолчанию возрастает, поэтому продукты с самым низким рейтингом будут отображаться первыми. Заказчик может изменить порядок сортировки, щелкнув стрелку рядом с раскрывающимся списком. Помимо этого предостережения, новый вид довольно прост в реализации и расширяет полезность рейтингов.

Кредиты: https://www.fontis.com.au/blog/sort-products-rating

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]