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

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Управление контентом)
(Изменение расписания)
 
(не показано 137 промежуточных версий 7 участников)
Строка 1: Строка 1:
'''Inventory''' - автоматизированная система, обеспечивающая возможность хранения, управления и сопровождения ресурсов авиа-услуг и доступ к ним со стороны агентов по продаже перевозок через распределительную систему бронирования {{NameSystem}}. Разработанная в соответствии с рекомендациями IATA, Inventory позволяет осуществлять полный контроль и планирование ресурсов и посадочных мест, предоставляет инструменты, обеспечивающие перевозчикам возможности управления собственными ресурсами мест с целью максимального увеличения дохода при продаже воздушных перевозок.
+
[[Категория:Модули]]
 +
[[Категория:Дополнительные модули]]
 +
== О компоненте ==
 +
'''Nemo Inventory (Инвентори)''' — система управления контентом (ресурсом мест и тарифами). Инвентори помогает организовать онлайн-продажи тех перелетов, которые не доступны через обычные интеграции с поставщиками авиаконтента.
  
== Примеры использования ==
+
Nemo Inventory разработана в соответствии с рекомендациями IATA. С ее помощью агенты могут полностью контролировать и планировать ресурсы и посадочные места, а перевозчики — управлять собственными ресурсами мест для максимизации дохода.
* наиболее частый случай - продажа блочных (блок-чартерных) мест на регулярных или чартерных рейсах, когда места на рейсах определённой а/к по определенному маршруту и с определенным расписанием выкуплены заказчиком (фрахтователем);
 
* договорной тариф, который существует на бумаге, но отсутствует в ГРС, места при этом берутся из обычного общедоступного блока мест в ГРС;
 
* договорной тариф, брони по которому оформляются авиакомпанией внутри своего хостинга по отдельной процедуре;
 
* в других ситуациях (гибридные к вышеуказанным), когда невозможно организовать онлайн продажи через ГРС.
 
  
== Преимущества использования Inventory ==
+
=== Примеры использования ===
Использование Инвентори позволяет организовать онлайн продажи вашего исключительного контента так же просто и эффективно, как и продажи перелётов из классических источников (ГРС). Вашим клиентам, будь то путешественники, покупающие билеты на вашем персональном сайте, или субагенты, специализирующиеся на распространении ваших туристический услуг, не видно разницы в покупке перелёта из Инвентори или из ГРС.
 
  
Инвентори предоставляет в общей выдачи доступных авиаперевозок контент, который ранее был недоступен, за счет расширения спектра предлагаемых специальных тарифов и продажи чартерной перевозки (классические чартеры, блок чартеры на регулярных рейсах, и т.д.).
+
Nemo Inventory используется для:
  
Для туристических компаний, фрахтующих значительные объемы мест Инвентори, это возможность эффективно реализовывать оставшиеся посадочные места, распродавать “горящие” остатки мест, продавать пустые прогоны на завозных и вывозных рейсах (т.н. “empty lеgs”) в начале и конце чартерной программы. Инвентори можно рассматривать как инструмент расширения ассортимента и повышения доходности продаж на вашем онлайн ресурсе. Важно отметить, что заведенный вами контент может использоваться как на вашем собственном сайте, так и отдан по API в качестве фида для других онлайн ресурсов (сторонних приложений, метапоисковиков и т.д.). Подобные возможности делают Инвентори незаменимым высокоэффективным средством для успешной продажи специальных тарифов через все возможные каналы продаж.
+
* продажи блочных (блок-чартерных) мест на регулярных или чартерных рейсах, когда места на рейсах определённой а/к по определенному маршруту и с определенным расписанием выкуплены заказчиком (фрахтователем);
 +
* договорных тарифов, которые существуют на бумаге, но отсутствуют в GDS. Места при этом берутся из обычного общедоступного блока мест в GDS;
 +
* договорных тарифов, брони по которым оформляются авиакомпанией внутри своего хостинга по отдельной процедуре;
 +
* других случаев, при которых невозможно организовать онлайн-продажи через GDS.
  
Компонент '''Nemo Inventory''' подключается администратором системы {{NameSystem}}. Управление '''Nemo Inventory''' осуществляется в разделе '''Nemo Inventory''' в меню '''Работа с заказами → Nemo Inventory''' и включает в себя подразделы:
+
=== Преимущества ===
*'''Управление контентом''',
 
*'''Монитор рейсов''',
 
*'''Простановка номеров билетов'''.
 
  
== Управление контентом ==
+
✅ Инвентори помогает организовать онлайн-продажи вашего уникального контента так же просто и эффективно, как и продажи перелётов из классических источников (GDS). Для ваших клиентов — путешественников и субагентов — покупка перелета из Инвентори происходит так же, как из GDS.
[[Файл:control.png|700px|Раздел «Управление контентом»]]
 
  
Раздел '''«Управление контентом»''' предоставляет возможность:
+
✅ Инвентори расширяет общую выдачу доступных авиаперевозок специальными тарифами и чартерными перевозками (классические чартеры, блок чартеры на регулярных рейсах, и т.д.).  
* Заведения маршрутной сетки перелётов
 
* Заведения расписания перелётов
 
* Управления ресурсом мест
 
* Заведения информации о тарифах
 
Окно '''«Управление контентом»''' представляет собой форму для импортирования и экспортирования заведенных данных. Вносимые данные имеют текстовый формат.  
 
  
Импортировать внесенные данные из созданных файлов (''flight, combination, tariff_ow'') можно нажатием кнопки '''«Загрузить»''', при этом указав путь к файлу и выбрав соответствующий вид файла.
+
✅ Для туристических компаний, фрахтующих значительные объемы мест, Инвентори дает возможность эффективно реализовывать оставшиеся посадочные места, распродавать «горящие» остатки мест, продавать пустые прогоны на завозных и вывозных рейсах (так называемые «empty lеgs») в начале и конце чартерной программы.  
  
При следующих изменениях информации необходимо снова экспортировать соответствующий файл, произвести редактирование и импортировать его в систему. Это необходимо для того, чтобы осуществлялся контроль даты версии файлов. Таким образом, при попытке загрузить в систему файл с более ранней датой изменения, чем у уже имеющегося в системе, появляется предупреждение ''"Невозможно перезаписать более новые данные указанными устаревшими"'', после чего доступны два варианта действий: принудительно перезаписать данные или отказаться от загрузки.
+
✅ Контент, заведенный через Инвентори, может использоваться как на вашем собственном сайте, так и на других ресурсах за счет API.
 
{{Attention|При заполнении файлов ячейки должны быть все в текстовом формате и не должно быть лишних пробелов.}}
 
  
=== Рейс ===
+
Эти преимущества делают Инвентори незаменимым средством для продажи спецтарифов через все возможные каналы продаж.
'''Рейс''' - тип контента, содержащий информацию об определённом рейсе определённой а/к, места на котором вы собираетесь продавать. Включает в себя такую информацию, как тип рейса (чартер/регулярный), признак активности, номер рейса, компании, предоставляющие и выполняющие рейс, расписание и прочее. При нажатии кнопки '''«Рейс»''' выгружается форма для заполнения данных о перелетах в табличном файле (*.xls). Полный список с указанием форматов внесения данных в систему можно посмотреть тут [[Управление рейсами в Nemo Inventory|'''Формат файла для внесения информации о рейсе''']].  
 
  
Некоторую информацию о рейсе рассмотрим более подробно:
+
=== Подключение и настройка ===
* '''Фрахтователь, маркетинговая а/к и оперирующая а/к'''. Фрахтователь - это владелец (агент/туроператор) блока мест, который планируется продавать на данном рейсе. Маркетинговая а/к предоставляет рейс, а оперирующая его выполняет. Типичный пример - рейс MOW-LED, а/к SU, который выполняет а/к FV.
 
Фрахтователь является обязательным параметром при указании типа рейса "чартер". Владелец мест и тарифов для данного рейса определяется следующим образом:  для чартеров - это фрахтователь, для регулярных рейсов - маркетинговая а/к.
 
  
* '''Расписание рейса''' - задаётся как список дней в рамках двухнедельного периода, который задаётся на определённый сезон, отсчёт двухнедельного периода начинается с начала первого сезона полётов.
+
Компонент настраивается в разделе '''Работа с заказами → Nemo Inventory''' и включает в себя подразделы:
В расписании можно задавать несколько сезонов полётов, для каждого из которых может быть своё расписание. Сезоны полётов не могут пересекаться, то есть если рейс выполняется с 1 мая по 20 декабря по одним дням, а с 1 сентября по 1 ноября по другим, то должно быть 3 сезона - с 1.05 по 31.08, с 1.09 по 1.11, с 2.11 по 20.12
 
* '''Классы перелёта и количество мест''' - классы перелёта задаются литерами, сгруппированными по базовым классам (Бизнес, Первый, Эконом), для каждой литеры задаётся сколько всего изначально доступно для продажи мест на данном классе.
 
  
* '''Точки остановки''' - они же технические посадки. На рейсе можно указывать более 1 остановки. Посадка считается остановкой, а не пересадкой в том случае, если при этом не происходит смены номера рейса. Даже если воздушное судно садится, пассажиров выгружают, загружают в другой самолёт и отправляют лететь дальше, без смены номера рейса это остаётся технической посадкой, которая отображается как техническая посадка на одном едином сегменте перелёта.
+
* '''Управление контентом''',
 +
* '''Монитор рейсов''',
 +
* '''Простановка номеров билетов'''.
  
