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

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
м (Раздел «Монитор рейсов»)
(Изменение расписания)
 
(не показано 19 промежуточных версий 3 участников)
Строка 53: Строка 53:
 
== Раздел «Управление контентом» ==
 
== Раздел «Управление контентом» ==
  
Раздел '''Управление контентом''' представляет собой форму для импорта и экспорта данных в формате 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
Строка 457: Строка 457:
 
| 25<br/>48<br/>
 
| 25<br/>48<br/>
 
|}
 
|}
 +
 +
Для того чтобы управлять квотами мест по тарифам на определенном рейсе, вам нужно:
 +
# занести в файл «Рейс» несколько строк, соответствующих данному рейсу на разные даты и с разными квотами (подклассами и количеством мест).
 +
# занести в файл «Комбинации» условия на каждую дату и подкласс.
 +
При этом важно учитывать, что данные в файлах «Рейс» и «Комбинации» связываются по коду фрахтователя. Это значит, что в файле «Рейс» каждая строка с рейсом должна иметь уникальный код фрахтователя. В противном случае система не сможет подобрать нужный рейс для комбинации.
  
 
=== Загрузка данных в систему ===
 
=== Загрузка данных в систему ===
Строка 462: Строка 467:
 
Для того чтобы загрузить контент в Инвентори:
 
Для того чтобы загрузить контент в Инвентори:
  
1. В выпадающем списке выберите тип файла, который вы собираетесь импортировать.
+
1. В выпадающем списке выберите тип файла, который вы собираетесь загрузить.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Строка 486: Строка 491:
 
# Нажмите на кнопку с соответствующим типом (см. Рисунок 3).
 
# Нажмите на кнопку с соответствующим типом (см. Рисунок 3).
 
# Отредактируйте содержимое файла.
 
# Отредактируйте содержимое файла.
# [[Nemo Inventory (компонент)#Подготовка данных к загрузке|Загрузите]] отредактированный файл в систему.
+
# [[Nemo Inventory (компонент)#Загрузка данных в систему|Загрузите]] отредактированный файл в систему.
  
 
<span style="background-color: #fbecdd;">Все ячейки файла должны быть в текстовом формате без лишних пробелов.</span>
 
<span style="background-color: #fbecdd;">Все ячейки файла должны быть в текстовом формате без лишних пробелов.</span>
Строка 513: Строка 518:
 
* маршрут.
 
* маршрут.
  
Кликнув на карточку рейса, вы увидите количество проданных мест и статистику продаж по каждому классу бронирования. Здесь же вы можете изменить расписание, нажав на соответствующую ссылку.
+
Кликнув на карточку рейса, вы увидите количество проданных мест и статистику продаж по каждому классу бронирования. Здесь же вы можете изменить расписание, перейдя по соответствующей ссылке.
  
 
{| class="wikitable"
 
{| class="wikitable"
Строка 521: Строка 526:
 
|Рисунок 4. Раздел '''Монитор рейсов'''
 
|Рисунок 4. Раздел '''Монитор рейсов'''
 
|}  
 
|}  
 
  
 
=== Изменение расписания ===
 
=== Изменение расписания ===
Строка 528: Строка 532:
  
 
* закрыть продажи на данный рейс на определенный день,
 
* закрыть продажи на данный рейс на определенный день,
* изменить менять время вылета/прилета,
+
* изменить время вылета/прилета,
 
* изменить номер рейса,
 
* изменить номер рейса,
* перенести вылет рейса на другой день,
 
 
* добавить новые дни вылета, не входящие в основное расписание рейса.
 
* добавить новые дни вылета, не входящие в основное расписание рейса.
  
Строка 541: Строка 544:
  
 
== Раздел «Простановка номеров билетов» ==
 
