По задумке заказчика веб-сервис GoldenCruises должен был собирать информацию от туроператоров и предоставляют ее пользователям в удобном, унифицированном виде. Для этого наша команда KozhinDev организовала интеграцию с 20+ компаниями. Архитектуру этого слоя разбили на множество репозиториев кода, что позволяет разрабатывать интеграции параллельно и независимо друг от друга, с сохранением конфиденциальности.
Данные по Offline API для круизных компаний подгружаются ежедневно. Они автоматически нормализуются и сохраняются в собственную базу данных. Кэшированные данные мы вынесли в отдельный слой, который также обновляется один раз в день. Это помогает реализовать в сервисе быстрый поиск по фильтрам. Для бронирования круизов с помощью сервиса используется Online API.
Дополнительно интегрировали GoldenCruises с агрегатором Conecta Turismo, чтобы пользователи могли получать данные по авиабилетам и отелям и бронировать их.
Наши дизайнеры отразили легкость и современность агрегатора. Оттенки подбирали таким образом, чтобы они отличались от общего цветового фона круизных сервисов. Позаботились о пожилых пользователях: немного увеличили элементы интерфейса, чтобы они были удобны и легко читались.
Карта Одним из самых интересных решений при разработке стало создание общей для всех операторов карты. Дело в том, что каждая туристическая компания, интегрированная с сервисом, имеет собственный список портов, городов и направлений. Им присвоены коды и названия, которые могут не совпадать, записываться на разных языках, а иногда — даже отсутствовать. Установить соответствие между ними было необходимо для реализации удобного поиска круиза.
Мы автоматизировали поиск соответствия между одинаковыми портами с помощью координат через Google API. Вручную перебирать около 22000 портов — сложная задача. Поэтому мы написали соответствующие команды, которые по названиям портов и городов находят вероятные местоположения на карте. Близкие координаты с учетом погрешности объединяются в одну точку. Таким образом мы сформировали единую карту всех портов для сервиса.
Благодаря ей GoldenCruises позволяет подобрать маршрут следования и визуализировать его. Если пользователь хочет посетить какие-либо конкретные города, ему просто нужно указать это при поиске, чтобы увидеть все круизы, которые отправляются или проходят через них.
После этого остается только оплатить выбранный маршрут. Это можно сделать непосредственно в системе: мы реализовали внутренний биллинг. Сервис может выставлять счета и привязывать их к созданным броням. Подключили платежный шлюз RedSys, чтобы пользователям было удобно оплачивать путешествия банковскими картами.
Управление контентом Когда пользователь выбирает для себя круиз, ему нужно знать как можно больше деталей. Разработали панель управления для веб-сервиса GoldenCruises, чтобы информацию о кораблях, портах и маршрутах можно было вносить вручную.
Интерфейс отражает все получаемые от компаний данные:
порты; регионы; корабли; маршруты; круизы; категории кают. К каждой категории можно добавить описание на нескольких языках, фотографии и прочие данные. Системой могут пользоваться несколько контент-менеджеров одновременно. Она ведет учет их ежедневной активности.
Контент-менеджеры также создают разнообразные тематические подборки. Например, это могут быть безвизовые круизы и путешествия, подходящие для пожилых людей или влюбленных пар. Такой подход позволяет повысить конверсию сервиса, увеличить вовлеченность пользователей. Для подборок мы создали в структуре сайта дополнительные разделы.
Так как больше половины трафика сайтов сегодня — просмотры с мобильных устройств, мы адаптировали сервис GoldenCruises для смартфонов и планшетов.
Результат Круизный агрегатор GoldenCruises — это многофункциональный веб-сервис, он позволяет легко подобрать и оплатить круиз, а также — купить авиабилеты и забронировать номера в отелях. Качественная интеграция с большим количеством туристических компаний, удобная система поиска и визуализации маршрутов, легкий и дружелюбный дизайн обеспечили сервису место в тройке лидеров Рейтинга Рунета наравне с проектом от студии Артемия Лебедева.