Идея фильтровать список товаров по признакам на странице сайта стара как мир. Но тем не менее в реализации существуют свои тонкости. Из личного опыта могу поделиться следующим:
1. Изначально необходимо указывать, сколько представлено товаров на странице. При наложении фильтра надо указать, сколько получилось в выборке, и опять же, сколько было изначально, т.е. например “57 товаров из 95”. Так пользователь чувствует себя увереннее. Цифры дают ему чувство контроля ситуации.
2. Фильтр здорово делать на асинхронной технологии (AJAX), чтобы при его запуске перегружался только товарный список, а не вся страница. Ведь мы же движемся от веб-сайтов к веб-приложениям!
3. Несмотря на п.2 пользователю нужно дать возможность оперировать прямой ссылкой на страницу с отфильтрованными товарами (например, отправить по ICQ, почте или сохранить в закладки). Следовательно рядом с формой фильтра необходимо разместить окошко с прямым адресом, в котором текущее состояние фильтра зашито в параметры GET.
Впервые я эту функциональность увидел на сайтах карт. Можно сколько угодно елозить по местности, а потом получить прямую ссылку на нужный фрагмент.
4. По возможности надо избегать заставлять пользователя вводить что-либо вручную с клавиатуры. Мышки должно быть достаточно для всего. Сейчас возможности JavaScript позволяют очень элегантно, при помощи различных ползунков (удачная параллель с офлайновой жизнью) решать эту задачу.
5. Отчасти перекликаясь с п.4.. При наличии непрерывного параметра (где как раз полезны ползунки :) ), изменяющегося в некоем диапазоне, всегда полезно дать пользователю понять границы этого диапазона. Например, Цена - от 100 до 300 руб, Длина - от 100 до 500 мм. Знание минимума и максимума также дает пользователю больше чувства контроля над ситуацией.
6. При наличии дискретного списка значений параметров, особенно если он длиннее 5-6 пунктов, полезно упорядочить этот список по понятному пользователю правилу. Например, по алфавиту.
7. Когда выбор по некоторым товарным признакам уже сделан, полезно (опять же пользуясь AJAX’ом) в блоках остальных признаков деактивировать (и закрасить, например, серым цветом) те опции, выбор которых обеспечил бы пустую выборку, т.е. не имеет смысла.
К примеру у нас ассортимент состоит из грузовиков и малолитражек. Если пользователь уже выбрал объем двигателя менее 1 литра, то очевидно опцию “грузовик” в блоке фильтра “Тип автомобиля” можно деактивировать.
8. Аналогичное замечание верно для диапазонных параметров. В процессе заполнения фильтра следует сужать изначальный диапазон до тех границ, которые еще имеют смысл.
9. “Логическая” тонкость. Если по параметру не отмечена ни одна опция, то фильтрация по нему не производится. Стало быть, это равнозначно ситуации, когда отмечены ВСЕ опции, т.е. включаем в выборку все разновидности по данному параметру.
1. Изначально необходимо указывать, сколько представлено товаров на странице. При наложении фильтра надо указать, сколько получилось в выборке, и опять же, сколько было изначально, т.е. например “57 товаров из 95”. Так пользователь чувствует себя увереннее. Цифры дают ему чувство контроля ситуации.
2. Фильтр здорово делать на асинхронной технологии (AJAX), чтобы при его запуске перегружался только товарный список, а не вся страница. Ведь мы же движемся от веб-сайтов к веб-приложениям!
3. Несмотря на п.2 пользователю нужно дать возможность оперировать прямой ссылкой на страницу с отфильтрованными товарами (например, отправить по ICQ, почте или сохранить в закладки). Следовательно рядом с формой фильтра необходимо разместить окошко с прямым адресом, в котором текущее состояние фильтра зашито в параметры GET.
Впервые я эту функциональность увидел на сайтах карт. Можно сколько угодно елозить по местности, а потом получить прямую ссылку на нужный фрагмент.
4. По возможности надо избегать заставлять пользователя вводить что-либо вручную с клавиатуры. Мышки должно быть достаточно для всего. Сейчас возможности JavaScript позволяют очень элегантно, при помощи различных ползунков (удачная параллель с офлайновой жизнью) решать эту задачу.
5. Отчасти перекликаясь с п.4.. При наличии непрерывного параметра (где как раз полезны ползунки :) ), изменяющегося в некоем диапазоне, всегда полезно дать пользователю понять границы этого диапазона. Например, Цена - от 100 до 300 руб, Длина - от 100 до 500 мм. Знание минимума и максимума также дает пользователю больше чувства контроля над ситуацией.
6. При наличии дискретного списка значений параметров, особенно если он длиннее 5-6 пунктов, полезно упорядочить этот список по понятному пользователю правилу. Например, по алфавиту.
7. Когда выбор по некоторым товарным признакам уже сделан, полезно (опять же пользуясь AJAX’ом) в блоках остальных признаков деактивировать (и закрасить, например, серым цветом) те опции, выбор которых обеспечил бы пустую выборку, т.е. не имеет смысла.
К примеру у нас ассортимент состоит из грузовиков и малолитражек. Если пользователь уже выбрал объем двигателя менее 1 литра, то очевидно опцию “грузовик” в блоке фильтра “Тип автомобиля” можно деактивировать.
8. Аналогичное замечание верно для диапазонных параметров. В процессе заполнения фильтра следует сужать изначальный диапазон до тех границ, которые еще имеют смысл.
9. “Логическая” тонкость. Если по параметру не отмечена ни одна опция, то фильтрация по нему не производится. Стало быть, это равнозначно ситуации, когда отмечены ВСЕ опции, т.е. включаем в выборку все разновидности по данному параметру.
Комментариев нет:
Отправить комментарий