Сортировка товара в категориях

Добрый день! Подскажите, как изменить сортировку товаров сразу во всех категориях?

Имеется очень большое кол-во категорий и подкатегорий, хотелось бы изменить сортировку в них на "Дата добавления", как это можно сделать сразу для всех категорий и подкатегорий?

Спасибо!

13 ответов

  • 1
    robotsmarsa 21 октября 2020 13:52 #

    в шаблоне нашел

    {if !isset($active_sort)}
    {$active_sort = $wa->get('sort', 'create_datetime')}
    {/if}

    я так понимаю, что в админке нужно просто выбрать какую то настройку, чтобы активировать {if !isset($active_sort)} но не могу найти эту настройку

    • +1
      replicant replicant 21 октября 2020 14:35 #

      Параметры сортировки товаров в категориях хранятся в БД в таблице shop_category в поле sort_products.

      Значение сортировки по дате добавления выглядит как 'create_datetime DESC' от новых к старым или ASC, если надо наоборот.

      Соответственно будь хоть 100500 категорий, то через БД это можно сделать одним простеньким запросом типа такого.

      UPDATE `shop_category` SET `sort_products` = 'create_datetime DESC';

      Или поищите какие-нибудь плагины для рекурсивной настройки категорий. Наверное такие есть.

  • 1

    Плагин "Приоритет товаров" посмотрите. Там много че можно настроить.

    • +1
      replicant replicant 21 октября 2020 18:01 #

      Плагин хорош т.к. позволяет правильно динамично поднимать продающиеся товары, когда магазин уже набрал базу и статистику продаж, но есть одно маленькое но. Нельзя сделать сортировку без учета приоритета вообще. В случае с товарами одинакового приоритета фактически сам приоритет никак не влияет, а когда надо, чтобы приоритет был наряду с остальными параметрами и не первым критерием, а товары при этом имели бы разные приоритеты для правильной сортировки в родительских категориях, то никак. Можно конечно в самой БД попробовать модифицировать условие сортировки

      priority desc,IF(p.count > 0 OR p.count IS NULL, 1, 0) DESC ,p.total_sales desc,p.count desc,p.price desc, 1

      Но, когда категорий много, то неудобно, а было бы круто, если бы приоритет шел как все остальные параметры и его можно было бы не учитывать или учитывать только по требованию. Гибкости стало бы чуть больше.

      • +1

        > Плагин хорош, но есть одно маленькое но. Нельзя сделать сортировку без учета приоритета вообще.

        - Да, нельзя. Но, на мой взгляд, это особо и не нужно. Плагин "Автоматическое управление товарами" интегрирован с этим плагином (по-моему, это даже я когда-то давно просил за денежку интегрировать их). Настраиваешь условия: где нужно поднять приоритет, там поднимаешь. Где нужно опустить - опускаешь. Приоритет у товаров расставляется по крону каждую ночь. Гибче некуда. Главное не затупить с настройками, чтобы приоритет в бесконечность не уходил. Пример простенькой группы правил: https://yadi.sk/i/AxGB5OIZoJnk...

        Намного лучше, чем БД ковырять.

        • +1
          replicant replicant 21 октября 2020 18:40 #

          Каждый пусть на свои потребности, ассортимент и особенности товаров, а также на свой бюджет рассматривает варианты решений. Кому плагин за 5к, а кому один бесплатный запрос в БД сделать. Мне лично приоритета товаров выше крыши, но с модификацией условия конечно. Остально вот точно не нужно.

          В рамках же изначального вопроса ничего кроме запроса в БД для массового изменения сортировки не нужно точно.

          Остальное от лукавого и с подвывертом. Запрос в БД, если что, тоже можно в крон погрузить и будет бесплатно работать как часы на каждую новую загрузку новых категорий и прочего через yml хоть каждые 5 минут. При правильном where там только новое update и танцуем. БД бояться - в web-dev не работать.

          • +1

            Ув. replicant.

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

            Ситуация:

            1) Пользователь задал вопрос про настройку сортировок на страницах категорий, вы на него исчерпывающе ответили, но сами же указали "Или поищите какие-нибудь плагины для рекурсивной настройки категорий. Наверное такие есть.".

            2) Я решил развить тему сортировки и поделился опытом, что можно удобно и гибко настроить сортировку, используя готовое решение.

            3) Вы указали на один из якобы его недостатков, и предложили пользователю самостоятельно произвести доработку, дав очень скудную инструкцию.

            4) Я, имея большой опыт работы с обсуждаемым продуктом, выразил свое несогласие с тем что это необходимо делать (тем более - пользователю, а не разработчику) и предложил в комбинации с этим продуктом использовать другое готовое решение. Я прекрасно осведомлен о его цене, но также прекрасно понимаю, что он может пригодиться пользователю как для решения обсуждаемой в теме задачи, так и для решения очень многих других задач, возникающих в процессе работы над проектом - любой грамотный пользователь найдет применение этому плагину на любом проекте с любым ассортиментом и любыми особенностями товаров. Если бы продукт был посредственный и неоправданно дорогой - поверьте, я бы не стал его никому советовать, тем более если учесть, что коммерческой выгоды от его продажи я не извлекаю от слова совсем.

            5) Вы начали на меня лукаво и с подвывертом тявкать (не в первый раз).

             

            ----

            Человек хочет ловить рыбу и задает вопрос про ловлю. Вы на него ответили. Далее речь пошла о рыбалке. Я рассказал что для рыбалки есть спиннинги, а вы, как опытный охотник, брызгая в мою сторону жирной слюной, рассказываете что можно просто заточить копье!

             

            Я согласен с вами в одном: пользователь сам будет принимать решение что ему делать. Для меня тема закрыта.

            • +1
              Vaslav24 Vaslav24 22 октября 2020 06:57 #

              Коллеги, не спорьте :)

              Ваши подробные ответы пригодятся многим - это же форум (не только топикстартеру). И абсолютно не важно, кто из вас дал более правильный ответ именно в данной ситуации.

              От себя хотел бы добавить про плагин "Приоритет товаров" - сортировка этим плагином не работает на некоторых специфичных страницах (например, на страницах брендов), формируемых другими плагинами, что в некоторых случаях сводит его пользу почти к нулю. Но это не делает его плохим, просто желательно знать этот нюанс перед покупкой.

  • 1
    robotsmarsa 21 октября 2020 18:27 #

    Я правильно понял, что при добавлении новых категорий (они у нас добавляются через импорт yml) нужно будет каждый раз заходить в плагин "Приоритет товаров" и выполнять Массовое изменений правил сортировки?

  • 1
    robotsmarsa 21 октября 2020 18:46 #

    пока сделали через плагин "Приоритет товаров", плохо что в нем нет возможности обновления через cron, далее будем думать как это сделать через обновление БД по расписанию

    Странно что данной функции в движке нет изначально "Сортировка по умолчанию"

    • +1
      replicant replicant 21 октября 2020 18:58 #

      Не знаю конечно какой у вас хостер (вдруг вам повезло), но есть такая штука (сто лет в обед уже стукнет) как планировщик событий в mysql. Если вам от БД не надо ничего, кроме того, что умеет делать сам Мускуль, то и крон напрягать - только воду мутить. Мускуль сам запрос по расписанию будет исполнять и всё. Однако этот вопрос хостеру задайте.

      • +1
        robotsmarsa robotsmarsa 21 октября 2020 19:02 #

        К сожалению, я от всего этого далек и пользуюсь функционалом ispmanager ) насколько знаю в нем планировщика mysql нет

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите