Nemo Inventory (компонент): различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
м (Тариф)
(Изменение расписания)
 
(не показано 26 промежуточных версий 3 участников)
Строка 51: Строка 51:
 
* такса.
 
* такса.
  
== Управление контентом ==
+
== Раздел «Управление контентом» ==
  
Раздел '''Управление контентом''' представляет собой форму для импорта и экспорта данных в формате XLS.
+
В этом разделе вы можете работать с контентом: загружать его в систему и экспортировать для последующего редактирования.
  
 
=== Подготовка данных к загрузке ===
 
=== Подготовка данных к загрузке ===
Строка 258: Строка 258:
 
|-
 
|-
 
| <span id="дней между">дней между</span>
 
| <span id="дней между">дней между</span>
| Допустимое количество дней между каждой подряд идущей парой рейсов в комбинации. Если не задано, то между парами рейсов может быть любая длительность. Несколько значений указываются через <code>;</code><br/>
+
| Допустимое количество дней между соседними рейсами в комбинации. Если не задано, то между соседними рейсами может быть любая длительность. Несколько значений указываются через <code>;</code><br/>'''Пример''': в комбинации 4 рейса. Между 1 и 2 рейсами должно быть X дней, между 2 и 3 — Y дней, между 3 и 4 — Z дней. В таком случае в поле нужно указать X;Y;Z.
 
| Цифра
 
| Цифра
 
| 1<br/>2;4;6
 
| 1<br/>2;4;6
Строка 417: Строка 417:
 
* Пустое — багаж оплачивается отдельно,
 
* Пустое — багаж оплачивается отдельно,
 
* 1PC — количество багажных мест,
 
* 1PC — количество багажных мест,
* 10KG — максимальный вес в киллограммах,
+
* 10KG — максимальный вес в килограммах,
 
* 10LB — максимальный вес в фунтах
 
* 10LB — максимальный вес в фунтах
 
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
 
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
Строка 427: Строка 427:
 
* Пустое — багаж оплачивается отдельно,
 
* Пустое — багаж оплачивается отдельно,
 
* 1PC — количество багажных мест,
 
* 1PC — количество багажных мест,
* 10KG — максимальный вес в киллограммах,
+
* 10KG — максимальный вес в килограммах,
 
* 10LB — максимальный вес в фунтах
 
* 10LB — максимальный вес в фунтах
 
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
 
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
Строка 437: Строка 437:
 
* Пустое — багаж оплачивается отдельно,
 
* Пустое — багаж оплачивается отдельно,
 
* 1PC — количество багажных мест,
 
* 1PC — количество багажных мест,
* 10KG — максимальный вес в киллограммах,
+
* 10KG — максимальный вес в килограммах,
 
* 10LB — максимальный вес в фунтах
 
* 10LB — максимальный вес в фунтах
 
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
 
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
Строка 457: Строка 457:
 
| 25<br/>48<br/>
 
| 25<br/>48<br/>
 
|}
 
|}
 +
 +
Для того чтобы управлять квотами мест по тарифам на определенном рейсе, вам нужно:
 +
# занести в файл «Рейс» несколько строк, соответствующих данному рейсу на разные даты и с разными квотами (подклассами и количеством мест).
 +
# занести в файл «Комбинации» условия на каждую дату и подкласс.
 +
При этом важно учитывать, что данные в файлах «Рейс» и «Комбинации» связываются по коду фрахтователя. Это значит, что в файле «Рейс» каждая строка с рейсом должна иметь уникальный код фрахтователя. В противном случае система не сможет подобрать нужный рейс для комбинации.
  
 
=== Загрузка данных в систему ===
 
=== Загрузка данных в систему ===
Строка 462: Строка 467:
 
Для того чтобы загрузить контент в Инвентори:
 
Для того чтобы загрузить контент в Инвентори:
  
1. В выпадающем списке выберите тип файла, который вы собираетесь импортировать.
+
1. В выпадающем списке выберите тип файла, который вы собираетесь загрузить.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Строка 480: Строка 485:
 
|}
 
|}
  
=== Экспорт данных ===
+
=== Редактирование данных ===
  
Функция экспорта используется в случаях, когда вам нужно изменить данные в загруженных ранее таблицах.
+
Для того чтобы изменить данные в файле:
  
Чтобы изменить данные в таблицах:
+
# Нажмите на кнопку с соответствующим типом (см. Рисунок 3).
# Экспортируйте файл(ы) — нажмите на кнопку с соответствующим типом.
+
# Отредактируйте содержимое файла.
# Отредактируйте содержание файлы(-ов).
+
# [[Nemo Inventory (компонент)#Загрузка данных в систему|Загрузите]] отредактированный файл в систему.
# Снова импортируйте измененные файлы в систему.  
 
  
Это необходимо для контроля даты версии файлов. Таким образом, при попытке загрузить в систему файл с более ранней датой изменения, чем у уже имеющегося в системе, появляется предупреждение ''Невозможно перезаписать более новые данные указанными устаревшими '' и предлагаются два варианта действий:
+
<span style="background-color: #fbecdd;">Все ячейки файла должны быть в текстовом формате без лишних пробелов.</span>
* принудительно перезаписать данные
 
* отказаться от загрузки.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Строка 499: Строка 501:
 
|Рисунок 3. Экспорт файлов
 
|Рисунок 3. Экспорт файлов
 
|}  
 
|}  
 
