Caterizi — Мультистрановой маркетплейс кейтеринга
Наши Работы
Веб-платформа / МаркетплейсЕда и кейтеринг6 месяцев

Caterizi — Мультистрановой маркетплейс кейтеринга

caterizi.com

Caterizi — это полнофункциональный маркетплейс кейтеринга, который связывает корпоративных клиентов с профессиональными кейтерами в нескольких странах. Платформа одновременно работает в США и Испании, обслуживая компании, которым необходим надёжный кейтеринг для корпоративных мероприятий, встреч и масштабных событий. Каждый рынок функционирует на собственной серверной инфраструктуре, при этом используя единый уровень аутентификации, что обеспечивает бесшовные трансграничные операции под одним брендом. Система управляет полным жизненным циклом заказа кейтеринга — от создания заявки через предложения кейтеров, выбор клиентом, обработку платежей через Stripe Connect, обмен сообщениями в реальном времени между сторонами и автоматическую генерацию счетов. С 59 моделями базы данных, 256+ API-эндпоинтами и 67 страницами фронтенда, Caterizi представляет собой зрелый, промышленного уровня маркетплейс, построенный для масштабирования по географиям и обработки сложных B2B-процессов кейтеринга от начала до конца.

!Задача

Индустрия кейтеринга — особенно сегмент B2B — работает почти полностью офлайн. Корпоративные клиенты, ищущие услуги кейтеринга, как правило, полагаются на рекомендации знакомых, устаревшие справочники или холодные звонки отдельным кейтерам. Нет стандартизированного способа сравнить предложения, запросить конкурентные заявки или управлять процессом заказа в цифровом формате. Это создаёт трудности с обеих сторон: клиенты тратят часы на поиск и проверку кейтеров, а кейтеры теряют возможности из-за недостатка видимости. Клиенту была нужна платформа, способная работать на международных рынках с различными языками, валютами, налоговыми правилами и деловыми обычаями. Рынки США и Испании имеют принципиально разные нормативные требования — от соответствия в обработке платежей до стандартов оформления счетов. Создание единого монолитного приложения было бы хрупким решением, сложным в поддержке при таких расходящихся требованиях. Кроме того, модель заказа на основе предложений создала уникальные технические вызовы. В отличие от типичного оформления покупки в e-commerce, заказы кейтеринга включают двустороннее согласование: клиенты описывают требования к мероприятию, несколько кейтеров подают настроенные предложения с различными меню и ценами, и клиент выбирает наиболее подходящий вариант. Этот процесс требовал коммуникации в реальном времени, надёжного конечного автомата для управления жизненным циклом заказа и платёжной системы, способной удерживать средства и распределять их между платформой и кейтером через сплит-платежи.

Наш подход

1

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

2

Мы спроектировали мультистрановую архитектуру с отдельными экземплярами бэкенда на NestJS для каждой страны, общим сервисом аутентификации на PostgreSQL по адресу auth.caterizi.com и страновыми деплоями фронтенда. Это позволило каждому рынку развиваться независимо, сохраняя единый пользовательский опыт и единую авторизацию.

3

Система предложений и заказов была построена как конечный автомат с чётко определёнными переходами — от черновика к отправленному, рассмотренному, принятому, оплаченному, выполненному и завершённому. Каждая смена состояния запускает соответствующие уведомления, обновляет дашборды и ведёт аудиторский журнал.

4

Stripe Connect был интегрирован в режиме платформы, позволяя маркетплейсу принимать платежи от клиентов, взимать комиссию платформы и автоматически выплачивать кейтерам. Это потребовало обработки онбординга подключённых аккаунтов, верификации личности и соответствия нормам в регионах Stripe для США и ЕС.

5

Мы реализовали функции реального времени с помощью WebSocket-соединений для мгновенного обмена сообщениями между клиентами и кейтерами, развернули AI-бота поддержки на Claude API с 12 пользовательскими функциями-инструментами и создали комплексную систему email-уведомлений с 29 шаблонами и 13 автоматическими nudge-последовательностями.

