Интеграция со сторонними системами АПИ: различия между версиями
(→Пакетный экспорт заказов по категориям в формате СОФИ) |
(→Выгрузка информации о заказах) |
||
| Строка 693: | Строка 693: | ||
==Выгрузка информации о заказах == | ==Выгрузка информации о заказах == | ||
| − | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. | + | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. |
| − | + | Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]] | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | [[ | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
==Фиксация оплаты внешним запросом== | ==Фиксация оплаты внешним запросом== | ||
Версия 18:34, 13 мая 2015
!!!СТАТЬЯ В РАЗРАБОТКЕ!!!
Содержание
- 1 API Авиабилетов
- 2 API Отелей
- 3 Выгрузки статистики продаж через API (Метапоиск)
- 4 Выгрузка информации о заказах
- 5 Фиксация оплаты внешним запросом
- 6 API универсального платежного шлюза
- 7 API Синхронизации пользователей и субагентов
- 8 API Кроссавторизации
- 9 Передача параметров в форму поиска
- 10 Проверка в сторонней системе возможности тикетинга
- 11 Загрузка счетов из сторонней системы
API Авиабилетов
Для авторизации в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий сделанных через АПИ.
API Поиска авиабилетов
Это сервис внутри Nemo, который позволяет получить результаты поиска.
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Администрирование» ⇨ «Веб-служба. Авторизация».
Подробнее можно узнать в специальной статье Веб-служба поиска авиабилетов
API Бронирования авиабилетов
Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в этой статье Веб-служба бронирования
API Выписки авиабилетов
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. Веб-служба выписки
API Оплаты
Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. Агентские АПИ оплаты
API Дополнительных запросов авиабилетов
К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. Дополнительные запросы АПИ авиабилетов
Используемые параметры
Параметры, используемые в запросах
| Имя элемента | Обязательный | Тип | Описание |
|---|---|---|---|
| BookFlight | да | сложный | Контейнер для тела запроса бронирования |
| FlightId | да | число | Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности) |
| CurrencyCode | нет | строка | Трёх буквенный код валюты (обязателен для комиссии в валюте) |
| Agency | да | сложный | Информация об агентстве |
| Name | да | строка | Название агентства |
| Telephone | нет | сложный | Контактный телефон агентства |
| Type | да | строка | Тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агентство |
| PhoneNumber | да | строка | Номер телефона |
| CountryAccessCode | нет | строка | Код страны |
| AreaCityCode | нет | строка | Код региона/города |
| Address | да | сложный | Адрес агентства |
| City | да | строка | Город, в котором расположено агентство |
| StreetAddress | нет | сложный | Адрес агентства в городе (улица, дом, корпус, офис и т.д.) |
| PostalCode | нет | строка | Почтовый код, индекс. |
| CountryCode | нет | строка | Код страны (RU, UA, US и т.д.) |
| Travellers | да | сложный | Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование) |
| Traveller | да | сложный | Информация о пассажире |
| Type | да | строка | Тип пассажира возможные значения: ADT - взрослые, CNN - дети со взрослыми, UNN - дети без сопровождения взрослых, INF - младенцы,INS - младенцы с местом |
| IsContact | нет | булевский | Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false. |
| LinkedTo | нет | целое число | Номер взрослого, к которому привязан младенец/ребёнок |
| Num | да | число | Номер пассажира. |
| PreferedPlace | нет | сложный | Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны. |
| SmokingAllowed | нет | булевский | true - место для курящих, false - место для некурящих. По умолчанию false. |
| Location | нет | строка | Расположение места, возможные значения: W - у окна (Window); M - где-то в середине ряда (Middle); NPW - возле прохода (NearPassengerWay); NS - нет предпочтения (NotSpecified). |
| RowNumber | нет | строка | Номер ряда |
| PlaceNumber | нет | строка | Номер места |
| SegNumber | да | строка | Номер сегмента |
| DocumentInfo | да | сложный | Паспортные данные |
| DocType | да | строка | Тип документа, обязательный. |
| DocNum | да | строка | Номер документа |
| CountryCode | да | строка | Страна выдачи, двух буквенный код(RU, US и т.д.) |
| DocElapsedTime | да | строка | Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012) |
| VisaInfo | нет | сложный | Информация о визе |
| Num | да | строка | Номер визы |
| IssueDate | да | строка | Дата выдачи визы в формате dd.mm.yyyy |
| IssueCountry | да | строка | Страна выдачи визы |
| IssuePlace | да | строка | Место выдачи визы |
| BirthCountry | нет | строка | Страна рождения (IATA код страны) |
| BirthCity | нет | строка | Город рождения (название) |
| ArrAddress | нет | сложный | Адрес прибытия, для въезжающих в США (не граждан США) информация является обязательной. Если она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт. |
| CountryCode | да | строка | IATA код страны |
| State | да | строка | Штат или область въезда |
| PostalCode | да | строка | Почтовый код |
| City | да | строка | Город |
| StreetAddress | да | строка | Адрес: улица, номер дома, квартиры и тп |
| DocStringFormats | нет | сложный | Список форматов строк паспортных данных, которые будут отправлены в дополнение к стандартным. |
| DocStringFormat | да | строка | Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП. |
| PersonalInfo | да | сложный | Персональные данные пассажира |
| DateOfBirth | да | строка | Дата рождения в формате dd.mm.yyyy (например 31.12.2000) |
| Nationality | да | строка | Национальность/гражданство, двух буквенный код страны (RU, UA, US и т.д.) |
| Gender | да | строка | Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female). |
| FirstName | да | строка | Имя пассажира |
| LastName | да | строка | Фамилия пассажира |
| BMiddleName | да | строка | Отчество пассажира |
| Meal | нет | строка | Код типа питания, возможные значения: NONE - отсутствует (по умолчанию); AVML - Азиатская вегетарианская кухня; BLML - Блюда щадящей диеты; CHML - Детское питание; CHPC - Детский холодный завтрак; СНСС - Детский горячий завтрак; CHHC - Детский ланч, ветчина и сыр; PBJS - Детский ланч, ореховое масло; CHMC - Детский обед макароны с сыром; DBML - Диабетическое питание; FPML - Фрукты; GFML - Питание без клейковины; HFML - Питание богатое клетчаткой; HNML - Индусская кухня; BBML - Питание для младенцев; KSML - Кошерная кухня; SMKB - Кошерный завтрак; SMKL - Кошерный ланч; SMKD - Кошерный обед; LPML - Малобелковое питание; LCML - Низкокалорийное питание; LFML - Низкохолестериновое питание; PRML - Низкопуриновое питание; LSML - Малосоленое питание; MOML - Мюсли; NLML - Безмолочные продукты; ORML - Восточная кухня; RVML - Сырые овощи; SFML - Морепродукты; SPML - Особое питание; VLML - Вегетарианское, молоко и яйца; VGML - Строго вегетарианское питание; VJML - Джайнизское вегетарианское; VOML - Восточное вегетарианское питание. |
| LoyaltyCard | нет | сложный | Карточка часто летающего пассажира |
| OpCode | да | строка | IATA код компании авиаперевозчика |
| Number | да | строка | Номер карточки |
| ContactInfo | нет | сложный | Контактная информация для пассажира |
| EmailID | нет | строка | Контактный email |
| Telephone | нет | сложный | Контактный телефон пассажира, описание аналогично описанию телефона агентства |
| CancelBook | да | сложный | Контейнер для тела запроса отмены брони |
| BookID | да | число | Номер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки) |
| GetAirRules | да | сложный | Контейнер для тела запроса поиска тарифных правил |
| AirAvail | да | сложный | Контейнер для тела запроса проверки доступности перелёта |
| Ticketing | да | сложный | Контейнер для тела запроса выписки брони |
| ValCompany | нет | строка | Валидирующий перевозчик, на бланке которого выписывается билет |
| Comission | нет | сложный | Комиссия |
| Amount | нет | число с плавающей точкой | Значение комиссии в валюте, если указано, то комиссия в процентах игнорируется |
| Percent | нет | число | Комиссия в процентах |
| VoidTicket | да | сложный | Контейнер для тела запроса отмены выписки брони |
| Search | да | сложный | Контейнер для тела запроса поиска |
| ODPairs | да | сложный | Контейнер для информации о перелёте |
| Type | да | строка | Тип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут |
| Direct | нет | булевский | Индикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения: false - с пересадками, true - только прямые. Если не указан, значение по умолчанию false. |
| AroundDates | нет | число | Включает поиск по окружным датам, количество дней +/- от даты заезда/возвращения. Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT). Возможные значения: 0, 1, 2, 3 |
| ODPair | да | сложный | Контейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается |
| DepDate | да | строка | Дата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС |
| DepAirp | да | строка | Трёх буквенный код города отправления или конкретного аэропорта в городе отправления. |
| ArrAirp | да | строка | Трёх буквенный код города прибытия или конкретного аэропорта в городе прибытия. |
| Count | да | число | Число пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9. |
| Restrictions | нет | сложный | Контейнер дополнительной информации для поиска. |
| ClassPref | нет | строка | Предпочитаемый класс перелёта, возможные значения: All - все, Economy - эконом, Business - бизнес, First - первый. Если не указан, то по умолчанию All. |
| OnlyAvail | нет | булевский | Искать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false. |
| AirVPrefs | нет | сложный | Обёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск. |
| AirVPref | да | сложный | Информация об авиакомпании. |
| Include | нет | булевский | Индикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - исключить. Если не указан, то по умолчанию false. |
| IncludePrivateFare | нет | булевский | Включать приватные цены в результат или нет, возможные значения: true - включать, false - не включать. Если не указан, то по умолчанию false. |
| ServiceTypes | нет | сложный хмл | Контейнер массива используемых веб-сервисов при поиске. |
| ServiceType | нет | строка | Тип веб-сервиса(поставщика). При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - поиск в Амадеус. |
Параметры, используемые в ответах
| Имя элемента | Обязательный | Тип | Описание |
|---|---|---|---|
| BookFlightResult | да | сложный | Контейнер для тела ответа бронирования |
| ID | да | число | Номер бронирования в системе Nemo. |
| Status | да | строка | Статус брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана; UNDEFINED - статус не определён. |
| Code | да | строка | Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила |
| QueryPlace | нет | сложный | Очередь, в которую помещено бронирование |
| Number | да | число | Номер очереди |
| Flight | да | сложный | Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта) |
| Agency | да | сложный | Информация об агентстве |
| ItinReceipts | нет | сложный | Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), представляющую маршрут квитанцию в формате Format. |
| Encoding | да | строка | Кодировка |
| Format | да | строка | Формат |
| Travellers | да | сложный | Контейнер для информации о пассажирах |
| Traveller | да | сложный | Информация о пассажире |
| Ticket | нет | сложный | Билет пассажира. |
| TickectNum | да | строка | Номер билета |
| Seats | нет | сложный | Контейнер мест пассажира. |
| Seat | да | сложный | Место в самолёте |
| Number | да | строка | Номер места(ряд+номер в ряду) |
| Characteristic | нет | строка | Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”. |
| SmokingPreference | нет | строка | Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих. |
| SegmentNumber | да | число | Номер сегмента |
| PersonalInfo | да | сложный | Личные данные |
| LoyaltyCard | нет | сложный | Карточка часто летающего пассажира |
| ContactInfo | нет | сложный | Контактная информация для пассажира |
| FareStored | нет | срока: Yes/No | Указывает установлена ли / гарантируется ли цена у поставщика. Если параметр отсутствует в ответе, то по умолчанию значение “Yes”. |
| CancelBookResult | да | сложный | Контейнер для тела ответа отмены брони |
| BookID | да | число | Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась) |
| Result | да | сложный | Результат отмены (войдирования) |
| Success | да | булевский | Индикатор, показывающий успешно или нет прошла отмена, возможные значения: true - успешно отменена (войдирование); false - не отменена |
| GetAirRulesResult | да | сложный | Контейнер для тела ответа поиска тарифных правил |
| FlightId | да | число | Номер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности) |
| Rules | да | сложный | Контейнер для правил |
| Rule | да | сложный | Правило |
| Tarrif | да | строка | Код тарифа, для которого правило применяется |
| Name | да | строка | Имя правила |
| RuleText | да | строка | Текст правила |
| AirAvailResult | да | сложный | Контейнер для тела ответа помещения брони в очередь |
| IsAvail | да | булевский | Индикатор, показывающий доступность перелёта, возможные значения: true - доступен; false - недоступен |
| VoidTicketResult | да | сложный | Контейнер для тела ответа отмены выписки брони |
| SearchResult | нет | сложный | Контейнер тела ответа для результатов поиска. |
| Flights | да | сложный | Контейнер для перелётов |
| Flight | нет | сложный | Представляет информацию о перелёте. Отсутствует если перелётов не найдено (используется в поисковом ответе) |
| WebService | да | строка | Веб-сервис (поставщик) от которого был получен перелёт. |
| ValCompany | нет | строка | IATA код авиакомпании. Валидирующий перевозчик, на бланках которого должен выписываться билет. |
| Segments | да | сложный | Контейнер для сегментов перелёта |
| Segment | да | сложный | Представляет информацию о сегменте |
| SegNum | да | число | Номер сегмента в перелёте |
| DepAirp | да | строка | IATA код аэропорта отправления |
| DepTerminal | нет | строка | Код терминала отправления |
| ArrAirp | да | строка | IATA код аэропорта прибытия |
| ArrTerminal | нет | строка | Код терминала прибытия |
| OpAirline | да | строка | Код авиакомпании, выполняющей рейс |
| MarkAirline | да | строка | Код авиакомпании, продающей билет |
| FlightNumber | да | число | Номер рейса |
| AircraftType | да | строка | Код типа самолёта |
| DepDateTime | да | строка | Дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС |
| ArrDateTime | да | строка | Дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС |
| StopNum | да | число | Число остановок |
| Meal | да | строка | Тип питания, возможные значения: UNDEFINED - неизвестно; N - Нет питания; P - Алкогольные напитки в продаже; B - Завтрак; O - Холодная еда; C - Бесплатные алкогольные напитки; K - Континтальный завтрак; D - Обед; F - Еда в продаже; G - Еда/напитки в продаже; H - Горячая еда; L - Ланч; M - Еда; R - Освежающие еда/напитки бесплатно; V - Освежающие еда/напитки за отдельную плату; S - Закуска |
| BookingCodes | да | сложный | Контейнер для классов перелёта |
| BookingCode | да | строка | Код класса перелёта. Если производится поиск по расписанию, то может встречаться несколько раз. |
| FlightTime | нет | число | Время перелёта в минутах |
| TimeZone | нет | сложный | Информация о временных зона прибытия и отправления |
| Departure | да | число | Часовой пояс отправления, UTC (смещение относительно Гринвича) |
| Arrival | да | число | Часовой пояс прибытия, UTC (смещение относительно Гринвича) |
| ETicket | да | булевский | Индикатор электронного билета, возможные значения: true - билет является электронным, false - билет не является электронным. |
| Baggage | нет | сложный | Информация о багаже |
| Measure | да | строка | Мера веса. K - килограммы, PC - сумки/клади |
| Value | да | строка | Количество багажа |
| PricingInfo | нет | сложный | Контейнер для информации о ценах. Отсутствует в случае, если производится поиск по расписанию. |
| Refundable | да | булевский | Индикатор показывающий является ли билет возвратным или нет, возможные значения: true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат) |
| PassengerFare | да | сложный | Информация о ценах для конкретного типа пассажиров. |
| Quantity | да | число | Число пассажиров данного типа |
| BaseFare | да | сложный | Цена в базовой валюте(за одного пассажира) |
| EquiveFare | нет | сложный | Цена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается |
| TotalFare | нет | сложный | Полная стоимость для пассажиров данного типа включая таксы (за одного пассажира), при поиске цены не возвращается |
| Currency | да | строка | Трёх буквенный код валюты. |
| Amount | да | число с плавающей точкой | Значение стоимости. |
| Taxes | нет | сложный | Контейнер для такс, при поиске цены не возвращается |
| Tax | да | сложный | Одна такса |
| CurCode | да | строка | Трёх буквенный код валюты для таксы |
| TaxCode | да | строка | Код таксы |
| Amount | да | число с плавающей точкой | Значение таксы |
| Tariffs | да | сложный | Контейнер для тарифов |
| Tariff | да | сложный | Контейнер для одного тарифа |
| Code | да | строка | Код тарифа |
| SegNum | да | число | Номер сегмента для которого применяется тариф, если тариф применяется для всех сегментов, то возвращается 0. |
| FareCalc | нет | строка | Строка расчёта цены |
| LastTicketDateTime | да | строка | Дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы. |
API Отелей
Агентский API Отелей - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
Подробнее можно узнать в нашей специальной статье Агентский АПИ отелей
Выгрузки статистики продаж через API (Метапоиск)
Метапоисковая система (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.
В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) за определенный период бронирования заказов в виде файла данных в формате XML.
Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему.
Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками Взаимодействие с метапоисковиками
Выгрузка информации о заказах
Выгрузка заказов — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье Выгрузка
Фиксация оплаты внешним запросом
!!! не нашел, есть просто фиксация оплаты, но это вроде немного не то !!!
API универсального платежного шлюза
!!! сказано спросить у КШ, я спросил, у него нет информации !!!
API Синхронизации пользователей и субагентов
Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей.
Модуль является компонентом, включаемым и отключаемым из административной части.
Авторизация B2B-пользователей
Все B2B-пользователи, загруженные через модуль взаимодействия со сторонней программой, будут иметь случайным образом сгенерированный криптостойкий пароль. Механизм авторизации работает следующим образом:
1.Система пытается авторизовать пользователя через собственную службу авторизации. 2.В случае неудачи, но присутствия в системе введенного логина, она должна попытаться авторизовать пользователя во внешней службе авторизации («САМО-тур»), при включенном компоненте взаимодействия с «САМО-тур». 3.В случае неудачного опознавания пользователя выводится соответствующее сообщение и процедура может быть повторена путем повторного ввода логина и пароля.
Регистрация неудачных попыток входа производится только в двух случаях:
- Компонент взаимодействия выключен.
- Компонент взаимодействия включен и провалены обе попытки авторизации (внутренней и внешней).
Для сторонней авторизации пользователей в системе Nemo внешняя программа должна иметь веб-службу, основанную на WSDL определенного формата. Ссылка на веб-службу прописывается в настройках системы Nemo на странице конфигурации интеграции с внешней системой.
Для импортированных пользователей в Nemo имеется поле «Идентификатор внешней системы», который отвечает за сопоставление с ID пользователя в сторонней системе. Для менеджеров агентств оно равно номеру партнера (агента) во внешней системе, для пользователей — номеру пользователя в «САМО-туре».
Для пользователей, имеющих какое-либо значение в поле «идентификатор во внешней системе», запрещен функционал смены пароля или его восстановления по электронной почте.
Пример запросов и ответов на авторизацию:
Request
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<getAuthorization xmlns="http://tempuri.org/">
<login>string</login>
<pass>string</pass>
</getAuthorization>
</soap12:Body>
</soap12:Envelope>
Response
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<getAuthorizationResponse xmlns="http://tempuri.org/">
<getAuthorizationResult>
<session_id>string</session_id>
<user_id>string</user_id>
<login>string</login>
<status>string</status>
</getAuthorizationResult>
</getAuthorizationResponse>
</soap12:Body>
</soap12:Envelope>
Сервис реализует функцию «getAuthorization», на вход которой передается конструкция «getAuthorizationRequest»:
- login (строка) - введенный пользователем логин
- pass (строка) - введенный пользователем пароль
Функция должна отдавать системе конструкцию getAuthorizationResponse:
- session_id (строка) - пустое значение
- user_id (строка) - идентификатор менеджера в системе «САМО-тур»
- login (строка) - логин пользователя (для контроля)
- status (строка) - может иметь значения:
1. adm - администратор 2. mgr - менеджер 3. usr - пользователь (возвращается всегда это значение)
Импорт и синхронизация учетных записей
Со стороны внешней системы должно быть приложение, отправляющее в формате XML данные по учетным записям B2B-клиентов (агентств и пользователей). Со стороны Nemo имеется скрипт, который принимает XML в формате, приведенном в описании документов, передаваемых в Nemo, с ключом авторизации, определенным в Nemo в административной части модуля.
Передаваемые элементы с описанием учетных записей и партнеров имеют аккаунт (Account ID) во внешней системе и атрибут action, который может быть в состоянии update или delete, т.е. обновления/добавления и удаления, соответственно.
В административной части модуля в Nemo задается ключ авторизации для защиты от несанкционированного доступа. Значение не должно быть пустым.
Скрипт получает данные об обновлении и добавлении (проходят как одно и то же действие) или удалении информации по аккаунту. XML-данные могут содержать несколько элементов.
Описание передаваемых в Nemo XML-документов:
<?xml version="1.0" encoding="UTF-8" ?>
<changes key="ключ_авторизации">
<accounts> - список изменений по аккаунтам пользователей
<item id=3 partnerId=10 action="update" admin="1">
<login>Логин пользователя</login>
</item>
<item id=6 partnerId=15 action="update">
...
</item>
<item id=9 partnerId=30 action="delete" />
</accounts>
<partners> - список изменений по партнерам
<item id=140 action="update">
<name>Название агентства</name>
<ofname>Официальное Название агентства</ofname>
<phone>Телефон</phone>
<tax>Форма налогообложения</tax>
<group>123</group>
<code>ABCD</item>
</partners></changes></code>
При импорте информации об агентствах будут возвращаться следующие значения:
| Поле во внешней системе | Путь к элементу xml | Тип данных | Сопоставляемое поле в Nemo | Примечание |
|---|---|---|---|---|
| Идентификатор партнера | /changes/partners/item[@id] | Целое число | Идентификатор во внешней системе для менеджера / администратора | |
| Название юридического лица | /changes/partners/item/ofname | Строка | Полное официальное название юридического лица | Необходимо для выписки счетов юридическими лицами |
| Сокращенное название | /changes/partners/item/name | Строка | Имя агентства | |
| Код агентства | /changes/partners/item/code | Строка | Используется при создании логина администратора | |
| Номер группы в самотуре | /changes/partners/item/group | Целое число, либо пусто | На основании таблицы сопоставлений (см. ниже) определяется, к какой группе агентство принадлежит в Nemo | |
| Форма налогообложения | /changes/partners/item/tax | Целое число, равное идентификатору во внешней системе |
Для каждого возвращенного агентства Nemo проверяет наличие его в своей базе. Если агентство не найдено, то создается новое, для него создается менеджер (админ) с логином ABCD-1234, где ABCD – буквенный идентификатор партнера во внешней системе, 1234 — id партнера во внешней системе. Пароль генерируется случайный и криптостойкий.
Если агентство найдено, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. Если изменился буквенный код агентства, то Nemo переименовывает менеджера в соответствии с новым кодом. При импорте информации о пользователях агентств в Nemo будут посылаться следующие поля:
| Поле во внешней системе | Путь к элементу xml | Тип данных | Сопоставляемое поле в Nemo | Примечание |
|---|---|---|---|---|
| Идентификатор пользователя | /changes/accounts/item[@id] | Целое число | Идентификатор внешней системы | Храним как дополнительное поле |
| Идентификатор партнера | /changes/accounts/item[@partnerId] | Целое число | Идентификатор внешней системы менеджера агентства | |
| Логин | /changes/accounts/item/login | Строка | Логин пользователя | |
| Администратор | /changes/accounts/item[@admin] | 0 - нет, 1 - да | Эксперт по бронированию |
Для каждого возвращенного пользователя Nemo проверяет наличие его в своей базе. Если пользователь не найден, то создается новый. Пароль генерируется случайный и криптостойкий.
Если пользователь найден, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. При запросе на удаление пользователя, в Nemo указанный логин удаляться не будет в целях сохранения целостности старых данных, а просто помечается как удаленный, и логин переименовывается и становится вида [логин_пользователя]_X_[числовой идентификатор_пользователя в Само].
<item id=[идентификатор] action="delete" />
Таблица сопоставлений групп
В административной части Nemo надо создать отдельную страницу, на которой можно сопоставить имеющиеся группы в Nemo номерам групп в САМО-тур (поле group в XML). Выводится список существующих групп для текущего (корневого) агентства.
API Кроссавторизации
Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)
Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:
http://hostname/authorization_reol.wsdl
Запрос
?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='Authorization'
targetNamespace='http://example.org/Authorization'
xmlns:tns=' http://example.org/Authorization '
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
xmlns='http://schemas.xmlsoap.org/wsdl/'>
<message name='getAuthorizationRequest'>
<part name='login' type='xsd:string'/>
<part name='pass' type='xsd:string'/>
</message>
<message name='getAuthorizationResponse'>
<part name='session_id' type='xsd:string'/>
<part name='user_id' type='xsd:string'/>
<part name='login' type='xsd:string'/>
<part name='status' type='xsd:string'/>
</message>
<portType name='AuthorizationPortType'>
<operation name='getAuthorization'>
<input message='tns:getAuthorizationRequest'/>
<output message='tns:getAuthorizationResponse'/>
</operation>
</portType>
<binding name='AuthorizationBinding' type='tns:AuthorizationPortType'>
<soap:binding style='rpc'
transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='getAuthorization'>
<soap:operation soapAction='urn:xmethods-delayed-quotes#getAuthorization'/>
<input>
<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</input>
<output>
<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</output>
</operation>
</binding>
<service name='AuthorizationService'>
<port name='AuthorizationPort' binding='AuthorizationBinding'>
<soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/>
</port>
</service>
</definitions>
Передача параметров в форму поиска
Описанная функциональность не входит в стандартную поставку системы.
Для получения возможности использовать ее, пожалуйста, обратитесь в коммерческий отдел.
В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.
Применение
Эта технология может использоватся к примеру для формирования ссылок с баннеров, при клике на которые пользователь попадает на форму, на которой уже могут быть заполнены пункты назначения, даты, количество пассажиров и прочие параметры.
Также, при указании всех необходимых параметров, пользователя можно перебрасывать сразу на процесс поиска авиабилетов с указанными критериями.
Для использования заполнения формы из URL следует включить опцию: Администрирование → Настройки системы → Включить FastSearch (передачу параметров поиска)
После этого можно использовать ссылки на форму поиска вида
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=BER&departure_date=21.10.2009&adults=1&children=0&input_vendors=SU,PS¶m_by_get=on
Переменные FastSearch
Имена полей - такие же как имена инпутов на поисковой форме.
Следите за тем, чтобы значения соответствовали установленным в настройках ограничениям.
Переменные, которые предполагают в качестве значения "true" можно просто не включать в запрос, чтобы их логика не отработала.
Форма поиска
Чтобы перенаправить пользователя на страницу с заполненными параметрами поиска, необходимо указать get-параметр ¶m_by_get=on, иначе сработают стандартные предустановки полей формы поиска.
Процесс поиска
Если вы указываете все необходимые для поиска параметры, то для того чтобы отправить пользователя сразу на результаты поиска, нужно указать get-параметр &fast_search=on.
Маршрут «В одну сторону» и «Туда и обратно»
| Элемент | Переменная | Допустимые значения | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Тип маршрута | trip_type |
| ||||||||||
| Пункт вылета | out_iata |
| ||||||||||
| Пункт прилета | in_iata |
| ||||||||||
| Дата вылета | departure_date |
| ||||||||||
| Дата обратного вылета | back_departure_date |
| ||||||||||
| Время вылета | prefered_departure_type |
| ||||||||||
| Время обратного вылета | prefered_back_departure_type |
| ||||||||||
| Поиск только среди прямых рейсов ("Без пересадок") | direct | true |
Дополнительные параметры
| Элемент | Переменная | Допустимые значения | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Нижнее ограничение по цене по умолчанию | money_from |
| ||||||||
| Верхнее ограничение по цене по умолчанию | money_to |
| ||||||||
| Поиск в окружных датах | district_date | true | ||||||||
| Диапазон соседних дат +(-) [дней] | date_range |
| ||||||||
| Поиск по соседним аэропортам | district_airport | true | ||||||||
| Класс обслуживания | class |
| ||||||||
| Фильтр по авиакомпании | input_vendors |
| ||||||||
| Сортировка | sort |
|
Сложный маршрут
! Данные переменные применимы только для сложного маршрута (trip_type=CR).
[X] - номера отдельных перелетов. Нумерация начинается с 0, что означает первый перелет.
Максимальное количество сегментов для сложного маршрута определяется одноименной настройкой в разделе Авиабилеты ⇨ Поиск ⇨ Ограничения поиска.
| Элемент | Переменная | Допустимые значения | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Пункты вылета | cr_iata[0] cr_iata[1] |
MOW | Код аэропорта ИАТА | ||||||||||
| Пункты прилета | cr_back_iata[0] cr_back_iata[1] |
LED | Код аэропорта ИАТА | ||||||||||
| Дата вылета | cr_date[0] cr_date[1] |
25.10.2013 | Дата в формате ДД.ММ.ГГГГ | ||||||||||
| Время вылета | cr_pref_departure[0] cr_pref_departure[1] |
| |||||||||||
| Класс обслуживания | cr_class[0] cr_class[1] |
| |||||||||||
| Окружные аэропорты (±XX км) | cr_district_airport[0] cr_district_airport[1] |
true | |||||||||||
Пассажиры
| Элемент | Переменная | Допустимые значения | ||
|---|---|---|---|---|
| Взрослых от 12 лет | adults |
| ||
| Детей от 2 до 12 лет | children |
| ||
| Младенцев до 2 лет | infants |
| ||
| Младенцев с местом до 2 лет | infants_seat |
| ||
| Молодых от 12 до 24 лет |
youths |
| ||
| Пожилых от 65 лет | seniors |
|
Примеры FastSearch запросов
В одну сторону (простой)
Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый
- форма поиска
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &direct=true&adults=2¶m_by_get=on
- процесс поиска
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &direct=true&adults=2¶m_by_get=on&fast_search=on
В одну сторону (с фильтрами по авиакомпаниям)
Рейс в одну сторону из Москвы в Париж, дата вылета 25.10.2013, Пассажиры: пожилых - 2, Авиакомпании: Аэрофлот - Российские авиалинии, Международные Авиалинии Украины
- форма поиска
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &seniors=2&input_vendors=SU,PS¶m_by_get=on
- процесс поиска
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &seniors=2&input_vendors=SU,PS¶m_by_get=on&fast_search=on
Туда-обратно
Рейсы туда-обратно Москва ↔ Париж, дата вылета: 25.10.2013, обратно: 27.10.2013, класс перелета: Эконом, Пассажиры: взрослых - 2 младенцев - 1
- форма поиска
http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &back_departure_date=27.10.2013&class=econom&adults=2&infants=1¶m_by_get=on
- процесс поиска
http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &back_departure_date=27.10.2013&class=econom&adults=2&infants=1¶m_by_get=on&fast_search=on
Сложный маршрут
из Москвы в Париж, дата вылета 25.10.2013,
из Парижа в Санкт-Петербург, дата вылета 26.10.2013,
из Санкт-Петербурга в Москву, дата вылета 29.10.2013,
1 взрослый
- форма поиска
http://SITEMANE/?trip_type=CR &cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013 &cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013 &cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013 &adults=1¶m_by_get=on
- процесс поиска
http://SITEMANE/?trip_type=CR &cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013 &cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013 &cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013 &adults=1¶m_by_get=on&fast_search=on
Взаимодействие FastSearch и Метрики
Для того, чтобы переход был зарегистрирован системой как переход с определенного источника, необходимо передать в запросе дополнительный параметр utm_source (Metrics Session ID). Например:
http://SITEMANE/?(some_parameters=vals&)utm_source=source_alias
где source_alias - алиас источника переходов. Дополнительная информация по использованию модуля Метрики.
Пример FastSearch запроса с параметром для модуля Метрики
FastSearch (с учетом источника перехода для модуля Метрики)
Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый (с учетом источника перехода для модуля Метрики).
- форма поиска
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &direct=true&adults=2¶m_by_get=on&utm_source=source_alias
- процесс поиска
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013 &direct=true&adults=2¶m_by_get=on&fast_search=on&utm_source=source_alias
Проверка в сторонней системе возможности тикетинга
При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, в ответе будет
<m:Opportunity>Да</m:Opportunity>
Пример запроса "GetDebtCounterparty"
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Body>
<ns1:GetDebtCounterparty>
<ns1:ExternalUserId>00000001</ns1:ExternalUserId>
<ns1:ExternalPaymentId>00000001</ns1:ExternalPaymentId>
<ns1:BaseFare>2490</ns1:BaseFare>
<ns1:Tax>643</ns1:Tax>
<ns1:ValVendorCommission>49.8</ns1:ValVendorCommission>
<ns1:Locator>0X97T6</ns1:Locator>
<ns1:Discount>0</ns1:Discount>
<ns1:Charge>0</ns1:Charge>
<ns1:Sum>3133</ns1:Sum>
<ns1:TotalPrice>3658.1</ns1:TotalPrice>
<ns1:GDSCurrency>RUB</ns1:GDSCurrency>
<ns1:OrderCurrency>RUB</ns1:OrderCurrency>
<ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate>
<ns1:beginDate>2014-08-30T11:05:00</ns1:beginDate>
</ns1:GetDebtCounterparty>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Пример ответа "GetDebtCounterparty"
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<m:GetDebtCounterpartyResponse xmlns:m="http://DOMEN_NAME/avia">
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:AnswerDebt">
<m:Opportunity>Да</m:Opportunity>
<m:Message1/>
</m:return>
</m:GetDebtCounterpartyResponse>
</soap:Body>
</soap:Envelope>
Загрузка счетов из сторонней системы
При взаимодействии с веб-сервисом 1С, на этапе бронирования отправляется запрос, на создание аккаунта 1С, содержащий в себе данные счета. В системе логирования этот запрос можно найти под именем «[GDS] Запрос "NewAccount"» и ответ «[GDS] Ответ "NewAccount"»
Пример запроса
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://DOMEN_NAME" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:NewAccount>
<ns1:Input>
<ns1:CompanyID>0001</ns1:CompanyID>
<ns1:ID>123321</ns1:ID>
<ns1:ExternalUserId>00123321</ns1:ExternalUserId>
<ns1:Locator>11KW22</ns1:Locator>
<ns1:ExternalPaymentId>0</ns1:ExternalPaymentId>
<ns1:Tickets>
<ns1:IATAValidator>92222616</ns1:IATAValidator>
<ns1:ValVendor>UT</ns1:ValVendor>
<ns1:GDSCurrency>RUB</ns1:GDSCurrency>
<ns1:OrderCurrency>RUB</ns1:OrderCurrency>
<ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate>
<ns1:BaseFare>8990</ns1:BaseFare>
<ns1:Tax>
<ns1:Code>YQ</ns1:Code>
<ns1:Amount>975</ns1:Amount>
</ns1:Tax>
<ns1:Tax>
<ns1:Code>YR</ns1:Code>
<ns1:Amount>75</ns1:Amount>
</ns1:Tax>
<ns1:Segment>
<ns1:StartDate>2015-02-17T20:20:00</ns1:StartDate>
<ns1:StartAirportCode>VKO</ns1:StartAirportCode>
<ns1:EndAirportCode>SGC</ns1:EndAirportCode>
<ns1:CompanyCode>UT</ns1:CompanyCode>
<ns1:Tariffs>OSSOW</ns1:Tariffs>
<ns1:FlightNumber>295</ns1:FlightNumber>
<ns1:StopOver>O</ns1:StopOver>
<ns1:ClassTypeCode>O</ns1:ClassTypeCode>
</ns1:Segment>
<ns1:FullName>PASSANGER NAME</ns1:FullName>
</ns1:Tickets>
<ns1:Options>
<ns1:Name>Service</ns1:Name>
<ns1:StringValue>GALILEO</ns1:StringValue>
<ns1:NumericValue xsi:nil="true"/>
<ns1:DateValue xsi:nil="true"/>
</ns1:Options>
<ns1:Options>
<ns1:Name>AAA</ns1:Name>
<ns1:StringValue>000A</ns1:StringValue>
<ns1:NumericValue xsi:nil="true"/>
<ns1:DateValue xsi:nil="true"/>
</ns1:Options>
<ns1:Options>
<ns1:Name>Checkbox</ns1:Name>
<ns1:StringValue>YES</ns1:StringValue>
<ns1:NumericValue xsi:nil="true"/>
<ns1:DateValue xsi:nil="true"/>
</ns1:Options>
</ns1:Input>
</ns1:NewAccount>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Пример ответа
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<m:NewAccountResponse xmlns:m="http://DOMEN_NAME">
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:outInvoice">
<m:NoDoc>00015365</m:NoDoc>
<m:DateInvoice>2015-02-04T00:00:00</m:DateInvoice>
<m:ExternalUserId>00017483</m:ExternalUserId>
<m:TicketsSum>
<m:Price>10040</m:Price>
<m:Discount>0</m:Discount>
<m:Charge>0</m:Charge>
<m:Sum>10040</m:Sum>
</m:TicketsSum>
</m:return>
</m:NewAccountResponse>
</soap:Body>
</soap:Envelope>