Пагинация и products

Добрый день!

Вопрос такой в массиве products произошли изменения, удалили несколько товаров из массива, кое-какие добавили, избавились от дублей, пагинация строит страницы по старому принципу, как будто у нас еще есть эти товары и бывает есть страницы с пустым содержанием, бывает что товаров больше на 1 странице чем указанно настройках. Как проапдейтить данные этой пагинации и чтобы правильно строилось наполнение их.

Спасибо

10 ответов

  • 1
    Eugen Nichikov 31 марта 2020 16:33 #

    Постановка вопроса неправильная. Нужно не "пагинацию проапдейтить", а изначально правильно формировать $products.

    Например, можно повлиять на коллекцию из плагина при помощи хуков

    https://developers.webasyst.ru/hooks/shop/products_collection.filter/

    https://developers.webasyst.ru/hooks/shop/products_collection.prepared/

    тогда в $products изначально не попадут ненужные товары, и, соответственно, пагинация будет рассчитана без них.

    • +1
      Ram Ram 1 апреля 2020 10:04 #


      А если $products сформировали прямо в шаблоне используя хелпер, что делать? $products сформирован уже как надо...


      • +1
        Eugen Nichikov Eugen Nichikov 1 апреля 2020 10:15 #

        Я не буду давать советов как лучше стрелять во вторую ногу. Не нужно стрелять в первую ;)

        • +1
          Ram Ram 1 апреля 2020 10:16 #
          • +1
            Eugen Nichikov Eugen Nichikov 1 апреля 2020 10:24 #

            Нужно начать с задачи. Как её сформулировали изначально? Подозреваю, что нужно не выводить товары с ценой "0", например... или в наличии меньше какого-то кол-ва... или в наличии только на определённых складах...

            Вот тут в примере

            https://developers.webasyst.ru/hooks/shop/products_collection.filter/

            решена задача "выводить в категориях только товары с ценой > 0".

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

            Сейчас же хелпером фильтруется только переменная, которая была передана в шаблон. Т.е., грубо говоря, отфильтровали 30 из 120 товаров во всей категории... но что происходит с оставшимися 90 мы не знаем. Все ли они "нормальные" или наоборот? Сколько страниц должно быть всего?

            • +1
              Ram Ram 1 апреля 2020 10:52 #

              Задача добавить некоторые товары и исключить дубли если были при добавлении.

              • +1
                Eugen Nichikov Eugen Nichikov 1 апреля 2020 12:07 #

                Ну в такой постановке непонятно, почему, чтобы исключить дубли, было выбрано решение исключать их каждый раз при загрузке каждой страницы и тратить на это ресурсы сервера вместо того, чтобы исключить (удалить/скрыть) один раз в БД ¯\_(ツ)_/¯

                • +1
                  Ram Ram 1 апреля 2020 12:15 #

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

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

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