Все эти модули — это, конечно, хорошо… для разработчиков модулей в первую очередь.
Тема больная для всех без исключения ИМ, и адекватное поведение фильтрации должно быть реализовано из коробки, тем более, что CMS далеко не бесплатна. При этом важно, чтобы админ мог настраивать сценарии, в зависимости от специфики товара.
Мы уже устали выслушивать от клиентов замечания по сайту, когда подбор становится мучением, как на примере выбора сверла или бура по бетону. Сразу оговорюсь, что вариант со слайдером не подходит, потому что очень часто нужно выбрать 2-3 конкретных параметра (например, диаметры 6 мм, 7,8 мм и 12,5 мм и длина 400, 450 и 900).
А вариантов бывает далеко за 200 штук, и раскрытый фильтр превращается в бесконечную простыню. При этом всегда бывают задержки при фильтрации, что создает ад в работе. Это совсем неправильно.
Вот тут и теряем конверсию из-за юзабилити! (вебвизор в этом месте показывает отказы пользователей)
Кнопка “показать выбранные параметры” — тоже не всегда вариант решения. Она не может правильно отработать.
Есть отличный пример, как должны быть реализованы фильтры. Каталог onliner.by, где большой список умещается в компактном фрейме, при выборе обновляются товары, но ничего никуда не прыгает и не раздражает, в каком бы месте страницы вы не находились. Правильные фильтры тут
Думаю, стоит приподнять тему, особенно с учетом того, что разработчики не реагируют. Согласен, сегодняшнее поведение фильтров из коробки — ад для покупателя
Важно понять один момент с кнопкой фильтрации “Показать” и количеством вариантов. Из коробки сделать это довольно проблематично, так как у многих будет тормозить, это то отчего мы ушли несколько лет назад, банально потому что жалоб на тормоза фильтров была масса, все из за того что при отображении фильтров для каждого варианта просчитывалось количество доступных товаров. И что логично при выборе одного значения в фильтре, количество для всех остальных надо пересчитывать, т.е. оно просто не отображалось.
Опять же важно понимать, что есть два варианта кнопки показать:
Быстрый: Клиент прокликивает все варианты которые хочет выбрать. У него не отображается количество в каждом из вариантов и не перестраиваются фильтры (например какого-то бренда нет синего цвета, а мы выбрали только этот бренд, в таком случае синий должен задизейблится, чтобы его нельзя было выбрать).
“Правильный”, я так понимаю многие ожидают именно этого поведения, как было сделано раньше на Яндекс.Маркете. Ты нажимаешь фильтр он показывает количество вариантов и кнопку показать. Кстати, сейчас вот оказалось что Яндекс Маркет поменял эту логику и они сразу ищут на десктопе. А вот на мобилке у них эта логика осталась.
Так вот про вариант 2. “правильный” надо понимать, что подсчет количества - это операция полностью идентичная поиску, т.е. в реальном времени показывать количество продуктов у этой характеристики довольно трудоемкая операция для сервера.
Мне нравятся фильтры на ozon, яндекс маркет, там решены основные проблемы
Не блокируется страница фильтров и не перегружается, удобно выбирать несколько значений.
При выборе фильтров страница не скачет на результаты поиска, опять же удобно выбрать несколько вариантов
На мобилке вообще нет автоматической фильтрации, только через кнопку.
Работают по “правильному” варианту (с подсчетом кол-ва товаров и блокировкой недоступных комбинаций), но при этом все очень быстро. Каким образом это достигается? Кэшируют все возможные поиски?
Да, стандартная схема это отдельная таблица, вьюха с кешированием всех основных фильтров
и результатов, либо вьюха заточенная под фильтры т.е. денормальзация данных. Зачастую это делается вообще отдельной логикой, возможно даже на другом стеке. Ну как пример, вы меняете данные товара, или его характеристики а ночью по крону запускается задача, которая обновляет все варианты фильтров за текущий день. В общем на текущий момент делать это массово и на всех более менее php хостингах не особо просто.
Кстати одна из старых проблем в CS-Cart была с разростающимся кешом, долго ее ловили, как раз там с фильтрами была история.
Этот пример не лучше, потому что не блокируются недоступные варианты после каждого выбора и пользователь часто натыкается на сообщение “Нет товаров”. Это минус в карму.
Да, это был промежуточный этап работы фильтров, было это года 4 назад, и ориентировались мы на ключевых международных игроков, но пользователи приняли это крайне негативно, и пришлось откатить кнопку. Основное возражение было - лишний клик, т.е. это для сценария когда клиент выбирал в фильтре одно-два значения не подходило.
Количество я думаю они уже сами допиливали.
@imac Я прошу Вас отнестись очень серьёзно к проблеме фильтров и заняться этим вопросом, как можно скорее.
У нас более 100 000 товаров на сайте. Для скорость работы поиска и фильтров - это боль.
По вебвизору видно, что клиенты уходят в момент выбора товаров по фильтрам.
Над решением с поиском через Sfinx AlexBranding работает сейчас.
Сделайте фильтры и будет уже полегче.
Это палка о двух концах, судя по обсуждению здесь сделать это не получится, потому что для перестраивания фильтров, и блокирования недоступных вариантов, надо обновлять блок с фильтрами, а если клиент в этом время протыкивает варианты, то у него все сбросится.
Я склоняюсь что отсутствие заблокированных вариантов это меньшие из зол.
это не нужно! Неплохо конечно, но можно и без этого.
с этим вариантом нам уже @ecomlabs подсказал
файле js/tygh/product_filters.js закомментируйте строчку
scroll: '.ty-mainbox-title',
Но к сожалению у нас сервера послабее тех что в Ямаркете и Озоне.
И перестроение страницы происходит не быстро… А вот на кнопочке число найденного явно быстрее бы появлялось.
_topsto-crimea.ru именно тот вариант который делали АБ
этот магазин уже весь Крым захватил, он оооочень крупный
и написали вот это
Не надо блокировать пустые значения! Пусть будет просто надпись на кнопке Нет товаров. Нам этого вполне достаточно, т.к. все равно удобнее чем то что сейчас. Хотя кстати ЦС-Кодинг как то засунул это в свой модуль.
Клиенту все сразу ясно и понятно и он кликает что-то другое.
Сделайте это опционально пожалуйста, чтобы ключевые игроки не расстроились.