Разработка каталога товаров на 1С-Битрикс

Каталог товаров на 1С-Битрикс со временем начинает тормозить: страницы фильтра генерируются долго, а стандартные компоненты не справляются с нагрузкой. Мы проектируем структуру инфоблоков и логику фильтрации с учётом роста ассортимента, чтобы избежать этих проблем. Наша команда реализует проект под ключ — от аудита до внедрения и последующей поддержки, обеспечивая стабильную работу даже при интенсивном использовании.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка каталога товаров на 1С-Битрикс
Средний
~1-2 недели

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

Часто задаваемые вопросы

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1481
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1026
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    779
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    885
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    819
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1178

Разработка каталога товаров на 1С-Битрикс

В нашей практике типичная ситуация: интернет-магазин запускается на стандартном компоненте bitrix:catalog, через год каталог вырастает до 30 000 SKU, добавляются новые свойства, и страница фильтра начинает генерировать запросы на 4–6 секунд. Проблема не в «слабом хостинге» — она глубже. Структура инфоблока и логика фильтрации проектировались без учёта масштабирования. Разработка каталога с нуля или рефакторинг существующего — это архитектурная задача, а не просто настройка компонентов. Мы специализируемся на проектировании высоконагруженных каталогов на 1С-Битрикс уже более 7 лет, выполнено 30+ проектов, каждый из которых решал проблемы производительности и масштабирования.

Как спроектировать структуру данных?

Первое решение, которое определяет всё дальнейшее, — схема хранения данных. В 1С-Битрикс каталог строится поверх инфоблоков модуля iblock, а торговая часть — поверх модуля catalog.

Плоский каталог vs. каталог с торговыми предложениями (SKU)

Если товар имеет варианты (размер, цвет, комплектация), правильная схема — родительский элемент инфоблока с торговыми предложениями (OFFERS). Попытка хранить варианты как отдельные элементы без привязки к родителю ломает фильтрацию по цвету и логику корзины.

Структура в базе данных:

  • b_iblock_element — основная таблица элементов
  • b_iblock_element_property — значения свойств (узкое место при большом каталоге)
  • b_catalog_product — цены, остатки, тип элемента (товар/предложение)
  • b_catalog_price — цены по типам

Строковые свойства → HL-блоки

Свойства типа «Строка» для справочных значений (бренд, страна, материал) — распространённая ошибка. 50 000 товаров × 8 строковых свойств = 400 000 строк в b_iblock_element_property с повторяющимися VARCHAR-значениями. Правильно: создать highload-блок (например, hl_brand с полем UF_XML_ID, UF_NAME), свойство инфоблока перевести на тип «Справочник». Тогда хранится INT-ключ, а не строка.

Способ хранения Производительность Масштабируемость Рекомендация
Строковые свойства Низкая при >10 000 товаров Низкая Только для уникальных значений
HL-блоки Высокая даже при 100 000+ Высокая Для справочников

Почему фасетный индекс — must have?

Без фасетного индекса фильтр по свойствам — это JOIN таблиц b_iblock_element, b_iblock_element_property и нескольких промежуточных с условием по каждому выбранному значению. На 10 000 элементов это ещё терпимо, на 50 000 — уже нет. Фасетный индекс ускоряет фильтрацию в 40 раз по сравнению с обычным запросом.

Фасетный индекс создаётся через Настройки → Типы инфоблоков → [инфоблок] → вкладка «Настройки» → Фасетный индекс. Битрикс строит таблицу b_iblock_{ID}_index, где заранее сохранены пары «значение свойства → ID элемента». Запрос фильтра превращается в поиск по индексированной таблице.Документация 1С-Битрикс

Условия корректной работы фасета:

  • Только свойства типа «Список» или «Справочник» (HL-блок) — строки не индексируются
  • После пакетного импорта из 1С индекс нужно пересоздавать (\Bitrix\Iblock\PropertyIndex\Manager::runIndex())
  • Для торговых предложений — отдельная настройка фасета на инфоблоке офферов

Кеширование и композитный режим

Грамотная настройка кеша снимает нагрузку даже при неоптимальной структуре данных.

Тегированный кеш (\Bitrix\Main\Data\TaggedCache) позволяет инвалидировать кеш точечно — только при изменении конкретного элемента или раздела, а не всего каталога. Компоненты bitrix:catalog.section и bitrix:catalog.element поддерживают тегированный кеш из коробки, но нужно убедиться, что он включён в параметрах компонента.

Подробнее о настройке тегированного кешаВ компоненте `bitrix:catalog.section` включите опцию "Кешировать", выберите "Тегированный" и укажите время кеширования. Убедитесь, что модуль кеширования включён в настройках системы.

Композитный кеш (модуль composite) — для анонимных пользователей страница каталога отдаётся как статический HTML + динамические блоки (корзина, авторизация) подгружаются отдельными запросами. Снижает нагрузку на PHP-обработку в 5–10 раз для высокотрафиковых страниц.

Кейс из нашей практики: рефакторинг каталога строительного интернет-магазина

Наш клиент — интернет-магазин строительных материалов с 28 000 SKU и 14 свойствами на товар. Жалоба: страница раздела открывалась 6–9 секунд, фильтр по нескольким свойствам — до 12 секунд. Обмен с 1С падал по таймауту.

Аудит показал:

  • Все 14 свойств — строковые, фасет не подключён
  • b_iblock_element_property содержала 392 000 строк
  • innodb_buffer_pool_size — 256MB при размере таблиц 2.1GB
  • Кеш компонентов выключен «чтобы цены всегда были актуальными»

Выполненные действия:

  1. Перевели 8 справочных свойств на HL-блоки, мигрировали данные скриптом за 40 минут
  2. Создали фасетный индекс — время фильтра упало с 12 до 0.3 секунды
  3. Настроили тегированный кеш — инвалидация только по затронутым элементам
  4. Подняли innodb_buffer_pool_size до 6GB
  5. Вынесли пересоздание фасета в агент, запускаемый после завершения обмена с 1С

Итог: страница раздела — 0.4 секунды, фильтр — 0.2–0.5 секунды, обмен с 1С проходит без ошибок. Экономия средств клиента на хостинге составила порядка $450–650 в месяц за счёт снижения нагрузки.

Что входит в разработку каталога?

  • Проектирование структуры инфоблока с учётом типов свойств и планируемого объёма
  • Настройка торговых предложений (SKU) и связи «товар — офферы»
  • Создание HL-блоков для справочных свойств
  • Настройка фасетного индекса и стратегии его обновления
  • Разработка или настройка компонента фильтрации (bitrix:catalog.smart.filter)
  • Кеширование: тегированный кеш, композитный режим
  • Настройка сортировок, постраничной навигации, хлебных крошек
  • Интеграция с обменом 1С: проверка маппинга свойств, настройка агентов пересоздания индекса
Этап Длительность Результат
Анализ структуры 1–3 дня Схема данных
Проектирование индексов 1–2 дня Оптимизированные запросы
Разработка/рефакторинг 1–4 недели Рабочий каталог
Тестирование и деплой 1 неделя Стабильная работа

Сроки зависят от объёма каталога и количества нестандартных требований: от 2 недель для базового каталога до 2–3 месяцев при разработке сложной системы фильтрации с нестандартными типами свойств и интеграцией с ERP.

Закажите разработку каталога под ключ — оценим ваш проект за 1 день. Свяжитесь с нами, чтобы получить консультацию по вашему каталогу.