Фильтрация товаров в Virtuemart 2/3

 

custom-filter-virtuemart2-3

Современные интернет-магазины требуют удобства поиска товаров, к сожалению, решить эту задачу используя только лишь товарные категории и форму поиска по сайту удается не всегда, да и стандартный функционал Virtuemart 2 не имеет фильтра в комплекте. Несмотря на это, мы с Вами можем сделать прекрасную, многофункциональную фильтрацию, используя расширение в виде компонента и модуля под названием Virtuemart Custom Filters или есть аналогичный компонент Chery Picker, но лично мне первый кажется более удобным.

Данное расширение позволяет нам очень гибко настраивать параметры фильтрации товаров на основании стандартных настраиваемых полей. Всё, что от нас требуется — это создать произвольное поле, присвоить значение этому полю непосредственно в карточке товара и вывести фильтр по этому полю с помощью модуля. Обо всем этом, я расскажу Вам более подробно:

Введение в настраиваемые поля Virtuemart 2/3

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

Virtuemart-> Товары -> Настраиваемые поля → Создать

И так, прежде чем создать новое поле, необходимо понимать, что они из себя представляют, как работают и какие настройки имеют.

Тип поля «Строка»

Данный тип поля позволяет указать любое текстовое или числовое значение. По-сути самое ходовое и универсальное.

Тип поля «Integer»

Числовое поле для хранения целых чисел.

Тип поля «Родитель»

Позволяет создать группу полей, объеденив их одним родителем. Проще говоря, родитель — это папка, в которой можем разметить остальные поля. Очень удобно. Например создали родитель «Телевизоры», вложили туда поля «Диагональ» и «Цвет», теперь при редактировании карточки товара выбирает тип поля «Телевизоры» и заполняем поля «Диагональ» и «Цвет».

Тип поля «Логический»

Позволяет выбрать значение «Да» или «Нет». Например: Подсветка клавиатуры: Да, Сумка для переноски: Нет и т.д

Тип поля «Дата»

Позволяет выбрать дата по средствам интерактивного календаря.

Тип поля «Время»

Если честно, то пока не понял, что это за поле.

Тип поля «Изображение»

Данный тип поля позволяет выводить изображения вместо текстовых данных. Чаще всего я использую это поле для вывода дополнительных цветов товара.

Тип поля «Атрибут корзины»

Данное поле позволяет передать текстовые данные в корзину. Например человек может указать там желаемые размеры для изготовления мебели на заказ.

Тип поля «Общий дочерний вид»

Отображает выпадающий список дочерних товаров.

Тип поля «Редактор»

Позволяет выводить любые HTML данные, при этом при вводе значения доступен визуальный HTML-редактор.

Тип поля «Область текста»

По-сути делает тоже самое что и поле выше, но только без визуального редактора, при этом HTML тоже поддерживается.

Тип поля «Плагины»

Здесь отображается список доступных стандартных и нестандартных плагинов, которые позволяют существенно расширить функциональность настраиваемых полей в Virtuemart.

Настройки настраиваемых полей

  • Заголовок (Название поля, например «Цвет»)
  • Показывать название (Показывать или не показывать название рядом со значением, например Цвет: Красный или Красный)
  • Опубликовано (здесь всё понятно)
  • Родитель (я писал об этом выше)
  • Атрибут корзины (Должны передаваться данные в корзину? Например если Вы хотите видеть в полученном заказе какого цвета был заказан товар, то поле должно быть атрибутом корзины, также это позволяет произвести наценку на характеристику, сформировав тем самым конечную стоимость)
  • Описание (здесь всё ясно)
  • По умолчанию (значение поля по-умолчанию, можно указать несколько значений, разделяя их точкой с запятой «;»)
  • Всплывающая подсказка (при наведении на значение поля)
  • Позиция макета (по-умолчанию все поля выводятся в заданном месте шаблона, но позицию для вывода того или иного поля, вы можете создать самостоятельно. Для этого Вам необходимо отредактировать шаблон карточки товара /templates/ваш-шаблон/html/com_virtuemart/productdetails/default.php, вставив в нужное место следующий код:
product->customfieldsSorted['normal'])) {

$this->position = 'normal';

echo $this->loadTemplate('customfieldscontent');

}

