Мастер-Тур(15):Программа туров. Внешние системы. Авиа GDS

Материал из Megatec
Версия от 13:28, 13 марта 2020; Biryukov (обсуждение | вклад) (Внешние поставщики)
Перейти к: навигация, поиск

Версия статьи от 13-03-2020.

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


Введение

На страницу Внешние системы можно попасть из меню турпрограмм (ссылка на страницу http://ip-адрес сервера/TourPrograms/ExternalSystems). Также на страницу Внешние системы можно попасть с любой страницы, перейдя в Меню → Внешние системы.

Работа в экране «Внешние системы»

Страница Внешние системы представлена двумя вкладками:

  • Внешние поставщики – где происходит создание и редактирование пользователей системы;
  • Синхронизация – где осуществляется работа по сопоставлению данных из внешней системы.

Внешние поставщики

На вкладке Внешние поставщики представлен список поставщиков. Для каждого поставщика указан:

  • Название
  • Адаптер
  • Адрес API
  • Срок действия лицензии

Внешние поставщики

Любого поставщика можно отредактировать, выбрав по названию. Также можно добавить нового, нажав кнопку Добавить.

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

Список полей для заполнения ( * – обязательное):

  • Адаптер * – выбирается из списка
  • Название * – название поставщика
  • API адрес * – должен быть представлен в виде http(s)://domain(.ru)(:9999)(/something)
  • Авторизационный токен * – ключ доступа к серверу, по которому будет происходить подключение к внешнему поставщику
  • ID клиента * – id поставщика во внешней системе (предоставляется вместе с авторизационным токеном)
  • ID агентства – id агентства во внешней системе (предоставляется вместе с авторизационным токеном)

Подключение к API адресу внешнего поставщика можно проверить по нажатию на кнопку Проверить подключение. Система производит пробное подключение к API и проверяет его доступность.

При сохранении внешнего поставщика в БД автоматически создается ценовой пакет и поставщик с названием, 
которое было введено при создании поставщика, в скобках указывается (внешняя система). Это необходимо для того, 
чтобы была возможность внести стоимость услуги, по которой будет работать поиск (при условии, что разрешается 
только бронирование услуги из внешней системы).

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

Начиная с релиза 15.5 добавлена возможность задавать значения фильтров для поиска по умолчанию.
Все значения фильтров для поиска по умолчанию применяются сразу, без перезагрузки службы поиска.

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

  • Багаж – все, багаж и ручная кладь, без багажа. Значение по умолчанию – все.
  • Класс авиаперелета – эконом, премиум-эконом, бизнес, первый. Значение по умолчанию – эконом.
  • Пересадки – все, без пересадок, 1 пересадка, 2 и более. Значение по умолчанию – без пересадок.
  • Сортировка – сначала дешевые, сначала быстрые, оптимальные. Значение по умолчанию – сначала дешевые.
    • сначала дешевые – сортировка по размеру доплаты от меньше к большей
    • сначала быстрые – сортировка по общей продолжительности авиаперелета туда от меньшей к большей
    • оптимальные – берется целиком вся поисковая выдача, считается среднее арифметическое от всех цен перелетов и среднее арифметическое от времени перелетов. На основе этих средних значений формируется рейтинг каждого отдельного перелета: чем цена перелета ниже относительно средней –> чем короче время перелета относительного среднего времени среди всех перелетов –> тем он оптимальнее. Точная формула рейтинга для каждого перелета такая: Рейтинг = (средняя цена на выдаче / цена перелета) х 0.9 + (средняя длительность перелета на выдаче / длительность перелета) х 1.1
  • Обновление цен – отвечает за включение/выключение механизма сохранения цен. По умолчанию признак выключен. Механизм обновления цен будет работать только для туров, у которых в настройках тура выбран признак «Применять комиссии, наценки и доплаты к услуге от внешнего поставщика». Более детальное описание механизма сохранения цен.
    • Багаж – все, багаж и ручная кладь, без багажа. Значение по умолчанию – все. Возможен множественный выбор.
    • Пересадки – все, без пересадок, 1 пересадка, 2 и более. Значение по умолчанию – без пересадок. Возможен множественный выбор.

Синхронизация

Предупреждение


Для работы с внешними системами в папку \\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.4 включительно

Пример тура в поиске

В шапке отображаются следующие данные:

  • городе, стране вылета
  • городе, стране прилета
  • дате вылета
  • дате прилета
  • количестве взрослых/детей (в виде иконок)
  • Обновить – при нажатии еще раз отправляется запрос во внешнюю систему с учетом отобранных фильтров

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

  • Багаж – по умолчанию выбрано значение Все. Доступные значения: Все, С багажом, Без багажа
  • Класс авиаперелета – по умолчанию выбрано значение Эконом. Доступные значения: Все, Эконом, Бизнес, Первый
  • Пересадки – по умолчанию значение Без пересадок. Доступные значения: Все, Без пересадок, 1 пересадка, 2 и более
  • Результатов не более – по умолчанию выбрано значение 50. Доступные значения: Все, 50, 100, 500
  • Время вылета – вылет/прилет туда и вылет/прилет обратно, разделенные на четыре диапазона
    • Утро (06:00-12:00)
    • День (12:00-18:00)
    • Вечер (18:00-24:00)
    • Ночь (00:00-06:00)
  • Аэропорты/Авиакомпании
    • Аэропорт вылета
    • Аэропорт пересадки
    • Аэропорт прилета
    • Авиакомпании

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

  • Маршрут – город отправления (код аэропорта города отправления) –> город прибытия (код аэропорта города прибытия)
  • Время вылета/прилета
  • Рейс
  • Класс
  • Багаж
  • Стоимость

Экран поиска авиабилетов, начиная с релиза 15.5

В шапке отображаются следующие данные:

  • городе, стране вылета
  • городе, стране прилета
  • дате вылета
  • дате возврата
  • количестве взрослых/детей (в виде иконок)
  • фильтр Класс перелета – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Эконом, Премиум-Эконом, Бизнес, Первый
  • Найти – кнопка активна в том случае, если был изменен фильтр Класс перелета. При нажатии отправляется новый поисковый запрос во внешнюю систему и после получения результатов перезагружаются фильтры и результаты выдачи

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

  • Багаж – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Все, С багажом, Без багажа
  • Пересадки – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Все, Без пересадок, 1 пересадка, 2 и более
  • Время вылета/Время в пути – вылет/прилет туда и вылет/прилет обратно, разделенные на четыре диапазона
    • Утро (06:00-12:00)
    • День (12:00-18:00)
    • Вечер (18:00-24:00)
    • Ночь (00:00-06:00)
    • Время в пути (туда) – диапазон времени в пути для прямых авиаперелетов
    • Время в пути (обратно) – диапазон времени в пути для обратных авиаперелетов
  • Аэропорты/Авиакомпании
    • Аэропорт вылета
    • Аэропорт пересадки
    • Аэропорт прилета
    • Авиакомпании
  • Сортировка: – по умолчанию выбрано то, что задано в настройках адаптера. Доступные значения: Сначала дешевые, Сначала быстрые, Оптимальные.
    • Сначала дешевые – сортировка по размеру доплаты от меньше к большей (значение по умолчанию)
    • Сначала быстрые – сортировка по общей продолжительности авиаперелета туда от меньшей к большей
    • Оптимальные – берется целиком вся поисковая выдача, считается среднее арифметическое от всех цен перелетов и среднее арифметическое от времени перелетов. На основе этих средний значений формируется рейтинг каждого отдельного перелета – чем цена перелета ниже относительно средней и чем короче время перелета относительного среднего времени среди всех перелетов – тем он оптимальнее.
      Формула рейтинга для каждого перелета:
      Рейтинг = (средняя цена на выдаче / цена перелета) х 0.9 + (средняя длительность перелета на выдаче / длительность перелета) х 1.1

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

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

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

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

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

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

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

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

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

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

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

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

Jk 211.png

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

Для получения данных о работе внешнего поставщика используется логирование, настройки которого осуществляются в файле 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>