Мастер-Тур(15):Программа туров. Внешние системы. Авиа GDS — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Синхронизация)
(Синхронизация)
Строка 65: Строка 65:
 
[[Файл:am_063.png|left|Предупреждение]]<br>
 
[[Файл:am_063.png|left|Предупреждение]]<br>
 
  Для работы с внешними системами в папку ''\\TourPrograms\bin'' нужно добавить файл '''nemo_guide_etalon.s3db'''.
 
  Для работы с внешними системами в папку ''\\TourPrograms\bin'' нужно добавить файл '''nemo_guide_etalon.s3db'''.
  Также файл '''nemo_guide_etalon.s3db''' нужно добавить в папку ''\\TourSearchOwin''. <br/>
+
  Также файл '''nemo_guide_etalon.s3db''' нужно добавить в папку ''\\TourSearchOwin''.
 
  Либо использовать настройку ''Путь к папке с файлом базы данных авиа GDS'' в [[Мастер-Тур(15):Программа туров. Панель администрирования#Общие настройки|панели администрирования]]
 
  Либо использовать настройку ''Путь к папке с файлом базы данных авиа GDS'' в [[Мастер-Тур(15):Программа туров. Панель администрирования#Общие настройки|панели администрирования]]
  

Версия 14:16, 3 февраля 2021

Версия статьи от 3-02-2021.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с 15 версии
Доступна с релиза 15.2


Введение

На страницу Внешние системы можно попасть из меню турпрограмм (ссылка на страницу 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.
Либо использовать настройку Путь к папке с файлом базы данных авиа GDS в панели администрирования


Синхронизация служит для сопоставления справочных данных из внешней системы со справочными данными, указанными в ПК Мастер-Тур. Для того, чтобы начать работу, нужно выбрать необходимые данные:

  • В списке Поставщик выбираем интересующего поставщика (в списке отображаются названия поставщиков, созданные на вкладке внешние поставщики)
  • В списке Справочник выбираем необходимый справочник

Новый поставщик

Слева отображаются справочные данные внешней системы. Справа отображаются справочные данные из ПК Мастер-Тур.
Данные, которые сопоставлены - подсвечены черным цветом. Не сопоставленные данные подсвечены красным цветом. Существует возможность фильтрации справочных данных по статусу (Сопоставлен или Не сопоставлен) и поиска по названию.
В блоке Сопоставленные данные отображаются сопоставленные данные по выбранным элементам в левой или/и правой частях. Отображаемые данные сортируются по алфавиту. Данные можно сопоставлять и удалять сопоставление:

  • Если нужно удалить сопоставление, можно воспользоваться кнопкой Удалить после нажатия данные станут не сопоставленными и подсвечены красным цветом. Если есть связанные сопоставления с удаляемой записью (к примеру, Страна->Город), то связанные сопоставления также будут удалены;
  • Если нужно данные сопоставить, то есть два варианта:
    • Точечное сопоставление - т.е. нужно выбрать не сопоставленное значение (подсвеченное красным цветом) в левой части и аналогичное ему значение в правой части (или то значение, которое должно быть сопоставлено). После того как значения выбраны, станет активной кнопка Сопоставить. Нажимаем кнопку, данные станут сопоставленными и подсвечены черным цветом
    • Автоматическое сопоставление - при нажатии кнопки Автоматическое сопоставление запускается процесс автоматического сопоставления справочников. Для авиаперелетов сопоставляются только следующие справочники:
      • Страна (по названию)
      • Город (по названию и стране)
      • Авиакомпания (по коду)
      • Тип самолета (по коду)
      • Аэропорт (по стране и городу)

Работа в системе

После того, как создан внешний поставщик и данные из внешней системы синхронизированы с данными ПК "Мастер-Тур", нужно создать тур, в который будут добавлены услуги от внешнего поставщика. Рассмотрим на примере создания тура, в котором содержатся три услуги – Авиаперелет туда (этот авиаперелет будет подбираться из внешней системы), Отель/круиз, Авиаперелет обратно:

Создание услуг и внесение цены

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

В результатах отображаются следующие данные:

  • Маршрут – город отправления (код аэропорта города отправления) –> город прибытия (код аэропорта города прибытия)
  • Время вылета/прилета
  • Рейс
  • Класс
  • Информация – информация о ручной клади, багаже и тайм-лимите. Тайм-лимит - время для выкупа билета
  • Доплата/скидка за авиаперелет

Кнопка Сменить тариф, отображается только для перелетов с семействами тарифов.
При нажатии на кнопку появляется ниже название доступных тарифов, размер доплаты или скидки, детализацию по тарифу.
Выбор тарифа
Возле детализации отображаются значки:
IA 1.png - входит в стоимость
IA 2.png - за дополнительную плату
IA 3.png - недоступно
В детализации указывается: Название тарифа, стоимость доплаты или размер скидки, ручная кладь, багаж, выбор места, VIP сервис, программа бонусные милли, питание, возвратность, возможность обмена, ограничения по продажам
Далее после нажатия выбрать тариф доплата/скидка по данному перелету пересчитывается

Подобранные перелеты

Подбор перелетов осуществляется таким образом, что прилет или вылет у перелета от внешнего поставщика обязательно будет в тот же день, что и у перелета указанного в программе тура. Также количество промежуточных перелетов может быть больше или вообще их может не быть, обязательным является город/аэропорт вылета и город/аэропорт прилета. Количество свободных мест у выбранного подобранного перелета также берется из внешней системы.
После того, как выбран перелет, в базу данных ПК "Мастер-Тур" записывается информация о расписании выбранных перелетов. Также пересчитывается стоимость всего тура и обновляется информация о перелетах в чеке.
После бронирования пользователь переходит в экран Информация о заказе, где может увидеть всю информацию по своей путевке, включая информацию о тайм-лимите.

Экран поиска авиабилетов, начиная с релиза 15.6 (Canary)

В релизе 15.6 был разработан новый дизайн поиска туров и авиабилетов под названием Canary. Ознакомиться с описанием подбора перелетов от внешнего поставщика приложения Canary можно в соответствующем разделе.

Подобранные перелеты

Создание расписания для авиаперелетов из внешней системы

При бронировании путевки с авиаперелетом от внешнего поставщика, система будет создавать новую строку в справочнике Авиаперелеты с единичным расписанием одного перелета по путевке. Новая строка создаваться не будет, если в базе данных уже есть заведенное расписание, даты которого совпадают или включают в себя дату авиаперелета от внешнего поставщика, а также совпадает по времени вылета и прилета. Новое расписание создается без учета типа самолета (то есть, в том случае, если уже была создана строка с авиаперелетом, но с другим типом самолета, то не будет создаваться новая строка авиаперелета, а новая строка расписания будет добавлена к уже существующему авиаперелету).

Например, бронируем авиаперелет Москва - Вена с пересадкой в Варшаве.

Пример авиаперелета

Дальше можем наблюдать, что в справочнике Авиаперелеты по рейсу Москва - Варшава было создано новое расписание на дату перелета.

Создание новой строки в справочнике Авиаперелетов

Однако по рейсу Варшава - Вена новая строка не была создана, поскольку в системе уже было заведено расписание, даты которого включают в себя и дату перелета, а также совпадающее по времени вылета и прилета.

Создание новой строки в справочнике Авиаперелетов

Добавление услуги Авиаперелет в уже созданный тур

Возможен вариант добавление услуги Авиаперелет, заведенной от внешнего поставщика, в тур, где уже есть обычная услуга Авиаперелет. В таком случае перелет от внешнего поставщика нужно добавить в новую группу перелетов.

Jk 211.png

Обработка исключительных ситуаций

  • Если из-за технических ошибок бронь выбранной цены на авиаперелет из внешней системы невозможна или по выбранному направлению нет перелетов, то пользователю отобразится сообщение: Мы не смогли актуализировать цену регулярного авиаперелета. Вы можете продолжить бронирование тура. После бронирования тура его стоимость и детали регулярного авиаперелета могут измениться. Наш менеджер свяжется с вами для уточнения деталей. При этом при нажатии на кнопку ОК, пользователь возвращается в экран корзины, где сможет забронировать данный тур с локальным авиаперелетом. После бронирования пользователю на почту придет письмо с указанием: При бронировании рейсов в данном туре есть возможность бронирования удаленных рейсов, но в связи с техническими проблемами были забронированы локальные рейсы, саму ошибку можно найти в логах службы поиска TourSearchOwin.

Техническая ошибка при поиске

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

Ошибка запроса на актуализацию данных

  • У пользователя есть возможность выйти из экрана поиска перелета из внешней системы без выбора цены, вне зависимости от того, является перелет из внешней системы обязательным в туре. Для этого нужно нажать на крестик в правом верхнем углу, после чего пользователю отобразится сообщение: Внимание! Авиаперелет не был выбран! Нажмите "ОК" и повторите подбор с помощью кнопки "Получить другие варианты". В противном случае процесс бронирования тура продолжится без бронирования регулярного авиаперелета. Продолжая бронирование без выбора регулярного авиаперелета, вы соглашаетесь с тем, что стоимость тура и детали авиаперелета могут поменяться после бронирования тура. С вами свяжется наш менеджер для уточнения деталей.

Выход из экрана поиска

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

Автоматическое бронирование

  • Если при поиске цены на авиаперелет из внешней системы, пользователь выбрал перелет с аэропортами вылета и/или прилета, не совпадающими с изначально указанными аэропортами, то пользователю отобразится сообщение: Внимание! Изменились аэропорты вылета/прилета. После бронирования просьба связаться с Вашим менеджером для уточнения деталей по трансферам.

Изменение аэропортов вылета/прилета

  • Если по выбранным фильтрам поиска нет перелетов, однако они имеются по общему направлению, то пользователю отобразится сообщение: Мы нашли N рейса(ов), но ни один не соответствует заданным фильтрам и кнопка "Очистить фильтры", по нажатию на которую все поисковые фильтры сбросятся.

Отсутствие цен по выбранным фильтрам

Настройка логирования

Для получения данных о работе внешнего поставщика используется логирование, настройки которого осуществляются в файле Megatec.TourSearchOwin.exe.config папки TourSearchOwin. Путь к папке лог-файлов прописывается в секции Loggers path. Включение логирования осуществляется в секции Logger level. Возможные значения: ALL или OFF.

Название Описание Настройка
1 Логирование Разные настройки логирования отвечают за получение разной информации:
  • GetFlightsRequestResponseLogger – включает получение информации об авиаперелетах при переходе в корзину (поиск)
  • ActualizeFlightsRequestResponseLogger – включает получение информации о выбранном авиаперелете (актуализация)
  • CreateFlightsReservationRequestResponseLogger – включает получение информации о бронировании
  • GetFlightsDetailsLogger – включает получение информации об ошибках, возникающих при работе с внешним поставщиком
  <Loggers path="Logs\">
    <Logger level="ALL" name="GetFlightsRequestResponseLogger"/> 
    <Logger level="ALL" name="ActualizeFlightsRequestResponseLogger"/>
    <Logger level="ALL" name="CreateFlightsReservationRequestResponseLogger"/>
    <Logger level="ALL" name="GetFlightsDetailsLogger"/>
  </Loggers>