Все кейсы
B2B
Конфигураторы
Веб-приложение

Постучись в мою дверь: как мы писали конфигуратор для «Юркаса»

Клиент
Юркас
Дата запуска
Декабрь 2024
Что сделали
Сделали конфигуратор дверей для Юркаса: клиент собирает дверь по шагам, сразу видит цену и может отправить точный заказ без ошибок менеджеру
yurkas.by
Постучись в мою дверь: как мы писали конфигуратор для «Юркаса»

Заказчик

«Юркас» — крупный производитель и поставщик дверей в Беларуси. Компания специализируется на продаже межкомнатных и входных дверей, а также их установке.

Задача

Создать внутреннюю b2b-платформу, которая будет автоматизировать сборку номенклатуры, регулярно обновлять данные и пересчитывать цены, научится синхронизировать все с «1С» и другими системами.

В дверь постучали. А за порогом — другие двери. Входные и межкомнатные, матовые и глянцевые, всех цветов и размеров. Это пришел заказчик — компания «Юркас». И клиент просил, чтобы мы разобрались со всеми этими дверьми и за счет автоматизации упростили бизнес-процессы.

Проблема

Ручная сборка

У компании сотни моделей дверей и десятки тысяч комбинаций в разных цветах, размерах и типах покрытия. Каждая такая комбинация свойств — отдельная позиция номенклатуры. Порой менеджеру приходилось возиться целый день, чтобы добавить несколько десятков позиций.

Пример нескольких вариаций одной из дверей:  

Платформа

Конфигуратор для сложной номенклатуры

Возникла жесткая потребность во внутренней бизнес-платформе, которая автоматизирует сборку номенклатуры. Некий конфигуратор, который будет понимать логику совместимости свойств, справляться с генерацией тысяч позиций, брать на себя расчет ценообразования. Одним словом, не подведет и облегчит работу.

Начало: поле экспериментов

С чего начать?

На старте не было ни готового продукта, ни типового решения — задача выходила за рамки стандартных CMS и e-commerce-платформ.

Из-за специфики продукции и высокой вариативности данных ни одна система «из коробки» не подходила. Перед нами был чистый лист для разработки с нуля.

Основа - собственный движок на базе Symfony-фреймворка

Создали отдельный форк и убрали лишнее: ненужные модули, устаревшие зависимости и избыточные прослойки в коде.

В результате получили чистую и управляемую базу, которую дальше развивали с учетом бизнес-логики заказчика.

Параллельно разворачивали инфраструктуру

Для разработки и деплоя использовали Docker и GitLab CI/CD.

Также перешли с MySQL на PostgreSQL — эта СУБД лучше справляется со сложными запросами, иерархическими данными и дает больше возможностей для оптимизации поиска.

Настроили миграцию данных

Загрузили данные из «1С» и первые месяцы посвятили созданию справочников: по группам, поставщикам, сериям, моделям и свойствам.

Сформировали не только наполнение, но и четкую структуру — с иерархией, связями и правилами валидации, что стало фундаментом проекта.

Для фронтенда выбрали ReactJS

Чтобы настроить интерактивный интерфейс с мгновенной реакцией на выбор пользователя.

Механика

Логика сочетаемости

Идея конфигуратора, центрального элемента платформы, простая: пользователь шаг за шагом выбирает свойства двери (модель, ширину, высоту, цвет, покрытие и тип фурнитуры), а система автоматически отсеивает варианты, которые друг с другом несовместимы. То есть после выбора модели человек видит только те цвета, в которых дверь могут произвести. Определился с цветом — показывают доступные размеры.

Автоматизация

Если на каком-то этапе вариативность сужается до одного значения, оно подставляется автоматически. Менеджеру не нужно дополнительно кликать по этому полю, чтобы оно сработало. Все происходит автоматически, без задержек и перезагрузки страницы. Это значительно ускоряет процесс формирования новых позиций для сотрудников.

Алгоритмы

Сложная логика подбора

