Фильтрация в результатах поиска

2

Есть необходимость учитывать фильтрацию в результатах поиска. Поясню:

Имеется всем известный и популярный плагин "Поиск PRO". Работает прекрасно, но когда мы ввели поисковый запрос и далее задействовали фильтр, мы получаем неверное количество найденных товаров и, соответственно, неверное количество страниц. Причем, количество определяется не в классе плагина, а в классе shopProductsCollection в методе count(), который, учитывая поисковый запрос, не учитывает выбранные фильтры. 

Проиллюстрирую примерами:

введен поисковый запрос "принтер 3d" и после этого выбран фильтр по цене:


В результатах поиска мы видим всего 4 товара (при настройке 30 товаров на страницу), но при этом есть ссылка на вторую страницу и надпись "Найдено 55 товаров". При переходе на вторую страницу ничего нет:

При этом в shopProductsCollection для расчета количества найденных товаров формируется такой запрос:

'SELECT COUNT(DISTINCT p.id) FROM shop_product p
        JOIN shop_product_skus ps1
                ON p.id = ps1.product_id
WHERE p.status = 1
        AND (p.name LIKE \'%принтер%\' OR ps1.sku LIKE \'%принтер%\' OR ps1.name LIKE \'%принтер%\')
        AND (p.name LIKE \'%3d%\' OR ps1.sku LIKE \'%3d%\' OR ps1.name LIKE \'%3d%\')'

То есть без учета выбранных фильтров.

Предлагаю доработать этот момент и учитывать фильтры в методе count() класса shopProductsCollection. Это даст возможность плагинам поиска работать корректно.

0 комментариев

    Добавление новых комментариев к этой теме отключено.