Где «Normal» — это название Вашей позиции, оно может быть любым но исключительно на латинице.

  • Видно только администратору (можете ограничить видимость поля пользователям, тем самым выводим полезную информацию только для себя)
  • Список (позволяет выбирать значения, которые указаны по-умолчанию в виде списка)

Создание настраиваемых полей Virtuemart 2/3

Теперь, создадим необходимые нам поля, в моём случае я создаю два поля типа «Строка» — это поле «Цвет» и «Размер», где поле «Размер» делаю атрибутом корзины.

После того, как мы создали с Вами требуемые поля, необходимо присвоить значения полей в редактировании товаров. Для это переходим к редактированию товара и во вкладке «Настраиваемые поля» выбираем нужные поля и присваиваем им значения.

Теперь можем приступать к установки и настройки компонента и модуля Virtuemart Custom Filters, который и будет фильтровать наши товары.

Установка компонента и модуля фильтрация товаров:

  1. Скачиваем фильтр товаров для Virtuemart 2/3 — компонент  Custom Filters Pro 2.2.9 или свежее Custom Filters Pro 2.3.2 или ещё свежее Custom Filters Pro 2.4.2
  2. Устанавливаем весь комплект через стандартный менеджер рассширений
  3. Переходим в раздел «Компоненты» → «Custom Filters»

Настройки и компонента и модуля

Активируем нужные для сортировки поля и столбце «Вид отображения» выставляем желаемый вид отображения фильтра по этому полю. В моем случае для поля «Размер» я выбрал «select», а для поля цвет «checkbox».

Теперь переходим в менеджер модулей и находим модуль «Фильтр товаров VirtueMart», кликаем и переходим к настройкам:

  • Публикуем модуль и указываем желаемую позицию отображения.
    Далее есть множество настроек, все они указаны на русском языке и комментировать каждую настройку просто нет времени да и это будет очень утомительным. В своем примере, я оставил все настройки по умолчанию.
  • Привязываем модуль к нужной категории/категориям. (для этого необходимо создать меню с ссылками на все категории магазина, часто бывает так, что для разных категорий необходимы разные фильтры)
  • И последняя, заключительная настройка. Нам необходимо создать пункт меню и привязать к нему наш фильтр для вывода результатов фильтрации. Заходим в любое меню, создаем новый пункт, в качестве типа пункта меню указываем «Страница результатов»

 


Комментариев: 81 на Фильтрация товаров в Virtuemart 2/3

Спасибо за статью, Вы даже не представляете сколько я времени потратила, чтобы найти хорошую информацию по настройке фильтрации.

Я рад, что моя статья Вам помогла!
Кстати, сегодня я выложил обновленную версию фильтра 2.2.0. Ссылка на скачивание доступна в этом материале.

Спасибо большое за компонент!

Последняя версия : v. 2.2.5 (06 February 2015) есть возможность обновить?

После того как вы создали пункт меню «Страница результатов» о котором автор пишет в этой статье, зайдите в «Расширения» — «Менеджер модулей», найдите свой фильтр и привяжите его к этому пункту меню — «Страница результатов».

День добрый, присоединяюсь к просьбе David-а, если есть возможность, обновите пожалуйста компонент до 2.2.7, а то с VM3 2.2.5 подружить не выходит 🙁
Спасибо.

Огромное спасибо, получилось завести даже 2.2.5, но обновление — это всегда хорошо. Подписался на блог, спасибо за полезный ресурс.

А есть какой — нибудь модуль / компонент сравнения товаров. А то в рунете, нет ни одного бесплатного.

Правильно ли я понимаю, что компонент Custom Filters Pro перехватывает встроенную в Virtuemart группировку по категориям и производителям?

Никак не могу вывести стандартными методами через меню страницу категории товаров, да и через главную страницу магазина перейти на страницу категории товаров не получается — белы лист.

Сайт локальный на Денвере, Joomla 2.5 /VirtueMart 3.0.9 / Custom Filters Pro 2.2.6

У меня фильтр зависает при выборе любого параметра и не важно в настройках стоит Ajax или нет. Кто-нибудь знает, в чем может быть проблема?

Какие ещё логи Joomla и Virtuemart?
Лог один, error log файл. Уточните где найти этот файл у своего хостера и скопируйте сюда небольшую часть ошибок связанных с фильтром.

Включил показ ошибок для разработчиков в джумле и в админке вылезла ошибка плагина chathelp.
Отключил и все заработало
Спасибо!

