Умный фильтр 1С-Битрикса
DESCRIPTION
Презентация доклада с HolyWarModeOn: принцип работы умного фильтра Битрикса, вероятные проблемы, подводные камниTRANSCRIPT
Битрикс.Умный фильтр
Возможности● показывает общие для всех разделов свойства и свойства, присущие только текущему
разделу (и вложенным). Например, общие свойства - “бренд”, “пол”. Для раздела часов будут показаны дополнительно свойства “механизм”, “циферблат”, а для раздела ручек - “система заправки”;
● скрывает ненужные параметры поиска;● поддерживает SKU;● для цены и числовых свойств выводит ползунок, для всех остальных свойств использует
чекбоксы;● поддерживает шаблоны: .default , visual_horizontal , visual_vertical ;● поддерживает Яндекс Острова;● возможность вынести форму фильтра во включаемую область.
Ограничения● работает только с чекбоксами, не знает, что такое селект. Из-за этого фильтр может
превратиться в портянку;● генерирует чудовищные name типа arrFilter_6_1284372584 . Изменяемый параметр в
этом name только название фильтра. То есть о понятном url можно забыть.● по слухам некорректно работает с ценами в разных валютах: 10 долларов меньше чем 11
рублей;● проблемы с производительностью;● говорят, что без ухищрений не работает с числом свойств более 180;● нельзя изменить логику работы. Показывает товары, у которых есть все выбранные
параметры (AND);● нет фильтра по категориям раздела.
Как переделать checkbox в select ● http://dev.1c-bitrix.ru/community/webdev/user/94272/blog/10851/● http://dev.1c-bitrix.ru/community/forums/messages/forum6/topic61840/message324410/#message324410
Немного статистикиСтатистика вывода одного раздела на city-pets с 5-ю свойствами без кэша с кэшем
Откуда столько запросов:➔ получает все свойства инфоблока/раздела (если находимся в разделе);➔ по каждому свойству отдельным запросом получает все значения свойства;➔ если есть SKU, повторяет п. 1 и 2 для инфоблока SKU;➔ получает все элементы инфоблока/раздела с примененным фильтром;➔ если есть SKU, получает элементы инфоблока SKUс примененным фильтром;➔ если находимся в разделе, получает данные раздела.
Настройка. Шаг 1Чтобы заставить умный фильтр работать, необходимо предварительно настроить свойства инфоблока. Рекомендуется настраивать свойства через раздел “Магазин”.
Настройка каталогаПервым делом в настройках каталога указываем свойства, присущие всем товарам.
Настройка. Шаг 2Настройка разделовЗадаем каждому разделу необходимые свойства
Здесь для редактирования доступны только свойства, у которых установлен чекбокс “Показывать в умном фильтре”. Остальные свойства и свойства, общие для всех разделов, будут недоступны
Настройка. Шаг 3Настройка формы добавления товараЧтобы показывались свойства текущего раздела, а не портянка всех имеющихся.Из правой колонки удаляем все свойства и заголовок “--Значения свойств”.Теперь будут отображаться общие свойства и свойства выбранного раздела.
Данная настройка поддерживается только в разделе “Магазин”.
Настройка. Шаг 4Вывод фильтраПосле манипуляций в админке, добавляем код вызова компонента в каталоге перед компонентом вывода элементов.
Результат
Подводные камниПосле манипуляций с контентом, фильтр может поймать глюк. Пример: Были удалены некоторые значения свойства, но у товаров привязки остались. Как следствие пустые значения при выводе.