* '''Изменения в рейсе''' - позволяют тонко управлять информацией о рейсе на определённые даты, которые могут как входить в расписание, так и не входить в него. Это позволяет, к примеру, закрывать продажи на данный рейс на определённый день, менять время вылета/прилёта, номер рейса, переносить вылет рейса на другой день или даже добавлять новые дни вылета, которые не входят в основное расписание рейса. Уникальным рейс делает сочетание номера рейса и кода владельца мест на нём.
+
Nemo Inventory подключается администратором {{NameSystem}}. Для подключения обратитесь в [http://helpdesk.nemo.travel трекер техподдержки] {{NameSystem}}.
  
=== Комбинации ===
+
== Принцип работы компонента ==
  
Кнопка '''«Комбинации»''', выгружая соответствующую форму, предоставляет возможность задавать различные комбинации рейсов. Подробный формат файла описан здесь: [[Управление комбинациями в Nemo Inventory|'''Формат файла для заведений комбинаций''']].
+
В {{NameSystem}} компонент Инвентори выступает поставщиком авиаконтента по аналогии с классическими GDS. Это значит, что контент, заведенный в Инвентори, возможно использовать в рамках стандартного функционала {{NameSystem}}: осуществлять поиск, бронирование, отмену перелета.
В файле '''«Комбинации»''' можно указывать несколько перелетов на один и тот же рейс в разных конфигурациях, будь то перелет в одну сторону или туда/обратно, а также указывать разные даты вылетов. Между последовательными парами рейсов можно задавать ограничения по допустимой длительности путешествия в виде списка количества дней между датами вылета первого и второго рейсов в паре. Длительность путешествия вычисляется как прямое вычитание дат вылета первого и второго рейсов в паре (12.02 - 10.02 = 2 дня длительность путешествия). Если не указано, то никаких ограничений не применяется для данной пары рейсов.
 
  
В комбинации можно указывать максимум 4 рейса. Информация о каждом рейсе в комбинации включает в себя следующие данные:
+
При этом предоставляются широкие возможности по управлению ресурсом мест и тарифами. Это достигается во многом за счет того, что менеджер агентства самостоятельно заносит контент в XLS-файлы и загружает их в Инвентори.
* номер рейса
 
* код авиакомпании
 
* литера класса
 
* дата начала полётов
 
* дата окончания полётов
 
* дни между вылетами
 
  
ВАЖНО! Тарифы применяются только и исключительно к комбинациям рейсов, так что даже OW перелёты из 1 рейса должны быть заданы как комбинации из 1 рейса.
+
Nemo Inventory поддерживает следующие типы контента:
  
=== Тариф ===
+
* рейс,
Тариф описывает правила формирования цены для определённого набора перелётов, заведенных в файле «Комбинации».
+
* ресурс мест,
При нажатии на кнопку '''«Тариф»''' становится возможным добавление и редактирование информации о тарифе в предоставляемом файле формы. Подробнее см. [[Управление тарифами в Nemo Inventory|'''Формат файла для внесения информации о тарифе''']].
+
* комбинация рейсов,
 +
* тариф,
 +
* такса.
  
== Монитор рейсов ==
+
== Раздел «Управление контентом» ==
[[Файл:monit.png|750px|Раздел «Монитор рейсов»]]
 
В данном разделе можно получить сведения по статистике рейсов. В верхней части окна монитора рейсов указаны наименования маркетинговых компаний и количество рейсов, предоставляемых данной компанией, содержащееся в статистике перелетов на выбранный период. В зависимости от выбранного временного интервала:
 
* День
 
* Три дня
 
* Неделя
 
* Две недели
 
* Месяц
 
  
Окно монитора рейсов выглядит как таблица с информацией о перелетах на выбранный временной диапазон. Доступны переходы по кнопкам к следующему и предыдущему месяцу, неделе и т.д.
+
В этом разделе вы можете работать с контентом: загружать его в систему и экспортировать для последующего редактирования.
  
Каждая ячейка таблицы отображает маршрут перелета, его маркетинговую компанию и номер рейса. По нажатию на ячейку выводится дополнительная информация о конкретном перелете: количество заведенных мест, класс бронирования и количество реализованных билетов. Также здесь предоставлена возможность изменения информации о рейсе на определенные дни. Переход ко внесению изменений осуществляется кликом по ссылке ''Изменение расписания''.
+
=== Подготовка данных к загрузке ===
 +
 
 +
Перед загрузкой контента в Инвентори внесите контент в XLS-файлы. Шаблоны файлов:
 +
 
 +
Рейсы: [[Файл:Flight empty.xls]],
 +
Комбинации: [[Файл:Combination empty.xls]],
 +
Тарифы: [[Файл:Tariff ow empty.xls]].
 +
 
 +
==== Рейс ====
 +
Этот тип контента содержит информацию о рейсе, на которое агентство продает места. Включает в себя:
 +
 
 +
* тип рейса (чартер/регулярный),
 +
* признак активности,
 +
* номер рейса, компании,  
 +
* коды маркетинговой и оперирующей а/к,
 +
* расписание,
 +
* прочее.
 +
 
 +
{|  class="wikitable mw-collapsible mw-collapsed"
 +
!colspan = 4|Как заполнять данные о рейсе
 +
|-
 +
! scope="col" | Поле
 +
! scope="col" | Описание
 +
! scope="col" | Допустимые значения
 +
! scope="col" | Примеры
 +
|-
 +
| <span id="id">id</span>
 +
| Уникальный номер записи о перелете, который присваивает система при выгрузке файла. <span style="background-color: #fbecdd;">При загрузке файла не заполняется</span>.<br/>Редактирование правила с заданным id приводит к изменению уже созданного правила, а если поле пустое, то будет создано новое правило.
 +
| Пустое или системный номер
 +
| 30<br/>48
 +
|-
 +
| <span id="активен">активен</span>
 +
| Определяет, будет ли рейс появляться в поисковой выдаче<br/>
 +
| <code>1</code> — активен<br/> <code>0</code> — неактивен<br/> <code>-1</code> — удаление рейса<br/> пустое — неактивен
 +
| 1 <br/> 0 <br/> -1
 +
|-
 +
| <span id="ВП">маркетинговая компания</span>
 +
| Код [[Маркетинговый_перевозчик| перевозчика]], который владеет местами и тарифами на рейсе (для регулярных рейсов)<br/>
 +
| IATA-код авиакомпании
 +
| UT<br/>UN
 +
|-
 +
| <span id="ВП">фрахтователь</span>
 +
| Код перевозчика, который владеет местами и тарифами на рейсе (для чартерных рейсов)<br/>
 +
| IATA-код авиакомпании
 +
| UT<br/>UN<br/>S7
 +
|-
 +
| <span id="а/к">оперирующая а/к</span>
 +
| Код [[Оперирующий перевозчик|перевозчика]], выполняющего рейс <br/>
 +
| IATA-код авиакомпании
 +
| SU<br/>UN
 +
|-
 +
| <span id="вылет">вылет</span>
 +
| Код аэропорта вылета (допустимы агрегирующие) <br/>
 +
| IATA-код аэропорта
 +
| MOW <br/>VKO
 +
|-
 +
| <span id="прилет">прилет</span>
 +
| Код аэропорта прилета (допустимы агрегирующие) <br/>
 +
| IATA-код аэропорта
 +
| MOW <br/>VKO
 +
|-
 +
| <span id="посадка">посадка</span>
 +
| Код аэропорта технической посадки (допустимы агрегирующие). На рейсе можно указывать более 1 остановки.<br/><br/>Посадка считается остановкой, а не пересадкой, если при этом не происходит смены номера рейса. Даже если воздушное судно садится, пассажиров выгружают, загружают в другой самолет и отправляют дальше, без смены номера рейса это остается технической посадкой, которая отображается как техническая посадка на одном едином сегменте перелета.<br/>
 +
| IATA-код аэропорта
 +
| MOW <br/>VKO
 +
|-
 +
| <span id="номер рейса">номер рейса</span>
 +
| Уникальный номер рейса<br/>
 +
| Цифры (допустимы латинские буквы)
 +
| 203<br/>11
 +
|-
 +
| <span id="терминал вылета">терминал вылета</span>
 +
| Код или номер терминала в аэропорту вылета<br/>
 +
| Латинские буквы или цифры
 +
| А<br/>С
 +
|-
 +
| <span id="терминал прилета">терминал прилета</span>
 +
| Код или номер терминала в аэропорту прилета<br/>
 +
| Латинские буквы или цифры
 +
| А<br/>С
 +
|-
 +
| <span id="время вылета">время вылета</span>
 +
| Время вылета рейса по временной зоне аэропорта вылета<br/>
 +
| HH:MM
 +
| 23:04<br/>11:15
 +
|-
 +
| <span id="время прилета">время прилета</span>
 +
| Время прилета рейса по временной зоне аэропорта прилета<br/>
 +
| HH:MM
 +
| 22:05<br/>09:15
 +
|-
 +
| <span id="следующие сутки">следующие сутки</span>
 +
| Признак прилета в предыдущий или следующий день для аэропортов с существенной разницей во временных зонах.<br/>Задается в количестве суток разницы.
 +
| +значение<br/>-значение
 +
| +2 (прилет через сутки)<br/>-1 (прилет в предыдущие сутки)
 +
|-
 +
| <span id="дни недели">дни недели</span>
 +
| Список дней в рамках двухнедельного периода, который задается на определенный сезон. Дни по нечетным неделям задаются цифрами от 1 до 7, по четным — от 8 до 14.<br/><br/>Стартом для отсчета является первый день недели, с которой начинается сезон полетов (даже если этот день не попадает под расписание). Например, в расписании даты 26.07.2023 — 26.08.2023, где 26.07 — 3 день недели. Если 3 день будет указан в таблице, то рейс будет доступен 26.07, 9.08 и 23.08<br/><br/>В расписании можно задавать несколько сезонов полетов, для каждого из которых может быть свое расписание. Сезоны полетов не могут пересекаться: если рейс выполняется с 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 (вторник, четверг, суббота по четным и нечетным неделям) <br/>8,9,10,11,12,13,14 (все дни по четным неделям)
 +
|-
 +
| <span id="сезон полетов начало">сезон полетов начало</span>
 +
| Дата начала сезона полетов<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2014<br/>02.08.2015
 +
|-
 +
| <span id="сезон полетов конец">сезон полетов конец</span>
 +
| Дата окончания сезона полетов<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2015<br/>02.08.2016
 +
|-
 +
| <span id="тип вс">тип вс</span>
 +
| Тип воздушного судна (ВС), выполняющего рейс.<br/>Для того чтобы информация о ВС подтянулась с путеводителя, нужно указать трехзначный код ВС.
 +
| Текстовая строка
 +
| 139<br/>747
 +
|-
 +
| <span id="эконом">эконом</span>
 +
| Количество доступных мест на рейсе в базовом классе «Эконом» по каждому подклассу бронирования
 +
| Литера подкласса + количество мест (без разделителя)
 +
| Y9,T13,N9<br/>L17,M20
 +
|-
 +
| <span id="бизнес">бизнес</span>
 +
| Количество доступных мест на рейсе в базовом классе «Бизнес» по каждому подклассу бронирования
 +
| Литера подкласса + количество мест (без разделителя)
 +
| J9,C12,D9<br/>C12,D10
 +
|-
 +
| <span id="первый">первый</span>
 +
| Количество доступных мест на рейсе в базовом классе «Первый» по каждому подклассу бронирования
 +
| Литера подкласса + количество мест (без разделителя). Комбинации разделяются запятой
 +
| F15,P2<br/>A10
 +
|}
 +
 
 +
==== Комбинации ====
 +
 
 +
В файле '''Комбинации''' можно указывать:
 +
* несколько перелетов на один и тот же рейс в разных конфигурациях,
 +
* разные даты вылетов,
 +
* список тарифов и тип направления перелета (эти поля носят справочный характер и не влияют на связь таблиц).
 +
 
 +
Комбинация может содержать максимум 4 рейса. Информация о каждом рейсе в комбинации включает в себя:
 +
 
 +
* номер рейса,
 +
* код авиакомпании,
 +
* литеру класса,
 +
* дату начала полетов,
 +
* дату окончания полетов,
 +
* дни между вылетами.
 +
 
 +
Между последовательными парами рейсов можно задавать ограничения по допустимой длительности путешествия в виде списка количества дней между датами вылета первого и второго рейсов в паре. Длительность путешествия вычисляется как прямое вычитание дат вылета первого и второго рейсов в паре (12.02 — 10.02 = 2 дня длительность путешествия). Если не указано, то никаких ограничений не применяется для данной пары рейсов.
 +
 
 +
{|  class="wikitable mw-collapsible mw-collapsed"
 +
!colspan = 4|Как заполнять данные о комбинациях
 +
|-
 +
! scope="col" | Поле<br/>
 +
! scope="col" | Описание<br/>
 +
! scope="col" | Допустимые значения<br/>
 +
! scope="col" | Примеры<br/>
 +
|-
 +
| <span id="id">id</span>
 +
| Уникальный номер записи о перелете, который присваивает система при выгрузке файла. <span style="background-color: #fbecdd;">При загрузке файла не заполняется</span>.<br/>Редактирование правила с заданным id приводит к изменению уже созданного правила, а если поле пустое, то будет создано новое правило
 +
| Пустое или системный номер
 +
| 30<br/>48
 +
|-
 +
| <span id="активен">активен</span>
 +
| Используется для удаления тарифа<br/>
 +
| <code>-1</code> — удаление тарифа,<br/>пустое — без изменений
 +
| -1
 +
|-
 +
| <span id="тип маршрута">тип маршрута</span>
 +
| Тип маршрута на данной комбинации
 +
|
 +
* OW,<br/>
 +
* RT,<br/>
 +
* CT
 +
| OW<br/>RT
 +
|
 +
|-
 +
| <span id="рейс">фрахтователь</span>
 +
| Код компании, предоставляющей блок мест на данном рейсе (для чартеров - фрахтователь)<br/>
 +
| IATA-код авиакомпании
 +
| SU<br/>UN
 +
|-
 +
| <span id="ВП">номер рейса</span>
 +
| Номер рейса<br/>
 +
| Число
 +
|112<br/>114
 +
|-
 +
| <span id="литера">литера</span>
 +
| Список литер классов перелета, которые могут участвовать в данной комбинации (минимум одна) <br/>
 +
| Код
 +
| Y<br/>D
 +
|-
 +
| <span id="дата начала полетов">дата начала полетов</span>
 +
| Дата начала выполнения рейсов в рамках комбинации. Не может быть раньше даты первого рейса на основании расписания в '''Мониторе рейсов'''<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2015<br/>02.08.2016
 +
|-
 +
| <span id="дата окончания полетов">дата окончания полетов</span>
 +
| Дата окончания выполнения рейсов в рамках комбинации. Не может быть позже даты последнего рейса на основании расписания в '''Мониторе рейсов'''<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2014<br/>02.08.2015
 +
|-
 +
| <span id="дней между">дней между</span>
 +
| Допустимое количество дней между соседними рейсами в комбинации. Если не задано, то между соседними рейсами может быть любая длительность. Несколько значений указываются через <code>;</code><br/>'''Пример''': в комбинации 4 рейса. Между 1 и 2 рейсами должно быть X дней, между 2 и 3 — Y дней, между 3 и 4 — Z дней. В таком случае в поле нужно указать X;Y;Z.
 +
| Цифра
 +
| 1<br/>2;4;6
 +
|-
 +
|}
 +
 
 +
==== Тариф ====
 +
Тариф описывает правила формирования цены для определенного набора рейсов, заведенных в файле [[Nemo_Inventory_(компонент)#Комбинации|'''Комбинации''']].
 +
 
 +
<span style="background-color: #fbecdd;">Тарифы работают только с комбинациями рейсов, поэтому даже OW-перелеты, состоящие из одного рейса, нужно задавать как комбинации из одного рейса.</span>
 +
 
 +
{|  class="wikitable mw-collapsible mw-collapsed"
 +
!colspan = 4|Как заполнять данные о тарифах
 +
|-
 +
! scope="col" | Поле<br/>
 +
! scope="col" | Описание<br/>
 +
! scope="col" | Допустимые значения<br/>
 +
! scope="col" | Примеры<br/>
 +
|-
 +
| <span id="id">id</span>
 +
| Уникальный номер записи о перелете, который присваивает система при выгрузке файла. <span style="background-color: #fbecdd;">При загрузке файла не заполняется</span>.<br/>Редактирование правила с заданным id приводит к изменению уже созданного правила, а если поле пустое, то будет создано новое правило.
 +
| Пустое или системный номер
 +
| 30<br/>48
 +
|-
 +
| <span id="активен">активен</span>
 +
| Используется для удаления тарифа<br/>
 +
| <code>-1</code> — удаление тарифа <br/> пустое — без изменений
 +
| -1
 +
|-
 +
| <span id="ВП">маркетинговая компания</span>
 +
| Название или код [Маркетинговый перевозчик|маркетинговой авиакомпании]. Маркетинговая компания должна соответствовать фрахтователю из файла информации о рейсе.<br/>
 +
| Текстовая строка
 +
| SU<br/>UN
 +
|-
 +
|<span id="класс">класс</span>
 +
| Базовый класс тарифа<br/>
 +
| Текстовая строка:
 +
* Economy — Эконом-класс (стандарт),<br/>
 +
* Business — Бизнес-класс (стандарт и премиум),<br/>
 +
* First — Первый класс (стандарт и премиум),<br/>
 +
* PremiumEconomy — Премиум-эконом,<br/>
 +
* Other — остальные классы.
 +
| Business<br/>PremiumEconomy
 +
|-
 +
| <span id="код тарифа">код тарифа</span>
 +
| Буквенно-цифровой код тарифа<br/>
 +
| Текстовая строка
 +
| BTWE<br/>ECNN
 +
|-
 +
| <span id="таймлимит">таймлимит</span>
 +
| Время жизни бронирования до автоматической аннуляции.<br/>Задается как количество часов:
 +
* с момента бронирования,
 +
* до вылета,
 +
* до конца суток бронирования (аннуляция запускается в 23:45 суток бронирования).
 +
|
 +
* +H,
 +
* -Н,
 +
* d
 +
|
 +
+24 (заказ аннулируется спустя сутки с момента бронирования)<br/>-120 (заказ аннулируется за 5 суток до вылета)<br/>d (заказ аннулируется в конце суток бронирования)
 +
|-
 +
| <span id="возврат">возврат</span>
 +
| Условия возврата по тарифу<br/>
 +
|
 +
* <code>0</code> — полностью возвратный тариф,
 +
* пустое значение — полностью невозвратный тариф.
 +
 
 +
| 0
 +
|-
 +
| <span id="обмен">обмен</span>
 +
| Условия обмена по тарифу<br/>
 +
|
 +
* <code>0</code> — обмен производится бесплатно,
 +
* пустое значение — полностью невозвратный тариф.
 +
 
 +
| 0
 +
|-
 +
| <span id="дата начала продаж">дата начала продаж</span>
 +
| Дата начала продаж по данному тарифу<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2014<br/>02.08.2015
 +
|-
 +
| <span id="дата конца продаж">дата конца продаж</span>
 +
| Дата окончания продаж по данному тарифу<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2015<br/>02.08.2016
 +
|-
 +
| <span id="дата начала полетов">дата начала полетов</span>
 +
| Дата начала рейсов по данному тарифу. Указывается та же дата, что и в файле [[Nemo Inventory (компонент)#Комбинации|'''Комбинации''']]<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2014<br/>02.08.2015
 +
|-
 +
| <span id="дата конца полетов">дата конца полетов</span>
 +
| Дата окончания рейсов по данному тарифу. Указывается та же дата, что и в файле [[Nemo Inventory (компонент)#Комбинации|'''Комбинации''']]<br/>
 +
| DD.MM.YYYY
 +
| 01.01.2015<br/>02.08.2016
 +
<span id="литера">литера</span>
 +
|-
 +
| <span id="цены на комбинации">цены на комбинации</span>
 +
| Комбинация рейсов, к которым применяется тариф. Для каждой комбинации указывается своя цена
 +
| id комбинации(цена)
 +
| 1170(1000 RUB)<br/>4(13000 RUB)
 +
|-
 +
| <span id="скидка для ребенка">скидка для ребенка</span>
 +
| Скидка от базового тарифа для категории пассажира «Ребенок»<br/>
 +
| Процентное значение или значение в валюте базового тарифа
 +
| 30%<br/>2000
 +
|-
 +
| <span id="скидка для младенцев без места">скидка для младенцев без места</span>
 +
| Скидка от базового тарифа для категории пассажира «Младенец без места»<br/>
 +
| Процентное значение или значение в валюте базового тарифа
 +
| 50%<br/>4000
 +
|-
 +
| <span id="скидка для младенцев с местом">скидка для младенцев с местом</span>
 +
| Скидка от базового тарифа для категории пассажира «Младенец без места»<br/>
 +
| Процентное значение или значение в валюте базового тарифа
 +
| 90%<br/>8000
 +
|-
 +
| <span id="скидка для ребенка, летящего отдельно">скидка для ребенка, летящего отдельно</span>
 +
| Скидка от базового тарифа для ребенка без сопровождения взрослого <br/>
 +
| Процентное значение или значение в валюте базового тарифа
 +
| 30%<br/>2000
 +
|-
 +
| <span id="текст правил">текст правил</span>
 +
| Текст условий применения тарифа
 +
| Текстовая строка
 +
|
 +
|-
 +
| <span id="питание">питание</span>
 +
| Доступные для выбора типы питания на борту. Разделяются запятой
 +
|
 +
* AlcoholBeverages,
 +
* Beverages,
 +
* Breakfast,
 +
* ColdMeal,
 +
* ContinentalBreakfast,
 +
* Dinner,
 +
* HotMeal,
 +
* Lunch,
 +
* Meal,
 +
* Refreshment,
 +
* Snack
 +
| Beverages,Snack,HotMeal<br/>ContinentalBreakfast,Lunch,Meal
 +
|-
 +
| <span id="багаж для взрослого">багаж для взрослого</span>
 +
| Норма бесплатного провоза багажа для категории пассажира «Взрослый» <br/>
 +
|
 +
* Пустое — багаж оплачивается отдельно,
 +
* 1PC — количество багажных мест,
 +
* 10KG — максимальный вес в килограммах,
 +
* 10LB — максимальный вес в фунтах
 +
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
 +
| 1PC (одно место)<br/>10LB (десять фунтов)
 +
|-
 +
| <span id="багаж для ребенка">багаж для ребенка</span>
 +
| Норма бесплатного провоза багажа для категории пассажира «Ребенок»<br/>
 +
|
 +
* Пустое — багаж оплачивается отдельно,
 +
* 1PC — количество багажных мест,
 +
* 10KG — максимальный вес в килограммах,
 +
* 10LB — максимальный вес в фунтах
 +
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
 +
| 1PC (одно место) <br/>10LB (десять фунтов)
 +
|-
 +
| <span id="багаж для младенца без места">багаж для младенца без места</span>
 +
| Норма бесплатного провоза багажа для категории пассажира «Младенец без места»<br/>
 +
|
 +
* Пустое — багаж оплачивается отдельно,
 +
* 1PC — количество багажных мест,
 +
* 10KG — максимальный вес в килограммах,
 +
* 10LB — максимальный вес в фунтах
 +
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
 +
| 1PC (одно место) <br/>10LB (десять фунтов)
 +
|-
 +
| <span id="багаж для младенца с местом">багаж для младенца с местом</span>
 +
| Норма бесплатного провоза багажа для категории пассажира «Младенец с местом»<br/>
 +
|
 +
* Пустое — багаж оплачивается отдельно,
 +
* 1PC — количество багажных мест,
 +
* 10KG — максимальный вес в килограммах,
 +
* 10LB — максимальный вес в фунтах
 +
<!--* 60Х60Х60 — дополнительные ограничения по размеру багажа в сантиметрах, при заданной норме по весу-->
 +
| 1PC (одно место) <br/>10LB (десять фунтов)
 +
|-
 +
| <span id="маска тарифа">маска тарифа</span>
 +
| Маска тарифа для маршрутной квитанции. Если задана, в маршрутной квитанции код тарифа заменяется на заданное значение
 +
| Текстовая строка
 +
| CHRT<br/>CHRT BUSINESS
 +
|-
 +
| <span id="endorsement">endorsement</span>
 +
| Эндорсмент. Задается, если нужно вывести его в маршрутной квитанции
 +
| Текстовая строка
 +
|
 +
|-
 +
| <span id="ticketing gtee">ticketing gtee</span>
 +
| Гарантированный срок отправки маршрутной квитанции пассажиру
 +
| H — количество часов до вылета
 +
| 25<br/>48<br/>
 +
|}
 +
 
 +
Для того чтобы управлять квотами мест по тарифам на определенном рейсе, вам нужно:
 +
# занести в файл «Рейс» несколько строк, соответствующих данному рейсу на разные даты и с разными квотами (подклассами и количеством мест).
 +
# занести в файл «Комбинации» условия на каждую дату и подкласс.
 +
При этом важно учитывать, что данные в файлах «Рейс» и «Комбинации» связываются по коду фрахтователя. Это значит, что в файле «Рейс» каждая строка с рейсом должна иметь уникальный код фрахтователя. В противном случае система не сможет подобрать нужный рейс для комбинации.
 +
 
 +
=== Загрузка данных в систему ===
 +
 
 +
Для того чтобы загрузить контент в Инвентори:
 +
 
 +
1. В выпадающем списке выберите тип файла, который вы собираетесь загрузить.
 +
{| class="wikitable"
 +
|-
 +
|[[Файл:Инвентори Импорт 1.png]]
 +
|-
 +
|Рисунок 1. Выбор типа импортируемого файла
 +
|}
 +
2. Нажмите <code>Обзор...</code> и выберите нужный файл.
 +
 
 +
3. Нажмите <code>Загрузить</code>.
 +
 
 +
{| class="wikitable"
 +
|-
 +
|[[Файл:Инвентори Импорт 2.png]]
 +
|-
 +
|Рисунок 2. Загрузка файлов в Инвентори
 +
|}
 +
 
 +
=== Редактирование данных ===
 +
 
 +
Для того чтобы изменить данные в файле:
 +
 
 +
# Нажмите на кнопку с соответствующим типом (см. Рисунок 3).
 +
# Отредактируйте содержимое файла.
 +
# [[Nemo Inventory (компонент)#Загрузка данных в систему|Загрузите]] отредактированный файл в систему.
 +
 
 +
<span style="background-color: #fbecdd;">Все ячейки файла должны быть в текстовом формате без лишних пробелов.</span>
 +
 
 +
{| class="wikitable"
 +
|-
 +
|[[Файл:Инвентори Экспорт.png]]
 +
|-
 +
|Рисунок 3. Экспорт файлов
 +
|}
 +
 
 +
Загружая обновленный файл в систему, вы получите предупреждение <code>Невозможно перезаписать более новые данные указанными устаревшими</code>. Предупреждение связано с контролем версий файла. На этом этапе вы можете:
 +
 
 +
* принудительно перезаписать данные,
 +
* отказаться от загрузки.
 +
 
 +
== Раздел «Монитор рейсов» ==
 +
В этом разделе отображается расписание, сформированное на основе данных из раздела [[Nemo Inventory (компонент)#Раздел «Управление контентом»|'''Управление контентом''']].
 +
 
 +
В верхней части окна указаны наименования маркетинговых компаний и количество рейсов на выбранный период (день, три дня, неделя, две недели, месяц). Так, на Рисунке 4 отображается 90 рейсов перевозчика Nemo (<code>Nemo : 90</code>, период — месяц).
 +
 
 +
Карточка рейса содержит:
 +
 
 +
* наименование маркетингового перевозчика и номер рейса;
 +
* прогресс-бар, отображающий долю проданных мест;
 +
* маршрут.
 +
 
 +
Кликнув на карточку рейса, вы увидите количество проданных мест и статистику продаж по каждому классу бронирования. Здесь же вы можете изменить расписание, перейдя по соответствующей ссылке.
 +
 
 +
{| class="wikitable"
 +
|-
 +
|[[Файл:monit.png|1000px|Раздел «Монитор рейсов»]]
 +
|-
 +
|Рисунок 4. Раздел '''Монитор рейсов'''
 +
|}
  
 
=== Изменение расписания ===
 
=== Изменение расписания ===
[[Файл:change1.png|400px|Изменение расписания рейса на конкретные даты]]
 
Изменения в рейсе позволяют тонко управлять информацией о рейсе  на определённые даты, которые могут как входить в расписание, так и не входить в него. Это позволяет, к примеру, закрывать продажи на данный рейс на определённый день, менять время вылета/прилёта, номер рейса, переносить вылет рейса на другой день или даже добавлять новые дни вылета, которые не входят в основное расписание рейса.
 
  
В рейсе можно задавать изменения следующего набора данных:
+
Функция '''Изменение расписания''' полезна, если вам нужно:
* Активность рейса
 
* Аэропорт отправления/прибытия
 
* Терминал отправления/прибытия
 
* Время отправления/прибытия
 
* Номер рейса
 
* Прилет на следующие сутки
 
* Тип воздушного судна
 
* Посадка
 
  
== Использование контента в продаже перелётов ==
+
* закрыть продажи на данный рейс на определенный день,
Порядок и логика использования разных типов контента при поиске, бронировании и выписке.
+
* изменить время вылета/прилета,
 +
* изменить номер рейса,
 +
* добавить новые дни вылета, не входящие в основное расписание рейса.
  
=== Поиск ===
+
{| class="wikitable"
 +
|-
 +
|[[Файл:change1.png|600px|Изменение расписания рейса на конкретные даты]]
 +
|-
 +
|Рисунок 5. Изменение расписания в разделе '''Монитор рейсов'''
 +
|}
  
Для того, что бы забронировать и выписать перелёт, его надо сначала найти. Внутри Инвентори процедура обработки поискового запроса состоит из следующих этапов:
+
== Раздел «Простановка номеров билетов» ==
*  Построение маршрута для каждого из запрошенных сегментов - на данный момент максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом.
 
Если для одного из запрошенных сегментов не удалось построить маршрут, то поиск прерывается и Инвентори возвращает ошибку "Невозможно построить маршрут для запрошенного сегмента" с указанием соответствующего сегмента.
 
*  Поиск подходящих рейсов для построенных маршрутов с учётом их расписания, времени стыковок, фильтров по а/к и наличия мест на нужных классах и построение из них полных перелётов.
 
Если для одного из запрошенных сегментов не удалось найти подходящих рейсов, то поиск прерывается и Инвентори возвращает ошибку "Не удалось найти расписание, удовлетворяющее заданным критериям, для сегмента" с указанием соответствующего сегмента.
 
  
Если не удалось построить ни одного полного перелёта из найденных рейсов, то поиск прерывается и Инвентори возвращает ошибку "Невозможно построить полный перелёт, удовлетворяющий заданным критериям".
+
В этом разделе отображаются заказы, в которых нужно проставить номера билетов. Доступ к разделу имеет [[Менеджер агентства|менеджер]] и [[Эксперт по бронированию|эксперт]] агентства. Проставить номера билетов нужно для того, чтобы завершить выписку заказа (см. [[Nemo Inventory (компонент)#Контент Nemo Inventory в продаже перелетов|Контент Nemo Inventory в продаже перелетов]]).
  
Если ни для одного из построенных перелётов нет необходимого количества мест, то поиск прерывается и Инвентори возвращает ошибку "Нет необходимого количества свободных мест на перелётах, удовлетворяющих заданным критериям".
+
Раздел представляет собой список форм с указанием даты вылета (несколько забронированных перелетов на одинаковую дату вылета располагаются на одной форме). При нажатии на форму раскрывается список направлений вылетов.
  
*  Применение комбинаций рейсов к построенным перелётам. На данный момент перелёты из более чем 4-х сегментов отбрасываются при данной процедуре. Для каждого из построенных перелётов ищется подходящая комбинация рейсов.
+
Для того чтобы проставить номера билетов из файла:
Если для перелёта не удалось найти комбинации рейсов, полностью ему соответствующей, то для каждого сегмента в перелёте ищется отдельная соответствующая ему комбинация.
+
# Нажмите <code>Обзор..</code> и выберите нужный файл.
Если ни для одного из перелётов не удалось найти подходящих комбинаций рейсов, то поиск прерывается и Инвентори возвращает ошибку "Нет допустимых комбинаций рейсов, удовлетворяющих заданным критериям".
+
# Нажмите <code>Импорт</code>.
  
Оценка полученных перелётов. Для каждого из перелётов формируется набор тарифов, которые обеспечивают наименьшую цену для данного перелёта. При этом выполняется следующая последовательность действий:
+
{| class="wikitable"
* рассматриваем каждую комбинацию, которая применилась к перелёту
+
|-
* получение всех тарифов для владельца мест на первом рейсе рассматриваемой комбинации
+
|[[Файл:Автоматическая простановка номеров билетов.png|Раздел «Простановка номеров билета»]]
 +
|-
 +
|Рисунок 7. Раздел '''Простановка номеров билетов'''
 +
|}
  
Для каждого тарифа выполняется следующий набор проверок:
+
Уникальные данные, по которым происходит  идентификация заказа при импорте:
* проверяется на применимость к текущей комбинации рейсов (по её ID)
 
* проверяется на возможность продажи по данному тарифу первого рейса из комбинации - при этом проверяется:
 
- текущая дата входит в один из сезонов продажи тарифа (SalesDates) и этот сезон не заканчивается через час
 
  
- дата вылета первого рейса в комбинации входит в один из сезонов обслуживания тарифа (ServiceDates)
+
* Фамилия, Имя (ФИО, разделитель пробел),   
 +
* Дата рождения (d.m.Y),   
 +
* Номер рейса,   
 +
* № билета,   
 +
* Дата вылета (d.m.Y).   
  
- проверяются ограничения на минимальное время до вылета и максимальное количество дней до вылета
+
{|  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 в продаже перелетов ==
* для тарифа заведённых на тип пассажира, отличный от ADT выполняется проверка на применимость данной тарифа к какому-либо из запрошенных типов пассажиров
+
Порядок и логика использования разных типов контента при поиске, бронировании и выписке.
Если тариф прошёл все проверки, то он считается применимым к данной комбинации рейсов. Если подходящих тарифов не нашлось, то оценка данного перелёта прекращается и он в поисковую выдачу не попадает.
 
* из всех подходящих тарифов выбирается тот, у которого итоговая эффективная цена наименьшая (с учётом цены комбинации и запрошенных типов пассажиров)
 
Если ни для одного из перелётов не нашлось подходящих цен, то поиск прерывается и Инвентори возвращает ошибку "Не удалось найти цен, удовлетворяющих заданным критериям".
 
Перелёты, для которых нашлись цены попадают в поисковую выдачу.
 
  
=== Бронирование ===
+
=== Поиск ===
При бронировании перелёта проверяется наличие бронируемых рейсов, наличие нужного количества мест на них. После чего выполняется процедура оценки забронированного перелёта, полностью аналогичная такой же процедуре при поиске.
 
После чего на основании всех полученных данных создаётся объекта PNRа в системе Инвентори. Если цену получить не удалось в силу каких-то причин, то взятые места возвращаются в пул доступных для бронирования и бронирование прерывается с соответствующей ошибкой.
 
Бронь можно: обновить (получить её актуальные статус и цену), отменить или выписать.
 
  
=== Выписка ===
+
Поисковый запрос в Инвентори обрабатывается так:
Выписка. На данный момент выполняется в 2 этапа:
 
1) собственно выписка, запускаемая после поступления оплаты от клиента - при этом генерируются ЭД (Электронные Документы) на предоставление услуги оформления билетов от а/к. Бронь приобретает статус "ожидает выписки".
 
2) внесение билетов а/к - на данный момент Инвентори не поддерживает автоматического переноса созданных броней в ГРС или инвентори системы а/к для автоматической выписки билетов а/к, поэтому уполномоченный представитель агента раз в некий период времени выполняет ручной перенос броней в нужные системы и выписку билетов а/к в них. После чего вносит выписанные билеты в нужные ПНРы в Инвентори. После внесения билетов для всех пассажиров бронь в Инвентори принимает статус "выписано".
 
При этом ЭД, сгенерированные на предыдущем этапе, деактивируются со статусом "использовано".
 
Бронь после выписки (но до внесения билетов а/к) можно провойдировать в течение некоторого промежутка времени. При этом ЭД на оформление билетов а/к деактивируются со статусом "отменено". Удаление внесённых билетов а/к на данный момент не поддерживается.
 
  
=== Простановка номеров билетов ===
+
# '''Для запрошенных сегментов строится маршрут'''. Максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом. На текущий момент пересадочный рейс ищется только как сложный маршрут. Если для одного из сегментов не удалось построить маршрут, то поиск прерывается ошибкой <code>Невозможно построить маршрут для запрошенного сегмента</code>.<br /><br />
[[Файл:prostanovka.png|400px|Раздел «Простановка номеров билета»]]
+
# '''Для построенных маршрутов ищутся подходящие рейсы и строятся полные перелеты.'''<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 />Перелеты, цены для которых нашлись, попадают в поисковую выдачу.
  
В данном разделе отображаются заказы, ожидающие проставления номеров билета. Доступ к разделу имеет менеджер и эксперт агентства.
+
=== Бронирование ===
   
+
Бронирование в Инвентори происходит следующим образом:
При оформлении заказа выписка не будет завершена, пока не внесены номера билетов в разделе «Простановка номеров билетов». (''см. Отправление заказа на выписку'')
+
# Система проверяет наличие:
Для того чтобы выполнить выписку заказа, необходимо созданные в инвентори брони перенести в ГРС или авиакомпанию (туда, где хранится блок мест) и оформить выписку. Далее полученные номера билета вносятся в разделе «Простановка номеров билетов». После внесения номеров нужно вернуться к заказу и запустить выписку.
+
#* бронируемых рейсов,  
 +
#* нужного количества мест на них.  
 +
# Система оценивает забронированный перелет так же, как при поиске.
 +
# На основании всех полученных данных в Инвентори создается объект PNR. <br />Если цену получить не удалось, то взятые места возвращаются в пул доступных для бронирования, и бронирование прерывается соответствующей ошибкой.
  
 +
Доступные действия с бронью:
 +
* обновление (получение актуального статуса и цены),
 +
* отмена,
 +
* выписка.
  
Раздел представляет собой последовательность форм с указанием даты вылета (несколько забронированных перелетов на одинаковую дату вылета располагаются на одной форме). При нажатии на одну из плашек раскрывается форма с перечислением направлений вылетов. При нажатии на конкретное направление отображается поле для внесения номера билета.
+
=== Выписка ===
 +
Выписка в Инвентори выполняется в 3 этапа:
 +
# После поступления оплаты от клиента бронь приобретает статус <code>ожидает выписки</code>.
 +
# Представитель агента вручную переносит брони в стороннюю систему (GDS или инвенторную систему а/к) для автоматической выписки билетов.
 +
# Представитель агента загружает файл с выписанными билетами в раздел Инвентори [[Nemo Inventory (компонент)#Раздел «Простановка номеров билетов»|'''Простановка номеров билетов''']].
  
Если выписан один номер билета, для направления туда/обратно номер проставляется только в первом окне.  Если два номера, то во втором необходимо указать второй номер билета.
+
Когда номера билетов будут проставлены, бронь в Инвентори принимет статус <code>выписано</code>. При этом ЭД, сгенерированные на первом этапе, деактивируются со статусом <code>использовано</code>.
  
[[Файл:tick.png|500px|Отправление заказа на выписку]]
+
Бронь после выписки и до внесения билетов а/к можно войдировать в течение некоторого времени. При этом ЭД на оформление билетов деактивируются со статусом <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. Представитель агента загружает файл с выписанными билетами в раздел Инвентори Простановка номеров билетов.

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

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