PortAventura World — один из крупнейших курортов с тематическими парками в Европе, с момента открытия неподалеку от Барселоны в 1995 году принявший более 100 миллионов посетителей. Он объединяет парки PortAventura Park, Ferrari Land и Caribe Aquatic Park, а также десять отелей более чем на 3300 номеров. В Ferrari Land находятся американские горки Red Force — самые высокие американские горки в Европе (112 метров в высоту, скорость до 180 км/ч).
Для клиентов планирование поездки включает выбор билетов, поиск отеля и бронирование дополнительных услуг, таких как экспресс-пропуски Express Pass и парковка. Однако за этим процессом стоят отдельные системы продажи билетов, бронирования отелей и оплаты, каждая со своими правилами.
PortAventura World сотрудничала с Rigby, экспертным партнером Medusa, чтобы объединить эти покупки. После обновления архитектуры PortAventura зафиксировала рост выручки на 63% при том же объеме трафика, а также увеличение конверсии в оформление заказа и среднего чека.
Проблема: Бронирование всей поездки в одном чекауте
Ранее билеты в парк и номера в отелях требовали отдельных шагов покупки. Их объединение в одной корзине означало необходимость координации продуктов с разной логикой работы на протяжении всего процесса бронирования:
- Билеты имеют ежедневные лимиты количества, а их цены меняются в зависимости от даты посещения.
- Номера в отелях должны удерживаться в брони, пока клиент завершает оплату.
- Пропуски Express Pass могут фигурировать в корзине несколько раз, каждый на разную дату.
- Дополнительные услуги, такие как парковка и детские коляски, должны приобретаться вместе с билетом в парк.
Клиенту, бронирующему поездку на несколько дней, может потребоваться всё это одновременно. Процесс оформления заказа должен был проверять каждый выбранный элемент, применять правильные цены и принимать единый платеж, пока подключенные системы обрабатывают соответствующие бронирования.
Промоакции добавили ещё один уровень сложности. Один и тот же промокод мог давать разные скидки в зависимости от даты визита или канала продаж. Партнерским программам, таким как Carnet Jove и DIA, также требовались собственные правила проверки и применения.
Всё это должно было работать во время сезонных пиков трафика на базе архитектуры, способной поддерживать до десяти экземпляров серверов без потери состояния корзины или промоакций между запросами.
Решение: Кастомная логика бронирования на общей коммерческой платформе
Компания Rigby спроектировала архитектуру и разработала коммерческий бэкенд на Medusa, объединив существующие системы PortAventura World с помощью кастомных модулей и интеграций. Билеты, проживание в отелях и дополнительные услуги смогли делиться общей корзиной и сценарием оплаты, сохраняя при этом собственные правила ценообразования, доступности и выполнения заказов.
Модульная архитектура Medusa позволила смоделировать эти специфические требования курорта наряду с коммерческим слоем. Команда расширила сценарии корзины, чекаута, промоакций и оплаты в соответствии с процессом бронирования.
PortAventura World уже использовала специализированные системы для управления парками и отелями. Galaxy — это платформа для продажи билетов и контроля доступа на аттракционы. На курорте она отвечает за выдачу билетов в парк и дополнительных услуг, таких как парковка, ваучеры на питание и пропуски Express Pass, включая сканируемые пропуски, используемые клиентами для входа.
Система TravelClick отвечает за бронирование отелей. Ее система бронирования предоставляет данные о доступности номеров и подтверждает их, поэтому номер, выбранный на витрине, должен также бронироваться и подтверждаться в отельной системе.
Medusa объединяет эти системы в единый сценарий покупки. Кастомные интеграции связывают общую корзину и чекаут с Galaxy и TravelClick, а затем разделяют корзину на заказы по типам продуктов, чтобы выдача билетов и подтверждение отеля происходили параллельно.
Rigby разработала кастомные провайдеры оплаты Redsys и Sequra с индивидуальной обработкой перенаправлений и криптографической проверкой. Данные о продуктах синхронизируются из Medusa в Payload CMS.
В результате клиент совершает единую покупку, которая обслуживается несколькими специализированными системами, а кастомная логика координируется через Medusa.
От бронирования номера до восстановления заказа
Когда клиент переходит к чекауту с номером в отеле, бэкенд делает временное удержание (hold) через систему бронирования. Номер остается зарезервированным на время оплаты, а запланированные задачи (scheduled jobs) снимают удержание, если время ожидания истекает.
Для билетов используется другой механизм. Кастомный модуль лимитов проверяет и резервирует ежедневное доступное количество в процессе работы корзины. Если продукт достиг лимита на выбранную дату, корзина отклоняет добавление.
Пакетный эндпоинт (bulk endpoint) объединяет проверки доступности. Вместо того чтобы запрашивать каждый продукт отдельно, витрина отправляет продукты и даты единым запросом и получает данные о доступности, ценах и активных промо-ценах в одном ответе. Это сократило количество API-запросов и время загрузки фронтенда.
Завершение оплаты создает еще одну проблему: внешняя система всё равно может сбоить при подтверждении покупки. Клиент мог успешно оплатить заказ, в то время как Galaxy еще не выдала билет или TravelClick не подтвердила номер.
Rigby создала слой восстановления (recovery layer), который обнаруживает такие частичные сбои, повторно запрашивает внешнее подтверждение и логирует результат. Если автоматическое восстановление не удалось, операционный персонал может повторно запустить подтверждение из Admin Panel, не прося клиента совершать повторную покупку.
Эти расширения связывают корзину клиента с операционными шагами, необходимыми для организации визита, включая случаи, когда бронирование требует внимания уже после оплаты.
Результаты: Повышение конверсии и больше контроля для коммерческого отдела
Единый чекаут позволяет клиентам бронировать билеты, номера в отелях и дополнительные услуги вместе. Наряду с ростом выручки на 63%, конверсия чекаута увеличилась на 40%, а средний чек — на 17%.
Коммерческий отдел также получил контроль над тем, как продаются эти продукты. Дневной календарь цен управляет ценообразованием билетов и отелей с отдельными прайс-листами для разных каналов продаж. Промоакции могут варьироваться в зависимости от даты визита, дня недели или канала, а лимиты использования по email ограничивают повторное гашение партнерских промокодов.
Команда может настраивать бандлы (пакеты), объединяющие вход в парк, проживание в отеле и дополнительные услуги прямо в Admin Panel, без участия разработчиков.
Для PortAventura World перезапуск перевел процесс бронирования и сопутствующие операционные процессы на общую коммерческую платформу. Клиенты теперь могут оформить больше услуг для своей поездки в одном месте, а курорт получил архитектуру, рассчитанную на подключение дополнительных каналов, продуктов и интеграций.











