Мастер-Тур(15):Программа туров. Внешние системы. Авиа GDS
Версия статьи от 25-01-2021.
Поддерживаемые версии ПК «Мастер-Тур»: |
Содержание
- 1 Введение
- 2 Работа в экране «Внешние системы»
- 3 Работа в системе
- 3.1 Создание услуг и внесение цены
- 3.2 Создание тура и внесение услуг в его состав
- 3.3 Экран поиска авиабилетов, начиная с релиза 15.5
- 3.4 Экран поиска авиабилетов, начиная с релиза 15.6 (Canary)
- 3.5 Создание расписания для авиаперелетов из внешней системы
- 3.6 Добавление услуги Авиаперелет в уже созданный тур
- 3.7 Обработка исключительных ситуаций
- 4 Настройка логирования
Введение
На страницу Внешние системы можно попасть из меню турпрограмм (ссылка на страницу http://ip-адрес сервера/TourPrograms/ExternalSystems
). Также на страницу Внешние системы можно попасть с любой страницы, перейдя в Меню → Внешние системы.
Работа в экране «Внешние системы»
Страница Внешние системы представлена двумя вкладками:
- Внешние поставщики – где происходит создание и редактирование пользователей системы;
- Синхронизация – где осуществляется работа по сопоставлению данных из внешней системы.
Внешние поставщики
На вкладке Внешние поставщики представлен список поставщиков. Для каждого поставщика указан:
- Название
- Адаптер
- Адрес API
- Срок действия лицензии
Любого поставщика можно отредактировать, выбрав по названию. Также можно добавить нового, нажав кнопку Добавить.
Список полей для заполнения ( * – обязательное):
- Адаптер * – выбирается из списка
- Название * – название поставщика
- API адрес * – должен быть представлен в виде http(s)://domain(.ru)(:9999)(/something)
- Авторизационный токен * – ключ доступа к серверу, по которому будет происходить подключение к внешнему поставщику
- ID клиента * – id поставщика во внешней системе (предоставляется вместе с авторизационным токеном)
- ID агентства – id агентства во внешней системе (предоставляется вместе с авторизационным токеном)
- Багаж – все, багаж и ручная кладь, без багажа. Значение по умолчанию – все.
- Класс авиаперелета – эконом, премиум-эконом, бизнес, первый. Значение по умолчанию – эконом.
- Пересадки – все, без пересадок, 1 пересадка, 2 и более. Значение по умолчанию – без пересадок.
- Сортировка – сначала дешевые, сначала быстрые, оптимальные. Значение по умолчанию – сначала дешевые.
- сначала дешевые – сортировка по размеру доплаты от меньше к большей
- сначала быстрые – сортировка по общей продолжительности авиаперелета туда от меньшей к большей
- оптимальные – берется целиком вся поисковая выдача, считается среднее арифметическое от всех цен перелетов и среднее арифметическое от времени перелетов. На основе этих средних значений формируется рейтинг каждого отдельного перелета: чем цена перелета ниже относительно средней –> чем короче время перелета относительного среднего времени среди всех перелетов –> тем он оптимальнее. Точная формула рейтинга для каждого перелета такая: Рейтинг = (средняя цена на выдаче / цена перелета) х 0.9 + (средняя длительность перелета на выдаче / длительность перелета) х 1.1
- Обновление цен – отвечает за включение/выключение механизма сохранения цен. По умолчанию признак выключен. Более детальное описание механизма сохранения цен.
- Багаж – все, багаж и ручная кладь, без багажа. Значение по умолчанию – все. Возможен множественный выбор.
- Пересадки – все, без пересадок, 1 пересадка, 2 и более. Значение по умолчанию – без пересадок. Возможен множественный выбор.
Механизм обновления цен будет работать только для туров, у которых в настройках тура выбран признак «Применять комиссии, наценки и доплаты к услуге от внешнего поставщика».
- Выбирать рейс автоматически, если не выбран пользователем - данная настройка регулирует обязательность выбора рейса от Авиа GDS в туре. Если настройка включена, то в случае, если пользователь попытается выйти из окна подбора рейса от внешнего поставщика в корзине, для него отобразится сообщение Вы не можете продолжить бронирование тура без выбора регулярного авиаперелета. При закрытии экрана будет автоматически подобран авиаперелет с минимальной стоимостью. После этого автоматически будет выбран перелёт по самой низкой цене из числа доступных. Если настройка выключена, то пользователь сможет выйти из окна подбора рейса и выбрать перелёт, заведённый на базе Мастер-Тур. Обрабатывается с релиза 15.6.
Подключение к API адресу внешнего поставщика можно проверить по нажатию на кнопку Проверить подключение. Система производит пробное подключение к API и проверяет его доступность.
При сохранении внешнего поставщика в БД автоматически создается ценовой пакет и поставщик с названием, которое было введено при создании поставщика, в скобках указывается (внешняя система). Это необходимо для того, чтобы была возможность внести стоимость услуги, по которой будет работать поиск (при условии, что разрешается только бронирование услуги из внешней системы).
В случае, если внешний поставщик внесен для услуги Авиаперелет, то поставщику автоматически ставится признак Авиаперевозчик.
Синхронизация
Для работы с внешними системами в папку \\TourPrograms\bin нужно добавить файл nemo_guide_etalon.s3db. Также файл nemo_guide_etalon.s3db нужно добавить в папку \\TourSearchOwin.
Синхронизация служит для сопоставления справочных данных из внешней системы со справочными данными, указанными в ПК Мастер-Тур. Для того, чтобы начать работу, нужно выбрать необходимые данные:
- В списке Поставщик выбираем интересующего поставщика (в списке отображаются названия поставщиков, созданные на вкладке внешние поставщики)
- В списке Справочник выбираем необходимый справочник
Слева отображаются справочные данные внешней системы. Справа отображаются справочные данные из ПК Мастер-Тур.
Данные, которые сопоставлены - подсвечены черным цветом. Не сопоставленные данные подсвечены красным цветом. Существует возможность фильтрации справочных данных по статусу (Сопоставлен или Не сопоставлен) и поиска по названию.
В блоке Сопоставленные данные отображаются сопоставленные данные по выбранным элементам в левой или/и правой частях. Отображаемые данные сортируются по алфавиту. Данные можно сопоставлять и удалять сопоставление:
- Если нужно удалить сопоставление, можно воспользоваться кнопкой Удалить после нажатия данные станут не сопоставленными и подсвечены красным цветом. Если есть связанные сопоставления с удаляемой записью (к примеру, Страна->Город), то связанные сопоставления также будут удалены;
- Если нужно данные сопоставить, то есть два варианта:
- Точечное сопоставление - т.е. нужно выбрать не сопоставленное значение (подсвеченное красным цветом) в левой части и аналогичное ему значение в правой части (или то значение, которое должно быть сопоставлено). После того как значения выбраны, станет активной кнопка Сопоставить. Нажимаем кнопку, данные станут сопоставленными и подсвечены черным цветом
- Автоматическое сопоставление - при нажатии кнопки Автоматическое сопоставление запускается процесс автоматического сопоставления справочников. Для авиаперелетов сопоставляются только следующие справочники:
- Страна (по названию)
- Город (по названию и стране)
- Авиакомпания (по коду)
- Тип самолета (по коду)
- Аэропорт (по стране и городу)
Работа в системе
После того, как создан внешний поставщик и данные из внешней системы синхронизированы с данными ПК "Мастер-Тур", нужно создать тур, в который будут добавлены услуги от внешнего поставщика. Рассмотрим на примере создания тура, в котором содержатся три услуги – Авиаперелет туда (этот авиаперелет будет подбираться из внешней системы), Отель/круиз, Авиаперелет обратно:
Создание услуг и внесение цены
1. Создаем услугу Авиаперелет от внешнего поставщика:
- Во вкладке Внешние поставщики создаем внешнего поставщика, например Nemo4 и у нас автоматически создается ценовой пакет, который называется Nemo4(внешняя система), поэтому в экране Выбор ценового пакета нужно выбрать именно этот ценовой пакет (т.е. услугу, подбираемую у внешнего поставщика, обязательно нужно заводить в ценовом пакете, созданном при создании внешнего поставщика).
- Затем выбираем тип услуги Авиаперелет. Страну/город вылета и страну/город прилета выбираем те, которые нас интересуют для подбора перелета. Причем перелет может быть как обычным, так и многоплечевым. При подборе перелета в поиске анализируются точка отправления и точка прибытия. Для нашего примера выберем следующие страны: Россия/Москва - Австрия/Вена (т.к. нас интересуют такие перелеты, которые будут отправляться из Москвы и прибывать в Вену).
- Создаем расписание – можно указывать любую авиакомпанию, рейс, аэропорт вылета/прилета, тип самолета и т.д. Внимание нужно обратить на время вылета и прилета, т.е. если перелет осуществляется в рамках одного дня, то внешние перелеты будут подбираться не выходя за границы дня (например, если в расписании указать время вылета 08:00, прилета 10:00, то в поиске будут подбираться рейсы, осуществляющиеся с 00:00 по 23:59 часов).
- Выбираем тариф – Экономический класс (можно выбрать любой, т.к. на подбор перелетов от внешнего поставщика он никак не влияет).
- Выбираем поставщика – выбираем именного внешнего поставщика. Он также появляется в БД "Партнеры" автоматически, при создании внешнего поставщика во вкладке Внешние поставщики. В нашем случае это поставщик Nemo4(внешняя система).
- Затем заводим цену стандартным способом в экране Цены на услугу.
2. Создаем услугу Отель/круиз стандартным способом в экране Цены на услугу (можно использовать любой ценовой пакет и поставщика).
Создание тура и внесение услуг в его состав
3. Создаем тур стандартным способом и вносим в него созданные услуги (из примера, услуги, созданные в п.1, 2, 3).
4. В итоге получаем тур для поиска, в котором Авиаперелет "туда" будет подбираться от внешнего поставщика (т.е. в подобранном перелете страна/город отправления и конечная страна/город прибытия будут соответствовать стране/городу отправления и конечной стране/городу прибытия, заведенным в услуге Авиаперелет от внешнего поставщика. Все остальные параметры услуги могут отличаться).
Обратите внимание, что при тестировании функционала нельзя вводить фейковые данные как в тестовых, так и в реальных бронях. За это авиакомпании и GDS назначают штрафы. Обратите внимание, что штрафы назначаются даже если бронирование с фейковыми данными делается на тестовом доступе. Фейковыми данными являются ФИО следующих типов: «test test» «А А» (из одной или двух букв) «1 1» (ФИО цифрами, или в ФИО будет цифра) «АААА1 АААА1» «ААА ВВВ»
При добавлении услуг в состав тура, ценовой пакет (с пометкой внешняя система) и внешний поставщик для выбора появятся только если есть заведенная цена.
Экран поиска авиабилетов, начиная с релиза 15.5
При переходе в корзину по туру, где добавлена услуга Авиаперелет с заведенной ценой на внешнего поставщика, возможны два варианта подбора:
- подбор осуществляется автоматически. Такой вариант подбора происходит, если в программе тура прямой или обратный перелеты заведены только от внешнего поставщика. Пока происходит подбор перелетов от внешнего поставщика в разделе выбора перелета отображается индикатор загрузки.
- подбор перелетов осуществляется по нажатию кнопки Получить другие варианты. Такой вариант подбора происходит в случае, когда в программе тура прямой или обратный перелеты заведены как от внешнего поставщика, так и от поставщика внутри системы (т.е. есть как минимум две группы перелетов). При переходе в корзину, до нажатия кнопки Получить другие варианты отображается перелет (№ рейса, расписание и т.д.) от внутрисистемного поставщика.
В шапке отображаются следующие данные:
- городе, стране вылета
- городе, стране прилета
- дате вылета
- дате возврата
- количестве взрослых/детей (в виде иконок)
- фильтр Класс перелета – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Эконом, Премиум-Эконом, Бизнес, Первый
- Найти – кнопка активна в том случае, если был изменен фильтр Класс перелета. При нажатии отправляется новый поисковый запрос во внешнюю систему и после получения результатов перезагружаются фильтры и результаты выдачи
В фильтрах отображаются следующие данные:
- Багаж – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Все, С багажом, Без багажа
- Пересадки – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Все, Без пересадок, 1 пересадка, 2 и более
- Время вылета/Время в пути – вылет/прилет туда и вылет/прилет обратно, разделенные на четыре диапазона
- Утро (06:00-12:00)
- День (12:00-18:00)
- Вечер (18:00-24:00)
- Ночь (00:00-06:00)
- Время в пути (туда) – диапазон времени в пути для прямых авиаперелетов
- Время в пути (обратно) – диапазон времени в пути для обратных авиаперелетов
- Аэропорты/Авиакомпании
- Аэропорт вылета
- Аэропорт пересадки
- Аэропорт прилета
- Авиакомпании
- Сортировка: – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Сначала дешевые, Сначала быстрые, Оптимальные.
- Сначала дешевые – сортировка по размеру доплаты от меньше к большей (значение по умолчанию)
- Сначала быстрые – сортировка по общей продолжительности авиаперелета туда от меньшей к большей
- Оптимальные – берется целиком вся поисковая выдача, считается среднее арифметическое от всех цен перелетов и среднее арифметическое от времени перелетов. На основе этих средний значений формируется рейтинг каждого отдельного перелета – чем цена перелета ниже относительно средней и чем короче время перелета относительного среднего времени среди всех перелетов – тем он оптимальнее.
Формула рейтинга для каждого перелета:
Рейтинг = (средняя цена на выдаче / цена перелета) х 0.9 + (средняя длительность перелета на выдаче / длительность перелета) х 1.1
В результатах отображаются следующие данные:
- Маршрут – город отправления (код аэропорта города отправления) –> город прибытия (код аэропорта города прибытия)
- Время вылета/прилета
- Рейс
- Класс
- Информация – информация о ручной клади, багаже и тайм-лимите. Тайм-лимит - время для выкупа билета
- Доплата/скидка за авиаперелет
Кнопка , отображается только для перелетов с семействами тарифов.
При нажатии на кнопку появляется ниже название доступных тарифов, размер доплаты или скидки, детализацию по тарифу.
Возле детализации отображаются значки:
- входит в стоимость
- за дополнительную плату
- недоступно
В детализации указывается: Название тарифа, стоимость доплаты или размер скидки, ручная кладь, багаж, выбор места, VIP сервис, программа бонусные милли, питание, возвратность, возможность обмена, ограничения по продажам
Далее после нажатия выбрать тариф доплата/скидка по данному перелету пересчитывается
Подбор перелетов осуществляется таким образом, что прилет или вылет у перелета от внешнего поставщика обязательно будет в тот же день, что и у перелета указанного в программе тура. Также количество промежуточных перелетов может быть больше или вообще их может не быть, обязательным является город/аэропорт вылета и город/аэропорт прилета. Количество свободных мест у выбранного подобранного перелета также берется из внешней системы.
После того, как выбран перелет, в базу данных ПК "Мастер-Тур" записывается информация о расписании выбранных перелетов. Также пересчитывается стоимость всего тура и обновляется информация о перелетах в чеке.
После бронирования пользователь переходит в экран Информация о заказе, где может увидеть всю информацию по своей путевке, включая информацию о тайм-лимите.
Экран поиска авиабилетов, начиная с релиза 15.6 (Canary)
В релизе 15.6 был разработан новый дизайн поиска туров и авиабилетов под названием Canary. Ознакомиться с описанием подбора перелетов от внешнего поставщика приложения Canary можно в соответствующем разделе.
Создание расписания для авиаперелетов из внешней системы
При бронировании путевки с авиаперелетом от внешнего поставщика, система будет создавать новую строку в справочнике Авиаперелеты с единичным расписанием одного перелета по путевке. Новая строка создаваться не будет, если в базе данных уже есть заведенное расписание, даты которого совпадают или включают в себя дату авиаперелета от внешнего поставщика, а также совпадает по времени вылета и прилета. Новое расписание создается без учета типа самолета (то есть, в том случае, если уже была создана строка с авиаперелетом, но с другим типом самолета, то не будет создаваться новая строка авиаперелета, а новая строка расписания будет добавлена к уже существующему авиаперелету).
Например, бронируем авиаперелет Москва - Вена с пересадкой в Варшаве.
Дальше можем наблюдать, что в справочнике Авиаперелеты по рейсу Москва - Варшава было создано новое расписание на дату перелета.
Однако по рейсу Варшава - Вена новая строка не была создана, поскольку в системе уже было заведено расписание, даты которого включают в себя и дату перелета, а также совпадающее по времени вылета и прилета.
Добавление услуги Авиаперелет в уже созданный тур
Возможен вариант добавление услуги Авиаперелет, заведенной от внешнего поставщика, в тур, где уже есть обычная услуга Авиаперелет. В таком случае перелет от внешнего поставщика нужно добавить в новую группу перелетов.
Обработка исключительных ситуаций
- Если из-за технических ошибок бронь выбранной цены на авиаперелет из внешней системы невозможна или по выбранному направлению нет перелетов, то пользователю отобразится сообщение: Мы не смогли актуализировать цену регулярного авиаперелета. Вы можете продолжить бронирование тура. После бронирования тура его стоимость и детали регулярного авиаперелета могут измениться. Наш менеджер свяжется с вами для уточнения деталей. При этом при нажатии на кнопку ОК, пользователь возвращается в экран корзины, где сможет забронировать данный тур с локальным авиаперелетом. После бронирования пользователю на почту придет письмо с указанием: При бронировании рейсов в данном туре есть возможность бронирования удаленных рейсов, но в связи с техническими проблемами были забронированы локальные рейсы, саму ошибку можно найти в логах службы поиска TourSearchOwin.
- Если при выборе цены на авиаперелет из внешней системы случилась ошибка запроса на актуализацию данных, то пользователю отобразится сообщение: Бронирование регулярного авиаперелета по данной цене невозможно, повторите запрос поиска и выберите подходящий вариант.
- У пользователя есть возможность выйти из экрана поиска перелета из внешней системы без выбора цены, вне зависимости от того, является перелет из внешней системы обязательным в туре. Для этого нужно нажать на крестик в правом верхнем углу, после чего пользователю отобразится сообщение: Внимание! Авиаперелет не был выбран! Нажмите "ОК" и повторите подбор с помощью кнопки "Получить другие варианты". В противном случае процесс бронирования тура продолжится без бронирования регулярного авиаперелета. Продолжая бронирование без выбора регулярного авиаперелета, вы соглашаетесь с тем, что стоимость тура и детали авиаперелета могут поменяться после бронирования тура. С вами свяжется наш менеджер для уточнения деталей.
- В случае, если у внешнего адаптера включена настройка Выбирать рейс автоматически, если не выбран пользователем, то при нажатии на крестик в правом верхнем углу пользователю отобразится сообщение: Вы не можете продолжить бронирование тура без выбора регулярного авиаперелета. При закрытии экрана будет автоматически подобран авиаперелет с минимальной стоимостью. После этого автоматически будет выбран перелёт по самой низкой цене из числа доступных.
- Если при поиске цены на авиаперелет из внешней системы, пользователь выбрал перелет с аэропортами вылета и/или прилета, не совпадающими с изначально указанными аэропортами, то пользователю отобразится сообщение: Внимание! Изменились аэропорты вылета/прилета. После бронирования просьба связаться с Вашим менеджером для уточнения деталей по трансферам.
- Если по выбранным фильтрам поиска нет перелетов, однако они имеются по общему направлению, то пользователю отобразится сообщение: Мы нашли N рейса(ов), но ни один не соответствует заданным фильтрам и кнопка "Очистить фильтры", по нажатию на которую все поисковые фильтры сбросятся.
Настройка логирования
Для получения данных о работе внешнего поставщика используется логирование, настройки которого осуществляются в файле Megatec.TourSearchOwin.exe.config папки TourSearchOwin. Путь к папке лог-файлов прописывается в секции Loggers path. Включение логирования осуществляется в секции Logger level. Возможные значения: ALL или OFF.
№ | Название | Описание | Настройка |
---|---|---|---|
1 | Логирование | Разные настройки логирования отвечают за получение разной информации:
|
<Loggers path="Logs\">
<Logger level="ALL" name="GetFlightsRequestResponseLogger"/>
<Logger level="ALL" name="ActualizeFlightsRequestResponseLogger"/>
<Logger level="ALL" name="CreateFlightsReservationRequestResponseLogger"/>
<Logger level="ALL" name="GetFlightsDetailsLogger"/>
</Loggers>
|