За простой идеей стоит непростая логика. Нужно настроить множество матриц для допустимых комбинаций свойств, определить порядок выбора, потому что последовательность влияет на количество комбинаций. Здесь пришлось призвать на помощь бизнес-аналитиков компании: они делились знаниями, мы превращали информацию в алгоритм. Все это позволило сформировать такой порядок, чтобы к финалу пользователь видел только реальные позиции.

MVP

Рабочий прототип конфигуратора

Готовый прототип конфигуратора мы получили менее чем через полгода работы. На этом этапе уже можно было оценить принцип действия инструмента: выбрать свойства двери и получить готовую позицию номенклатуры. Да, пока без красивого интерфейса и интеграций с другими системами, но с рабочей логикой сочетаемости.

Масштабирование

Развитие конфигуратора

Дальше — больше. Со временем конфигуратор усложнялся. В нем появились комплекты, то есть позиции из нескольких дверей или с дополнительной фурнитурой. Пришлось допилить отдельный конфигуратор комплектов. Он работает по тем же принципам, но с дополнительными правилами. Позже добавили варианты открывания и вписали в общую логику совместимости.

Админка

Настройка без разработчиков

Отдельная гордость — механика настройки матриц. Все делается через административный интерфейс и без участия разработчиков. Появилась новая модель или цвет, менеджер сам добавляет информацию в справочник и определяет, с какими другими параметрами она сочетается.

Конфигуратор все это фиксирует и мгновенно пересобирает номенклатуру. 

Производительность

Проблема скорости

Изначально генерация выполнялась последовательно: при пересчете всей номенклатуры процесс мог занимать часы. Это критично замедляло работу — менеджеры не могли оперативно получать актуальные цены после изменений.

Параллельная обработка и оптимизация

Внедрили очередь задач через RabbitMQ: обработка стала параллельной, с возвратом задач при сбоях. Дополнительно оптимизировали работу с базой — добавили индексы, сократили лишние запросы, настроили кэширование справочных данных. Перешли с PHP-FPM на RoadRunner, чтобы избежать постоянных перезапусков и ускорить выполнение.

Контроль и итоговый результат

Подключили Sentry и профилирование для мониторинга ошибок и узких мест. В результате сначала ускорили пересчет в 20 раз, а после оптимизаций — в 50 раз: теперь генерация занимает секунды вместо часов.

Слои: обработка изображений

Проблема

Пользователь ожидает увидеть итоговый вид двери при настройке конфигурации. Но из-за тысяч возможных комбинаций создавать отдельные изображения для каждой — нереалистично.

Решение

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

Реализация и устойчивость

Сборка вынесена в отдельный сервис на Go — это обеспечило высокую скорость и эффективное использование памяти.
 Если нужный слой отсутствует или поврежден, сервис возвращает заглушку, не нарушая работу интерфейса. Это позволило запустить функцию до полной готовности всех графических материалов.

Производительность

Добавили кэширование через Nginx: уже собранные изображения отдаются мгновенно без повторной генерации, снижая нагрузку на сервис и систему в целом.

Ценообразование

Сложная логика расчетов

Генерация номенклатуры без точного расчета цены не решает задачу. На итоговую стоимость влияет множество факторов: себестоимость компонентов, наценки по категориям, различия между дилерскими и розничными ценами, НДС и особенности брендов. Все это собрано в системе гибких формул, которые могут меняться несколько раз в квартал.

Управление через интерфейс

Чтобы не зависеть от разработчиков, мы вынесли настройку формул в админ-панель. Сотрудники могут самостоятельно изменять параметры, после чего система автоматически пересчитывает итоговую стоимость.

Цены

Ценообразование и расчет

Система работает с несколькими уровнями цен, каждый из которых учитывает свои наценки и НДС. При создании новой позиции цены рассчитываются автоматически по актуальным формулам.

Сложность реализации

Экономический модуль оказался одним из самых трудоемких: приходилось учитывать изменения формул, исключения, региональные особенности и условия для дилеров.

Результат для бизнеса

В итоге компания получила инструмент, который заменил громоздкие Excel-таблицы и полностью избавил от ручных расчетов.

Интеграции

Синхронизация с «1С»

Настроили двустороннюю интеграцию с «1С:Управление торговлей» через RabbitMQ. Система обменивается данными о ценах, поставщиках и номенклатуре: изменения автоматически передаются в обе стороны.