Здравствуйте. Спасибо.
Получилось. (с моим опытом — очень странно)
Человеку всегда мало.
Подскажите пожалуйста, как опубликовать модуль в отдельном меню.
Спасибо.

Роман, спасибо за статью.
Вы случайно не подскажите, этот модуль поддерживает Настраиваемое поле Multi Variant? Дело в том, что у меня появились некоторые свойства (после того как Общие настройки — Custom Filters — Вернуть как результаты выбрал Дочерние товары), а вот свойства «Multi Variant» дочерних товаров, к сожалению нет.

поставил этот модуль все работало, но когда поставил slogin перестал работать похоже они конфликтуют кто подскажет как посмотреть есть конфликт и в чем он заключается

Здравствуйте, Роман! Классная статья! А не могли бы выложить версию 2.2.10? Там появилась возможность искать по дочерним товарам, а отображать родительские. На сайте разработчика они не обновили последнюю версию (стоит 2.2.9), но changelog можно посмотреть, что вышла 6 августа версия 2.2.10. Заранее спасибо!

Очень классный фильтр. Автору Спасибо.
Столкнулся с такой проблемой. Использую в разных категориях разные шаблоны
но после применения фильтра используется шаблон VM default.
Подскажите есть возможность регулировать шаблоны в зависимости от категорий(категории то фильтр сам подтягивает), или хотя бы использовать определенный шаблон для фильтра.
п.с.
вышла версия 2.2.11. Ждем обновления.

Хотел использовать настраиваемые поля типа «число» для указания ширины товара, дабы юзать ползунки для выбор интервалов размеров, типа как с ценой устроен фильтр. Но в VM3 не нашел числового настраемового поля типа Integer, а если число писать в другие типы поля, то никакие «ползунки» для фильтрации создать не получается 🙁
Не ясно, почему так? Нужна новая версия плагина что ли?

Спасибо.
Посмотрел. Вы уверены, что поможет?! Вроде тоже не то, что нужно. Там ведь есть только
«Цветные кнопки (одиночный или множественный выбор)
Кнопки (одиночный или множественный выбор)
Чекбоксы (флажки)
Выпадающие списки
Радио кнопки»
А мне нужна возможность задавать интервалы, типа отсортировать все что имеет ширину от метра до сантиметра, похоже что те «ползунки» что я хочу, по английски называются «select ranges», но их нет 🙁

Беру свои сомнения обратно 🙂
Просто до сегодняшнего дня не хватало опыта чтобы понять, чем же и что мне поможет :))

Поля integer, в настраиваемых полях, после установки Custom Fileds не появилось. Нужно что бы это поля так же видел csvi. Есть решения что бы и ползунок появился на параметрах таких как вес и длина, и эти поля были видны для csvi

Подскажите пожалуйста как сменить валюту в фильтре цен.
В магазине основная валюта выбрана — украинская гривна. В товарах цена указана в долларах. Окончательная цена высвечивается на сайте в гривнах по курсу, который я указал в настройках валют.
Но фильтр подтягивает цену в долларах и не работает (пишет: нет результатов).
Кто-то сталкивался с такой проблемой ?

Люди, подскажите пожалуйста, как исправить следующее: при обновлении странички, когда фильтр применен, фильтр этот пропадает и так же сбивается сортировка товаров ( у меня в VM настроена так, что показывает все товары на одной странице), когда фильтр применяешь, далее сбрасываешь его, то товары разбиваются на страницы с нумерацией внизу, причем когда кликаешь на следующую страницу, пропадает фильтр!
И еще, почему-то на на мобильном устройстве фильтр пропадает в позиции sidebar (стоит респонз, а в позиции maintop, например, фильтр отображается на мобильном) WTF
(VM3, фильтр v.2.2.9 12 June 2015)

Пункт меню привязан к результатам фильтрации?
Скорее всего получается так, что у тебя к страницам привязаны модули, а к странице фильтрации не привязаны.

