Вебскай Коллеги

Материал из Центр поддержки системы бронировании
Версия от 10:56, 20 июля 2023; D.tsyplakova (обсуждение | вклад) (Ручной импорт)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

О модуле

Модуль Вебскай Коллеги системы позволяет производить дозагрузку авиарейсов путем предоставления сотрудникам авиакомпаний возможности приобретения билетов по льготным тарифам, как с подтвержденным местом, так и без подтвержденного места. Конечные пользователи Системы - сотрудники авиакомпаний и их родственники (далее попутчики).

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

Функционал выполняется в виде подключаемого модуля Nemo.Travel. В панели управления для него присутствуют дополнительные настройки.

Принцип работы

В систему загружается список сотрудников и аффилированных с ними лиц.

Сотрудник может зарегистрироваться в системе самостоятельно, правильно указав свои данные.

Перейдя по ссылке из почты, сотрудник обязан установить пароль учетной записи.

В своем профиле он может увидеть данные своих попутчиков.

При поиске билетов в поисковой выдаче помимо обычных “коммерческих” билетов будет присутствовать выдача рейсов по специальным (дисконтированным) тарифам, а также тарифы без гарантированного предоставления мест (на подсадку). Купив такой билет человек приезжает в аэропорт, где при наличии свободных мест в самолете и с учетом его очереди на подсадку он допускается или не допускается к полету. Возврат билета производит авиакомпания самостоятельно согласно своему регламенту.

При бронировании билета сотрудник может выбрать только из загруженного в систему Вебскай Коллеги списка пассажиров.

Конфигурация

После включения модуля необходимо настроить ряд параметров

Вебскай Коллеги общие настройки.png

API Key — nокен для автоматизированного импорта списка сотрудников и их родственников в формате JSON

Уникальный ID для группировки сотрудников и их попутчиков — тут необходимо выбрать поле, которое в списках сотрудников признаком принадлежности родственника (попутчика) к сотруднику. Например у них будет одинаковый GUID или EmployeeID.

Дополнительные в ФИО поля для генерации уникального ID записи — выбираются поля, которые позволяет отличать полных тёзок друг от друга. Они используются для генерации уникального ID пользователя. Эти данные обязательно должны приходить в списке сотрудников. Если меняется ФИО или один из этих параметров в файле загрузки, то сотрудник или попутчик будет считаться новым человеком. Если изменятся другие данные, то они обновятся у существующего человека.

Поля сотрудника для формы регистрации — именно эти поля будут запрашиваться и проверяться при регистрации сотрудника в системе. Если хотя бы одно не совпадет, в регистрации будет отказано. Эти поля обязательно должны быть переданы в списке сотрудников.

Вебскай Коллеги Форма регистрации.png

Типы пассажиров для переопределения при поиске рейсов на подсадку — указываются спецкатегории пассажиров, которые являются признаками того, что тариф является тарифом на подсадку.

Код авиакомпании — импортированные сотрудники будут считаться сотрудниками авиакомпании с этим кодом. У них будет более высокий приоритет на подсадку на рейс “своей” авиакомпании.

Дополнительные действия по настройке

- Сгенерировать токен для импорта по API, указать белый список серверов‎
- Отключить лишние компоненты‎
- Выключить регистрацию юрлиц‎
- Выключить доступ к бронированию для анонимов‎
- Настроить почтовый сервер‎
- Настроить шаблоны писем‎
- Включить новый вид страницы бронирования‎
- Отключить блок данных покупателя‎
- Добавить контактные данные для пассажиров‎
- Настроить платежный шлюз‎
- Настроить столбцы в личном кабинете‎
- Настроить пакеты реквизитов для поиска дисконтированных и мест на подсадку‎
- заполнить правила бронирования и права субъектов персональных данных‎
- Скрыть комиссию субагента‎

Импорт сотрудников

Путем регулярного импорта формируется и поддерживается в актуальном виде список Пользователей, которые имеют доступ к бронированию без места и билетов по специальному тарифу для сотрудников группы компаний. В список также вносится список родственников, на имя которых Пользователь может бронировать билеты. В систему загружается список сотрудников целиком. Если требуется удалить сотрудника, то в новом списке сотрудников не должно быть данных этого сотрудника.

Автоматизированный импорт

