Мы поставили полную техническую платформу для SaaS-маркетплейса услуг для авторов, работающего сразу на несколько брендов: публичный сайт, кабинет клиента, административная консоль, синхронизация каталога поставщиков, движок цен, платёжные потоки и инструменты для операторов.
Главный инженерный вызов — быстро меняющийся каталог поставщиков: более 1 200 услуг у нескольких провайдеров, частые изменения цен и доступности. При этом клиентские заказы должны оставаться согласованными, прослеживаемыми и управляемыми.
Платформа работает у внешнего клиента под отдельным брендом. Кейс показывает инженерную архитектуру и использует скриншоты из тестового окружения с обезличенными данными.
Контекст решения
Проект сочетал быстро меняющуюся клиентскую поверхность с операторской частью промышленного качества. Одна платформа должна была закрывать публичное обнаружение услуг, авторизованные заказы, оплаты и возвраты, обновления каталога поставщиков и административные вмешательства — так, чтобы изменения каталога не ломали ранее оформленные заказы.
Подход «тонкая витрина» или «back-office-инструмент по отдельности» не подошёл бы. Мы спроектировали систему как одну платформу с тремя поверхностями — публичный сайт, кабинет клиента и административная консоль, — которые разделяют один реестр услуг и один движок цен.
- Изменения каталога поставщиков, влияющие на цены, лимиты и доступность услуг
- Оплаты и возвраты, требующие надёжной обработки состояний
- Несколько ролей пользователей в клиентской, поддержке и административной частях
- Действия оператора, требующие прослеживаемых записей
- Изменения цен, требующие контроля без участия разработчика
Объём платформы и возможности
Система покрывает полный жизненный цикл заказа — от публичного обнаружения через оплату, исполнение, компенсацию или возврат, до отчётности. Три согласованные поверхности разделяют один общий бэкенд.
- Публичный сайт с лендингами под каждую платформу и структурированным каталогом услуг (серверный рендеринг, индексация sitemap)
- Кабинет клиента: оформление заказа, баланс, история операций, заявки на корректировку услуг и правила повторяющихся заказов
- Административная консоль: синхронизация каталога, переопределения цен, управление пользователями, вмешательство в заказы (отмена, компенсация, возврат) и журнал аудита
- Слой каталога поставщиков: загрузка исходного каталога, нормализация записей, единый API на чтение
- Платежи и возвраты: идемпотентная обработка и контрольные точки для чувствительных случаев
Архитектура
Бэкенд — Java и Spring Boot, PostgreSQL, Redis и очередь задач для асинхронной синхронизации поставщиков, обработки возвратов и опроса статусов заказов. Строго типизированный REST API с проверкой ролевого доступа на уровне контроллеров; перехватчики на каждом endpoint фиксируют любой вызов, меняющий состояние, в журнале аудита.
Фронтенд — Next.js, React и TypeScript на маркетинговом сайте, в кабинете клиента и в административной консоли. Серверный рендеринг для маркетинговых страниц ради SEO; авторизованные сценарии в кабинете и админ-консоли работают с актуальными операционными данными. Административная консоль вынесена в отдельный сегмент маршрутов за authentication guard.
Каталог и цены — единый реестр сопоставляет каждую услугу провайдера с кортежем (платформа, тип услуги, тариф). Движок цен принимает глобальную наценку, переопределения на уровне услуги, фиксированные тарифные пакеты и множители на уровне комплектов; цены считаются на сервере и подписываются перед показом в оформлении заказа — клиентское вмешательство не сможет разойтись с фактическим списанием.
Операторские контроли и прозрачность
Платформа не решает за оператора юридические или политические обязательства. Вместо этого она даёт технические рычаги, которые делают операционные решения настраиваемыми и проверяемыми:
- Журнал аудита для списаний, возвратов, пополнений баланса и переопределений администратора; поддерживает выборку по пользователю, заказу и временному окну
- Идемпотентные операции оплаты и возврата с привязкой к внешнему идентификатору платежа — без двойных списаний и двойных возвратов
- Настраиваемые уведомления в оформлении заказа, когда услуга требует дополнительной информации
- Поток запросов на удаление аккаунта с настраиваемой политикой хранения данных
- Ролевой доступ для суперадмина, администратора и поддержки; отдельная лента аудита для чувствительных действий
Инженерные акценты
Единый реестр сопоставляет записи поставщиков в одну внутреннюю модель. Слой синхронизации загружает исходный каталог, который дрейфует еженедельно — услуги переименовываются, выводятся из обращения, перепрайсятся или разделяются на новые варианты. Детерминированный сопоставитель маппит каждую запись провайдера с кортежем (платформа, тип услуги, тариф) по настраиваемому набору правил; обычные изменения каталога проходят без ручного вмешательства, в очередь администраторской проверки попадают только пограничные случаи.
Движок цен отделяет себестоимость от клиентской цены и поддерживает переопределения на глобальном уровне, на уровне категории, услуги и комплекта. Цены считаются на сервере и подписываются перед оформлением заказа — клиент видит ту же сумму, которая списывается.
Административная консоль построена под продолжительную работу оператора: поиск по каталогу из 1 200+ записей, модальные окна с клавиатурной навигацией для цен и пополнения баланса, оптимистичный интерфейс для дешёвых действий и явные подтверждения для всего, что двигает деньги или статус.
Контекст проекта и поставка
Поставка одним подрядчиком: от начального скоупа через архитектуру, полную реализацию, настройку инфраструктуры и передачу оператору.
Мы показываем этот кейс как инженерную работу в портфолио — пример того, как мы структурируем многоконтурные SaaS-продукты, отделяем операторские задачи от продуктовых поверхностей и проектируем серверные примитивы, которые позволяют операторам поглощать изменения исходного каталога, не ломая клиентский опыт.
Что мы поставили:
- Java/Spring Boot бэкенд (REST API, PostgreSQL, Redis, очередь задач, аудит-прослойка)
- Маркетинговый сайт: лендинги под каждую платформу, каталог услуг, страницы услуг с SEO-настройкой
- Кабинет клиента: оформление заказа, баланс, операции, поддержка, заявки на корректировку услуг, правила повторяющихся заказов
- Административная консоль: каталог с синхронизацией поставщиков и правилами цен, пользователи, заказы, платежи, процесс компенсаций и возвратов, системные настройки
- Загрузка каталога поставщиков с детерминированным сопоставителем и очередью администраторской проверки
- Движок цен с переопределениями на нескольких уровнях; подписанные цены для целостности оформления заказа
- Интеграция платежей: идемпотентная обработка, прослеживаемый процесс компенсаций и возвратов
- Ролевой доступ с журналом аудита на чувствительные действия
- Двуязычный контент платформы (основной язык оператора и английское зеркало для портфолио-скриншотов)
Результат
Клиент запустился с одной связанной платформой, которая закрывает публичное обнаружение услуг, оформление заказов и ежедневную работу оператора.
Оператор управляет изменениями каталога, правилами цен, пользователями, заказами, платежами и возвратами из административной консоли — без привлечения разработчика для регулярных изменений каталога и цен.
Для H-Studio этот кейс показывает наш подход к многоконтурным SaaS-продуктам: одна каноническая модель, согласованные клиентская и административная поверхности, прослеживаемые изменения состояний на всём пути заказа.
Стек и направление
Полная галерея платформы — публичный сайт, кабинет клиента и административная консоль
Что ещё мы собирали.
Обсудим, какой формат
подходит вашей задаче.
Новый MVP, кастомная платформа, клиентский кабинет, внутренняя система, backend, интеграции или развитие существующего продукта — определим правильную точку старта и следующий объём работ.











