Интеграция с сайтом

Разработали модуль для подключения конфигуратора к сайту. Пользователи видят только актуальные варианты и могут собирать продукты под свои задачи.

Разделение интерфейсов

Создали отдельный интерфейс для отдела поставок и разграничили доступы: каждый работает в своем контуре без лишней информации.

Результат

От прототипа к промышленной системе

Разработка заняла 2 года и почти 9000 часов. За это время команда закрыла 537 задач, после чего проект перешел в режим техподдержки.

Основной объем работ пришелся на ядро системы — номенклатуру и генерацию. Далее — исправление багов и развитие экономического модуля, где каждое изменение влияло на всю логику.

Итоговый результат

Проект прошел путь от прототипа до полноценной платформы: с генерацией миллионов позиций, мультипоточностью, послойной сборкой изображений и развитым экономическим модулем.

Андрей Малашевич
Андрей Малашевич
Андрей Малашевич
Руководитель управления маркетинга и рекламы, Paritetbank

ОАО «Паритетбанк» благодарит ООО «Найнсевен» за сотрудничество в рамках разработки корпоративного сайта www.paritetbank.by.

Смотреть отзыв
Екатерина Полещук
Екатерина Полещук
Руководитель отдела маркетинга, ООО «Профессиональные правовые системы»

Выражаем благодарность за завершенный проект по обновлению нашего корпоративного сайта www.business‑info.by.

Смотреть отзыв
Александр Шостак
Александр Шостак
Директор, ООО «ИКомЧардж»

Специалистами ООО «Найнсевен» были неоднократно успешно осуществлены подключения механизма онлайн-платежей

Смотреть отзыв
Павлова Валентина Петровна
Павлова Валентина Петровна
специалист по развитию торговой марки, Аливария
За время сотрудничества компания ООО «Найнсевен» зарекомендовала себя как надежный и ответственный партнер.
В.Т. Одорский
В.Т. Одорский
заместитель Генерального директора по маркетингу, СООО «Мобильные Теле Системы»

ООО «Мобильные Теле Системы» (далее – МТС) выражает искреннюю благодарность команде ООО «Найнсевен» (далее - Найнсевен) за качественное оказание услуг по администрированию и технической поддержке сайта mts.by.

Смотреть отзыв
Н.А. Булаш
Н.А. Булаш
Заместитель Генерального директора по коммерческим вопросам, СООО «Мобильные ТелеСистемы»

СООО «Мобильные ТелеСистемы» выражает благодарность команде ООО «Найнсевен» за профессиональную разработку и техническую поддержку интернет-магазина shop.mts.by.

Смотреть отзыв
Е.А.Ломеко
Е.А.Ломеко
Генеральный директор, Брестское РУП «Фармация»

Брестское РУП «Фармация» с 2018 года сотрудничает с компанией «Найнсевен» по вопросам разработки корпоративного сайта, развертыванию на его базе функционала Интернет-аптеки, по технической поддержке и развитию указанных информационных ресурсов. 

Смотреть отзыв
Лариса Купава
Менеджер по маркетингу, SvitLand Development Limited

Мы довольны сотрудничеством с Nineseven. Удобная программа управления проектом и быстрое реагирование сделали даже удаленную работу комфортной.

Смотреть отзыв
У.С. Савиных
У.С. Савиных
Продюсер, МФР Red Apple

Фестиваль Red Apple сотрудничал с Nineseven с 2013 по 2014 год. Благодаря профессионализму сотрудников был создан эффективный и удобный сайт фестиваля www.festival.ru.

Смотреть отзыв
Алексей Сидоров
Алексей Сидоров
Алексей Сидоров
Основатель и руководитель проекта, Prodengi.kz

Интернет-портал prodengi.kz выражает благодарность команде Nineseven за взаимовыгодное сотрудничество и добропорядочные отношения. Мы ценим профессионализм, креативность и качественный сервис, который предоставляет Nineseven.

