MultiItinerary - контейнер составляющих маршрута (броней). Данный класс используется практически на всех стадиях бизнес-процесса: от поиска вариантов перелета до оформления билета.
При поиске по цене (метод FareDrivenFlightSearch) каждый из предложенных вариантов перелета представляет собой MultiItinerary, соответственно, результатом обращения к методу будет столько объектов MultiItinerary, сколько вариантов перелета вернул метод.При создании бронирования/ий по маршруту (метод Booking) всегда будет один объект MultiItinerary, так как бронирование/я осуществляется по одному выбранному варианту перелета.
По каждому из вариантов перелета, предложенных по цене, система заранее знает, будет ли весь маршрут целиком оформлен одной бронью, или же будет разбит на составляющие, каждая из которых будет оформлена отдельной бронью. Каждой такой составляющей маршрута в объекте MultiItinerary соответствует объект Itinerary. Таким образом, если для конкретного варианта перелета весь маршрут планируется оформить одной бронью, то контейнер MultiItinerary такого варианта содержит только один элемент Itinerary. Если конкретный вариант предполагается оформить несколькими бронями, то контейнер MultiItinerary такого варианта содержит несколько элементов Itinerary (по количеству составляющих маршрута).
После того, как выбранный вариант перелета забронирован, контейнер MultiItinerary содержит один или несколько элементов Itinerary, каждый из которых соответствует одной брони и содержит ее полные данные.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
ref:long | Attribute | Timestamp | временная метка результата | всегда | 637801845897081089 |
uint | Attribute | Key | уникальный идентификатор модели | всегда | 3460159847 |
double | Attribute | EquivTotal | суммарная стоимость перелета по всем маршрутам из контейнера для всех пассажиров с учетом всех сборов и такс в валюте страны PCC агента | всегда | 3400.43 |
Itinerary | Element | Itinerary | список составляющих маршрута (броней) | всегда, 1 и более элементов | - |
Itinerary — контейнер, содержащий данные об отдельной брони (составной части маршрута перелета, которая будет или уже была забронирована одной бронью). Контейнер на каждом шаге дополняется новыми атрибутами.
Например, на этапе поиска по цене Itinerary состоит из Leg и Mask, то есть данные по перелетам маршрута и расчет стоимости перелета по маршруту. На этапе создания бронирования туда попадает Passenger, то есть данные по пассажирам брони, номер брони (Locator) и блок SSR.
На этапе выписки билета в контейнер добавляется номер билета с привязкой к пассажиру.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор модели | всегда | 3460159847 |
string | Attribute | Locator | номер брони в системе бронирования, при помощи которого агент может самостоятельно открыть бронь, в том числе и в оффлайн терминале, присваивается только после завершения процедуры бронирования, строка (6 символов, латинские буквы и цифры). Номер брони - ключевая информация о бронировании, по нему авиакомпания и агент могут найти заказ в собственных системах бронирования, также при помощи данного номера осуществляются процедуры выгрузки и отмены бронирования. | появляется на шаге бронирования | TL39MX |
double | Attribute | EquivTotal | суммарная стоимость перелета по этому маршруту для всех пассажиров с учетом всех сборов и такс в валюте страны PCC агента | всегда | 3400.43 |
int | Attribute | id_System | система бронирования - идентификатор GDS, из которой получен данный участок | всегда | 3 |
string | Attribute | FamilyCode | код семейства тарифов | BS | |
int | Attribute | id_Profile | финансовый профиль - идентификатор финансового профиля, который использован для расчета цены по данному варианту | 226 | |
string | Attribute | CorporateDiscountDetails | код корпоративного контракта | ||
string | Attribute | ValidatingCarrier | валидирующий перевозчик | U6 | |
datetime | Attribute | Timelimit | таймлимит | 08.10.2017 23:00:00 | |
Fare | Element | Fare | код класса обслуживания (тариф) | 2 | |
OBSOLETE | Element | ItineraryUpsell | устаревшая структура апселла, заменена на ItineraryUpsellV2 | FareDrivenFlightSearch | - |
ItineraryUpsellV2 | Element | ItineraryUpsellV2 | upsell - различные модификации предложенного тарифа - Виды улучшений типа тарифа - может быть несколько | FareDrivenFlightSearch | - |
Leg | Element | Legs/Leg | коллекция участков перелета в данном маршруте(брони) |
всегда, если бронь не отменена; 1 и более элементов |
- |
Mask | Element | Masks/Mask |
маска, создается на каждую категорию пассажира. |
в том случае, если расчет стоимости актуален; максимальное количество - 3 элемента |
- |
FareRemark | Element | FareRemarks/FareRemark | правила применения тарифа | появляется на шаге проверки стоимости | - |
Passenger | Element | Passengers/Passenger | пассажиры — люди, на которых оформляется авиа перевозка | появляется на шаге бронирования | - |
SSR | Element | SSRs/SSR | специальный код для обозначения информации об индивидуальных запросах пассажиров | появляется на шаге бронирования | - |
Ticket | Element | Ticket | появляется на шаге оформления билета | - | |
FreeTextRemark | Element | FreeTextRemark | - |
Fare - код класса обслуживания (тариф) — в международной практике называются уровни сервиса, которые получают пассажиры воздушного судна на борту.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
string | Attribute | Name | код класса обслуживания - название тарифа | всегда | Business |
ItineraryUpsell - возможность повышения уровня тарифа для включения в стоимость каких-то дополнительных услуг, например, нормы провоза бесплатого багажа
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор предложения об улучшении тарифа | всегда | 810306099 |
string | Attribute | FareFamilyCode | код семейства тарифа | всегда | YBASIC |
string | Attribute | Name | название семейства, понятное пользователю | всегда | Эконом Базовый |
string | Attribute | NameEnglish | название семейства, понятное пользователю (на английском) | всегда | Economy Basic |
int | Attribute | id_Family | идентификатор семейства тарифов - идентификатор семейства тарифов в редакторе семейств (Главная/Список авиакомпаний/[а/к]/Семейства тарифов) | всегда | |
double | Attribute | EquivTotal | общая стоимость данного апселла | всегда | 12000.00 |
int | Attribute | id_System | система бронирования - идентификатор GDS, из которой получен данный вариант | всегда | |
bool | Attribute | HasBaggage | флаг наличия нормы бесплатного провоза багажа | всегда | true/false |
bool | Attribute | IsExchangeable | флаг наличия обмена | всегда | true/false |
bool | Attribute | IsRefundable | флаг наличия возврата | всегда | true/false |
UpsellFlight | Element | UpsellFlight | перелеты, входящие в upsell, может быть несколько | - |
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор рейса | всегда | 2881966159 |
string | Attribute | Airline |
код авиакомпании IATA - скачать список с openflights.org маркетинговый перевозчик |
всегда | S7 |
int | Attribute | Number | номер рейса | всегда | 3555 |
string | Attribute | FareName | код тарифа | всегда | SBSOW |
string | Attribute | Baggage | информация о нормах провоза багажа | всегда | 0N |
Leg - участок перелета, содержащий один или более рейсов(связанных авиакомпанией на техническом уровне участков перелета от начального до конечного пункта, включая трансферные пункты). Так как не любую пару городов связывает прямое воздушное сообщение (прямые рейсы), то не всегда один участок перелета можно преодолеть одним рейсом. Иногда требуется лететь последовательно двумя или тремя рейсами отдельными прямыми рейсами, чтобы из пункта отправления попасть в пункт назначения. Такие рейсы называют стыковочными, а те пункты (города), где осуществляются пересадки с одного рейса на другой – пунктами пересадки (стыковки), разумеется, пункт прилета первого рейса является пунктом вылета следующего. Стыковочные рейсы образуются независимыми друг от друга прямыми рейсами, в общем случае это рейсы разных авиакомпаний, каждый из них имеет свой номер, свой тип самолета и прочие характеристики. Стыковки бывают как в рамках одного аэропорта, так и с переездом в другой аэропорт того же города.
Например, из Москвы до Сиднея (Австралия) нет прямого рейса. Поэтому можно лететь, например, со стыковкой во Франкфурте:
Стыковки строятся автоматически системами ГДС по специальным алгоритмам. При этом проверяется так называемое MCT (minimum connecting time, минимальное время стыковки) – время, требующееся для осуществления пересадки с рейса на рейс. В ГДС достаточно указать дату, начальный и конечный пункт участка перелета – и она подберет стыковки. Однако перелет стыковочными рейсами используется не только в том случае, если между начальным и конечным пунктом нет прямых рейсов. Довольно часто перелет стыковочными рейсами стоит дешевле прямого рейса, а иногда он получается удобнее по времени вылета/прилета и т.п. Не нужно путать стыковочные (пересадочные) пункты с пунктами отправления/назначения сегментов перелета. В терминах нашей системы участки (сегменты) задаются пользователем, и на этапе задания маршрута он не должен(кроме тех случаев, когда пассажир указывает конкретную точку пересадки по своей инициативе) задумываться о том, какие пересадки пассажиру потребуется совершить, чтобы попасть из пункта отправления каждого участка в пункт назначения. Если пассажир хочет лететь из Москвы в Сидней, значит, у него маршрут OW, состоящий из 1 участка перелета: Москва – Сидней. То, что на участке Москва – Сидней пассажир делает стыковку во Франкфурте, не значит, что у него 2 участка (сегмента) перелета. В терминах ГДС сегментом маршрута называется каждый прямой рейс маршрута. Соответственно, для ГДС в маршруте Москва – Сидней будет 2 сегмента: Москва – Франкфурт и Франкфурт – Сидней.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор группы участков | всегда | 3460159847 |
int | Attribute | id_System | система бронирования - идентификатор GDS, из которой получен данный участок | всегда | 3 |
int | Attribute | DurationMinutes | длительность полета в минутах | 2 | 1090 |
Flight | Element | Flight | сегмент перелета (конкретный рейс) в данном маршруте(брони) | всегда, если бронь не отменена | - |
Flight - описание сегмента перелета (конкретного рейса) в составе Leg с указанием авиа перевозчика, тарифа, дат и времени, а так же аэропорта вылета и прилета, класса обслуживания и статуса подтверждения с локатором авиакомпании.
Дает нам полную информацию о сегменте перелета, а так же статус его подтверждения.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор рейса | всегда | 3118082012 |
string | Attribute | Airline |
код авиакомпании IATA - скачать список с openflights.org маркетинговый перевозчик |
всегда | KL |
string | Attribute | OperatingAirline | оперирующий перевозчик | всегда | KL |
int | Attribute | Number | номер рейса | всегда | 904 |
string | Attribute | Origin | аэропорт вылета (код аэропорта IATA - скачать список с datahub.io) | всегда | SVO |
string | Attribute | OriginTerminal | терминал в пункте отправления | всегда, если в пункте отправления есть терминалы | E |
string | Attribute | Destination | аэропорт прилета (код аэропорта IATA - скачать список с datahub.io) | всегда | AMS |
string | Attribute | DestinationTerminal | терминал в пункте прибытия | всегда, если в пункте прибытия есть терминалы | E |
datetime | Attribute | DepartureDate | дата и время вылета | всегда | 12.12.2017 18:00:00 |
datetime | Attribute | ArrivalDate | дата и время прилета | всегда | 12.12.2017 19:35:00 |
string | Attribute | AirplaneCode | код самолета - Квалификатор воздушных судов | всегда | 73H |
string | Attribute | Status | статус рейса | всегда | HK |
int | Attribute | NumOfStops | количество промежуточных посадок | всегда | 0 |
string | Attribute | RBD | код класса бронирования(часто бывает первой буквой FareName) | всегда | G |
string | Attribute | FareName | к��д тарифа | всегда | GSRRU6 |
int | Attribute | SeatsStatus | информация о свободных местах по этому тарифу | всегда | 7 |
string | Attribute | AirlineLocator | номер брони авиакомпании для данного рейса | до бронирования пустой | AR78Z3 |
string | Attribute | Baggage | информация о нормах провоза багажа | всегда | 1PC |
Mask - маска билета (PQ) — данные, связанные с PNR, в которых отражается вся информация о билете и пассажира, а так же расчет авиа перевозки.
Существует срок действия расчета, так как стоимость варианта не гарантирована до выписки авиа билета.
В случае, если маска по ранее забронированному перелету не актуальна, но места на рейсе еще забронированы, то маска перерасчитывается по доступной на время расчета стоимости.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | ключ, формируемый из легов и паксов(либо легов и категории пассажиров) | всегда | 810306099 |
double | Attribute | EquivTotal | суммарная стоимость перелета по всем маршрутам из контейнера для всех пассажиров одного типа с учетом всех сборов и такс в валюте страны PCC агента | всегда | 12302 |
int | Attribute | PassengerType | тип пассажира | всегда | 0 |
string | Attribute | PassengerTypeName | категория пассажира | всегда | Adult |
int | Attribute | PassengersQuantity | количество пассажиров - берется или из референсов, или из переменной _PassengersQuantity | всегда | 2 |
double | Attribute | VAT | НДС | всегда | 3436.3636363636365 |
string | Element | Endorsement | endorsement | всегда | LAST TKT DTE 08OCT17 - SEE ADV PURCHASE |
string | Element | VATRemark | строка с ремаркой для расчета НДС, вставляется как ремарка вида | всегда | NO VAT |
Price | Element | BaseFare | базовый тариф - это и есть та сумма, которую получает авиакомпания за то, что предоставила услугу перевозки. | всегда | - |
Price | Element | ServiceFee | сервисный сбор | всегда | - |
Price | Element | HiddenFee | скрытый сбор | всегда | - |
Price | Element | Commission | комиссия | всегда | - |
Ref | Element | PaxReferences | перекрестные ссылки по полю Key из Passenger, которые используются в данном расчете | всегда, появляется на шаге бронирования | - |
Ref | Element | LegReferences | перекрестные ссылки по полю Key из Leg, которые используются в данном расчете | всегда | - |
Price | Element | Taxes | таксы - топливный сбор, аэропортовый сбор и т.п. | всегда | - |
string | Element | FareCalculation | строка расчета тарифа | в методах, использующих выгрузку брони | MOW LH MUC38.20KEULGTF5 LX X/ZRH LX MOW49.20KEULGTZ5 NUC87.40END ROE0.863772 |
Price — тип данных, предназначенный для описания полей бизнес-объекта Mask : BaseFare, Taxes, Comission, ServiceFee, HiddenFee.
Эти бизнес-объекты являются составляющими стоимости авиабилета.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | ключ для формирования хеша объекта | всегда | 952203723 |
double | Attribute | Value | цена в оригинальной валюте | всегда | 6990 |
string | Attribute | CurrencyCode | код оригинальной валюты | всегда | RUB |
double | Attribute | CurrencyRate | курс оригинальной валюты с округлением до 6 знаков | всегда | 69.90003 |
double | Attribute | EquivValue | значение в эквивалентной валюте | 6990.00 | |
double | Attribute | VAT | Величина НДС для данного компонента(элемент цены или такса) - обычно бывает равна 0, или 10% или 18% от значения EquivValue | 699.90 | |
string | Attribute | EquivCode | код эквивалентной валюты | всегда | RUB |
FareRemark — условия применения тарифов (УПТ) – правила, которые должны быть выполнены для применения тарифа.
УПТ устанавливаются перевозчиком и действительны на дату начала перевозки.
В УПТ могут быть оговорены:
Так как для расчета авиаперевозки по одной брони могут применяться различные тарифные компоненты на разных участках маршрута, то для таких участков УПТ будут разные, соответственно, их в контейнере FareRemark может быть несколько. Для каждого УПТ указаны начало и конец участка — origin/destination.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор ремарки | всегда | 2745288187 |
string | Attribute | OriginCode | код пункта отправления (код аэропорта IATA - скачать список с datahub.io) | всегда | VKO |
string | Attribute | DestinationCode | код пункта прибытия (код аэропорта IATA - скачать список с datahub.io) | всегда | LED |
string | Element | RemarkText | текст ремарки (правил применения тарифа) | всегда | PENALTIES UNLESS OTHERWISE SPECIFIED CANCELLATIONS TICKET IS NON-REFUNDABLE IN CASE OF CANCEL/NO-SHOW/ REFUND. ... |
Passenger (пассажир) — человек, на которого оформляется авиаперевозка.
Пассажиры делятся на три типа:
Существуют некоторые особенности оформления бронирования:
Пассажир должен иметь следующие атрибуты:
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор пассажира | всегда | 3251827403 |
string | Attribute | FirstName | имя на латинице | всегда | Ivan |
string | Attribute | LastName | фамилмя на латинице | всегда | Viktorov |
string | Attribute | MiddleName | отчество на латинице | всегда | Fedorovich |
datetime | Attribute | Date | дата рождения | всегда | 05.10.1980 0:00:00 |
bool | Attribute | Gender | пол пассажира (true = мужской, false = женский) | всегда | true |
string | Attribute | Type | категория пассажира | всегда | Adult |
string | Attribute | CitizenshipCode | ALPHA2-код страны гражданства | всегда | RU |
string | Attribute | DocumentNumber | номер документа | всегда | 123456789 |
datetime | Attribute | DocumentValid | дата окончания срока действия | всегда | 16.10.2027 0:00:00 |
string | Attribute | электронная почта пассажира | если внесен в карточку пассажира | vikrorov@mail.ru | |
string | Attribute | MobilePhone | телефон пассажира | если внесен в карточку пассажира | +79033121020 |
string | Attribute | MileCardNumber | номер мильной карты | если внесена в карточку пассажира и выбрана при создании заказа | 123123213 |
string | Attribute | MileCardAirline | код авиакомпании IATA - скачать список с openflights.org, чья мильная карта | если внесена мильная карта | SU |
string | Element | Comments / Comment | комментарии по пассажиру | если внесен | superpax |
SSR — Special Service Request (SSR) — запрос специальных услуг на борту для пассажиров, например: специальное питание, провоз нестандартного багажа, животных, необходимых приспособлений для передвижения пассажиров с ограниченными возможностями, полет несовершеннолетних пассажиров без сопровождения взрослых и иные запросы, связанные с особенностями и/или удобством перелета.
Каждая спецуслуга имеет свой 4х-буквенный код, например, VGML — вегетарианское питание на борту, DOCS — информация о документах пассажира, FQTV — информация о бонусной карте и т.п.
SSR всегда требуют от перевозчика (авиакомпании) произвести определенное действие — подтвердить запрашиваемую услугу либо отказать в ней.
С помощью SSR в бронь передается следующая информация:
В случае, если у корпоративного клиента есть трехсторонний договор с авиаперевозчиком, с помощью SSR вносится tour code по данному договору.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | ключ для уникализации объекта | всегда | 944638194 |
string | Attribute | AirlineCode | код авиакомпании IATA - скачать список с openflights.org | всегда | SU |
string | Attribute | Type | тип | всегда | DOCS |
string | Attribute | Content | контент, наприрер, данные по документу или мильной карте | всегда | P/RU/123456789/RU/05OCT80/M/16OCT27/VIKTOROV/IVAN |
string | Attribute | Status | статус сервиса | всегда | HK |
Ref | Element | FlightReferences | перекрестные ссылки по полю Key из Flight, которые используются в данном расчете | всегда | 1624016448 |
Ref | Element | PaxReferences | перекрестные ссылки по полю Key из Passenger, которые используются в данном расчете | всегда, появляется на шаге бронирования | 2743858651 |
Ticket - электронный билет (или E-ticket) — это электронная запись в базе данных авиакомпании, содержащая данные о пассажире, маршруте следования, примененном тарифе и подтверждающая сделку по договору авиаперевозки.
Электронному билету присваивается уникальный номер бланка из стока валидирующего перевозчика, состоящий из 13 цифр, первые 3 из которых – цифровой код валидирующего перевозчика.
В качестве подтверждения того, что электронный билет оформлен, пассажиру высылается в электронном виде или выдается в распечатанном виде на руки маршрут-квитанция (itinerary receipt), которая содержит полную информацию о маршруте, ФИО пассажира, классе обслуживания, дополнительных услугах и т.п.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | ключ для уникализации объекта | всегда | 855224081 |
string | Attribute | TicketNumber | номер билета | всегда | 5551355473016 |
datetime | Attribute | TicketingDate | дата выписки билета | всегда | 14.10.2017 2:32:15 |
uint | Attribute | MaskKey | ссылка на маску (уникальный ключ), по которой выписывается билет | всегда | 3655520777 |
uint | Attribute | PassengerKey | ссылка на пассажира (уникальный ключ), на которого выписывается билет | всегда | 3917394012 |
string | Element | Endorsement | endorsement | если того требует авиаперевозчик | PSPT1111122222*INCL VAT 926.36RUB |
FreeTextRemark - текстовая ремарка ремарка в свободной форме, добавляемая в бронь авиабилетов.
Ремарка вносится только в том случае, если выполнены соответствующие настройки в финансовом профиле клиента, а именно: текст ремарки и момент ее внесения (при создании брони или при выписке авиабилетов).
Данной ремаркой в бронь можно добавить любую информацию, которая необходима агенту: размер сервисного сбора, код семейства тарифов, информацию по 3D-соглашению, комментарий к пассажиру.
Данные ремарки в брони не видны авиаперевозчику.
Поля класса:
Availability — бизнес-объект, который используется при поиске перелета по расписанию.
Поиск по расписанию возможен для маршрутов «в одну сторону», «туда и обратно» и «сложный маршрут».
Метод поиска по расписанию (Availability) возвращает множество элементов Availability, каждый из которых представляет собой контейнер данных об одном варианте перелета.
В отличии от контейнера MultiItinerary, который используется при поиске по расписанию, контейнер Availability не содержит данных по расчету тарифа, а только информацию о рейсах и доступных классах бронирования на них.
Контейнер Availability используется только для работы с методом Availability, на дальнейших этапах поиска по расписанию (точный расчет выбранного варианта PriceExact, бронирование Booking, оформление билета Ticketing) используется контейнер MultiItinerary.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
string | Attribute | Origin | аэропорт вылета (код аэропорта IATA - скачать список с datahub.io) | всегда | MOW |
string | Attribute | Destination | аэропорт прилета (код аэропорта IATA - скачать список с datahub.io) | всегда | MUC |
datetime | Attribute | Date | дата и время вылета | всегда | 12.12.2017 18:00:00 |
AvailabilityLeg | Element | AvailabilityLeg | коллекция маршрутов, принадлежащих данному контейнеру | всегда | - |
AvailabilityLeg - участок перелета, содержащий один или более рейсов(связанных авиакомпанией на техническом уровне участков перелета от начального до конечного пункта, включая трансферные пункты). Так как не любую пару городов связывает прямое воздушное сообщение (прямые рейсы), то не всегда один участок перелета можно преодолеть одним рейсом. Иногда требуется лететь последовательно двумя или тремя рейсами отдельными прямыми рейсами, чтобы из пункта отправления попасть в пункт назначения. Такие рейсы называют стыковочными, а те пункты (города), где осуществляются пересадки с одного рейса на другой – пунктами пересадки (стыковки), разумеется, пункт прилета первого рейса является пунктом вылета следующего. Стыковочные рейсы образуются независимыми друг от друга прямыми рейсами, в общем случае это рейсы разных авиакомпаний, каждый из них имеет свой номер, свой тип самолета и прочие характеристики. Стыковки бывают как в рамках одного аэропорта, так и с переездом в другой аэропорт того же города.
Например, из Москвы до Сиднея (Австралия) нет прямого рейса. Поэтому можно лететь, например, со стыковкой во Франкфурте:
Стыковки строятся автоматически системами ГДС по специальным алгоритмам. При этом проверяется так называемое MCT (minimum connecting time, минимальное время стыковки) – время, требующееся для осуществления пересадки с рейса на рейс. В ГДС достаточно указать дату, начальный и конечный пункт участка перелета – и она подберет стыковки. Однако перелет стыковочными рейсами используется не только в том случае, если между начальным и конечным пунктом нет прямых рейсов. Довольно часто перелет стыковочными рейсами стоит дешевле прямого рейса, а иногда он получается удобнее по времени вылета/прилета и т.п. Не нужно путать стыковочные (пересадочные) пункты с пунктами отправления/назначения сегментов перелета. В терминах нашей системы участки (сегменты) задаются пользователем, и на этапе задания маршрута он не должен(кроме тех случаев, когда пассажир указывает конкретную точку пересадки по своей инициативе) задумываться о том, какие пересадки пассажиру потребуется совершить, чтобы попасть из пункта отправления каждого участка в пункт назначения. Если пассажир хочет лететь из Москвы в Сидней, значит, у него маршрут OW, состоящий из 1 участка перелета: Москва – Сидней. То, что на участке Москва – Сидней пассажир делает стыковку во Франкфурте, не значит, что у него 2 участка (сегмента) перелета. В терминах ГДС сегментом маршрута называется каждый прямой рейс маршрута. Соответственно, для ГДС в маршруте Москва – Сидней будет 2 сегмента: Москва – Франкфурт и Франкфурт – Сидней.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор группы участков | всегда | 3460159847 |
int | Attribute | id_System | система бронирования - идентификатор GDS, из которой получен данный участок | всегда | 3 |
int | Attribute | DurationMinutes | длительность полета в минутах | 2 | 190 |
AvailabilityFlight | Element | AvailabilityFlight | сегмент перелета (конкретный рейс) в данном маршруте | всегда, если бронь не отменена | - |
AvailabilityFlight - описание сегмента перелета (конкретного рейса) в составе AvailabilityLeg с указанием авиа перевозчика, тарифа, дат и времени, а так же аэропорта вылета и прилета, класса обслуживания и статуса подтверждения с локатором авиакомпании.
Дает нам полную информацию о сегменте перелета, а так же статус его подтверждения.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
uint | Attribute | Key | уникальный идентификатор рейса | всегда | 1583579537 |
string | Attribute | Airline |
код авиакомпании IATA - скачать список с openflights.org маркетинговый перевозчик |
всегда | SU |
string | Attribute | OperatingAirline | оперирующий перевозчик | всегда | SU |
int | Attribute | Number | номер рейса | всегда | 2320 |
string | Attribute | Origin | аэропорт вылета (код аэропорта IATA - скачать список с datahub.io) | всегда | SVO |
string | Attribute | OriginTerminal | терминал в пункте отправления | всегда, если в пункте отправления есть терминалы | D |
string | Attribute | Destination | аэропорт прилета (код аэропорта IATA - скачать список с datahub.io) | всегда | MUC |
string | Attribute | DestinationTerminal | терминал в пункте прибытия | всегда, если в пункте прибытия есть терминалы | 1 |
datetime | Attribute | DepartureDate | дата и время вылета | всегда | 18.12.2017 8:05:00 |
datetime | Attribute | ArrivalDate | дата и время прилета | всегда | 18.12.2017 9:15:00 |
string | Attribute | AirplaneCode | код самолета - Квалификатор воздушных судов | всегда | 320 |
string | Attribute | Status | статус рейса | всегда | HK |
int | Attribute | NumOfStops | количество промежуточных посадок | всегда | 0 |
RBD | Element | RBD | список кодов класса бронирования (часто бывает первой буквой FareName) и наличие | всегда | - |
RBD — код класса бронирования (часто бывает первой буквой кода тарифа FareName).
По каждому рейсу маршрута метод поиска по расписанию Availability в контейнере Availability/AvailabilityLeg/Flight возвращает все классы бронирования, которые есть на рейсе с указанием количества мест, доступных для одновременного бронирования.
Если для класса бронирования, скажем, Y, кол-во доступных мест равно 7, то это не значит, что их на рейсе именно семь. Авиакомпании ограничивают показ доступных мест по классам числами от 1 до 9. Допустим, если для какого-то класса максимально возможное кол-во мест для показа 9, а реально их доступно 20, то система покажет на этот класс 9 доступных мест. А если реально доступных мест на этот класс станет 6, то система так и покажет 6.
Поля класса:
ReferenceContainer - справочники авиакомпаний, городов, аэропортов и семейств тарифов.
Этот объект присутствует в результатах выдачи всех методов API в виде отдельного раздела в структуре ответа и содержит списки данных по тем авиакомпаниям, городам, аэропортам и семействам тарифов, коды которых встречаются в данном ответе.
Поля класса:
Airlines (ReferenceAirline) - список авиакомпаний, каждая из которых присутствует хотя бы в одном из рейсов в ответе
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
string | Attribute | Rus | русское название | всегда | Аэрофлот |
string | Attribute | En | английское название - код авиакомпании IATA - скачать список с openflights.org | всегда | Aeroflot |
string | Attribute | Code | код авиакомпании IATA - скачать список с openflights.org | всегда | SU |
Airports (ReferenceAirport) - список аэропортов, каждый из которых является пунктом вылета или прилета хотя бы в одном из рейсов в ответе.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
string | Attribute | Rus | русское название | всегда | Шереметьево |
string | Attribute | En | английское название - код аэропорта IATA - скачать список с datahub.io | всегда | Sheremetyevo |
string | Attribute | Code | код аэропорта - код аэропорта IATA - скачать список с datahub.io | всегда | SVO |
string | Attribute | id_City | цифровой код города - местонахождениря аэропорта | всегда | 660 |
Cities (ReferenceCity) - список городов, в которых находятся аэропорты из пункта выше.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
string | Attribute | Rus | русское название | всегда | Москва |
string | Attribute | En | английское название | всегда | Moscow |
string | Attribute | Code | код города | всегда | MOW |
string | Attribute | Country | код страны | всегда | RU |
string | Attribute | id_City | цифровой код города | всегда | 660 |
CountryName | Element | CountryName | название страны | всегда | - |
Families (FareFamily) - список семейств тарифов, которые представленны в ответе.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
string | Attribute | Name | название семейства | всегда | BUSINESS SAVER |
string | Attribute | NameLatin | название семейства на английском | всегда | BUSINESS SAVER |
string | Attribute | AirlineCode | код авиакомпании IATA - скачать список с openflights.org | всегда | SU |
Fare | Element | FareType | код класса обслуживания семейства | всегда | - |
string | Element | Description | описание семейства, раскрывающее условия его применения | всегда | Тариф BUSINESS SAVER/LH Meal(BUSINESS CLASS FOOD AND BEV) : доступно |
string | Element | DescriptionLatin | описание семейства на английском, раскрывающее условия его применения | всегда | Fare family BUSINESS SAVER/LH Meal(BUSINESS CLASS FOOD AND BEV) : included |
Service | Element | Services (FareFamilyServiceDetails) | перечень услуг, которые могут быть доступны или недоступны при выполнении перелета по тарифу из семейства | всегда | - |
Relations | Element | Relations (FareFamilyGDSRelation) | перечень кодов, которыми семейство обозначается у разных поставщиков (GDS - см. система бронирования) | всегда | - |
Services (FareFamilyServiceDetails) - перечень услуг, которые могут быть доступны или недоступны при выполнении перелета по тарифу из семейства.
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
int | Attribute | id_FareFamilyService | идентификатор услуги | всегда | 9 |
string | Attribute | Description | описание услуги | всегда | BUSINESS CLASS FOOD AND BEV |
string | Attribute | DescriptionLatin | описание услуги на английском | всегда | BUSINESS CLASS FOOD AND BEV |
string | Attribute | Price | стоимость услуги | всегда | |
bool | Attribute | IsIncluded | доступна услуга или нет | всегда | true |
string | Attribute | Name | название услуги | всегда | Питание |
string | Attribute | NameLatin | название услуги на английском | всегда | Meal |
Relations (FareFamilyGDSRelation) - перечень кодов, которыми семейство обозначается у разных поставщиков (GDS - см. система бронирования).
Поля класса:
Тип | XML-тип | Название | Комментарий | Наличие в ответах | Пример |
---|---|---|---|---|---|
int | Attribute | id_System | идентификатор GDS (система бронирования), для которого указан код | всегда | 3 |
string | Attribute | Code | код семейства | всегда | SAVER |