Нужна помощь в добавлении сортировки по рейтингу в 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’)
);
Лучше всего сделать это в модуле, но здесь вы идете:
Сначала мы изменим способ извлечения продуктов из базы данных, чтобы включить общий рейтинг (показанный как количество звездочек на продукте) вместе с остальными атрибутами продукта. Скопируйте файл 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
Других решений пока нет …