Да, я вообще проигнорил этот третий пункт «последняя, заключительная настройка» по установке модуля (где надо создать новый пункт меню и привязать к нему результаты поиска), т.к. не увидел логической связи, зачем вообще создавать доп. пункт меню, зачем он вообще мне нужен, это же отдельная страница открывается, да, сейчас при обновлении странице категории товара, фильтр не слетает, но перебрасывает на страницу результата поиска, WTF, логичнее же, что ты просто обновил страничку, у тебя все фильтры сбросились (или не сбросились), но в любом случае ты остался на странице категории товара. Т.е. это такая особенность данного модуля? без доп. меню он не будет нормально работать?
P.S. И на мобильном так же модуль в позиции slide не отображается, так же как и по-прежнему сбивается сортировка товара.
Может обновить до последней версии Version 2.2.12 ? кто-то юзал ?

В общем пришлось просто создать пункт меню с названием что-то в духе «подобрать по параметрам» и там отобразить все параметры, чтобы человек сразу мог прямиком подобрать то что хочет, кликая по тому или иному параметру.
А сортировка товара сбивалась потому что её нужно отдельно прописать (то как ты хочешь, чтобы отображалось) в пункте меню «страница результатов»

Это как Вы сделали? Очень надо таоке, но в пункте меню для фильтра нет таких настроек…

Доброго времени суток! Спасибо огромное за компонент! Хороший. Вот только, наверное руки не оттуда. Все поставил, сделал, разобрался с полями, но никак не въеду как вывести нужную мне фильтрацию в модуле. По умолчанию Категории — Производители — Цена, все работает как часики. Мне нужно добавить ко всему этому, ну например, Пункт «Весы», они уже делятся по дискретизации — 100 грамм, 200, 300 и т.п. С полями и настройками уже играюсь второй день не выводятся они в модуле хоч убей.Так же перепробовал все возможные типы полей -0. Уже пересмотрел и видео и статьи… У них все просто — берет и работает). Я ж сижу. Хотя все по инструкции. Люди добрые, может кто знает что не так?

Ну, а в компоненте CustomFilters отображается список твоих полей?
Они активные? Пытаешься сортировать зайдя в ту категорию где есть товары с данными характеристиками? А то там есть надстройка, что типа отображать везде или только на странице, где у товаров эти характеристики заданы.

Спасибо за ответ). Муками своих извилин и безсонными ночами дошел таки истины. Все довольно понятно, по крайней мере теперь. Никак не мог подумать, что не вписав значения в товаре, ничего в модуле не появится. Принцип работы взаимосвязан вплотную..

Кто то здесь спрашивал за компонент сравнения товаров для VM- могу в благодарность, за предоставленный администратором материал, предоставить. Только он для VM2. Если есть таковая необходимость или кому то очень приочень нужно ..)

У меня такая проблема — нужно чтобы фильтр товаров отображался только на страницах категорий товаров. На самих страницах товара чтобы не отображался. Все настройки перепробовала — но все равно в товарах фильтр показывается , точнее пустой фильтр только название и видно сам блок — если убрать отображение названия — то всё равно видно блок — только абсолютно пустой.

Такая же беда, установил модуль в позицию right, в категориях товара то что нужно, но на странице карточки товара, он там не нужен — не пойму как исправить.
Может в новой версии это исправлено?

Уважаемый Роман, спасибо Вам за статью! Скачал компонент с этого сайта, установил, но вот добиться корректной работы не могу. Скорей всего, я что-то делаю не так. Опубликовал модуль, создал меню с пунктами-ссылками на категории магазина, а также меню с пунктом — результат фильтрации. Сам компонент отображается, в нём отображаются настраиваемые поля, но вот напротив них везде 0 (в качестве информации о товарах содержащих это значение). Хотя значение настраиваемых полей в товарах введено верно. При попытке произвести фильтрацию на странице результатов получаю — ни один товар не найден. Возможно, я не правильно понял вот эти моменты из Вашей статьи «Привязываем модуль к нужной категории/категориям» и «Нам необходимо создать пункт меню и привязать к нему наш фильтр для вывода результатов». В настройке модуля есть пункт «Привязка к пунктам меню». Вы его имели ввиду? Или под привязкой к категории имелось ввиду что-то другое? Огромное спасибо Вам заранее за помощь!

По Вашим словам, всё сделано верно.
Если поля выводятся, а не фильтруются, проблема скорее всего в на вкладке «Настраиваемые поля» в самой карточке товара. Попробуйте взять любую карточку и переделать там поля, то есть сделать заново и сохранить.

