LP Agency

Единая платформа для бронирования отелей, автомобилей и трансферов

или как превратили устаревший Joomla-сайт в современную travel-экосистему

О проекте:

Тип:
B2C travel-платформа, веб-приложение
Сфера:
туризм, аренда авто, трансферы, отели
География:
Испания (Европа)
Формат:
редизайн + полный рефакторинг + унификация API
Стек:
Frapi (собственный API-слой), Joomla → новая архитектура
Ссылка:

Короткое описание

Проект превратил устаревший сайт на Joomla с нестабильными интеграциями в современную travel‑платформу на Frapi. Вместо разрозненных форм и ручной поддержки создана трёхуровневая архитектура с унифицированным API‑слоем, личными кабинетами, десятками поставщиков и полноценным сервисом отелей. Результат — один аккаунт для всех типов бронирований, высокая надёжность и готовность к масштабированию.

Стартовая точка

Когда мы подключились:

  • основной сайт уже существовал на Joomla
  • сервисы аренды автомобилей и трансферов были реализованы, но не унифицированы
  • интеграции с поставщиками работали нестабильно
  • масштабирование упиралось в архитектурные ограничения
  • отсутствовала единая система личных кабинетов и избранного

Проект требовал не доработать отдельные функции, а полностью пересмотреть архитектуру и подход к разработке.

Стратегическая задача

К моменту принятия решения о редизайне и перестройке бренд ставил цели:

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

По сути, построить travel‑экосистему с нуля поверх существующих внешних API.

Renta2

Что было сделано

Проект был полностью переработан. Вместо точечной поддержки мы спроектировали и реализовали новую систему на базе Frapi.

Современная клиентская часть:

  • главная страница с главным блоком и универсальным поисковым модулем на три вкладки: Отели, Автомобили, Трансферы
  • страницы результатов с фильтрами, сортировкой, карточками и картой
  • детальные страницы объектов с галереей, описанием, условиями и отзывами
  • адаптивная вёрстка для компьютеров, планшетов и мобильных устройств

Полноценный личный кабинет:

  • рабочий стол с ближайшими поездками
  • раздел «Мои бронирования» с фильтром по типу: отели, автомобили, трансферы
  • «Избранное» для каждого типа объектов
  • подборки: пользователь может создавать списки, например «Летний отпуск» или «Поездка в Испанию»
  • редактирование профиля: имя, электронная почта, телефон, пароль

Многоуровневая архитектура на Frapi. Разработана и внедрена собственная схема:

Клиентская часть сайта →
Логика поиска, агрегация, кэш, фильтры →
Уровень API Rentaholiday на Frapi, унификация данных от разных поставщиков →
Внешние API поставщиков отелей, автомобилей, трансферов

Клиентская часть работает только со своим API, получая единый формат запросов и ответов. Разные поставщики с разными структурами данных приводятся к единой модели. Поиск по отелям, автомобилям и трансферам идёт через отдельные конечные точки. Добавление нового поставщика не ломает клиентскую часть — достаточно написать адаптер на уровне API.

Новые сервисы и страницы. Сервис трансферов стал полноценным продуктом, а не дополнительной опцией.

Посадочные страницы для поискового продвижения:

  • страницы городов для отелей
  • страницы аэропортов для автомобилей с уточнениями, например дешёвые, без депозита, с автоматической коробкой
  • страницы маршрутов для трансферов

Категорийные карточки на посадочных страницах: популярные направления, лучшие предложения, категории.

Процесс бронирования. Чёткий четырёхшаговый маршрут:
Поиск → Выбор объекта → Ввод данных и оплата → Подтверждение с номером бронирования.
Реализованы разные типы подтверждения в зависимости от поставщика: мгновенное бронирование, бронирование по запросу, подтверждение после обработки.

Панель администратора:

  • управление бронированиями: просмотр, поиск, смена статусов
  • управление контентом: отели, автомобили, трансферы
  • управление пользователями
  • редактирование текстов для поискового продвижения объёмом до 3000 знаков для каждой значимой страницы

Интеграции через унифицированный слой

Общее количество подключённых поставщиков превышает двадцать, но подход полностью изменён.
Вместо прямых интеграций из Joomla и постоянного исправления ошибок создан единый уровень API на Frapi, который:

  • приводит поля любого поставщика к внутренней модели
  • обрабатывает разницу в валютах, комиссиях и соглашениях об уровне сервиса
  • централизованно записывает ошибки и таймауты

Время подключения нового поставщика сократилось с трёх‑четырёх недель до трёх‑пяти дней. Любое изменение внешнего API правится в одном месте, а не в десятках скриптов.

Производительность и нагрузка

Новая архитектура позволила внедрить:

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

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

Renta6

Новый продукт: Отели

Отели стали самым сложным сегментом.
Реализовано полностью на серверной части Frapi.
База отелей поступает по внешним API, но доступность номеров, расчёт финальной цены, фильтрация и управление заказами сделаны на нашей стороне. Добавлены фильтры по звёздам, рейтингу, расстоянию, удобствам. Количество отелей в выдаче достигает десятков тысяч, пагинация и фильтрация работают без задержек.

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

Бизнес‑эффект

Конверсия в бронирование выросла примерно на 37 процентов благодаря удобному поисковому модулю и личному кабинету.

Повторные бронирования увеличились — пользователи возвращаются в избранное и подборки.

Операции с бронями полностью прозрачны для клиента: отмена и изменение доступны через личный кабинет.

Бренд перестал быть сервисом аренды автомобилей и стал настоящей платформой для путешествий с отелями, автомобилями и трансферами.

Трафик из поисковых систем вырос за счёт сотен новых посадочных страниц: города, аэропорты, комбинации вроде «дешёвые отели в Барселоне».

Самое сложное

Унификация данных десятков внешних API
Один поставщик присылает цену с налогами, другой — без. Один даёт мгновенное подтверждение, другой — через два часа. Уровень API на Frapi решает эту задачу, но потребовал тщательного проектирования.

Статусная модель бронирования
Для отелей, автомобилей и трансферов статусы могут различаться. Разработана общая схема: ожидание → подтверждено → завершено / отменено / не выполнено.

Перенос пользователей из старой системы
Пришлось перенести историю бронирований и учётные записи из Joomla в новую базу данных. Написан скрипт с удалением дублей и проверкой целостности данных.

Синхронизация цен в реальном времени
Цены у поставщиков меняются постоянно. Внедрён механизм живой цены на этапе оплаты, чтобы избежать расхождений.

Итог

Вместо устаревшей системы на Joomla с почасовой поддержкой и нестабильными интеграциями мы получили современную платформу для путешествий на Frapi, которая:

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

Это не копия старого сайта с новым дизайном. Это полностью переосмысленная продуктовая экосистема.