Электронная коммерция
Порталы и сервисы
Октябрь 2026
Торгово-развлекательный комплекс объединяет больше 200 магазинов-арендаторов. Сайт должен показывать их ассортимент единой витриной: около 250 000 товарных позиций, которые приходят от двухсот независимых поставщиков. У каждого свой формат файла, свои названия характеристик и своя периодичность обновления.
Первую версию витрины делали мы же, и тогда всю работу с данными закрывал сам 1С-Битрикс: он был и витриной, и предобработчиком фидов — по сути выполнял роль PIM-системы. Для того масштаба это было рабочее и экономное решение.
Потом проект вырос: 200+ арендаторов, 250 000 позиций и, что важнее количества, сотни уникальных свойств товаров — свои у каждого поставщика. Витрина при этом работала, ложился импорт: на больших объёмах он падал или зависал надолго, утягивая за собой весь сайт. Контент-менеджеры тратили до 100 часов в неделю на обработку и вывод товаров — полторы ставки, занятые копированием данных руками.
Клиент на два года ушёл развивать каталог своими силами на сторонней платформе, а затем вернулся к нам. На входе мы получили:
— собственный проект из резервной копии: живой и рабочий, но на стеке, который успел устареть (CentOS 7, Bitrix VM 7.5, PHP 7.4);
— интерактивную схему комплекса, оставшуюся от периода внутренней разработки: без документации и без людей, знающих, как она работает;
— требование сделать схему автономной, чтобы контент-менеджеры сами меняли её и привязывали магазины через админку;
— тот самый ручной труд, который нужно было убрать.
Задача: вернуть сайт в рабочее состояние, снять зависимость схемы от разработчиков и построить каталог, который выдержит 250 000 позиций и будет собирать себя сам.
Каталог невозможно построить на фундаменте, который сам не стоит. Поэтому работу разделили на два этапа.
Этап 1. Реанимация и фундамент
Подняли резервную копию и обновили платформу: CentOS 7 до CentOS Stream 9, Bitrix VM 7.5 до Bitrix VM 9, PHP 7.4 до PHP 8.1. Развернули тестовое окружение, перенесли данные без потерь.
Настроили безопасность: белый список адресов для админки, проактивная защита, двухфакторная аутентификация, запрет входа root по SSH, ограничение попыток авторизации, резервное копирование в два независимых хранилища.
Переработали дизайн и вёрстку: главная, магазины и бренды с плиткой, списком, фильтрами и поиском с подсказками, акции и новости, раздел для арендаторов с каталогом свободных площадей и формами заявок, фотогалерея, UI Kit.
Разобрали по коду и перезапустили интерактивную схему комплекса: SVG-карта с привязкой магазинов по идентификаторам, переключение этажей, фильтрация по категориям, всплывающие подсказки. Контент-менеджеры управляют ею сами, без разработчиков.
Перенесли на боевой сервер, выпустили сертификат, настроили аналитику, SEO и карту сайта, обучили администраторов, оставили документацию.
Сайт сдали за 61 рабочий день — и сознательно без модуля каталога товаров. Каталог вынесли в отдельный этап: это и было ключевое архитектурное решение проекта, не повторять первую версию.
Этап 2. Каталог: свалка из фидов на входе, порядок на выходе
Обработку товарных данных вынесли из сайта в отдельную PIM-систему на своём сервере. 1С-Битрикс остался витриной — с него сняли работу, для которой он не предназначен. Выбрали OpenPIM: открытый код, работа с сотнями тысяч позиций и произвольными наборами атрибутов, никакой привязки к одному поставщику решения.
Что сделали на стороне PIM:
приём файлов поставщиков в любом формате и автоматический маппинг по правилам вместо ручной правки каждого фида;
единый управляемый справочник атрибутов вместо пяти полей «размер», десяти «диаметр» и двадцати пяти «цвет»;
обработка изображений и выгрузка их в отдельное S3-совместимое хранилище;
контроль качества данных до того, как они попадут на витрину.
Что сделали на стороне сайта:
загрузка дельтами вместо полного импорта — обновляется только изменившееся;
устойчивость обмена: сбой на одном источнике не роняет весь каталог;
доступ к правкам только через PIM, в админке сайта остался один администратор.
Отдельно описали регламент восстановления: RPO — 24 часа, RTO — 4 часа.
Что изменилось на проекте:
Обработка товарных данных: было до 100 часов ручной работы в неделю — стало автоматически, около 2 часов в неделю на контроль.
Кто обрабатывает фиды: был сам 1С-Битрикс, витрина и импорт в одном контуре — стала выделенная PIM-система на отдельном сервере.
Импорт каталога: на больших объёмах падал или подвешивал сайт надолго — теперь стабильно держит 250 000+ позиций, загрузка идёт дельтами.
Форматы поставщиков: зоопарк файлов и ручная правка каждого — любой формат, автоматический маппинг по правилам.
Скорость обновления цен: дни через ручную выгрузку — 10 минут от файла поставщика до витрины.
Характеристики товаров: пять полей «размер», десять «диаметр», двадцать пять «цвет» — единый управляемый справочник атрибутов.
Доступ к правкам: все контент-менеджеры работали в админке сайта — теперь только в PIM, в админке один администратор.
Хранение изображений: на сервере сайта — в отдельном S3-совместимом хранилище.
Восстановление после сбоя: не было регламента — RPO 24 часа, RTO 4 часа.
Сайт сдали за 61 рабочий день, каталог запустили отдельным этапом. Полторы ставки, которые уходили на копирование данных руками, освободились под работу с ассортиментом. Проект продолжает развиваться.
![]()
Илья Царьков
Главный вывод проекта: архитектура должна соответствовать объёму данных, а не истории прежних решений. Первая версия витрины была правильной для своего масштаба и перестала быть правильной, когда масштаб вырос в разы. Мы не стали повторять её на новом железе — вынесли обработку данных из сайта и оставили витрине то, что она делает хорошо. Поэтому каталог сознательно запускали отдельным этапом, уже после того, как сайт встал на современный стек.