Для импорта списка сотрудников, система Авиакомпании отправляет запрос, содержащий данные сотрудников в формате JSON по адресу `HOSTNAME/api__airline_employee_upload`

- Пример данных

   ```json
   [
       {
           "GUID": 0,
           "LastName": "Lennon",
           "FirstName": "John",
           "MiddleNameEng": null,
           "BirthDay": "09.11.1940",
           "Sex": "M",
           "DateOfEmployment": "09.11.1980",
           "EmployeeID": 884220062,
           "IsEmployee": 1,
           "CategoryCode": 5,
           "MiddleName": null,
           "LastNameEng": "Lennon",
           "FirstNameEng": "John",
           "Email": "it@websky.tech",
           "RelationDegree": null
       },
       {
           "GUID": 1,
           "LastName": "Yoko",
           "FirstName": "Ono",
           "MiddleNameEng": null,
           "BirthDay": "18.02.1933",
           "Sex": "F",
           "DateOfEmployment": null,
           "EmployeeID": 884220062,
           "IsEmployee": 0,
           "CategoryCode": 1,
           "MiddleName": null,
           "LastNameEng": "Yoko",
           "FirstNameEng": "Ono",
           "Email": null,
           "RelationDegree": "wife"
       },
       {
           "GUID": 2,
           "LastName": "McCartney",
           "FirstName": "Paul",
           "MiddleNameEng": null,
           "BirthDay": "18.06.1942",
           "Sex": "M",
           "DateOfEmployment": null,
           "EmployeeID": 884220062,
           "IsEmployee": 0,
           "CategoryCode": 1,
           "MiddleName": null,
           "LastNameEng": "McCartney",
           "FirstNameEng": "Paul",
           "Email": "pmc@beatles.com",
           "RelationDegree": null
       },
       {
           "GUID": 3,
           "LastName": "Harrison",
           "FirstName": "George",
           "MiddleNameEng": null,
           "BirthDay": "25..02.1943",
           "Sex": "M",
           "DateOfEmployment": null,
           "EmployeeID": 884220062,
           "IsEmployee": 0,
           "CategoryCode": 1,
           "MiddleName": null,
           "LastNameEng": "Harrison",
           "FirstNameEng": "George",
           "Email": null,
           "RelationDegree": null
       },
       {
           "GUID": 4,
           "LastName": "Starkey",
           "FirstName": "Richard",
           "MiddleNameEng": null,
           "BirthDay": "07.07.1940",
           "Sex": "M",
           "DateOfEmployment": null,
           "EmployeeID": 884220062,
           "IsEmployee": 0,
           "CategoryCode": 1,
           "MiddleName": null,
           "LastNameEng": "Starr",
           "FirstNameEng": "Ringo",
           "Email": null,
           "RelationDegree": null
       }
   ]
   ```
   

В случае ошибок обмена, возвращается сообщение об ошибке

- Пример ответа

   ```json
   {
    "status": "Error",
    "error_msg": "Has invalid records",
    "input_records_count": 5,
    "imported_total": 0,
    "employees_imported": 0,
    "companions_imported": 0,
    "invalid_records": [
     {
      "record": {
       "GUID": 1,
       "LastName": "Yoko",
       "FirstName": "Ono",
       "BirthDay": "18.32.1933",
       "Sex": "F",
       "EmployeeID": 884220062,
       "IsEmployee": 0,
       "CategoryCode": "1",
       "LastNameEng": "Yoko",
       "FirstNameEng": "Ono"
      },
      "error": "Invalid date 18.32.1933, the format is d.m.Y"
     },
     {
      "record": {
       "GUID": 2,
       "LastName": "McCartney",
       "FirstName": "Paul",
       "BirthDay": "18.06.1942",
       "Sex": "M",
       "IsEmployee": 0,
       "CategoryCode": "1",
       "LastNameEng": "McCartney",
       "FirstNameEng": "Paul",
       "Email": "pmc@beatles.com"
      },
      "error": "No GUID field found: EmployeeID"
     }
    ]
   }
   ```
   

Также вместо JSON можно передать XLS файл (см. Ручной импорт)

Белый список адресов серверов, отправляющих данные сотрудников и Bearer Token авторизации предоставляется Технической поддержкой.