== Раздел «Простановка номеров билетов» ==
[[Файл:prostanovka.png|400px|Раздел «Простановка номеров билета»]]
 
  
В данном разделе отображаются заказы, ожидающие проставления номеров билета. Доступ к разделу имеет менеджер и эксперт агентства.
+
В этом разделе отображаются заказы, в которых нужно проставить номера билетов. Доступ к разделу имеет [[Менеджер агентства|менеджер]] и [[Эксперт по бронированию|эксперт]] агентства. Проставить номера билетов нужно для того, чтобы завершить выписку заказа (см. [[Nemo Inventory (компонент)#Контент Nemo Inventory в продаже перелетов|Контент Nemo Inventory в продаже перелетов]]).
   
+
 
При оформлении заказа выписка не будет завершена, пока не внесены номера билетов в разделе '''Простановка номеров билетов''' (''см. Отправление заказа на выписку'').
+
Раздел представляет собой список форм с указанием даты вылета (несколько забронированных перелетов на одинаковую дату вылета располагаются на одной форме). При нажатии на форму раскрывается список направлений вылетов.
Чтобы выполнить выписку заказа, необходимо созданные в инвентори брони перенести в ГРС или авиакомпанию (туда, где хранится блок мест) и оформить выписку. Далее полученные номера билета вносятся в разделе ''Простановка номеров билетов''. После внесения номеров нужно вернуться к заказу и запустить выписку.
+
 
 +
Для того чтобы проставить номера билетов из файла:
 +
# Нажмите <code>Обзор..</code> и выберите нужный файл.
 +
# Нажмите <code>Импорт</code>.
 +
 
 +
{| class="wikitable"
 +
|-
 +
|[[Файл:Автоматическая простановка номеров билетов.png|Раздел «Простановка номеров билета»]]
 +
|-
 +
|Рисунок 7. Раздел '''Простановка номеров билетов'''
 +
|}
  
Раздел представляет собой последовательность форм с указанием даты вылета (несколько забронированных перелетов на одинаковую дату вылета располагаются на одной форме). При нажатии на одну из плашек раскрывается форма с перечислением направлений вылетов. При нажатии на конкретное направление отображается поле для внесения номера билета.
+
Уникальные данные, по которым происходит  идентификация заказа при импорте:
  
Если выписан один номер билета, для направления туда/обратно номер проставляется только в первом окне. Если два номера, во втором необходимо указать второй номер билета.
+
* Фамилия, Имя (ФИО, разделитель пробел),  
 +
* Дата рождения (d.m.Y),   
 +
* Номер рейса,  
 +
* № билета,   
 +
* Дата вылета (d.m.Y).  
  
[[Файл:tick.png|600px|Отправление заказа на выписку]]
+
{|  class="wikitable mw-collapsible mw-collapsed"
 +
!colspan = 5|Пример файла
 +
|-
 +
! scope="col" | Фамилия, Имя<br/>
 +
! scope="col" | Дата рождения<br/>
 +
! scope="col" | Номер рейса<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 в продаже перелетов ==
+
== Контент Nemo Inventory в продаже перелетов ==
 
Порядок и логика использования разных типов контента при поиске, бронировании и выписке.
 
Порядок и логика использования разных типов контента при поиске, бронировании и выписке.
  
 
=== Поиск ===
 
=== Поиск ===
  
Для того, что бы забронировать и выписать перелёт, его надо сначала найти. Внутри Инвентори процедура обработки поискового запроса состоит из следующих этапов:
+
Поисковый запрос в Инвентори обрабатывается так:
#  '''Построение маршрута для каждого из запрошенных сегментов'''. На данный момент максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом. Если для одного из запрошенных сегментов не удалось построить маршрут, то поиск прерывается и Инвентори возвращает ошибку ''Невозможно построить маршрут для запрошенного сегмента'' с указанием соответствующего сегмента.
 
#  '''Поиск подходящих рейсов для построенных маршрутов с учётом их расписания, времени стыковок, фильтров по а/к и наличия мест на нужных классах и построение из них полных перелётов.''' Если для одного из запрошенных сегментов не удалось найти подходящих рейсов, то поиск прерывается и Инвентори возвращает ошибку ''Не удалось найти расписание, удовлетворяющее заданным критериям, для сегмента'' с указанием соответствующего сегмента. <br />Если не удалось построить ни одного полного перелёта из найденных рейсов, то поиск прерывается и Инвентори возвращает ошибку ''Невозможно построить полный перелёт, удовлетворяющий заданным критериям''.<br />Если ни для одного из построенных перелётов нет необходимого количества мест, то поиск прерывается и Инвентори возвращает ошибку ''Нет необходимого количества свободных мест на перелётах, удовлетворяющих заданным критериям''.
 
#  '''Применение комбинаций рейсов к построенным перелётам.''' На данный момент перелёты из более чем 4-х сегментов отбрасываются при данной процедуре. Для каждого из построенных перелётов ищется подходящая комбинация рейсов. <br />Если для перелёта не удалось найти комбинации рейсов, полностью ему соответствующей, то для каждого сегмента в перелёте ищется отдельная соответствующая ему комбинация. <br />Если ни для одного из перелётов не удалось найти подходящих комбинаций рейсов, то поиск прерывается и Инвентори возвращает ошибку ''Нет допустимых комбинаций рейсов, удовлетворяющих заданным критериям''. 
 
# '''Оценка полученных перелётов.''' Для каждого из перелётов ''формируется набор тарифов'', которые обеспечивают наименьшую цену для данного перелёта. При этом выполняется следующая последовательность действий:
 
## система рассматривает каждую комбинацию, которая применилась к перелёту.
 
## система получает все тарифы для владельца мест на первом рейсе рассматриваемой комбинации.
 
 
 
Для каждого ''тарифа'' выполняется следующий набор проверок:
 
# проверяется на применимость к текущей комбинации рейсов (по её ID)
 
# проверяется на возможность продажи по данному тарифу первого рейса из комбинации — при этом проверяется:
 
*текущая дата входит в один из сезонов продажи тарифа (SalesDates) и этот сезон не заканчивается через час
 
*дата вылета первого рейса в комбинации входит в один из сезонов обслуживания тарифа (ServiceDates)
 
*проверяются ограничения на минимальное время до вылета и максимальное количество дней до вылета
 
  
# проверяется доступ к тарифу, если он приватный, а так же ограничения по предпочитаемым типам тарифа из поискового запроса
+
# '''Для запрошенных сегментов строится маршрут'''. Максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом. На текущий момент пересадочный рейс ищется только как сложный маршрут. Если для одного из сегментов не удалось построить маршрут, то поиск прерывается ошибкой <code>Невозможно построить маршрут для запрошенного сегмента</code>.<br /><br />
# для тарифа заведённых на тип пассажира, отличный от ADT выполняется проверка на применимость данной тарифа к какому-либо из запрошенных типов пассажиров.<br />Если тариф прошёл все проверки, то он считается применимым к данной комбинации рейсов. Если подходящих тарифов не нашлось, то оценка данного перелёта прекращается и он в поисковую выдачу не попадает.
+
# '''Для построенных маршрутов ищутся подходящие рейсы и строятся полные перелеты.'''<br />Поиск прерывается, если:
# из всех подходящих тарифов выбирается тот, у которого итоговая эффективная цена наименьшая учётом цены комбинации и запрошенных типов пассажиров)
+
#* для одного из сегментов не удалось найти подходящих рейсов (ошибка <code>Не удалось найти расписание, удовлетворяющее заданным критериям, для сегмента</code>);
Если ни для одного из перелётов не нашлось подходящих цен, то поиск прерывается и Инвентори возвращает ошибку ''Не удалось найти цен, удовлетворяющих заданным критериям''.<br />Перелёты, для которых нашлись цены попадают в поисковую выдачу.
+
#* не удалось построить ни одного полного перелета (ошибка <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 />Перелеты, цены для которых нашлись, попадают в поисковую выдачу.
  
 
=== Бронирование ===
 
=== Бронирование ===
При бронировании перелёта
+
Бронирование в Инвентори происходит следующим образом:
# Система проверяет:
+
# Система проверяет наличие:
#* наличие бронируемых рейсов,  
+
#* бронируемых рейсов,  
#* наличие нужного количества мест на них.  
+
#* нужного количества мест на них.  
# Система оценивает забронированный перелёта так же, как при поиске.
+
# Система оценивает забронированный перелет так же, как при поиске.
# На основании всех полученных данных создаётся объекта PNRа в системе Инвентори. <br />Если цену получить не удалось в силу каких-то причин, то взятые места возвращаются в пул доступных для бронирования и бронирование прерывается с соответствующей ошибкой.
+
# На основании всех полученных данных в Инвентори создается объект PNR. <br />Если цену получить не удалось, то взятые места возвращаются в пул доступных для бронирования, и бронирование прерывается соответствующей ошибкой.
  
Бронь можно:  
+
Доступные действия с бронью:  
*обновить (получить её актуальные статус и цену),  
+
* обновление (получение актуального статуса и цены),  
*отменить,
+
* отмена,
*выписать.
+
* выписка.
  
 
=== Выписка ===
 
=== Выписка ===
Выписка выполняется в 2 этапа:
+
Выписка в Инвентори выполняется в 3 этапа:
# Выписка, запускаемая после поступления оплаты от клиента. Генерируются '''электронные документы (ЭД)''' на предоставление услуги оформления билетов от а/к. Бронь приобретает статус ''ожидает выписки''.
+
# После поступления оплаты от клиента бронь приобретает статус <code>ожидает выписки</code>.
# Внесение билетов а/к — на данный момент Инвентори не поддерживает автоматического переноса созданных броней в ГРС или инвентори системы а/к для автоматической выписки билетов а/к, поэтому уполномоченный представитель агента раз в некий период времени выполняет ручной перенос броней в нужные системы и выписку билетов а/к в них. После чего вносит выписанные билеты в нужные ПНРы в Инвентори. После внесения билетов для всех пассажиров бронь в Инвентори принимает статус ''выписано''.<br />При этом ЭД, сгенерированные на предыдущем этапе, деактивируются со статусом ''использовано''.
+
# Представитель агента вручную переносит брони в стороннюю систему (GDS или инвенторную систему а/к) для автоматической выписки билетов.
 +
# Представитель агента загружает файл с выписанными билетами в раздел Инвентори [[Nemo Inventory (компонент)#Раздел «Простановка номеров билетов»|'''Простановка номеров билетов''']].
 +
 
 +
Когда номера билетов будут проставлены, бронь в Инвентори принимет статус <code>выписано</code>. При этом ЭД, сгенерированные на первом этапе, деактивируются со статусом <code>использовано</code>.
  
Бронь после выписки (но до внесения билетов а/к) можно войдировать в течение некоторого промежутка времени. При этом ЭД на оформление билетов а/к деактивируются со статусом ''отменено''. Удаление внесённых билетов а/к на данный момент не поддерживается.
+
Бронь после выписки и до внесения билетов а/к можно войдировать в течение некоторого времени. При этом ЭД на оформление билетов деактивируются со статусом <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. Представитель агента загружает файл с выписанными билетами в раздел Инвентори Простановка номеров билетов.

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

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