Оптимизация скорости загрузки mFilter2 с более 3000 товаров и учетом скидок

Необходимо оптимизировать работу msFilter2. Сейчас для того, чтобы учитывались скидки, проставленные для групп товаров и групп пользователей через msDiscount, и в фильтре цен отображались корректные данные, совершается слишком много запросов в БД и страница сайта с фильтром очень долго загружается, если количество товаров в категории около 3000 (http://solid-copy.u0415865.isp.regruhosting.ru/magazin/smennyie-plastinyi/tokarnyie/rezbovyie/ ). Необходимо расширить класс фильтрации msFilter2, подогнав его под msDiscount, чтобы оптимизировать работу сниппета фильтра и увеличить скорость его выполнения.Если работу с msDiscount оптимизировать невозможно, допустимо свое решение для функционала скидок. Для клиента нужны скидки на группы товаров, или для группы пользователей (розничные, оптовые, если авторизовались), или на товар в зависимости от цены и характеристик в процентах.Автор mFilter2 Василий Наумкин посоветовал:«Вам нужно писать какие-то свои кастомные фильтры, которые будут обрабатывать скидки без создания объекта товаров. То есть, работать с дополнениями, которые модифицируют цену, как-то напрямую, не через систему плагинов, как сейчас. Это не так универсально, но в вашей ситуации я иного выхода не вижу — только включить &noPreciseMSFilters=`1`, и использовать свою версию фильтра, который сделает ту же работу, но быстрее и именно с тем дополнением скидок, который вы используете».Допустимо также написание своего сниппета фильтра. Главное, чтобы он работал со всеми полями товара, опциями, тв и теми типами скидок, которые есть.

Pandaworks
Бюджет проекта:
Неопределен
Версия MODX:
Revolution
Разработчики:
Любые
Срок до:
18.04.2020

Предложения (2)

  1. Дмитрий 19.03.2020 00:45 #

    Доброго времени суток. Думаю здесь можно ограничить количество вызываемых товаров, при фильтрации. Если я правильно понимаю механизм, при фильтрации вызываются все товары, и из них в новый масив входят только нужные. Есть вариант сделать серверный infinite scroll, вместо обычной пагинации, в таком случае при фильтрации возвращать только 10 элементов. Когда человек листает страницу вниз вызывать метод фильтрации снова, возвращая новые товары, а после склеивая 2 масива. Это работает мгновенно. Я давно не работал с modx, и не знаю есть ли здесь готовые плагины для этого, или придется писать подобный функционал с нуля, недавно подобное делал на стеке mern. Можете написать на почту: bondarcukdmitrij0@gmail.com, для обсуждения.
    Комментарий был изменён 19.03.2020 в 01:13

  2. Иван 28.03.2020 00:30 #

    Здравствуйте, могу помочь

    • skype: cm_punk_se
    • Whatsup, Telegram, Viber: +375333417543
    • rudnitskiivol@gmail.com

    Примеры работ:

    • http://otsgroup.ru/
    • https://shakerbottle.ru
    • https://2kontsa.ru/
    • http://japan-city.ru/
    • https://bimmershop.ru/


Для добавления комментариев вы должны или зарегистрироваться.