Сортировка товаров в категории по количеству просмотров

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 eug
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 01.03.2011

23.04.2011 15:56

Привет! Пользуясь случаем, хочу сказать большое спасибо Дмитрию Федюку за существование этого форума. Читаю его уже 4 месяца, и он мне очень помог разобраться в Magento.

Сейчас хочу добавить возможность сортировки товаров в категории по параметру "количество просмотров". Учет такого количества явно ведется, на главной странице админки даже есть вкладка Наиболее просматриваемые товары, с цифрами по топ-5 товарам.

Нужно что-то вроде ordered_qty. Наверное параметр называется viewed_qty, или что-то в этом роде.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

23.04.2011 16:35

Создайте коллекцию класса Mage_Reports_Model_Mysql4_Product_Collection и при её формировании среди других методов (фильтрация по наличию на складе и т.п.) вызовите метод Mage_Reports_Model_Mysql4_Product_Collection::addViewsCount().
Метод addViewsCount упорядочивает товары коллекции по количеству их просмотров.

#3 eug
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 01.03.2011

04.05.2011 01:36

Спасибо за ответ. Уже две недели пытаюсь его осмыслить. С php фактически не знаком, так что иду на ощупь.
Правильно ли я понимаю, что изменения нужно вносить в файл app/code/core/Mage/Catalog/Block/Product/List.php или же в Toolbar.php? (У меня Magento версии 1.5.0.1, может что-то можно сделать через Custom Layout Update из админки?)

Нашел такое решение:
в файл app\code\core\Mage\Catalog\Block\Product\List.php
в функцию
protected function _getProductCollection()
после строки
$this->_productCollection = $layer->getProductCollection();
нужно добавить код, в котором и будет создана коллекция класса.

В правильном направлении двигаюсь?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

04.05.2011 04:25

Не совсем понятно, сколько будет "две недели" в пересчёте на человеко-часы, но, думаю, что много.
Неочевидно, что, будучи практически не знакомым с PHP, имеет смысл инвестировать столько времени в такую несущественную задачу.
Здравый смысл подсказывает более дешёвые решения:
  • Например, не решать задачу сейчас, а вместо этого отложить её на потом, когда на кривой обучения пройдёте границу, начиная с которой можно будет решить задачу при разумных трудозатратах.
  • Или же, если решение задачи важно именно сейчас, то можно заказать решение специалисту, а потом посмотреть, как именно специалист решил задачу (особенно если доплатить специалисту не только за решение задачи, но и за обучение).


#5 eug
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 01.03.2011

04.05.2011 12:58

Согласен, так и есть. Но пока до этого все задачи удавалось решать своими силами и гуглингом (и с помощью вашего форума), в том числе довольно сложные.

Нашел платный модуль, который делает именно то, что нужно:
http://www.magentocommerce.com/magento-connect/Amasty/extension/3717/improved_sorting
, но сдаваться пока не хочу =)

А вообще не понимаю, почему так мало решений, в том числе коммерческих, этой задачи. Имхо такая сортировка, это базовое требование к любому мало-мальски наполненному товарами магазину. Не по алфавиту же их сортировать.

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

04.05.2011 13:05

Разработчики модулей - это не владельцы и администраторы магазинов, а программисты.

Разработчики модулей обычно не имеют такого богатого практического опыта, как у владельцев и администраторов, в управлении интернет-магазином в реальных рыночных условиях.

Поэтому разработчики модулей могут иметь расплывчатое представление о реальных потребностях владельцев и администраторов магазинов.

Это действительно проблема для обеих сторон: как для программистов, как и для администраторов.

Я для себя её решаю, в частности, посредством программы Голосование за новые функции Российской сборки.
Там клиенты Российской сборки Magento высказывают свои практические потребности и определяют, какие модули будут реализованы в следующей версии.

Поделиться темой: