Умный фильтр в 1С-Битрикс - настройка и типовые сбои
Умный фильтр - подтема на 52 вопроса из собранных. Почти все они об одном: фильтр стоит на странице, а выборка не меняется.
Что общего у этих задач
Фильтр и список товаров - два разных компонента. Первый рисует форму и собирает условия, второй выбирает товары. Связывает их имя переменной фильтра, и пока это имя не совпадает у обоих, форма работает, а список остаётся прежним.
В фильтр попадают не все свойства. Свойство участвует в фильтрации только с отдельным флагом в настройках инфоблока. Остальные видны в карточке товара, но формы для них не появится, сколько ни настраивай компонент.
Адреса фильтрации собирает комплексный компонент. Он же разбирает их обратно. Умный фильтр, вынесенный за пределы каталога, теряет эту связь: форма отправляет запрос, каталог его не узнаёт, и посетитель видит либо полный список, либо 404.
Числа рядом со значениями считает фасетный индекс. Его строят по каждому инфоблоку каталога отдельно, и забытый индекс инфоблока предложений даёт нули у размеров и цветов.
С чего начать
Начинают с проверки имени фильтра в обоих компонентах. Совпадение до символа - обязательное условие, и половина жалоб на неработающий отбор объясняется именно им.
Дальше отмечают нужные свойства как участвующие в фильтре и строят индекс. Для каталога с торговыми предложениями индекс строят и для товаров, и для их вариантов.
Последним проверяют адреса фильтрации. Фильтр должен жить внутри комплексного компонента каталога, иначе собранный им адрес каталог просто не узнает.
Решения подтемы
- Умный фильтр: настройка, свойства и адреса фильтрации - какие свойства выводить, как связать со списком, как работают адреса.
- Умный фильтр не применяется - разбор причин: имя фильтра, свойства, чужой компонент, кэш.
- Количество товаров в фильтре: фасетный индекс и пустые значения - индекс, пересчёт после обмена, скрытие пустых значений.
- Фильтр по свойствам предложений: настройка, индекс, вывод - отметка свойств, индекс двух инфоблоков, вывод и проверка.
- Фильтр по цене и наличию: диапазон, валюта, склад - тип цены и валюта, скидки мимо отрезка, доступность и склад.
- Умный фильтр изнутри: от адреса до выборки товаров - разбор адреса, условия отбора, фасетный индекс, выборка списка.
Частые вопросы
Почему в фильтре нет нужного свойства?
У свойства не включено участие в умном фильтре. Флаг ставится в настройках свойства инфоблока, а не в параметрах компонента, и без него форма для этого свойства не строится.
Можно ли поставить умный фильтр вне каталога?
Технически да, но адреса фильтрации собирает комплексный компонент каталога. Вне его фильтр придётся связывать со списком вручную через имя переменной фильтра.
Почему фильтр показывает нули у всех значений?
Не заполнены свойства у товаров либо не пересчитаны данные фильтра. Количество считается по фактическим значениям элементов, и пустые свойства дают нулевые счётчики.
Как сделать фильтрацию без перезагрузки страницы?
Штатным режимом мгновенной фильтрации в параметрах компонента. Он требует, чтобы фильтр и список стояли на одной странице внутри одного каталога.
Связанные темы
- Компоненты 2.0 - как компоненты обмениваются данными
- Витрина каталога: список раздела, сортировка, фильтр - что выводит список товаров
- Свойства инфоблоков - откуда берутся значения для фильтра
- Раздел Компоненты и шаблоны