Сортировка товара в категориях
Добрый день! Подскажите, как изменить сортировку товаров сразу во всех категориях?
Имеется очень большое кол-во категорий и подкатегорий, хотелось бы изменить сортировку в них на "Дата добавления", как это можно сделать сразу для всех категорий и подкатегорий?
Спасибо!
13 ответов
в шаблоне нашел
я так понимаю, что в админке нужно просто выбрать какую то настройку, чтобы активировать {if !isset($active_sort)} но не могу найти эту настройку
Параметры сортировки товаров в категориях хранятся в БД в таблице shop_category в поле sort_products.
Значение сортировки по дате добавления выглядит как 'create_datetime DESC' от новых к старым или ASC, если надо наоборот.
Соответственно будь хоть 100500 категорий, то через БД это можно сделать одним простеньким запросом типа такого.
Или поищите какие-нибудь плагины для рекурсивной настройки категорий. Наверное такие есть.
Плагин "Приоритет товаров" посмотрите. Там много че можно настроить.
Плагин хорош т.к. позволяет правильно динамично поднимать продающиеся товары, когда магазин уже набрал базу и статистику продаж, но есть одно маленькое но. Нельзя сделать сортировку без учета приоритета вообще. В случае с товарами одинакового приоритета фактически сам приоритет никак не влияет, а когда надо, чтобы приоритет был наряду с остальными параметрами и не первым критерием, а товары при этом имели бы разные приоритеты для правильной сортировки в родительских категориях, то никак. Можно конечно в самой БД попробовать модифицировать условие сортировки
Но, когда категорий много, то неудобно, а было бы круто, если бы приоритет шел как все остальные параметры и его можно было бы не учитывать или учитывать только по требованию. Гибкости стало бы чуть больше.
> Плагин хорош, но есть одно маленькое но. Нельзя сделать сортировку без учета приоритета вообще.
- Да, нельзя. Но, на мой взгляд, это особо и не нужно. Плагин "Автоматическое управление товарами" интегрирован с этим плагином (по-моему, это даже я когда-то давно просил за денежку интегрировать их). Настраиваешь условия: где нужно поднять приоритет, там поднимаешь. Где нужно опустить - опускаешь. Приоритет у товаров расставляется по крону каждую ночь. Гибче некуда. Главное не затупить с настройками, чтобы приоритет в бесконечность не уходил. Пример простенькой группы правил: https://yadi.sk/i/AxGB5OIZoJnk...
Намного лучше, чем БД ковырять.
Каждый пусть на свои потребности, ассортимент и особенности товаров, а также на свой бюджет рассматривает варианты решений. Кому плагин за 5к, а кому один бесплатный запрос в БД сделать. Мне лично приоритета товаров выше крыши, но с модификацией условия конечно. Остально вот точно не нужно.
В рамках же изначального вопроса ничего кроме запроса в БД для массового изменения сортировки не нужно точно.
Остальное от лукавого и с подвывертом. Запрос в БД, если что, тоже можно в крон погрузить и будет бесплатно работать как часы на каждую новую загрузку новых категорий и прочего через yml хоть каждые 5 минут. При правильном where там только новое update и танцуем. БД бояться - в web-dev не работать.
Ув. replicant.
Я обычно игнорирую ваши выпады в мою сторону, но сейчас хочу высказаться.
Ситуация:
1) Пользователь задал вопрос про настройку сортировок на страницах категорий, вы на него исчерпывающе ответили, но сами же указали "Или поищите какие-нибудь плагины для рекурсивной настройки категорий. Наверное такие есть.".
2) Я решил развить тему сортировки и поделился опытом, что можно удобно и гибко настроить сортировку, используя готовое решение.
3) Вы указали на один из якобы его недостатков, и предложили пользователю самостоятельно произвести доработку, дав очень скудную инструкцию.
4) Я, имея большой опыт работы с обсуждаемым продуктом, выразил свое несогласие с тем что это необходимо делать (тем более - пользователю, а не разработчику) и предложил в комбинации с этим продуктом использовать другое готовое решение. Я прекрасно осведомлен о его цене, но также прекрасно понимаю, что он может пригодиться пользователю как для решения обсуждаемой в теме задачи, так и для решения очень многих других задач, возникающих в процессе работы над проектом - любой грамотный пользователь найдет применение этому плагину на любом проекте с любым ассортиментом и любыми особенностями товаров. Если бы продукт был посредственный и неоправданно дорогой - поверьте, я бы не стал его никому советовать, тем более если учесть, что коммерческой выгоды от его продажи я не извлекаю от слова совсем.
5) Вы начали на меня лукаво и с подвывертом тявкать (не в первый раз).
----
Человек хочет ловить рыбу и задает вопрос про ловлю. Вы на него ответили. Далее речь пошла о рыбалке. Я рассказал что для рыбалки есть спиннинги, а вы, как опытный охотник, брызгая в мою сторону жирной слюной, рассказываете что можно просто заточить копье!
Я согласен с вами в одном: пользователь сам будет принимать решение что ему делать. Для меня тема закрыта.
Коллеги, не спорьте :)
Ваши подробные ответы пригодятся многим - это же форум (не только топикстартеру). И абсолютно не важно, кто из вас дал более правильный ответ именно в данной ситуации.
От себя хотел бы добавить про плагин "Приоритет товаров" - сортировка этим плагином не работает на некоторых специфичных страницах (например, на страницах брендов), формируемых другими плагинами, что в некоторых случаях сводит его пользу почти к нулю. Но это не делает его плохим, просто желательно знать этот нюанс перед покупкой.
Я правильно понял, что при добавлении новых категорий (они у нас добавляются через импорт yml) нужно будет каждый раз заходить в плагин "Приоритет товаров" и выполнять Массовое изменений правил сортировки?
да
пока сделали через плагин "Приоритет товаров", плохо что в нем нет возможности обновления через cron, далее будем думать как это сделать через обновление БД по расписанию
Странно что данной функции в движке нет изначально "Сортировка по умолчанию"
Не знаю конечно какой у вас хостер (вдруг вам повезло), но есть такая штука (сто лет в обед уже стукнет) как планировщик событий в mysql. Если вам от БД не надо ничего, кроме того, что умеет делать сам Мускуль, то и крон напрягать - только воду мутить. Мускуль сам запрос по расписанию будет исполнять и всё. Однако этот вопрос хостеру задайте.
К сожалению, я от всего этого далек и пользуюсь функционалом ispmanager ) насколько знаю в нем планировщика mysql нет