Caption text
Наименование параметра Назначение Тип данных Комментарий
GUID Уникальный идентификатор пользователя системы Строка идентификатор присваиваемый в сторонней системе
LastName Фамилия на родном языке Строка не более 30 символов
FirstName Отчество на родном языке, при наличии Строка не более 30 символов
Email Email Строка соответствует формату email
LastNameEng Фамилия Строка Латиница, не более 30 символов, написание должно совпадать с написанием в загранпаспорте
FirstNameEng Имя Строка Латиница, не более 30 символов, написание должно совпадать с написанием в загранпаспорте
MiddleNameEng Отчество, при наличии Строка Латиница, не более 30 символов, написание должно совпадать с написанием в загранпаспорте
BirthDay Дата рождения Дата В формате ДД.ММ.ГГГГ
Sex Пол Символ Значения поля: «M», «F»
DateOfEmployment Дата трудоустройства Дата В формате ДД.ММ.ГГГГ Для родственников сотрудника указывается такое же значение, как и для сотрудника
EmployeeID Табельный номер Строка Строка не более 10 символов/ Для попутчиков сотрудника указывается такое же значение, как и для сотрудника.
IsEmployee Признак сотрудник (1) или попутчик (0) Логический Битовое (0,1) непустое поле
CategoryCode Категория сотрудника Целое число Число от 0 до 9. Чем он меньше, тем более приоритетный сотрудник.

Ручной импорт

Менеджер может в Панели управления (Настройки системы → Интеграция → Airline Staff ID, по адресу /settings__airline_staff_id_employee_import) загрузить XLS файл с данными сотрудников.

Пример файла: Airline Staff.png

Система не удаляет, но блокирует учетные записи сотрудников, удаленных из списка сотрудников.

Если при анализе нового списка сотрудников выясняется, что в списке присутствует сотрудник, для которого учетная запись существует, но она заблокирована, то такая учетная запись будет автоматически разблокирована.

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

Регистрация

Особенность процесса регистрации в системе заключается в том, что зарегистрироваться может только сотрудник из списка, полученного при импорте.

При первоначальном входе в систему сотрудник должен перейти на форму регистрации по кнопку в правом верхнем углу, ввести поля для проверки данных. Email является обязательным полем. Система проверяет, что есть такой сотрудник в списке и что все поля совпадают с имеющимися в системе, то отправляет на почту ссылку для входа. При первом входе сотруднику необходимо будет сменить пароль. Логином становится email. После этого пользователь может войти в систему с новым паролем.

Вебскай Коллеги Форма регистрации1.png

При создании пароля пользователем, к паролю предъявляются требования, установленные для пользователей системы Nemo.Travel. Частота смены пароля не регламентируется.

Покупка билета

Сотруднику после авторизации доступна покупка авиабилетов. Поиск осуществляется в соответствии с настройками реквизитов среди рейсов на подсадку и рейсов со свободными местами. В интерфейсе рейсы на подсадку маркируются рамкой и указывается предполагаемая очередь на подсадку.

На странице ввода пассажирских данных еще раз выводится очередь на подсадку

Вебскай Коллеги Очередь на подсадку.png

На странице бронирования пользователь может выбрать только заранее добавленных в систему пассажиров — себя, либо своих попутчиков. При попытке изменить данные он получит ошибку.

Вебскай Коллеги Выбор пассажира.png

Просмотр бронирований

Пользователь в Личном кабинете может видеть все свои бронирования, как на себя, так и на попутчиков.

Вебскай Коллеги Просмотр бронирований.png

Просмотр попутчиков

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

Вебскай Коллеги Просмотр попутчиков.png

Алгоритм определения места в очереди на подсадку

Рейс идентифицируется по оперирующему перевозчику, номеру рейса и дате рейса. Для определения места Пассажира в очереди на посадку при бронировании билета без места, система учитывает в порядки убывания значимости:

- принадлежность сотрудника к авиакомпании, выполняющей перевозку‎
- класс бронирования (бизнес идёт первым)‎
- код приоритета обслуживания (чем меньше – тем выше в очереди.) Регулируется со стороны авиакомпании и передается в списке сотрудников.‎
- дата трудоустройства (чем больше стаж, тем выше приоритет)‎
- дата и время бронирования (кто раньше завершил бронирование – тот идёт первым)‎