Решение

Мультистрановая серверная архитектура

Каждая страна работает на собственном экземпляре бэкенда NestJS, подключённом к выделенной базе данных PostgreSQL, что позволяет независимое развитие схемы, соответствие требованиям локализации данных и специфичную для рынка бизнес-логику. Централизованный сервис аутентификации на auth.caterizi.com обрабатывает JWT-аутентификацию на всех рынках, позволяя пользователям — особенно клиентам, которые могут заказывать в нескольких странах — сохранять единую идентичность. Админ-панель, построенная на Laravel, подключается ко всем страновым базам данных и использует сессионное переключение стран для управления операциями на всех рынках из единого интерфейса.

Движок заказов на основе предложений

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

Платежи и выставление счетов

Stripe Connect обрабатывает все платежи в режиме платформы. Когда клиент принимает предложение, платёж захватывается и удерживается до выполнения заказа. По завершении платформа автоматически рассчитывает свою комиссию, генерирует счета в соответствии с местным законодательством (включая корректную обработку налогов для рынков США и Испании) и инициирует выплаты на подключённый аккаунт кейтера в Stripe. Система выставления счетов генерирует PDF-документы с правильным форматированием, последовательной нумерацией и всеми юридически обязательными полями для каждой юрисдикции.

AI-поддержка и коммуникационный уровень

Обмен сообщениями в реальном времени между клиентами и кейтерами работает через WebSocket-соединения с сохранением сообщений в PostgreSQL и отслеживанием прочтений. AI-чатбот поддержки, построенный на Claude API, служит первой линией клиентской поддержки, оснащённый 12 пользовательскими функциями-инструментами, которые могут искать заказы, проверять статусы, объяснять функции платформы и эскалировать вопросы живым операторам при необходимости. Система email-уведомлений отправляет 29 различных типов шаблонов в течение жизненного цикла заказа с 13 автоматическими nudge-последовательностями, которые возвращают пользователей в критических точках отказа.

Результаты и влияние

2
Рынка запущено
256+
API-эндпоинтов
67
Страниц фронтенда
3
Поддерживаемых языка
Успешный запуск на рынках США и Испании с полной локализацией, раздельной обработкой платежей и соответствующим выставлением счетов для каждой юрисдикции.
Система заказов на основе предложений охватывает полный B2B-процесс кейтеринга от заявки до выполнения, заменяя ручные процессы, которые ранее включали телефонные звонки, электронную почту и электронные таблицы.
Интеграция Stripe Connect автоматизирует весь платёжный цикл, включая разделение комиссий, выплаты кейтерам и обработку возвратов в регионах Stripe для США и ЕС.
AI-бот поддержки автономно обрабатывает типичные запросы клиентов, снижая потребность в ручном вмешательстве службы поддержки в фазе роста платформы.
Автоматические email-последовательности с 29 шаблонами и 13 типами nudge поддерживают вовлечённость пользователей на протяжении всего жизненного цикла заказа — от первоначальной регистрации до обратной связи после заказа.

Технологический стек

N

NestJS

Фреймворк серверного API с модульной архитектурой

N

Nuxt.js

Серверный рендеринг фронтенда с SEO-оптимизацией

L

Laravel

Админ-панель с RBAC и мультистрановым управлением

P

PostgreSQL

Основная база данных для всех сервисов

S

Stripe Connect

Обработка платежей с разделением комиссий платформы

W

WebSocket

Обмен сообщениями в реальном времени между клиентами и кейтерами

C

Claude API

AI-чатбот поддержки с 12 функциями-инструментами

J

JWT

Межстрановая аутентификация через общий сервис авторизации

P

PM2 / Nginx

Продакшн-деплой и управление процессами

Команда проекта

Full-Stack архитекторBackend-разработчикFrontend-разработчикDevOps-инженер

Есть Проект?

Давайте обсудим, как мы можем воплотить вашу идею.