Содержание
О модуле
Модуль Вебскай Коллеги системы позволяет производить дозагрузку авиарейсов путем предоставления сотрудникам авиакомпаний возможности приобретения билетов по льготным тарифам, как с подтвержденным местом, так и без подтвержденного места. Конечные пользователи Системы - сотрудники авиакомпаний и их родственники (далее попутчики).
Возможность приобретения льготных авиабилетов обычно является частью мотивационного пакета сотрудников авиакомпаний.
Функционал выполняется в виде подключаемого модуля Nemo.Travel. В панели управления для него присутствуют дополнительные настройки.
Принцип работы
В систему загружается список сотрудников и аффилированных с ними лиц.
Сотрудник может зарегистрироваться в системе самостоятельно, правильно указав свои данные.
Перейдя по ссылке из почты, сотрудник обязан установить пароль учетной записи.
В своем профиле он может увидеть данные своих попутчиков.
При поиске билетов в поисковой выдаче помимо обычных “коммерческих” билетов будет присутствовать выдача рейсов по специальным (дисконтированным) тарифам, а также тарифы без гарантированного предоставления мест (на подсадку). Купив такой билет человек приезжает в аэропорт, где при наличии свободных мест в самолете и с учетом его очереди на подсадку он допускается или не допускается к полету. Возврат билета производит авиакомпания самостоятельно согласно своему регламенту.
При бронировании билета сотрудник может выбрать только из загруженного в систему Вебскай Коллеги списка пассажиров.
Конфигурация
После включения модуля необходимо настроить ряд параметров
API Key — nокен для автоматизированного импорта списка сотрудников и их родственников в формате JSON
Уникальный ID для группировки сотрудников и их попутчиков — тут необходимо выбрать поле, которое в списках сотрудников признаком принадлежности родственника (попутчика) к сотруднику. Например у них будет одинаковый GUID или EmployeeID.
Дополнительные в ФИО поля для генерации уникального ID записи — выбираются поля, которые позволяет отличать полных тёзок друг от друга. Они используются для генерации уникального ID пользователя. Эти данные обязательно должны приходить в списке сотрудников. Если меняется ФИО или один из этих параметров в файле загрузки, то сотрудник или попутчик будет считаться новым человеком. Если изменятся другие данные, то они обновятся у существующего человека.
Поля сотрудника для формы регистрации — именно эти поля будут запрашиваться и проверяться при регистрации сотрудника в системе. Если хотя бы одно не совпадет, в регистрации будет отказано. Эти поля обязательно должны быть переданы в списке сотрудников.
Типы пассажиров для переопределения при поиске рейсов на подсадку — указываются спецкатегории пассажиров, которые являются признаками того, что тариф является тарифом на подсадку.
Код авиакомпании — импортированные сотрудники будут считаться сотрудниками авиакомпании с этим кодом. У них будет более высокий приоритет на подсадку на рейс “своей” авиакомпании.
Дополнительные действия по настройке
- Сгенерировать токен для импорта по 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 авторизации предоставляется Технической поддержкой.
Наименование параметра | Назначение | Тип данных | Комментарий |
---|---|---|---|
GUID | Уникальный идентификатор пользователя системы | Строка | идентификатор присваиваемый в сторонней системе |
LastName | Фамилия на родном языке | Строка | не более 30 символов |
FirstName | Отчество на родном языке, при наличии | Строка | не более 30 символов |
Строка | соответствует формату 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 файл с данными сотрудников.
Система не удаляет, но блокирует учетные записи сотрудников, удаленных из списка сотрудников.
Если при анализе нового списка сотрудников выясняется, что в списке присутствует сотрудник, для которого учетная запись существует, но она заблокирована, то такая учетная запись будет автоматически разблокирована.
Если в данных сотрудника изменились данные за исключением тех, которые в соответствии с настройками определяют уникальность сотрудника или его попутчика, то запись человека будет обновлена.
Регистрация
Особенность процесса регистрации в системе заключается в том, что зарегистрироваться может только сотрудник из списка, полученного при импорте.
При первоначальном входе в систему сотрудник должен перейти на форму регистрации по кнопку в правом верхнем углу, ввести поля для проверки данных. Email является обязательным полем. Система проверяет, что есть такой сотрудник в списке и что все поля совпадают с имеющимися в системе, то отправляет на почту ссылку для входа. При первом входе сотруднику необходимо будет сменить пароль. Логином становится email. После этого пользователь может войти в систему с новым паролем.
При создании пароля пользователем, к паролю предъявляются требования, установленные для пользователей системы Nemo.Travel. Частота смены пароля не регламентируется.
Покупка билета
Сотруднику после авторизации доступна покупка авиабилетов. Поиск осуществляется в соответствии с настройками реквизитов среди рейсов на подсадку и рейсов со свободными местами. В интерфейсе рейсы на подсадку маркируются рамкой и указывается предполагаемая очередь на подсадку.
На странице ввода пассажирских данных еще раз выводится очередь на подсадку
На странице бронирования пользователь может выбрать только заранее добавленных в систему пассажиров — себя, либо своих попутчиков. При попытке изменить данные он получит ошибку.
Просмотр бронирований
Пользователь в Личном кабинете может видеть все свои бронирования, как на себя, так и на попутчиков.
Просмотр попутчиков
Пользователь в Личном кабинете может видеть информацию о попутчиках, загруженных в систему. Возможность добавлять в Личном кабинете новых Попутчиков и полностью удалять существующих не предоставляется.
Алгоритм определения места в очереди на подсадку
Рейс идентифицируется по оперирующему перевозчику, номеру рейса и дате рейса. Для определения места Пассажира в очереди на посадку при бронировании билета без места, система учитывает в порядки убывания значимости:
- принадлежность сотрудника к авиакомпании, выполняющей перевозку
- класс бронирования (бизнес идёт первым)
- код приоритета обслуживания (чем меньше – тем выше в очереди.) Регулируется со стороны авиакомпании и передается в списке сотрудников.
- дата трудоустройства (чем больше стаж, тем выше приоритет)
- дата и время бронирования (кто раньше завершил бронирование – тот идёт первым)