Привет! Пользуясь случаем, хочу сказать большое спасибо Дмитрию Федюку за существование этого форума. Читаю его уже 4 месяца, и он мне очень помог разобраться в Magento.
Сейчас хочу добавить возможность сортировки товаров в категории по параметру "количество просмотров". Учет такого количества явно ведется, на главной странице админки даже есть вкладка Наиболее просматриваемые товары, с цифрами по топ-5 товарам.
Нужно что-то вроде ordered_qty. Наверное параметр называется viewed_qty, или что-то в этом роде.
Сортировка товаров в категории по количеству просмотров
23.04.2011 16:35
Создайте коллекцию класса Mage_Reports_Model_Mysql4_Product_Collection и при её формировании среди других методов (фильтрация по наличию на складе и т.п.) вызовите метод Mage_Reports_Model_Mysql4_Product_Collection::addViewsCount().
Метод addViewsCount упорядочивает товары коллекции по количеству их просмотров.
Метод addViewsCount упорядочивает товары коллекции по количеству их просмотров.
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();
нужно добавить код, в котором и будет создана коллекция класса.
В правильном направлении двигаюсь?
Правильно ли я понимаю, что изменения нужно вносить в файл 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();
нужно добавить код, в котором и будет создана коллекция класса.
В правильном направлении двигаюсь?
04.05.2011 04:25
Не совсем понятно, сколько будет "две недели" в пересчёте на человеко-часы, но, думаю, что много.
Неочевидно, что, будучи практически не знакомым с PHP, имеет смысл инвестировать столько времени в такую несущественную задачу.
Здравый смысл подсказывает более дешёвые решения:
Неочевидно, что, будучи практически не знакомым с PHP, имеет смысл инвестировать столько времени в такую несущественную задачу.
Здравый смысл подсказывает более дешёвые решения:
- Например, не решать задачу сейчас, а вместо этого отложить её на потом, когда на кривой обучения пройдёте границу, начиная с которой можно будет решить задачу при разумных трудозатратах.
- Или же, если решение задачи важно именно сейчас, то можно заказать решение специалисту, а потом посмотреть, как именно специалист решил задачу (особенно если доплатить специалисту не только за решение задачи, но и за обучение).
04.05.2011 12:58
Согласен, так и есть. Но пока до этого все задачи удавалось решать своими силами и гуглингом (и с помощью вашего форума), в том числе довольно сложные.
Нашел платный модуль, который делает именно то, что нужно:
А вообще не понимаю, почему так мало решений, в том числе коммерческих, этой задачи. Имхо такая сортировка, это базовое требование к любому мало-мальски наполненному товарами магазину. Не по алфавиту же их сортировать.
Нашел платный модуль, который делает именно то, что нужно:
http://www.magentocommerce.com/magento-connect/Amasty/extension/3717/improved_sorting, но сдаваться пока не хочу =)
А вообще не понимаю, почему так мало решений, в том числе коммерческих, этой задачи. Имхо такая сортировка, это базовое требование к любому мало-мальски наполненному товарами магазину. Не по алфавиту же их сортировать.
04.05.2011 13:05
Разработчики модулей - это не владельцы и администраторы магазинов, а программисты.
Разработчики модулей обычно не имеют такого богатого практического опыта, как у владельцев и администраторов, в управлении интернет-магазином в реальных рыночных условиях.
Поэтому разработчики модулей могут иметь расплывчатое представление о реальных потребностях владельцев и администраторов магазинов.
Это действительно проблема для обеих сторон: как для программистов, как и для администраторов.
Я для себя её решаю, в частности, посредством программы Голосование за новые функции Российской сборки.
Там клиенты Российской сборки Magento высказывают свои практические потребности и определяют, какие модули будут реализованы в следующей версии.
Разработчики модулей обычно не имеют такого богатого практического опыта, как у владельцев и администраторов, в управлении интернет-магазином в реальных рыночных условиях.
Поэтому разработчики модулей могут иметь расплывчатое представление о реальных потребностях владельцев и администраторов магазинов.
Это действительно проблема для обеих сторон: как для программистов, как и для администраторов.
Я для себя её решаю, в частности, посредством программы Голосование за новые функции Российской сборки.
Там клиенты Российской сборки Magento высказывают свои практические потребности и определяют, какие модули будут реализованы в следующей версии.