smidl
@smidl
WordPress-разработчик

Как сделать динамический фильтр товаров?

Есть ИМ на вукомерце.На странице каталога есть фильтры: цвет, размер, категория, сезон и т.д.

Как фильтровать саму выборку товаров я знаю. не мооу понять как обновить сам фильтр слева ятобы он основываясь на текущем выборе пользователя подставлял ему для выбора только те варианты, которые вернут результат.

46dd5dcc657442cb8ba6fa727205f1d0.jpg

Например, пользователь выбрал в меню фильтра категорию куртки и размер М. Нужно чтобы кроме выборки товаров обновились и варианты выбора
других фильтров. Сейчас нам нужны куртки размера м, если в фильтре выбора сезона есть варианты, в которыж нет курток размера м, то чтоюы они скрывались.э и так по всем фильтрам.
  • Вопрос задан
  • 1306 просмотров
Решения вопроса 2
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Это называется фасетный поиск. Можно пилить свое решение. Но при большом объеме товаров оно может убить весь сайт ввиду своей сложности вычислений.

Потому крупные сайты используют ElasticSearch или его тюнинговую версию Algolia https://community.algolia.com/wordpress/

В любом случае фасетный поиск - это технически сложная штука. Далеко не каждый программист способен правильно ее реализовать. Есть некие готовые плагины - но ни один из них на мой взгляд не идеален.

Потому в большинстве случаев я просто выдыхаю и работаю в рамках типовых механик. А там где бюджет позволяет - интегрируем с Algolia.
Ответ написан
Комментировать
gpk
@gpk
Может, у меня довольно геморная реализация, сам бы хотел рассмотреть другие варианты. Сложность в динамическом выводе количества товаров возле фильтров и включении/отключении соседних значений фильтров в случае, если при выбранной комбинации они становятся недоступными. У Вас есть IDы атрибутов и IDы их значений, а также поле товара, содержащее пары (IDы-атрибута)_(IDзначения). Загоняете это поле в индекс sphinx и после очередного выбора пользователем фильтра производите поиск по этому полю товаров с комбинациями, которые он выбрал, плюс (!!) пара (IDы-атрибута)_(IDзначения) для каждого значения невыбранного фильтра. Количество найденных товаров и будет соответствовать индексу, проставляемому возле невыбранного фильтра.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@architawr
"Ok, Google" и все твои проблемы решены
https://www.youtube.com/watch?v=NRZkTqCLYVU Вот то что надо
По аналогии можно интегрировать в WP
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы