- Для смарт-фильтра — фасетный индекс в OpenSearch.
- Для списка товаров — фильтр и сортировка товаров выполняется через OpenSearch.
Производительность
Пример времени выполнения компонентов при повторных запросах без кеша на одном из проектов (~130 000 товаров в каталоге, ~70 000 товаров в разделе, 23 свойства в фильтре):
| Компонент | Без модуля | С модулем | Ускорение |
| Умный фильтр | 1,9 сек | 0,12 сек | ×15 |
| Список товаров | 1,17 сек | 0,19 сек | ×6 |
Ключевые возможности
Фасетный индекс в OpenSearch
Компонент «Умный фильтр «ЭкспериментСайт» реализует механики выбора вариантов свойств и подсчета количества с помощью OpenSearch аналогично стандартному компоненту 1С-Битрикс.
Фильтр и сортировка товаров через OpenSearch
Компонент «Элементы раздела «ЭкспериментСайт» получает из OpenSearch идентификаторы элементов на странице и общее количество, позволяя базе данных использовать первичный ключ для загрузки информации о товарах, не выполняя полное сканирование таблицы. Поддержаны пагинация, сортировка по нескольким полям, случайная сортировка, фильтр по полям товара, свойствам, товару и ценам.
Автоматическое обновление индекса
Модуль отслеживает события 1С-Битрикс: изменение элементов инфоблока, значений свойств, цен и параметров товара. Записи накапливаются в очереди и пакетно отправляются в OpenSearch фоновым агентом. Помимо оперативного обновления, модуль ежедневно в 03:00 запускает полную переиндексацию каждого каталога. Это гарантирует целостность индекса даже при сбоях или пропущенных событиях.
Простая интеграция
- Прозрачная подмена компонентов. Включается в один клик через админку. Стандартные компоненты Битрикс заменяются на версии с OpenSearch. Шаблоны сайта подключаются через символические ссылки — ничего не копируется и не дублируется.
- Автоматический fallback. Если индекс недоступен или ещё не построен для конкретного инфоблока — модуль прозрачно переключается на стандартные запросы 1С-Битрикс. Сайт продолжает работать как раньше.
- Легкое отключение. Каждая подмена компонента — отдельная фича, которую можно включить или выключить независимо.
Управление полями индекса
По умолчанию в индекс попадают поля для сортировки (идентификатор, сортировка и доступность) и свойства, отображаемые в смарт-фильтре. Если поля нет в индексе, в лог будет записано сообщение и модуль вернется к стандартным методам 1С-Битрикс.
Для блоков «Хит продаж», «Спецпредложения» на главной странице и дополнительного фильтра в каталоге, может потребоваться указать дополнительные поля для индексации:
- Если используете «Механизм единого управления свойствами», в форме редактировании свойства отметьте флаг «Добавить в индекс OpenSearch».
- С помощью пользовательского события onIndexFieldScope (для разработчиков, подробнее на вкладке «Установка»).
Отбор товаров
Свойства торговых предложений хранятся в индексе как параметры товара — значения всех предложений объединяются в массив на уровне родительского товара. Поэтому фильтр с несколькими условиями по свойствам предложений вернёт товары, у которых условия выполняются у разных предложений. Например, у товара «Футболка» три предложения: (Красный, S), (Красный, M), (Синий, L). При фильтрации «Цвет = Красный И Размер = L» этот товар попадёт в выдачу, потому что среди его предложений есть красное и есть размера L.
Не поддерживается проверка по дате активности товара и управления правами доступа в инфоблоке.
Если требуемый фильтр ещё не реализован в модуле, напишите нам на вкладке «Поддержка».
Meilisearch
Реализована экспериментальная поддержка Meilisearch — фасетный индекс и отбор товаров. Не поддерживается случайная сортировка и группировка по нескольким полям.
# Системные требования
- PHP 8.1 или выше
- 1С-Битрикс: Управление сайтом (актуальные версии)
- Доступ к серверу OpenSearch по HTTP/HTTPS с вашего сайта.
# OpenSearch
Для установки OpenSearch на свой сервер воспользуйтесь инструкцией на официальном сайте.
Минимальные параметры сервера зависят от объёма каталога. Для каталогов до 100 000 товаров ориентировочно потребуется один узел с 2 ГБ оперативной памяти.
Шаг 1. Установка модуля
Установите модуль из Маркетплейса 1С-Битрикс стандартным способом:
**Настройки → Маркетплейс → Каталог решений** → найдите «Индекс каталога в OpenSearch» → **Установить**.
При установке модуль создаст административные страницы и служебные таблицы.
Шаг 2. Настройка подключения к OpenSearch
Откройте Настройки → Настройки модулей → Индекс каталога в OpenSearch.
# Вкладка «Подключение»
На вкладке «Подключение» введите реквизиты доступа к вашему OpenSearch серверу. Например: Адрес сервера — `https://localhost:9200`, Имя пользователя — `admin`, Пароль — <Пароль от вашего OpenSearch>, Проверять SSL-сертификат — Нет, Таймаут — 5 секунд.
После заполнения нажмите «Проверить соединение». При успешном подключении модуль покажет имя кластера и версию OpenSearch.
Нажмите «Сохранить».
# Вкладка «Индексирование»
Если используете OpenSearch-сервер для нескольких установок 1С-Битрикс, на вкладке Индексирование укажите уникальный префикс. Префикс будет добавлен к имени индекса в OpenSearch.
Для случаев переполнения памяти при индексации уменьшите Количество элементов в одном запросе для индексации. Для ускорения индексации наоборот увеличьте значение.
Шаг 3. Первичная индексация
Откройте Контент → OpenSearch индекс (или перейдите по ссылке «Индексация» из настроек модуля).
На странице отображается список каталогов с текущим статусом индекса. Нажмите «Переиндексировать» для нужного инфоблока, после загрузки страницы нажмите «Индексировать» и дождитесь сообщения о завершении индексации.
Повторите для каждого каталога, который хотите ускорить.
Шаг 4. Интеграция компонентов
Для вызова компонентов модуля в шаблоне сайта замените вызов bitrix:catalog.smart.filter и bitrix:catalog.section на experimentsite:facet.catalog.smart.filter и experimentsite:facet.catalog.section.
Для автоматического вызова новых компонентов без редактирования шаблона, в разделе Настройки → Настройки модулей → Индекс каталога в OpenSearch на вкладке «Интеграция» включите «Подмена умного фильтра» и «Подмена списка товаров» — будут созданы прокси-компоненты /local/components/bitrix/catalog.smart.filter/ и /local/components/bitrix/catalog.section/, и созданы симлинки на оригинальные шаблоны. Чтобы использовать шаблоны без прокси-компонентов, включите «Симлинки шаблонов умного фильтра» и «Симлинки шаблонов списка товаров».
> Важно: если индекс для конкретного каталога ещё не построен, модуль автоматически использует стандартные методы Битрикс. Можно включать подмену можно до завершения индексации — сайт продолжит работать.
Шаг 5. Проверка работы
После включения подмены компонентов откройте страницу каталога на сайте.
Признаки успешной работы:
- Фильтрация и отображение товаров работают как раньше — внешних отличий быть не должно
- Скорость отклика страницы каталога заметно выросла (особенно при большом количестве товаров и активных фильтрах)
Автоматическое обновление индекса
После первичной индексации модуль поддерживает индекс в актуальном состоянии автоматически:
# Оперативное обновление (очередь)
При любом изменении товара, свойства или цены модуль добавляет запись в очередь обновлений. Фоновый агент Битрикс обрабатывает очередь пакетами:
- Интервал проверки: каждые 5 секунд
- Размер пакета: 100 элементов
- Лимит времени на одну итерацию: 30 секунд
- При недоступности OpenSearch — автоматические повторные попытки с нарастающими интервалами (1 мин → 10 мин → 1 час)
Изменения в торговых предложениях (SKU) автоматически связываются с родительским товаром — обновляется запись товара, а не отдельного предложения.
# Ночная переиндексация
Для каждого проиндексированного каталога модуль ежедневно в 03:00 запускает фоновую полную переиндексацию. Это защита от рассинхронизации при пропущенных событиях или сбоях.
Переиндексация выполняется пошагово с ограничением по времени (30 секунд на шаг) и не нагружает сервер.
Управление полями индекса
По умолчанию модуль индексирует свойства, отмеченные для умного фильтра, и поля `ID`, `SORT` и `AVAILABLE`. Если нужно добавить дополнительные свойства:
# Через интерфейс Битрикс
Если используете механизм «Механизм единого управления свойствами», то:
1. Перейдите в раздел Магазин → Каталоги товаров → <Ваш каталог> → Свойства товаров или **Свойства торговых предложений**, выберите нужно свойство.
2. В разделе «Параметры свойства» установите флаг «Добавить в индекс OpenSearch».
Повторите для всех свойств, которые используете в пользовательских фильтрах. После запустите переиндексацию каталога.
# Через событие (для разработчиков)
Подпишитесь на событие `onIndexFieldScope`:
use Bitrix\Main\EventManager;
use Bitrix\Main\EventResult;
EventManager::getInstance()->addEventHandler(
'experimentsite.facet',
'onIndexFieldScope',
function () {
return new EventResult(EventResult::SUCCESS, ['NAME', 'PROPERTY_42', 'PRICE_1']);
}
); |
Обработчик возвращает массив идентификаторов полей, которые нужно добавить в индекс. Для свойств торговых предложений используйте формат OFFER_PROPERTY_<ID> или OFFER_PROPERTY_<CODE>
# Ошибка подключения к OpenSearch
- Проверьте, что сервер OpenSearch запущен и доступен с сервера Битрикс, нажав Проверить соединение в настройках модуля Настройки → Настройки модулей → Индекс каталога в OpenSearch.
- Проверьте логин и пароль
- Если используете самоподписанный сертификат — отключите проверку SSL в настройках модуля
# Сайт работает медленно после включения модуля
- Проверьте лог ошибок. Если поле отсутствует в индексе, добавьте требуемые, по инструкции «Управление полями индекса» выше.
- Убедитесь, что OpenSearch отвечает быстро (таймаут не более 5 секунд)
- Проверьте сетевую задержку между сервером Битрикс и OpenSearch
- При превышении таймаута модуль автоматически переключится на стандартные методы 1С-Битрикс
Для получения техподдержки пишите на почту: start@experimentsite.ru
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.