Смотреть отзыв
Александр Кузьменко
Александр Кузьменко
Александр Кузьменко
Руководитель проекта, Игры@Mail.Ru
Спасибо за работу! Рассчитываем на дальнейшее сотрудничество в таком же ключе.
Смотреть отзыв
А.В. Любимова
А.В. Любимова
Генеральный директор, ООО «Акомпани»
Выражаем благодарность за плодотворное сотрудничество в 2010 году. Благодаря уровню профессионализма и лидерским качествам команды мы достигли значительных успехов.
Смотреть отзыв
Денис Бурлаков
Денис Бурлаков
Руководитель, Интернет-магазин Deniliz.com

Отмечаем творческий подход команды Nineseven: совместно с нами они проработали техническое задание, помогли определить структуру сайта и реализовать проект с учетом потребностей аудитории.

Смотреть отзыв
И. Шумицкий
И. Шумицкий
И. О. директора департамента маркетинга, Банк Хоум Кредит (Казахстан)
Выражаем благодарность компании Nineseven за создание сайта www.homecredit.kz.
Смотреть отзыв
А.Н. Григорьева
А.Н. Григорьева
Генеральный директор, ООО «Тренд Ритейл Групп»

Надеемся на дальнейшее и столь же успешное сотрудничество.

Смотреть отзыв
И.С. Федюкин
И.С. Федюкин
Директор по развитию бизнеса, ООО «НЕВМЕДИА»

Компания ООО «НЕВМЕДИА» благодарит Курдюк Зою за сотрудничество. По нашему мнению, Курдюк Зоя — профессиональный специалист с высокой квалификацией в области дизайна, ответственная и надежная в деловых взаимоотношениях.

Смотреть отзыв
Н. А. Булаш
Н. А. Булаш
Руководитель коммерческого департамента, Мобильные ТелеСистемы

ООО «Найнсевен» является разработчиком интернет-магазина shop.mts.by и на протяжении шести лет обеспечивает его поддержку и обновление.


Смотреть отзыв
Д.С. Костин
Д.С. Костин
Д.С. Костин
Начальник службы по связям с общественностью и СМИ, ПАО «Газпром Трансгаз Беларусь»

Свидетельствую почтение и выражаю благодарность компании Nineseven и лично Дмитрию Хоружко за разработку и реализацию творческой идеи дизайна сайта проекта Многофункционального комплекса «Газпром Центр».

Смотреть отзыв
С.В. Белов
С.В. Белов
Генеральный директор, ООО «Вектор-Парфюм»

Компания ООО «Вектор-Парфюм» благодарит дизайнерскую студию Nineseven за разработку графической части интернет-магазина парфюмерии и косметики Bonange.ru. Сотрудники студии — настоящие профессионалы своего дела и обладают высокой квалификацией в области дизайна.

Смотреть отзыв
И.Е. Адаменко
И.Е. Адаменко
Заместитель директора, ОДО «БелТоргПродукт»
Рекомендуем ООО «Найнсевен» как надежного партнера, добросовестно выполняющего свои обязательства.
Смотреть отзыв

Медиа

Telegram-канал

Из первых уст о внутренней жизни агентства

Перейти в TG-канал
Nineseven
Новые технологии — новые проблемы
Люблю смотреть всякие красивые графики и таблицы. На Pinterest могу долго залипать в подборках инфографики от древности до наших дней. И вот во время одной из таких вылазок пришла банальная мысль: насколько же легче стало упаковывать аналитику в понятный вид и насколько тяжелее при этом стало ее воспринимать.

Объясню в разрезе нашей работы. Чтобы создать дашборд со всякой аналитикой лет 15 назад, нужно было:
1. Собирать данные в одну базу и разгребать их оттуда вручную: продажи, заявки, прогресс по проекту — все ручками

Публикации в СМИ

Обсудим задачу

Мы свяжемся с вами, чтобы задать вопросы и обсудить задачу, цену, сроки и результат.

Это бесплатно и ни к чему вас не обязывает.

Поле обязательно к заполнению
Поле обязательно к заполнению
Поле обязательно к заполнению
Пожалуйста, ознакомьтесь и подтвердите согласие
Дмитрий Хоружко
Дмитрий Хоружко CEO Nineseven