Проектирование системы фильтрации товаров 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Проектирование системы фильтрации товаров 1С-Битрикс
Средний
~2-3 дня
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1330
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    924
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    672
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    815
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    714
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1051

Проектирование системы фильтрации товаров на 1С-Битрикс — это задача, где каждая миллисекунда на счету. В нашей практике фильтр на 180 000 SKU отрабатывал за 0.2 секунды, а стандартный компонент выдавал ошибки времени выполнения. Медленный фильтр — почти всегда следствие неправильных типов свойств или отсутствия фасетного индекса. Фильтр, показывающий товары без учёта остатков, — результат путаницы между свойствами товара и торговых предложений. Фильтр, выдающий нулевые результаты при комбинировании критериев, — проблема логики AND vs. OR. Мы решаем эти задачи с учётом вашей инфраструктуры, экономя до 40% времени на разработку. Закажите проектирование фильтра, чтобы избежать типичных ошибок и получить быстрый, точный инструмент для вашего каталога.

Ускорение фильтрации через фасетный индекс

Фасетный индекс — основной инструмент для скорости. Он в 15 раз быстрее обычных запросов к b_iblock_element_property. Фасетная навигация (https://ru.wikipedia.org/wiki/Фасетная_навигация) позволяет мгновенно подсчитывать количество элементов для каждого значения. Но индекс работает только со свойствами типа «Список» и «Справочник». Числовые поля требуют диапазонного фильтра — его тоже поддерживает стандартный компонент.

Компонент bitrix:catalog.smart.filter: возможности и ограничения

Стандартный компонент умного фильтра в Битрикс поддерживает:

  • Фильтрацию по свойствам типа «Список» и «Справочник» (HL-блок) с использованием фасетного индекса
  • Фильтрацию по диапазону числовых свойств (цена, размер)
  • Фильтрацию по свойствам торговых предложений (OFFER_IBLOCK_ID)
  • Генерацию SEO-URL по выбранным фильтрам (SEF_FOLDER)
  • AJAX-обновление списка товаров без перезагрузки страницы

Ограничения:

  • Не поддерживает фильтрацию по свойствам из нескольких инфоблоков одновременно
  • Не строит умные комбинации (показать доступные значения с учётом уже выбранных)
  • Не поддерживает геофильтрацию из коробки

Когда стандартного компонента недостаточно — мы пишем кастомный фильтр с собственными SQL-запросами к фасетным таблицам или с использованием ElasticSearch?

Стоимость рассчитывается индивидуально в зависимости от сложности, но типичная экономия бюджета на доработках составляет до 30%.

Почему стандартный фильтр не подходит для сложных атрибутов?

Логика фильтрации: AND внутри свойства vs. AND между свойствами — проектное решение, которое часто упускают. Пример: товар имеет свойство «Цвет» с множественными значениями («красный», «синий»). Пользователь выбирает оба цвета.

  • OR-логика: показать все товары, у которых есть красный ИЛИ синий. Большинство фильтров работает так.
  • AND-логика: показать только товары, у которых есть И красный И синий. Имеет смысл для тегов.

Стандартный компонент использует OR внутри одного свойства и AND между разными. Без доработки это не изменить.

Учёт наличия в фильтре

Частый кейс: фильтр показывает значения свойств, у которых все товары закончились. Пользователь выбирает «красный» и получает 0 результатов. Решение на уровне фасетного индекса: при пересоздании индекса (\Bitrix\Iblock\PropertyIndex\Manager::runIndex()) Битрикс автоматически исключает элементы с ACTIVE = N. Но остатки не учитываются автоматически — нужен кастомный механизм:

  • Обработчик события на изменение остатка в b_catalog_store_amount
  • Обновление свойства-флага IN_STOCK на родительском товаре
  • Элементы с IN_STOCK = N помечаются неактивными или фильтруются в компоненте

Настройка SEO-URL для фильтра

Битрикс генерирует SEO-URL для фильтра автоматически при настройке ЧПУ компонента catalog.smart.filter. Формат: /catalog/smartfon/filter/brand-is-samsung/. Это работает только при правильной настройке SEF_FOLDER и правилах urlrewrite. Проектное решение: какие комбинации получают SEO-страницы с мета-тегами, какие — нет. Для крупных каталогов генерация всех комбинаций в sitemap нецелесообразна — нужна стратегия приоритизации (например, только однофакторные фильтры).

Из нашей практики: система фильтрации для маркетплейса одежды

Платформа с несколькими продавцами, 180 000 SKU, 8 категорий одежды с разными атрибутами. Требование: единый фильтр с учётом остатков. Атрибуты варьируются по категориям: в «Обувь» — размер (35–46), в «Верхняя одежда» — размер (XS–4XL) и длина. Строить единый фасет с 60 свойствами означало бы показывать «Размер обуви» в разделе «Куртки».

Решение:

  • Единый инфоблок, но фильтр с динамическим набором свойств в зависимости от раздела
  • Дополнительная таблица category_filter_props (кастомная через DataManager): категория → список свойств для отображения
  • Фасетный индекс на инфоблоке офферов с флагом остатка
  • Агент пересчёта остатков каждые 30 минут

Результат: фильтр по размеру + цвету + наличию — 0.2 секунды на 180 000 SKU. Окупаемость такого решения — менее двух кварталов за счёт роста конверсии.

Пошаговый план проектирования фильтра

  1. Сбор атрибутов и требований к фильтрации (свойства, учёт наличия, SEO).
  2. Выбор типов свойств с учётом фасетного индекса (список, справочник, числовой диапазон).
  3. Проектирование логики (AND/OR, учёт наличия, геофильтрация).
  4. Настройка bitrix:catalog.smart.filter или кастомного решения с SQL/ElasticSearch.
  5. Проектирование SEO-URL: индексируемые комбинации, настройка sitemap.
  6. Стратегия обновления фасетного индекса и остатков (агенты, события).
  7. Сценарии тестирования: корректность при разных комбинациях, производительность под нагрузкой, граничные случаи.
Этап Ориентировочное время
Анализ требований 1–2 дня
Проектирование логики 2–4 дня
Настройка компонента 1–2 дня
Кастомная доработка от 5 дней
Тестирование и отладка 2–3 дня

Сравнение: стандартный vs кастомный фильтр

Параметр Стандартный smart.filter Кастомный фильтр
Скорость на 100 000 товаров ~1.5 секунды (с фасетным индексом) ~0.2 секунды (оптимизированные запросы)
Гибкость логики Только OR внутри свойства AND/OR на выбор
Учёт наличия Не поддерживается Поддерживается
SEO-URL Автоматически Ручная настройка
Сложность внедрения Минимальная Требует разработки

Типичные ошибки при проектировании фильтра

  • Неподходящие типы свойств (строка вместо списка) — ломают фасетный индекс.
  • Игнорирование учёта наличия — нулевые результаты после выбора.
  • Отсутствие стратегии SEO-URL — дубли страниц или потеря трафика.
  • Фильтрация по всем свойствам из единого инфоблока — лишние атрибуты в фильтре.
Подробнее о типах свойств

Для фильтрации используйте только свойства типа «Список» или «Справочник» (HL-блок). Числовые свойства (цена, размер) тоже поддерживаются, но только для диапазонного фильтра. Избегайте строковых свойств — они не индексируются фасетным индексом и замедляют запросы до 10 раз.

Что входит в работу по проектированию

  • Анализ атрибутов и типов свойств
  • Выбор архитектуры (стандартный или кастомный фильтр)
  • Проектирование логики с учётом наличия, множественных значений и пересечения категорий
  • Настройка фасетного индекса и агентов обновления
  • Документация и рекомендации по тестированию
  • Оценка производительности на тестовых данных

Наша команда — 10+ лет опыта в разработке на 1С-Битрикс и 500+ реализованных проектов. Мы гарантируем стабильную работу фильтра под любой нагрузкой. Чтобы получить точную оценку стоимости и сроков для вашего каталога, свяжитесь с нами. Пишите — оценим проект за 1 рабочий день.