Repository navigation
Epic Tour Import Research
Дата проверки источников: 2026-10-17. Условные обозначения:
- [проверено]: написано в источнике по ссылке;
- [предположение]: вывод или опыт агентств, по открытым источникам не подтверждён.
Цены и лимиты агрегаторов меняются, перед решением о подключении их нужно перепроверить.
Tourvisor это поисковик пакетных туров. Ни туров, ни отелей он не продаёт сам: по запросу он опрашивает системы подключённых туроператоров (более 90–100 операторов [проверено: API, модуль]), собирает их ответы и показывает в одной выдаче. Деньги он зарабатывает на подписке агентств: модуль поиска для сайта агентства, кабинет Tourvisor PRO для менеджеров, API.
Простой пример: менеджер вводит «Москва → Египет, 10–15 мая, 7–10 ночей, 2 взрослых». Tourvisor запускает поиск у всех операторов параллельно, через несколько секунд показывает первые результаты, потом дополняет их по мере ответов. В выдаче отели с минимальной ценой, внутри отеля туры разных операторов.
По документации поискового API [проверено]:
| Параметр | Как задаётся | Ограничения |
|---|---|---|
| Город вылета | id из справочника городов вылета (можно по стране вылета: Россия, Беларусь, Казахстан и др.) | обязательный |
| Страна | id из справочника стран; справочник можно сузить по городу вылета, «только чартеры», «только прямые» | |
| Город прилёта (аэропорт) | id из справочника | |
| Курорты, субкурорты | массивы id | |
| Даты вылета |
dateFrom–dateTo
|
диапазон не больше 21 дня |
| Ночи |
nightsFrom–nightsTo
|
1–28, диапазон не больше 10 |
| Взрослые | число | 1–6 |
| Дети | массив возрастов | 0–17 лет, не больше 3 детей |
| Питание | минимальный тип питания | |
| Категория отеля (звёзды) | минимальная категория | ≤ 5 |
| Рейтинг отеля | 0 любой, 2 = от 3.0, 3 = от 3.5, 4 = от 4.0, 5 = от 4.5 | |
| Тип отеля | отель, апартаменты, вилла, санаторий и т.д. | |
| Конкретные отели | массив id | не больше 30 |
| Услуги в отеле | id из справочника услуг | |
| Туроператоры | массив id | |
| Цена от/до, валюта | ISO-код; USD/EUR не поддерживаются, вместо них «у.е.» | |
| Только чартер, только прямые рейсы | признаки |
В модуле поиска для сайтов агентства есть те же фильтры плюс: показывать ли фильтр
туроператоров и иконку оператора в карточке (tv-showoperator), предвыбор операторов,
списки отелей (tv-hotellists), режимы «туры с перелётом / отели / авторские туры /
горящие» [проверено: параметры модуля].
Есть справочник доступных дат вылета для календаря в форме поиска (/tours/dates)
[проверено: API].
- Выдача по умолчанию отсортирована по цене [проверено частично]: так это описывают менеджеры агентств, а в API статус поиска отдаёт минимальную цену в целом и по каждому оператору. Явного параметра сортировки в API поиска мы не нашли [предположение: сортировку делает клиент API у себя].
- Сортировки публичного сайта (по рейтингу, популярности и т.п.) по открытым текстам не подтверждены, сайт поиска рендерится скриптом [не проверено].
Результат поиска [проверено: API] это список отелей, в каждом массив туров.
- Отель: id, название, звёзды (
category), рейтинг, страна, курорт, субкурорт, координаты, расстояние до моря, ссылка на фото и описание, минимальная цена. - Тур (предложение): id тура, дата вылета, ночи (и
flightNights, ночи с учётом перелёта), взрослые/дети, питание, тип номера (roomType,roomId), размещение (placement), цена и валюта, топливный сбор, туроператор, признак чартера, признак промо, наличие мест в отеле и на рейсе (hotelPlace,flightPlace). - Детали тура
GET /tours/{tourId}: всё то же плюс город вылета, отель и ссылка на страницу тура у оператора (operatorLink). - Авиарейсы и актуальная цена
GET /tours/{tourId}/flights: варианты перелёта туда и обратно (номер рейса, авиакомпания, аэропорты, время, багаж, класс, признак «нет мест»), итоговая цена тура, доплаты (surcharges) и флаги «без перелёта / без трансфера / без страховки / без питания». Это и есть актуализация: запрос уходит в систему оператора.
Важно для нашего дизайна: оператор за один запрос отдаёт ограниченное число туров (примерно 100–400), «всю базу» оператора получить нельзя; за дополнительными турами есть метод продолжения поиска [проверено: API].
- От туроператора к агрегатору. Агрегатор подключает оператора через API оператора: собственный сервис оператора по документации агрегатора, готовый шлюз оператора или шлюзы типовых систем бронирования, на которых работают многие операторы (Самософт, Мегатек) [проверено: Sletat, способы подключения операторов]. Для Tourvisor то же самое по открытым источникам не описано [предположение: схема похожая].
-
Поиск онлайн, а не из готовой базы. Поиск асинхронный: старт → id запроса →
опрос статуса (процент готовности, минимальная цена по операторам) → накопленные
результаты. Операторы отвечают за разное время (2–20 секунд), результаты живут до 20
минут [проверено: API Tourvisor]. У Sletat так же:
GetTours→GetLoadState→GetToursсrequestId[проверено: Sletat JSON]. Внутри агрегатор, скорее всего, держит кэш цен [предположение]: есть горящие туры, минимальные цены по странам и параметр режима кэша у Sletat (cacheModeв XML-шлюзе). - Справочники (города вылета, страны, курорты, отели, питание, операторы) агрегатор ведёт сам и сопоставляет с кодами каждого оператора [проверено: справочники в API; «линковка» в Sletat].
| Агрегатор | Что даёт | Доступ | Стоимость | Источник |
|---|---|---|---|---|
| Tourvisor API (tv-search-gateway, JSON) | справочники, поиск, детали тура, авиарейсы и актуализация; отдельно: описания отелей, номеров, горящие туры | JWT-токен из личного кабинета турагента; ознакомительный режим 300 запросов в сутки | поиск туров от 5 000 ₽/мес; 3 000 поисковых запросов в сутки включено, сверх 0,08 ₽ за запрос; лимит 300 запросов в минуту (справочники 120) | docs, ddapi, тарифы [проверено] |
| Tourvisor, старый XML-шлюз |
search.php → requestid → result.php; логин и пароль в запросе; результат только с того же IP |
по договору | копия старой документации [проверено по копии, устарело] | |
| Tourvisor модуль поиска (виджет) | готовый поиск на сайте агентства, настройка видимости операторов, наценки/скидки по операторам, ссылки на бронирование у оператора | регистрация агентства, тест 10 дней | тарифы 2 200–5 990 ₽/мес | модуль [проверено] |
| Sletat JSON-шлюз | поиск, справочники, статусы загрузки по операторам; расширения: данные о туроператоре, детальная актуализация | логин и пароль кабинета агентства, нужна лицензия, тест по запросу | модуль поиска от 6 500 ₽ за 3 месяца (цены шлюзов на странице, перепроверить) | xml-шлюзы, лицензия [проверено] |
| Level.Travel | поиск, актуализация, авиаварианты, фид минимальных цен; есть бронирование через API (create_booking, book) |
персональный API-ключ по запросу партнёра; бронирует сам Level.Travel, партнёр получает вознаграждение % | по партнёрской программе | API, о программе, Travelpayouts [проверено] |
| API туроператора напрямую | поиск и иногда бронирование у одного оператора | агентский договор с оператором, часто доп. соглашение на API и белый список IP серверов (пример: Pegas для систем бронирования) | по договору | пример из документации САМО [проверено для этого примера], для остальных операторов [предположение] |
Вывод для нас: без договора агентства и платного ключа реальные цены не получить ни у агрегатора, ни у оператора. Для MVP нужен либо такой доступ (через агентство-партнёр), либо демо-источник с правдоподобными данными (см. ТЗ агрегации, открытые вопросы).
-
Через кабинет агентства у оператора. Сам Tourvisor PRO бронирование у оператора не
выполняет: у тура есть ссылка на страницу оператора, менеджер бронирует под своим
логином [проверено: «Быстрое бронирование у ТО: ссылки на бронирование выбранного тура
в системе туроператора»,
operatorLinkв API]. -
Онлайн-оплата на сайте агентства с модулем Tourvisor [проверено:
интернет-магазин туров]:
- клиент выбирает тур, тур актуализируется у оператора, клиент видит окончательную цену;
- клиент вводит данные загранпаспортов и контакты, тур проверяется ещё раз;
- клиент соглашается с офертой и листом бронирования, ещё одна проверка, оплата картой через банк-эквайер агентства (комиссия банка от ~1,2 %);
- агентству приходит письмо с заявкой, данными туристов, ссылкой на бронирование в системе оператора и статусом «оплачен»;
- менеджер сам быстро бронирует тур у оператора; не успел, платёж можно аннулировать в течение суток.
- Центр бронирования: любой тур из поиска можно забронировать через центр бронирования с повышенной комиссией [проверено: страница модуля].
- Level.Travel бронирует у оператора сам [проверено].
Вывод: даже у лидера рынка последний шаг (бронь у оператора) для агентства часто ручной. Порядок «актуализация → данные туристов → согласие → оплата → бронь у оператора» совпадает с практикой агентств «договор → оплата → бронь».
| Берём | Почему |
|---|---|
| Асинхронный поиск с постепенной выдачей | так работают все агрегаторы, операторы отвечают медленно |
| Выдача «отели → туры операторов внутри» | менеджер сравнивает операторов по одному отелю |
| Фильтры из таблицы раздела 2 | проверенный набор |
| Актуализация перед бронью и перед оплатой | цена и места меняются |
| Списки отелей (подборки) | совпадает с практикой агентств |
| Настройка видимости операторов и наценок | есть у Tourvisor, нужна агентствам |
| Не берём в MVP | |
| Онлайн-оплата и оферта | нужна юридическая проработка |
| Автоматическая бронь у оператора по API | нужен доступ к API бронирования каждого оператора |
Система
API
Сервисы
Как реализовано
Справочное
- Эпик: модель туров под импорт
- Разбор Tourvisor (к импорту)
- ТЗ агрегации туров (к импорту)
- Эпик: подключение туроператоров
- Эпик: полный цикл бронирования
- Эпик: мелкие доработки и заметки
- Эпик: профили и настройки
- Эпик: UX/UI аудит сайта
- Эпик: отзывы клиентов
- Эпик: визуальный редизайн
- Эпик: ИИ-агенты на сайте
- Фича: почему выбирают нас
- Фича: витрина туров на главной
- Фича: раздел администрирования
- Фича: карточки собеседника в чате
- Фича: профиль клиента
- Фича: поиск и календарь на главной
- Фича: профиль менеджера
- Фича: аккаунт и сервер профиля
- Фича: видимость полей группами
- Фича: явные неготовые элементы
- Фича: галерея на странице тура
- Фича: единые поля дат
- Шаблон эпика
- Шаблон фичи