{{Attention|Все ячейки файла должны быть в текстовом формате. Не допускаются лишние пробелы.}}
 
  
== Монитор рейсов ==
+
Загружая обновленный файл в систему, вы получите предупреждение <code>Невозможно перезаписать более новые данные указанными устаревшими</code>. Предупреждение связано с контролем версий файла. На этом этапе вы можете:
В этом разделе отображается расписание, сформированное на основе данных из раздела [[Nemo Inventory (компонент)#Управление контентом|'''Управление контентом''']].
+
 
 +
* принудительно перезаписать данные,
 +
* отказаться от загрузки.
 +
 
 +
== Раздел «Монитор рейсов» ==
 +
В этом разделе отображается расписание, сформированное на основе данных из раздела [[Nemo Inventory (компонент)#Раздел «Управление контентом»|'''Управление контентом''']].
 +
 
 +
В верхней части окна указаны наименования маркетинговых компаний и количество рейсов на выбранный период (день, три дня, неделя, две недели, месяц). Так, на Рисунке 4 отображается 90 рейсов перевозчика Nemo (<code>Nemo : 90</code>, период — месяц).
 +
 
 +
Карточка рейса содержит:
  
[[Файл:monit.png|1000px|Раздел «Монитор рейсов»]]
+
* наименование маркетингового перевозчика и номер рейса;
 +
* прогресс-бар, отображающий долю проданных мест;
 +
* маршрут.
  
В данном разделе можно получить сведения по статистике рейсов. В верхней части окна монитора рейсов указаны наименования маркетинговых компаний и количество рейсов, предоставляемых данной компанией, содержащееся в статистике перелетов на выбранный период. В зависимости от выбранного временного интервала:
+
Кликнув на карточку рейса, вы увидите количество проданных мест и статистику продаж по каждому классу бронирования. Здесь же вы можете изменить расписание, перейдя по соответствующей ссылке.
* День
 
* Три дня
 
* Неделя
 
* Две недели
 
* Месяц
 
  
Каждая ячейка таблицы отображает маршрут перелета, его маркетинговую компанию и номер рейса. По нажатию на ячейку выводится дополнительная информация о конкретном перелете: количество заведенных мест, класс бронирования и количество реализованных билетов. Также здесь предоставлена возможность изменения информации о рейсе на определенные дни. Переход ко внесению изменений осуществляется кликом по ссылке ''Изменение расписания''.
+
{| class="wikitable"
 +
|-
 +
|[[Файл:monit.png|1000px|Раздел «Монитор рейсов»]]
 +
|-
 +
|Рисунок 4. Раздел '''Монитор рейсов'''
 +
|}
  
 
=== Изменение расписания ===
 
=== Изменение расписания ===
[[Файл:change1.png|600px|Изменение расписания рейса на конкретные даты]]
 
  
Изменения в рейсе позволяют тонко управлять информацией о рейсе  на определённые даты, которые могут как входить в расписание, так и не входить в него. Это позволяет, к примеру, закрывать продажи на данный рейс на определённый день, менять время вылета/прилёта, номер рейса, переносить вылет рейса на другой день или даже добавлять новые дни вылета, которые не входят в основное расписание рейса.  
+
Функция '''Изменение расписания''' полезна, если вам нужно:
 +
 
 +
* закрыть продажи на данный рейс на определенный день,
 +
* изменить время вылета/прилета,
 +
* изменить номер рейса,
 +
* добавить новые дни вылета, не входящие в основное расписание рейса.
  
В рейсе можно задавать изменения следующего набора данных:
+
{| class="wikitable"
* Активность рейса
+
|-
* Аэропорт отправления/прибытия
+
|[[Файл:change1.png|600px|Изменение расписания рейса на конкретные даты]]
* Терминал отправления/прибытия
+
|-
* Время отправления/прибытия
+
|Рисунок 5. Изменение расписания в разделе '''Монитор рейсов'''
* Номер рейса
+
|}
* Прилет на следующие сутки
 
* Тип воздушного судна
 
* Посадка
 
  
== Использование контента в продаже перелётов ==
+
== Раздел «Простановка номеров билетов» ==
Порядок и логика использования разных типов контента при поиске, бронировании и выписке.
+
 
 +
В этом разделе отображаются заказы, в которых нужно проставить номера билетов. Доступ к разделу имеет [[Менеджер агентства|менеджер]] и [[Эксперт по бронированию|эксперт]] агентства. Проставить номера билетов нужно для того, чтобы завершить выписку заказа (см. [[Nemo Inventory (компонент)#Контент Nemo Inventory в продаже перелетов|Контент Nemo Inventory в продаже перелетов]]).
 +
 
 +
Раздел представляет собой список форм с указанием даты вылета (несколько забронированных перелетов на одинаковую дату вылета располагаются на одной форме). При нажатии на форму раскрывается список направлений вылетов.
  
=== Поиск ===
+
Для того чтобы проставить номера билетов из файла:
 +
# Нажмите <code>Обзор..</code> и выберите нужный файл.
 +
# Нажмите <code>Импорт</code>.
  
Для того, что бы забронировать и выписать перелёт, его надо сначала найти. Внутри Инвентори процедура обработки поискового запроса состоит из следующих этапов:
+
{| class="wikitable"
#  '''Построение маршрута для каждого из запрошенных сегментов'''. На данный момент максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом. Если для одного из запрошенных сегментов не удалось построить маршрут, то поиск прерывается и Инвентори возвращает ошибку ''Невозможно построить маршрут для запрошенного сегмента'' с указанием соответствующего сегмента.
+
|-
#  '''Поиск подходящих рейсов для построенных маршрутов с учётом их расписания, времени стыковок, фильтров по а/к и наличия мест на нужных классах и построение из них полных перелётов.''' Если для одного из запрошенных сегментов не удалось найти подходящих рейсов, то поиск прерывается и Инвентори возвращает ошибку ''Не удалось найти расписание, удовлетворяющее заданным критериям, для сегмента'' с указанием соответствующего сегмента. <br />Если не удалось построить ни одного полного перелёта из найденных рейсов, то поиск прерывается и Инвентори возвращает ошибку ''Невозможно построить полный перелёт, удовлетворяющий заданным критериям''.<br />Если ни для одного из построенных перелётов нет необходимого количества мест, то поиск прерывается и Инвентори возвращает ошибку ''Нет необходимого количества свободных мест на перелётах, удовлетворяющих заданным критериям''.
+
|[[Файл:Автоматическая простановка номеров билетов.png|Раздел «Простановка номеров билета»]]
#  '''Применение комбинаций рейсов к построенным перелётам.''' На данный момент перелёты из более чем 4-х сегментов отбрасываются при данной процедуре. Для каждого из построенных перелётов ищется подходящая комбинация рейсов. <br />Если для перелёта не удалось найти комбинации рейсов, полностью ему соответствующей, то для каждого сегмента в перелёте ищется отдельная соответствующая ему комбинация. <br />Если ни для одного из перелётов не удалось найти подходящих комбинаций рейсов, то поиск прерывается и Инвентори возвращает ошибку ''Нет допустимых комбинаций рейсов, удовлетворяющих заданным критериям''. 
+
|-
# '''Оценка полученных перелётов.''' Для каждого из перелётов ''формируется набор тарифов'', которые обеспечивают наименьшую цену для данного перелёта. При этом выполняется следующая последовательность действий:
+
|Рисунок 7. Раздел '''Простановка номеров билетов'''
## система рассматривает каждую комбинацию, которая применилась к перелёту.
+
|}
## система получает все тарифы для владельца мест на первом рейсе рассматриваемой комбинации.
 
  
Для каждого ''тарифа'' выполняется следующий набор проверок:
+
Уникальные данные, по которым происходит  идентификация заказа при импорте:
# проверяется на применимость к текущей комбинации рейсов (по её ID)
 
# проверяется на возможность продажи по данному тарифу первого рейса из комбинации — при этом проверяется:
 
*текущая дата входит в один из сезонов продажи тарифа (SalesDates) и этот сезон не заканчивается через час
 
*дата вылета первого рейса в комбинации входит в один из сезонов обслуживания тарифа (ServiceDates)
 
*проверяются ограничения на минимальное время до вылета и максимальное количество дней до вылета
 
  
# проверяется доступ к тарифу, если он приватный, а так же ограничения по предпочитаемым типам тарифа из поискового запроса
+
* Фамилия, Имя (ФИО, разделитель пробел),  
# для тарифа заведённых на тип пассажира, отличный от ADT выполняется проверка на применимость данной тарифа к какому-либо из запрошенных типов пассажиров.<br />Если тариф прошёл все проверки, то он считается применимым к данной комбинации рейсов. Если подходящих тарифов не нашлось, то оценка данного перелёта прекращается и он в поисковую выдачу не попадает.
+
* Дата рождения (d.m.Y),  
# из всех подходящих тарифов выбирается тот, у которого итоговая эффективная цена наименьшая (с учётом цены комбинации и запрошенных типов пассажиров)
+
* Номер рейса,  
Если ни для одного из перелётов не нашлось подходящих цен, то поиск прерывается и Инвентори возвращает ошибку ''Не удалось найти цен, удовлетворяющих заданным критериям''.<br />Перелёты, для которых нашлись цены попадают в поисковую выдачу.
+
* № билета,  
 +
* Дата вылета (d.m.Y).  
  
=== Бронирование ===
+
{|  class="wikitable mw-collapsible mw-collapsed"
При бронировании перелёта
+
!colspan = 5|Пример файла
# Система проверяет:
+
|-
#* наличие бронируемых рейсов,
+
! scope="col" | Фамилия, Имя<br/>
#* наличие нужного количества мест на них.  
+
! scope="col" | Дата рождения<br/>
# Система оценивает забронированный перелёта так же, как при поиске.
+
! scope="col" | Номер рейса<br/>
# На основании всех полученных данных создаётся объекта PNRа в системе Инвентори. <br />Если цену получить не удалось в силу каких-то причин, то взятые места возвращаются в пул доступных для бронирования и бронирование прерывается с соответствующей ошибкой.
+
! scope="col" | № билета<br/>
 +
! scope="col" | Дата вылета<br/>
 +
|-
 +
| <span id="WOLF JANELLE">WOLF JANELLE</span>
 +
| 18.09.1994
 +
| 911
 +
| 1952438681143
 +
| 22.05.2023
 +
|-
 +
| <span id="FLAGMANSDG IVAN">FLAGMANSDG IVAN</span>
 +
| 10.10.1990
 +
| 911
 +
| 1952438681144
 +
| 22.05.2023
 +
|}
  
Бронь можно:
+
== Контент Nemo Inventory в продаже перелетов ==
*обновить (получить её актуальные статус и цену),  
+
Порядок и логика использования разных типов контента при поиске, бронировании и выписке.
*отменить,
 
*выписать.
 
  
=== Выписка ===
+
=== Поиск ===
Выписка выполняется в 2 этапа:
+
 
# Выписка, запускаемая после поступления оплаты от клиента. Генерируются '''электронные документы (ЭД)''' на предоставление услуги оформления билетов от а/к. Бронь приобретает статус ''ожидает выписки''.
+
Поисковый запрос в Инвентори обрабатывается так:
# Внесение билетов а/к — на данный момент Инвентори не поддерживает автоматического переноса созданных броней в ГРС или инвентори системы а/к для автоматической выписки билетов а/к, поэтому уполномоченный представитель агента раз в некий период времени выполняет ручной перенос броней в нужные системы и выписку билетов а/к в них. После чего вносит выписанные билеты в нужные ПНРы в Инвентори. После внесения билетов для всех пассажиров бронь в Инвентори принимает статус ''выписано''.<br />При этом ЭД, сгенерированные на предыдущем этапе, деактивируются со статусом ''использовано''.
 
  
Бронь после выписки (но до внесения билетов а/к) можно войдировать в течение некоторого промежутка времени. При этом ЭД на оформление билетов а/к деактивируются со статусом ''отменено''. Удаление внесённых билетов а/к на данный момент не поддерживается.
+
# '''Для запрошенных сегментов строится маршрут'''. Максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом. На текущий момент пересадочный рейс ищется только как сложный маршрут. Если для одного из сегментов не удалось построить маршрут, то поиск прерывается ошибкой <code>Невозможно построить маршрут для запрошенного сегмента</code>.<br /><br />
 +
# '''Для построенных маршрутов ищутся подходящие рейсы и строятся полные перелеты.'''<br />Поиск прерывается, если:
 +
#* для одного из сегментов не удалось найти подходящих рейсов (ошибка <code>Не удалось найти расписание, удовлетворяющее заданным критериям, для сегмента</code>);
 +
#* не удалось построить ни одного полного перелета (ошибка <code>Невозможно построить полный перелёт, удовлетворяющий заданным критериям</code>);
 +
#* ни для одного из построенных перелетов нет нужного количества мест (ошибка <code>Нет необходимого количества свободных мест на перелётах, удовлетворяющих заданным критериям</code>).<br /><br />
 +
# '''К построенным перелетам применяются комбинации рейсов.''' При этом перелеты из более чем 4 сегментов отбрасываются.<br />Если для перелета не удалось найти полностью ему соответствующей комбинации, то для каждого сегмента в перелете ищется отдельная комбинация. Если ни для одного из перелетов не удалось найти подходящих комбинаций, то поиск прерывается ошибкой <code>Нет допустимых комбинаций рейсов, удовлетворяющих заданным критериям</code>.<br /><br />
 +
# '''Для каждого перелета формируется набор тарифов с наименьшей ценой.''' При этом система:
 +
## Рассматривает каждую комбинацию, которая применилась к перелету.
 +
## Получает все тарифы для владельца мест на первом рейсе комбинации. <br />Для каждого тарифа проверяется:
 +
##* применимость к текущей комбинации рейсов (по ID комбинации),
 +
##* возможность продажи по данному тарифу первого рейса из комбинации. При этом проверяется, что:
 +
##** текущая дата входит в один из сезонов продажи тарифа (<code>SalesDates</code>) и этот сезон не заканчивается через час;
 +
##** дата вылета первого рейса в комбинации входит в один из сезонов обслуживания тарифа (<code>ServiceDates</code>);
 +
##** соблюдены ограничения на минимальное время до вылета и максимальное количество дней до вылета.
 +
##* доступ к тарифу, если он приватный, а также ограничения по предпочитаемым типам тарифа из поискового запроса;
 +
##* применимость тарифа для запрошенных типов пассажира (если тариф заведен на тип пассажира, отличный от ADT).<br />Если тариф прошел все проверки, то он считается применимым к данной комбинации. Если подходящих тарифов не нашлось, то оценка данного перелета прекращается, и в поисковую выдачу он не попадает.<br /><br />
 +
# '''Из всех подходящих тарифов выбирается тариф с наименьшей ценой (с учетом цены комбинации и запрошенных типов пассажиров)'''.<br />Если ни для одного перелета не нашлось подходящих цен, то поиск прерывается ошибкой <code>Не удалось найти цен, удовлетворяющих заданным критериям</code>.<br />Перелеты, цены для которых нашлись, попадают в поисковую выдачу.
  
== Простановка номеров билетов ==
+
=== Бронирование ===
[[Файл:prostanovka.png|400px|Раздел «Простановка номеров билета»]]
+
Бронирование в Инвентори происходит следующим образом:
 +
# Система проверяет наличие:
 +
#* бронируемых рейсов,
 +
#* нужного количества мест на них.
 +
# Система оценивает забронированный перелет так же, как при поиске.
 +
# На основании всех полученных данных в Инвентори создается объект PNR. <br />Если цену получить не удалось, то взятые места возвращаются в пул доступных для бронирования, и бронирование прерывается соответствующей ошибкой.
  
В данном разделе отображаются заказы, ожидающие проставления номеров билета. Доступ к разделу имеет менеджер и эксперт агентства.
+
Доступные действия с бронью:
   
+
* обновление (получение актуального статуса и цены),
При оформлении заказа выписка не будет завершена, пока не внесены номера билетов в разделе '''Простановка номеров билетов''' (''см. Отправление заказа на выписку'').
+
* отмена,
Чтобы выполнить выписку заказа, необходимо созданные в инвентори брони перенести в ГРС или авиакомпанию (туда, где хранится блок мест) и оформить выписку. Далее полученные номера билета вносятся в разделе ''Простановка номеров билетов''. После внесения номеров нужно вернуться к заказу и запустить выписку.
+
* выписка.
  
Раздел представляет собой последовательность форм с указанием даты вылета (несколько забронированных перелетов на одинаковую дату вылета располагаются на одной форме). При нажатии на одну из плашек раскрывается форма с перечислением направлений вылетов. При нажатии на конкретное направление отображается поле для внесения номера билета.
+
=== Выписка ===
 +
Выписка в Инвентори выполняется в 3 этапа:
 +
# После поступления оплаты от клиента бронь приобретает статус <code>ожидает выписки</code>.
 +
# Представитель агента вручную переносит брони в стороннюю систему (GDS или инвенторную систему а/к) для автоматической выписки билетов.
 +
# Представитель агента загружает файл с выписанными билетами в раздел Инвентори [[Nemo Inventory (компонент)#Раздел «Простановка номеров билетов»|'''Простановка номеров билетов''']].
  
Если выписан один номер билета, для направления туда/обратно номер проставляется только в первом окне. Если два номера, во втором необходимо указать второй номер билета.
+
Когда номера билетов будут проставлены, бронь в Инвентори принимет статус <code>выписано</code>. При этом ЭД, сгенерированные на первом этапе, деактивируются со статусом <code>использовано</code>.
  
[[Файл:tick.png|600px|Отправление заказа на выписку]]
+
Бронь после выписки и до внесения билетов а/к можно войдировать в течение некоторого времени. При этом ЭД на оформление билетов деактивируются со статусом <code>отменено</code>. Удаление внесенных билетов а/к на данный момент не поддерживается.

Текущая версия на 12:30, 13 июня 2024

О компоненте

Nemo Inventory (Инвентори) — система управления контентом (ресурсом мест и тарифами). Инвентори помогает организовать онлайн-продажи тех перелетов, которые не доступны через обычные интеграции с поставщиками авиаконтента.

Nemo Inventory разработана в соответствии с рекомендациями IATA. С ее помощью агенты могут полностью контролировать и планировать ресурсы и посадочные места, а перевозчики — управлять собственными ресурсами мест для максимизации дохода.

Примеры использования

Nemo Inventory используется для:

  • продажи блочных (блок-чартерных) мест на регулярных или чартерных рейсах, когда места на рейсах определённой а/к по определенному маршруту и с определенным расписанием выкуплены заказчиком (фрахтователем);
  • договорных тарифов, которые существуют на бумаге, но отсутствуют в GDS. Места при этом берутся из обычного общедоступного блока мест в GDS;
  • договорных тарифов, брони по которым оформляются авиакомпанией внутри своего хостинга по отдельной процедуре;
  • других случаев, при которых невозможно организовать онлайн-продажи через GDS.

Преимущества

✅ Инвентори помогает организовать онлайн-продажи вашего уникального контента так же просто и эффективно, как и продажи перелётов из классических источников (GDS). Для ваших клиентов — путешественников и субагентов — покупка перелета из Инвентори происходит так же, как из GDS.

✅ Инвентори расширяет общую выдачу доступных авиаперевозок специальными тарифами и чартерными перевозками (классические чартеры, блок чартеры на регулярных рейсах, и т.д.).

✅ Для туристических компаний, фрахтующих значительные объемы мест, Инвентори дает возможность эффективно реализовывать оставшиеся посадочные места, распродавать «горящие» остатки мест, продавать пустые прогоны на завозных и вывозных рейсах (так называемые «empty lеgs») в начале и конце чартерной программы.

✅ Контент, заведенный через Инвентори, может использоваться как на вашем собственном сайте, так и на других ресурсах за счет API.

Эти преимущества делают Инвентори незаменимым средством для продажи спецтарифов через все возможные каналы продаж.

Подключение и настройка

Компонент настраивается в разделе Работа с заказами → Nemo Inventory и включает в себя подразделы:

  • Управление контентом,
  • Монитор рейсов,
  • Простановка номеров билетов.

Nemo Inventory подключается администратором Nemo.Travel. Для подключения обратитесь в трекер техподдержки Nemo.Travel.

Принцип работы компонента

В Nemo.Travel компонент Инвентори выступает поставщиком авиаконтента по аналогии с классическими GDS. Это значит, что контент, заведенный в Инвентори, возможно использовать в рамках стандартного функционала Nemo.Travel: осуществлять поиск, бронирование, отмену перелета.

При этом предоставляются широкие возможности по управлению ресурсом мест и тарифами. Это достигается во многом за счет того, что менеджер агентства самостоятельно заносит контент в XLS-файлы и загружает их в Инвентори.

Nemo Inventory поддерживает следующие типы контента:

  • рейс,
  • ресурс мест,
  • комбинация рейсов,
  • тариф,
  • такса.

Раздел «Управление контентом»

В этом разделе вы можете работать с контентом: загружать его в систему и экспортировать для последующего редактирования.

Подготовка данных к загрузке

Перед загрузкой контента в Инвентори внесите контент в XLS-файлы. Шаблоны файлов:

Рейсы: Файл:Flight empty.xls, 
Комбинации: Файл:Combination empty.xls, 
Тарифы: Файл:Tariff ow empty.xls.

Рейс

Этот тип контента содержит информацию о рейсе, на которое агентство продает места. Включает в себя:

  • тип рейса (чартер/регулярный),
  • признак активности,
  • номер рейса, компании,
  • коды маркетинговой и оперирующей а/к,
  • расписание,
  • прочее.
Как заполнять данные о рейсе
Поле Описание Допустимые значения Примеры
id Уникальный номер записи о перелете, который присваивает система при выгрузке файла. При загрузке файла не заполняется.
Редактирование правила с заданным id приводит к изменению уже созданного правила, а если поле пустое, то будет создано новое правило.
Пустое или системный номер 30
48
активен Определяет, будет ли рейс появляться в поисковой выдаче
1 — активен
0 — неактивен
-1 — удаление рейса
пустое — неактивен
1
0
-1
маркетинговая компания Код перевозчика, который владеет местами и тарифами на рейсе (для регулярных рейсов)
IATA-код авиакомпании UT
UN
фрахтователь Код перевозчика, который владеет местами и тарифами на рейсе (для чартерных рейсов)
IATA-код авиакомпании UT
UN
S7
оперирующая а/к Код перевозчика, выполняющего рейс
IATA-код авиакомпании SU
UN
вылет Код аэропорта вылета (допустимы агрегирующие)
IATA-код аэропорта MOW
VKO
прилет Код аэропорта прилета (допустимы агрегирующие)
IATA-код аэропорта MOW
VKO
посадка Код аэропорта технической посадки (допустимы агрегирующие). На рейсе можно указывать более 1 остановки.

Посадка считается остановкой, а не пересадкой, если при этом не происходит смены номера рейса. Даже если воздушное судно садится, пассажиров выгружают, загружают в другой самолет и отправляют дальше, без смены номера рейса это остается технической посадкой, которая отображается как техническая посадка на одном едином сегменте перелета.
IATA-код аэропорта MOW
VKO
номер рейса Уникальный номер рейса
Цифры (допустимы латинские буквы) 203
11
терминал вылета Код или номер терминала в аэропорту вылета
Латинские буквы или цифры А
С
терминал прилета Код или номер терминала в аэропорту прилета
Латинские буквы или цифры А
С
время вылета Время вылета рейса по временной зоне аэропорта вылета
HH:MM 23:04
11:15
время прилета Время прилета рейса по временной зоне аэропорта прилета
HH:MM 22:05
09:15
следующие сутки Признак прилета в предыдущий или следующий день для аэропортов с существенной разницей во временных зонах.
Задается в количестве суток разницы.
+значение
-значение
+2 (прилет через сутки)
-1 (прилет в предыдущие сутки)
дни недели Список дней в рамках двухнедельного периода, который задается на определенный сезон. Дни по нечетным неделям задаются цифрами от 1 до 7, по четным — от 8 до 14.

Стартом для отсчета является первый день недели, с которой начинается сезон полетов (даже если этот день не попадает под расписание). Например, в расписании даты 26.07.2023 — 26.08.2023, где 26.07 — 3 день недели. Если 3 день будет указан в таблице, то рейс будет доступен 26.07, 9.08 и 23.08

В расписании можно задавать несколько сезонов полетов, для каждого из которых может быть свое расписание. Сезоны полетов не могут пересекаться: если рейс выполняется с 1 мая по 20 декабря по одним дням, а с 1 сентября по 1 ноября — по другим, то должно быть 3 сезона: с 1.05 по 31.08, с 1.09 по 1.11, с 2.11 по 20.12.
Цифры от 1 до 14, разделенные запятой 2,4,6,9,11,13 (вторник, четверг, суббота по четным и нечетным неделям)
8,9,10,11,12,13,14 (все дни по четным неделям)
сезон полетов начало Дата начала сезона полетов
DD.MM.YYYY 01.01.2014
02.08.2015
сезон полетов конец Дата окончания сезона полетов
DD.MM.YYYY 01.01.2015
02.08.2016
тип вс Тип воздушного судна (ВС), выполняющего рейс.
Для того чтобы информация о ВС подтянулась с путеводителя, нужно указать трехзначный код ВС.
Текстовая строка 139
747
эконом Количество доступных мест на рейсе в базовом классе «Эконом» по каждому подклассу бронирования Литера подкласса + количество мест (без разделителя) Y9,T13,N9
L17,M20
бизнес Количество доступных мест на рейсе в базовом классе «Бизнес» по каждому подклассу бронирования Литера подкласса + количество мест (без разделителя) J9,C12,D9
C12,D10
первый Количество доступных мест на рейсе в базовом классе «Первый» по каждому подклассу бронирования Литера подкласса + количество мест (без разделителя). Комбинации разделяются запятой F15,P2
A10

Комбинации

В файле Комбинации можно указывать:

  • несколько перелетов на один и тот же рейс в разных конфигурациях,
  • разные даты вылетов,
  • список тарифов и тип направления перелета (эти поля носят справочный характер и не влияют на связь таблиц).

Комбинация может содержать максимум 4 рейса. Информация о каждом рейсе в комбинации включает в себя:

  • номер рейса,
  • код авиакомпании,
  • литеру класса,
  • дату начала полетов,
  • дату окончания полетов,
  • дни между вылетами.

Между последовательными парами рейсов можно задавать ограничения по допустимой длительности путешествия в виде списка количества дней между датами вылета первого и второго рейсов в паре. Длительность путешествия вычисляется как прямое вычитание дат вылета первого и второго рейсов в паре (12.02 — 10.02 = 2 дня длительность путешествия). Если не указано, то никаких ограничений не применяется для данной пары рейсов.

Как заполнять данные о комбинациях
Поле
Описание
Допустимые значения
Примеры
id Уникальный номер записи о перелете, который присваивает система при выгрузке файла. При загрузке файла не заполняется.
Редактирование правила с заданным id приводит к изменению уже созданного правила, а если поле пустое, то будет создано новое правило
Пустое или системный номер 30
48
активен Используется для удаления тарифа
-1 — удаление тарифа,
пустое — без изменений
-1
тип маршрута Тип маршрута на данной комбинации
  • OW,
  • RT,
  • CT
OW
RT
фрахтователь Код компании, предоставляющей блок мест на данном рейсе (для чартеров - фрахтователь)
IATA-код авиакомпании SU
UN
номер рейса Номер рейса
Число 112
114
литера Список литер классов перелета, которые могут участвовать в данной комбинации (минимум одна)
Код Y
D
дата начала полетов Дата начала выполнения рейсов в рамках комбинации. Не может быть раньше даты первого рейса на основании расписания в Мониторе рейсов
DD.MM.YYYY 01.01.2015
02.08.2016
дата окончания полетов Дата окончания выполнения рейсов в рамках комбинации. Не может быть позже даты последнего рейса на основании расписания в Мониторе рейсов
DD.MM.YYYY 01.01.2014
02.08.2015
дней между Допустимое количество дней между соседними рейсами в комбинации. Если не задано, то между соседними рейсами может быть любая длительность. Несколько значений указываются через ;
Пример: в комбинации 4 рейса. Между 1 и 2 рейсами должно быть X дней, между 2 и 3 — Y дней, между 3 и 4 — Z дней. В таком случае в поле нужно указать X;Y;Z.
Цифра 1
2;4;6

Тариф

Тариф описывает правила формирования цены для определенного набора рейсов, заведенных в файле Комбинации.

Тарифы работают только с комбинациями рейсов, поэтому даже OW-перелеты, состоящие из одного рейса, нужно задавать как комбинации из одного рейса.

Как заполнять данные о тарифах
Поле
Описание
Допустимые значения
Примеры
id Уникальный номер записи о перелете, который присваивает система при выгрузке файла. При загрузке файла не заполняется.
Редактирование правила с заданным id приводит к изменению уже созданного правила, а если поле пустое, то будет создано новое правило.
Пустое или системный номер 30
48
активен Используется для удаления тарифа
-1 — удаление тарифа
пустое — без изменений
-1
маркетинговая компания маркетинговой авиакомпании]. Маркетинговая компания должна соответствовать фрахтователю из файла информации о рейсе.
Текстовая строка SU
UN
класс Базовый класс тарифа
Текстовая строка:
  • Economy — Эконом-класс (стандарт),
  • Business — Бизнес-класс (стандарт и премиум),
  • First — Первый класс (стандарт и премиум),
  • PremiumEconomy — Премиум-эконом,
  • Other — остальные классы.
Business
PremiumEconomy
код тарифа Буквенно-цифровой код тарифа
Текстовая строка BTWE
ECNN
таймлимит Время жизни бронирования до автоматической аннуляции.
Задается как количество часов:
  • с момента бронирования,
  • до вылета,
  • до конца суток бронирования (аннуляция запускается в 23:45 суток бронирования).
  • +H,
  • -Н,
  • d

+24 (заказ аннулируется спустя сутки с момента бронирования)
-120 (заказ аннулируется за 5 суток до вылета)
d (заказ аннулируется в конце суток бронирования)

возврат Условия возврата по тарифу
  • 0 — полностью возвратный тариф,
  • пустое значение — полностью невозвратный тариф.
0
обмен Условия обмена по тарифу
  • 0 — обмен производится бесплатно,
  • пустое значение — полностью невозвратный тариф.
0
дата начала продаж Дата начала продаж по данному тарифу
DD.MM.YYYY 01.01.2014
02.08.2015
дата конца продаж Дата окончания продаж по данному тарифу
DD.MM.YYYY 01.01.2015
02.08.2016
дата начала полетов Дата начала рейсов по данному тарифу. Указывается та же дата, что и в файле Комбинации
DD.MM.YYYY 01.01.2014
02.08.2015
дата конца полетов Дата окончания рейсов по данному тарифу. Указывается та же дата, что и в файле Комбинации
DD.MM.YYYY 01.01.2015
02.08.2016

литера

цены на комбинации Комбинация рейсов, к которым применяется тариф. Для каждой комбинации указывается своя цена id комбинации(цена) 1170(1000 RUB)
4(13000 RUB)
скидка для ребенка Скидка от базового тарифа для категории пассажира «Ребенок»
Процентное значение или значение в валюте базового тарифа 30%
2000
скидка для младенцев без места Скидка от базового тарифа для категории пассажира «Младенец без места»
Процентное значение или значение в валюте базового тарифа 50%
4000
скидка для младенцев с местом Скидка от базового тарифа для категории пассажира «Младенец без места»
Процентное значение или значение в валюте базового тарифа 90%
8000
скидка для ребенка, летящего отдельно Скидка от базового тарифа для ребенка без сопровождения взрослого
Процентное значение или значение в валюте базового тарифа 30%
2000
текст правил Текст условий применения тарифа Текстовая строка
питание Доступные для выбора типы питания на борту. Разделяются запятой
  • AlcoholBeverages,
  • Beverages,
  • Breakfast,
  • ColdMeal,
  • ContinentalBreakfast,
  • Dinner,
  • HotMeal,
  • Lunch,
  • Meal,
  • Refreshment,
  • Snack
Beverages,Snack,HotMeal
ContinentalBreakfast,Lunch,Meal
багаж для взрослого Норма бесплатного провоза багажа для категории пассажира «Взрослый»
  • Пустое — багаж оплачивается отдельно,
  • 1PC — количество багажных мест,
  • 10KG — максимальный вес в килограммах,
  • 10LB — максимальный вес в фунтах
1PC (одно место)
10LB (десять фунтов)
багаж для ребенка Норма бесплатного провоза багажа для категории пассажира «Ребенок»
  • Пустое — багаж оплачивается отдельно,
  • 1PC — количество багажных мест,
  • 10KG — максимальный вес в килограммах,
  • 10LB — максимальный вес в фунтах
1PC (одно место)
10LB (десять фунтов)
багаж для младенца без места Норма бесплатного провоза багажа для категории пассажира «Младенец без места»
  • Пустое — багаж оплачивается отдельно,
  • 1PC — количество багажных мест,
  • 10KG — максимальный вес в килограммах,
  • 10LB — максимальный вес в фунтах
1PC (одно место)
10LB (десять фунтов)
багаж для младенца с местом Норма бесплатного провоза багажа для категории пассажира «Младенец с местом»
  • Пустое — багаж оплачивается отдельно,
  • 1PC — количество багажных мест,
  • 10KG — максимальный вес в килограммах,
  • 10LB — максимальный вес в фунтах
1PC (одно место)
10LB (десять фунтов)
маска тарифа Маска тарифа для маршрутной квитанции. Если задана, в маршрутной квитанции код тарифа заменяется на заданное значение Текстовая строка CHRT
CHRT BUSINESS
endorsement Эндорсмент. Задается, если нужно вывести его в маршрутной квитанции Текстовая строка
ticketing gtee Гарантированный срок отправки маршрутной квитанции пассажиру H — количество часов до вылета 25
48

Для того чтобы управлять квотами мест по тарифам на определенном рейсе, вам нужно:

  1. занести в файл «Рейс» несколько строк, соответствующих данному рейсу на разные даты и с разными квотами (подклассами и количеством мест).
  2. занести в файл «Комбинации» условия на каждую дату и подкласс.

При этом важно учитывать, что данные в файлах «Рейс» и «Комбинации» связываются по коду фрахтователя. Это значит, что в файле «Рейс» каждая строка с рейсом должна иметь уникальный код фрахтователя. В противном случае система не сможет подобрать нужный рейс для комбинации.

Загрузка данных в систему

Для того чтобы загрузить контент в Инвентори:

1. В выпадающем списке выберите тип файла, который вы собираетесь загрузить.

Инвентори Импорт 1.png
Рисунок 1. Выбор типа импортируемого файла

2. Нажмите Обзор... и выберите нужный файл.

3. Нажмите Загрузить.

Инвентори Импорт 2.png
Рисунок 2. Загрузка файлов в Инвентори

Редактирование данных

Для того чтобы изменить данные в файле:

  1. Нажмите на кнопку с соответствующим типом (см. Рисунок 3).
  2. Отредактируйте содержимое файла.
  3. Загрузите отредактированный файл в систему.

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

Инвентори Экспорт.png
Рисунок 3. Экспорт файлов

Загружая обновленный файл в систему, вы получите предупреждение Невозможно перезаписать более новые данные указанными устаревшими. Предупреждение связано с контролем версий файла. На этом этапе вы можете:

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

Раздел «Монитор рейсов»

В этом разделе отображается расписание, сформированное на основе данных из раздела Управление контентом.

В верхней части окна указаны наименования маркетинговых компаний и количество рейсов на выбранный период (день, три дня, неделя, две недели, месяц). Так, на Рисунке 4 отображается 90 рейсов перевозчика Nemo (Nemo : 90, период — месяц).

Карточка рейса содержит:

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

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

Раздел «Монитор рейсов»
Рисунок 4. Раздел Монитор рейсов

Изменение расписания

Функция Изменение расписания полезна, если вам нужно:

  • закрыть продажи на данный рейс на определенный день,
  • изменить время вылета/прилета,
  • изменить номер рейса,
  • добавить новые дни вылета, не входящие в основное расписание рейса.
Изменение расписания рейса на конкретные даты
Рисунок 5. Изменение расписания в разделе Монитор рейсов

Раздел «Простановка номеров билетов»

В этом разделе отображаются заказы, в которых нужно проставить номера билетов. Доступ к разделу имеет менеджер и эксперт агентства. Проставить номера билетов нужно для того, чтобы завершить выписку заказа (см. Контент Nemo Inventory в продаже перелетов).

Раздел представляет собой список форм с указанием даты вылета (несколько забронированных перелетов на одинаковую дату вылета располагаются на одной форме). При нажатии на форму раскрывается список направлений вылетов.

Для того чтобы проставить номера билетов из файла:

  1. Нажмите Обзор.. и выберите нужный файл.
  2. Нажмите Импорт.
Раздел «Простановка номеров билета»
Рисунок 7. Раздел Простановка номеров билетов

Уникальные данные, по которым происходит идентификация заказа при импорте:

  • Фамилия, Имя (ФИО, разделитель пробел),
  • Дата рождения (d.m.Y),
  • Номер рейса,
  • № билета,
  • Дата вылета (d.m.Y).
Пример файла
Фамилия, Имя
Дата рождения
Номер рейса
№ билета
Дата вылета
WOLF JANELLE 18.09.1994 911 1952438681143 22.05.2023
FLAGMANSDG IVAN 10.10.1990 911 1952438681144 22.05.2023

Контент Nemo Inventory в продаже перелетов

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

Поиск

Поисковый запрос в Инвентори обрабатывается так:

  1. Для запрошенных сегментов строится маршрут. Максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом. На текущий момент пересадочный рейс ищется только как сложный маршрут. Если для одного из сегментов не удалось построить маршрут, то поиск прерывается ошибкой Невозможно построить маршрут для запрошенного сегмента.

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

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

  4. Для каждого перелета формируется набор тарифов с наименьшей ценой. При этом система:
    1. Рассматривает каждую комбинацию, которая применилась к перелету.
    2. Получает все тарифы для владельца мест на первом рейсе комбинации.
      Для каждого тарифа проверяется:
      • применимость к текущей комбинации рейсов (по ID комбинации),
      • возможность продажи по данному тарифу первого рейса из комбинации. При этом проверяется, что:
        • текущая дата входит в один из сезонов продажи тарифа (SalesDates) и этот сезон не заканчивается через час;
        • дата вылета первого рейса в комбинации входит в один из сезонов обслуживания тарифа (ServiceDates);
        • соблюдены ограничения на минимальное время до вылета и максимальное количество дней до вылета.
      • доступ к тарифу, если он приватный, а также ограничения по предпочитаемым типам тарифа из поискового запроса;
      • применимость тарифа для запрошенных типов пассажира (если тариф заведен на тип пассажира, отличный от ADT).
        Если тариф прошел все проверки, то он считается применимым к данной комбинации. Если подходящих тарифов не нашлось, то оценка данного перелета прекращается, и в поисковую выдачу он не попадает.

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

Бронирование

Бронирование в Инвентори происходит следующим образом:

  1. Система проверяет наличие:
    • бронируемых рейсов,
    • нужного количества мест на них.
  2. Система оценивает забронированный перелет так же, как при поиске.
  3. На основании всех полученных данных в Инвентори создается объект PNR.
    Если цену получить не удалось, то взятые места возвращаются в пул доступных для бронирования, и бронирование прерывается соответствующей ошибкой.

Доступные действия с бронью:

  • обновление (получение актуального статуса и цены),
  • отмена,
  • выписка.

Выписка

Выписка в Инвентори выполняется в 3 этапа:

  1. После поступления оплаты от клиента бронь приобретает статус ожидает выписки.
  2. Представитель агента вручную переносит брони в стороннюю систему (GDS или инвенторную систему а/к) для автоматической выписки билетов.
  3. Представитель агента загружает файл с выписанными билетами в раздел Инвентори Простановка номеров билетов.

Когда номера билетов будут проставлены, бронь в Инвентори принимет статус выписано. При этом ЭД, сгенерированные на первом этапе, деактивируются со статусом использовано.

Бронь после выписки и до внесения билетов а/к можно войдировать в течение некоторого времени. При этом ЭД на оформление билетов деактивируются со статусом отменено. Удаление внесенных билетов а/к на данный момент не поддерживается.