Алкогольный дистрибьютор
B2B мобильное приложение с интеграцией в корпоративный DWH
входящих дампов
О клиенте
Крупнейший алкогольный дистрибьютор на Северо-Западе России. Большой ассортимент, высокий объём данных.
Задача
Разработать мобильное приложение интернет-магазина для B2B-клиентов, архитектурно независимое от основного сайта:
Прямое подключение к витринам данных и DWH заказчика
Поддержка сложной B2B-модели ценообразования: базовые, персональные и акционные цены для каждого клиента
Расширенные фасетные фильтры для удобной работы с большим ассортиментом
Развитие мобильного канала без влияния на веб-платформу
Вызовы, с которыми мы столкнулись
Интеграция с корпоративным хранилищем на базе 1С требовала работы через два канала одновременно: REST API и потоковую обработку дампов. При этом архитектура должна была проектироваться под рост — переход на другие системы очередей при увеличении нагрузки без переписывания бизнес-логики.
Решение
Приложение подключается напрямую к DWH, минуя основной сайт — веб и мобильный каналы полностью независимы друг от друга.
Для обработки интеграционных потоков реализована сервисная архитектура: RabbitMQ, демон-процессы на Go и контроллеры на PHP. Многопоточная обработка — дампы попадают в обработку менее чем за 0,5 секунды после появления. При росте нагрузки архитектура позволяет перейти на Kafka без значительных изменений в бизнес-логике.
Реализована приоритетная система синхронизации данных: сначала компании и торговые точки, затем товары, цены и остатки, после — остальные типы данных.
В приложении — полный набор B2B-инструментов: просмотр персональных цен и остатков, работа с каталогом, формирование заказов, доступ к накладным и истории документов, отображение дебиторской задолженности, формирование счетов на оплату прямо в приложении. Добавлен чат-бот поддержки на базе n8n. Управление контентом главной страницы — из административной части на Bitrix.
Для прозрачности интеграционных процессов разработан собственный сервис мониторинга внутри Bitrix: отслеживает задачи обмена, фиксирует ошибки, отображает статус обработки. Отдельный модуль мониторинга реализован для контроля интеграций с DWH.
Результат
Дампы в обработке менее 0,5 секунды. Мобильный и веб-каналы полностью независимы
Стабильная синхронизация каталога, цен и финансовой информации между мобильным каналом и корпоративной ИТ-инфраструктурой
Поддержка трёх типов цен для каждого клиента
Архитектура готова к переходу на Kafka при росте нагрузки