Разобрался со своей проблемой. Отпишусь — может кому-то пригодится. Дело в том, что в данный момент я занимаюсь натяжкой дизайна на Joomla и чтобы сэкономить время решил воспользоваться демо материалами из VirtueMart. Так вот, оказывается, Custom Filters не дружат с ними. Удалил демо материалы, завел свои категории и товары и всё заработало.

уже третий раз пытаюсь написать вопрос в комментарий.
толи администрация спит и не пропускает, толи е****ый бабай.

В старых версиях в настройках пункта меню был параметр «Display child product» по умолчанию НЕТ. Теперь этой настройки в меню не могу найти, и в базе данных в параметрах пункта меню нет ничего этого, и дочерние товары не фильтруются!
что делать, куда копать?

ой блин, появился коммент))
стоило тока сделать вид что матюгнулся…)))
прошу удалить закрытое звездочками слово «екарный» и извиняюсь.
помогите пожалуйста разобраться, второй раз заного магазин поднимаю с нуля, ничего не получается.
Никак не фильтруются дочерние товары!

эти параметры были перенесены в настройки компонента!! разобрался сам, вдруг кому поможет.

вышла версия 2.3.1!
Возможно у автора данного, замечательного ресурса он уже имеется?

Здравствуйте! Подскажите как сделать, чтоб диапазон цен — отображал начальную и конечную цену? Не нашла этого в настройках. А когда ставишь отображение поля от-до — то там только одно поле появляется? В чем может быть проблема?

В Virtuemart3 тип поля логический выводится как тип поля строка, и отличается от Virtuemart2. Как исправить проблему?

Спасибо большое автору!!! Для вирта VirtueMart 2.0.26d перепробовала все, то глюки какие то, то сайт начинает подвисать… Custom Filters Pro работает хорошо, оперативно и молниеносно фильтрует по настраиваемым полям виртуемарт, результат появляется без всякого моргания, зависания и перезагрузки страниц!
Мне очень понравился фильтр, а главное все предельно доходчиво и понятно.
Спасибо Роман!

Роман Суворов, если у тебя есть такая возможность, обнови пожалуйста компонент) Сейчас уже последняя версия 2.4.0.
Спасибо)

добрый вечер, помогите разобраться как в версии 2.3.2 присвоить одному товару несколько значений поля? через точку с запятой не получается, в фильтре выводит одной позицией, может какой то другой разделитель использовать или его назначать нужно?

Здравствуйте. Кто-то решил проблему с фильтрацией по цене, когда в товаре одна валюта, а на сайте другая?

Роман, спасибо за статью, очень помогла. Подскажите пожалуйста как перевести название фильтров Price и Manufacturers на русский язык? Я так понял что названия подтягиваются из VM, он у меня русифицирован, но в фильтре все равно на инглише(

Подскажите, Вы нашли новую версию 2.5.1? Если да оооочччеенннььь прошу поделится!!!!

CustomFilters 2.4.2 выдает ошибку www/libraries/joomla/html/parameter.php on line 512
помогите с решением, спасибо.

Добрый день! Очень нужна версия 2.5.1. Там исправлена ошибка вывода подкатегорий.

Здравствуйте. Никак не получается заставить работать CFP-фильтр. Все настройки сделаны верно, фильтр находит кастомные поля, однако при нажатии на поиск — выдает следующее сообщение: «Ни один товар не найден.». Пробовал разные версии, как фильтра, так и VM и даже менял шаблон на станадртный. В чем-же может быть дело?

Нашел решение, может кому пригодится. Проблема заключалась в порядке сортировки, вернее в хитро-расставленных чекбоксах. Заходите: VirtueMart > Конфигурация > Настройки сортировки > Порядок сортировки по умолчанию —
«Сортировка, Название».

А у меня -«Ни один товар не найден.» хоть как крути!
Работают сортировка по цене, производителю и по полям, а вот стоит включить в фильтре категории, то при выборе любой, выдаёт — «Ни один товар не найден.» .
Может было такое у кого? Помогите пожалуйста.
Использую Joomla! 3.6.5 Stable.VirtueMart 3.0.16. Версия PHP 5.6.30 Custom Filters : v. 2.4.2

Уверены, что именно с модулем сайт работает медленно? На многих проектах ставил его, не замечал проблем со скоростью. Включите отладка в настройках, посмотрите, что именно грузит сайт.

Комментировать