
Зачастую в интернет-магазинах возникает потребность сортировки товаров. Товаров много, у каждого свои характеристики, без сортировки посетители интернет-магазина должны быть очень терпеливыми и дотошными, чтобы найти то, что ищут. Потенциальные покупатели любят, чтобы все для них было организовано удобно и понятно.
В Virtuemart 3 есть дополнительные поля, которые позволяют задать для товаров любые характеристики. Но, как бы странно это не звучало, стандартный функционал Virtuemart не позволяет осуществлять фильтрацию по этим полям. В этом деле на помощь нам приходят сторонние расширения, и сегодня речь пойдет об одном из лучших в вопросе фильтрации – Custom Filters Pro от breakdesigns.net.
Содержание
Custom Filters vs Custom Filters Pro
На сайте разработчиков есть два варианта расширения:
- Бесплатное – Custom Filters
- Коммерческое – Custom Filters Pro – € 28.90 (на текущий момент).
Бесплатная версия практически ничего собой не представляет, поэтому далее речь пойдет именно о коммерческой версии фильтра.
Custom Filters Pro. Основные функции
Давайте посмотрим, что разработчики предлагают нам за, без малого, 30 евро:
- Фильтрация осуществляется комплексно, сразу по нескольким параметрам и цене. Такими параметрами могут быть категория, производитель, и любой другой параметр из созданных дополнительных полей Virtuemart.
- Поиск может быть настроен на любое или точное совпадение слов. Таким образом «Желтая футболка» и «Футболка желтая» будут восприниматься поисковым механизмом фильтра одинаково, и он выдаст один и тот же результат.
- Поиск ведется, в том числе, по мета-тегам и дополнительным полям.
- Для ускорения своей работы расширение применяет кэш.
- Два режима загрузки результатов: AJAX или HTTP;
- Кнопка «Сбросить фильтр»;
- Индексация опций фильтра поисковыми системами (по умолчанию отключена);
- Оптимизация работы фильтра;
- Умный поиск;
- Отображения категорий в виде переключателей, выпадающего списка, флажков, ссылок;
- Выбор страниц, на которых будет отображаться фильтр;
- Техническая поддержка в течение 4-х месяцев.
Процесс фильтрации работает по стандартной схеме, знакомой сейчас почти каждому. Пользователь выбирает необходимые ему параметры, по ходу его выбора, могут открыться дополнительные поля, где он тоже сделает выбор, или же, наоборот, часть полей будет заведомо отключена, если по совокупности уже выбранных и еще не выбранных полей товаров на сайте нет. Т.е. фильтр просчитывает остатки и убирает пустые опции еще до того, как пользователь закончил свой выбор параметров. Проще объяснить это на примере.
Допустим, вы продаете футболки 2 цветов (красный и синий) и 2 размеров (большой и маленький). В остатках у вас 2 красных больших футболки и 0 красных маленьких, а синие есть все. Представим, что пользователь выбрал первой опцией в фильтре красный цвет футболок. Фильтр уже на этом этапе знает, что красные футболки могут быть двух размеров, но маленького размера красных футболок нет. Так зачем в этом случае показывать пользователю возможность выбора маленького размера, если результатов по такому варианту фильтрации всё равно не будет? Правильнее показать ему только опцию с большими размерами, поскольку по ней будут результаты.
Стоит упомянуть, что именно такой вариант работы фильтра вовсе не обязателен. Вы можете заставить его показывать даже «пустые» опции или показывать их неактивными.
Вообще, модуль Custom Filters Pro имеет очень много настроек. Давайте рассмотрим их подробнее.
Custom Filters Pro. Взгляд изнутри
Custom Filters Pro состоит из модуля, компонента и нескольких плагинов. Нас интересует модуль и компонент, т.к. именно они содержат все настройки.
Поподробнее о встроенных параметрах модуля.
Начнем с категорий. Это первое, что приходит в голову, когда мы слышим слова «фильтр» или «сортировка». Так вот категории могут быть показаны в виде дерева категорий или в виде списка. Дерево категорий представляет собой довольно гибкую структуру, в которой можно открывать/закрывать категории. Родительская категория в этом случае остается ссылкой. Также следует отметить, что вложенность категорий не ограничена.
Второй не менее значимый параметр – это параметр цены. Он может быть отображен в текстовом виде или вместе со шкалой. В панели управления устанавливаются минимальное и максимальное значение ползунка. Пользователь двигает ползунок и получает список всех товаров, попадающих в заданный диапазон. Помимо того, что такой параметр удобен в использовании, он еще и добавляет интерактивности на страницу сайта.
В настройках компонента (Компоненты – VM Custom Filters) показываются все созданные дополнительные поля Virtuemart. Их можно снять с публикации, и тогда в фильтре вы их не увидите, поиск по ним будет невозможен. Это актуально, например, в том случае, когда вы хотите показать дополнительное поле в карточке товара, но не хотите разрешать фильтрацию по нему.
Дополнительные поля для фильтрации можно показывать и скрывать в зависимости от уже выбранных пользователем параметров фильтра. К примеру, мы можем показывать дополнительные поля в фильтре как сразу, так и только тогда, когда пользователь выбрал категорию или производителя.
Доступны такие варианты:
- Всегда;
- Поиск;
- Категория;
- Производитель;
- Цена;
- Поиск ИЛИ Категория ИЛИ Производитель;
- Поиск ИЛИ Категория ИЛИ Производитель ИЛИ Цена;
- Поиск ИЛИ Категория И Производитель;
Вернемся к настройкам модуля. Вкладка «Фильтр по категориям» содержит множество настроек: настройки отображения дерева категорий, загрузки иконок закрытого и открытого состояния и даже позиции этих иконок (справа или слева).
Следует отметить, что в настройках всех фильтров встречается повторяющаяся серия настроек отображения фильтра. Настройки гибкие и позволяют указывать даже страницы, на которых будет показываться фильтр. Это страницы вне магазина, страницы категорий магазина, производителей, продуктов, другие страницы магазина. Правда фильтр не дает нам возможности привязать модуль только к определенным категориям товаров или товарам, но это и не требуется, т.к. при переходе в категорию товаров, пользователь увидит в фильтре только опции фильтрации, свойственные данной категории. Возвращаясь к нашему примеру с футболками, если бы у нас было две категории «Футболки» и «Брюки», причем ни для одних брюк не были бы заданы дополнительные поля «Цвет» и «Размер», то когда пользователь перешел бы в категорию «Брюки», он не увидел бы в фильтре таких параметров, поскольку фильтр заранее знал бы, что результаты поиска при выборе любого параметра будут отсутствовать.
Есть еще одна опция, о которой хотелось бы упомянуть подробнее. Это режим загрузки результатов. Custom Filters Pro может загружать результаты фильтрации как классическим способом, с перезагрузкой страницы, так и с использованием технологии AJAX. Этот способ позволяет изменять страницу динамически, не перезагружая ее полностью. Это очень удобно и очень красиво. Кроме того, доступные параметры фильтрации в модуле фильтра также будет подгружаться через AJAX. Как это работает лучше один раз увидеть, чем сто раз услышать. Посмотрите ДЕМО.
Custom Filters Pro. Процесс создания фильтра
Давайте посмотрим, как создать полноценный фильтр, используя Custom Filters Pro.
Для создания Фильтра сначала нужно создать пункт меню. Разработчики рекомендуют создавать его в скрытом меню. Этот пункт меню будет страницей результатов поиска/фильтрации.
Там же, во вкладке Параметры можно настроить:
- количество продуктов в ряду;
- количество продуктов на странице;
- допустимый шаг для пагинации;
- выбор макета для отображения результатов поиска. По умолчанию Custom Filters использует макет категории Virtuemart, но можно создать свой макет.
В настройках модуля (Расширения – Менеджер модулей – CF Filtering Module), находятся все основные параметры расширения Custom Filters.
Первым делом выбираем позицию для модуля и переводим его состояние в «Опубликован». Также важно проверить, чтобы во вкладке Привязка к пунктам меню был выбран вариант «На всех страницах».
Там же, во вкладке «Модуль» можно настроить кнопку «Сбросить фильтр», установить индексирование опций поисковыми системами, задавать порядок отображения фильтров. Для создания простейшего фильтра оставим все настройки по умолчанию. И смотрим результаты своей работы.
Custom Filters Pro. Сложные фильтры
Иногда сайту требуются более сложные фильтры, чем чекбоксы и радиокнопки. Пример:
бегунок, аналогичный фильтрации по цене, но только заданный для дополнительного поля (размер диагонали экрана, яркость и др.). Другой пример: допустимые цвета.
К сожалению, стандартные дополнительные поля Virtuemart не позволяют создавать такие фильтры. Но разработчики Virtuemart предусмотрели возможность создания собственных уникальных дополнительных полей, с помощью плагинов. У breakdesigns.net есть такой плагин, позволяющий создавать сложные фильтры. Он называется Custom Fields For All и стоит дополнительно 17 евро. Я бы не советовал связываться с дополнительными полями, созданными через плагины, но если без сложных фильтров вам никак не обойтись, то этот вариант вполне годится.
В завершение хочется сказать, что Custom Filters Pro – замечательное дополнение к интернет-магазину. Он прост и гибок в настройке, сортирует товары по всевозможным параметрам. Я использую это расширение очень часто. В нем есть и недостатки, но в целом, могу советовать его к покупке и применению.
P.S.: В одной из следующих статей я расскажу про еще одно, не менее популярное расширение фильтрации товаров Virtuemart, которое является, пожалуй, главным конкурентом Custom Filters Pro. О каком расширении идет речь? Пишите в комментариях. Первый, ответивший правильно, получит Custom Filters Pro для Virtuemart 3.0.16 в подарок!
Каким образом можно задать и вывести разноцветные Colour Buttons, как на нижнем скриншоте. в нижнем ряду кнопок в фильтре - в одной кнопке несколько цветов?
На сайте разработчика при покупке становится доступен мануал по компоненту. Вы не смотрели его?
так жаль, Черри пикер тоже не работает, а фильтр нужен, товаров много(((
По всем свойствам и по производитель работает отлично, но стоит включить в фильтре по категориям, на сайте сразу перестаёт работать фильтрация.
Вернее она работает по всем параметрам, но стоит поставить галочку напротив требуемой категории, как все свойства этой категории и производители пропадают.
Что может быть причиной? Может кто сталкивался с таким.
Joomla 3.6.5 , VM 3.2.1 версия фильтра 2.4.2
Custom Filters 2.4.2 . при переносе сайта с рег ру на руцентр модуль фильтров стал показывать все фильтры (пустые - непустые)... все настройки однотипны... рег ру PHP Version 5.6.30, ник ру 5.6.31.... ничего дополнительно к имеющемуся не устанавливала...не сталкивались?
Вы можете попробовать сделать так:
1) Отключить SEF на сайте
2) По очереди активировать сначала один, а потом другой пункт меню с результатами фильтрации и записать URL страниц результатов.
3) В URL будет отличаться какой-то параметр. Скорее всего это будет ItemID. Активируйте оба пункта меню с результатами и попробуйте вручную перейти по первому и второму URL. Проверьте, открываются ли разные страницы с результатами при этом.
4) Если открываются разные страницы, можно действовать дальше. Создайте альтернативный макет для одного из модулей с фильтров и попробуйте изменить в нем URL для страницы, которая будет открываться в результате фильтрации на тот, что записан у вас.
Несколько сумбурное объяснение, но в целом должно быть понятно. Не уверен, что это будет работать, но можно попробовать.
Пункт меню - ну как минимум имеет свой ид... ну, в общем, примерно так ка Вы и писали.... результат так себе, - вариант с ид категории (как Вы писали выше) оказался перспективней
Изначально структура меню такая:
Каталог
Оборудование
- категория оборудования 1
- категория оборудования 2
- категория оборудования 3
Материалы
- категория материалов 1
- категория материалов 2
- категория материалов 3
Расходники
- категория расходников 1
- категория расходников 2
- категория расходников 3
Куда встраивать меню "страница результатов" в этой иерархии?
А вот интересно - когда мы фильтруем по ключевым словам или по категориям - то на странице результатов фильтрации к урлу не прибавляется айдишник той категории, из которой мы делали фильтрацию. В результате при сбросе фильтра мы остаемся на пустой странице результатов. Хотя ожидаемый результат - это список товаров той категории, находясь в которой начинали фильтровать.
Как-то можно его получить?
Со своей стороны могу сказать, что постоянно применяю фильтрацию по диапазонам на этом фильтре. Все работает прекрасно.
Для поддержки такой фильтрации помимо расширения фильтра вам понадобится также дополнительное расширение с этого же сайта - Custom Fields for All.
Поля, которые должны фильтроваться по диапазону, должны быть созданы через это расширения (тип поля - Плагин и выбрать этот плагин).
На сайте два типа товаров (стулья и шкафы) и у каждого свой шаблон вывода списка товаров. Но как только включаю фильтр, то результаты в обеих категориях начинают выводиться одинаково. А хочется сохранить исходные макеты.
1) option из URL. Он может быть com_virtuemart или com_customfilters
2) ID текущей категории товаров
Далее создаем 3 подмакета:
1) Обычный макет категории
2) Макет результатов фильтрации для категории 1
3) Макет результатов фильтрации для категории 2
Далее добавляем в макет-прокладку несколько проверок IF и подставляем тот или иной подмакет в каждом случае. Например, если option == com_virtuemart, то очевидно, что это не результаты фильтрации и нужно использовать обычный макет категории. А если option == com_customfilters И ID категории == 1, то выводим подмакет результатов фильтрации для категории 1.
Таким хитрым способом вы можете задать уникальные подмакеты для каждой категории товаров в результатах фильтрации. При этом вам не потребуется делать ни одного хака.
- описание категории
- фильтр
- список товаров и впоследствии результаты фильтрации
(восклицательный знак нужно убрать!)
Но есть нюанс в данном случае. CF Pro загружает макет результатов фильтрации по AJAX и отдельно от загружает измененный макет модуля фильтра, и тоже по AJAX. Что у вас получится, если вы вставите модуль в макет результатов - я не скажу. Но кажется, что ничего хорошего. Попробуйте.
В настройках модуля фильтра для Пользовательских полей отсутсвует возможность выводить их Выпадающим списком (такое возможно только для Категорий или Производителей) - Display type: Drop-down list.
Можно ли как-то "прикрутить" данную возможность к Пользовательским полям?
Заработало!
Теперь почти как планировал. Но... Получается неудобно: 2 поля, название и поле выбора. Подскажите где искать/исправить внешний вид?
Переопределение в шаблон для файла default.php работает, а вот для renderHelper.php (в нём тоже зашит внешний вид) - нет (((