Pricing 2.0: specification: различия между версиями
Строка 15: | Строка 15: | ||
| id | | id | ||
| <span id="id">id</span> | | <span id="id">id</span> | ||
− | | Unique record number, can be taken from any database/system. It's optional parameter and isn't involved in any calculations (only for imformational purpose). | + | | Unique record number, can be taken from any database/system. It's an optional parameter and isn't involved in any calculations (used only for imformational purpose). |
| any integer value | | any integer value | ||
| 123 | | 123 | ||
Строка 203: | Строка 203: | ||
| fare codes | | fare codes | ||
| <span id="tariffs">tariffs</span> | | <span id="tariffs">tariffs</span> | ||
− | | Allowed fare codes. | + | | Allowed fare codes. At least one fare from the flight must match with one of the fare codes listed in this column. There should be no matches, if you use negation in this column. Fuzzy matching is allowed: a code from the rule can be a part of the fare code from the flight (for example, value S1GREY26 from a rule will match to the S1GREY26CH from a flight). <br/> |
<br/> | <br/> | ||
− | + | Acceptable values: | |
− | * | + | *CODE,CODE,CODE : at least 1 fare code from a flight must be in the list. |
− | * | + | *CODE,CODE,CODE! : all fare codes must be in the list for this flight. |
− | *<> | + | *<>CODE,CODE,CODE : at least 1 fare code must not be in the list. |
− | *<> | + | *<>CODE,CODE,CODE! : all fare codes must not be in the list for this flight. |
− | + | You can also define a [https://en.wikipedia.org/wiki/Regular_expression regular expression]. All one has to do is to write this parameter as /XXX/. Examples: | |
− | */ABC/ - | + | */ABC/ - code must contain "..ABC..", for example "NBABCS". |
− | */abc/i - | + | */abc/i - code can contain this sequence regardless of the symbol case, for example, "NBABCS" or "Abcof" will do. |
− | */'''^'''TN/ - | + | */'''^'''TN/ - code must begin with "TN..", for example "TNQRTY". |
− | */OW'''$'''/ - | + | */OW'''$'''/ - code must end with "..OW", for example "SRSOW". |
− | */'''^.'''L/ - | + | */'''^.'''L/ - code can start with any letter ('''.''' - any symbol), the second letter must be L, for example "QLFST". |
− | */OK'''.*'''RT/ - ( '''.*''' = | + | */OK'''.*'''RT/ - ( '''.*''' = any number of any symbols) "..OK..RT..", for example, "ANOKURTN" |
| | | | ||
− | + | empty = any<br/>- 1 or several values (see the description) | |
| | | | ||
Строка 227: | Строка 227: | ||
<br/>/TN.*OW/ | <br/>/TN.*OW/ | ||
|- | |- | ||
− | | | + | | maximum fare value |
| <span id="maxTariff">maxTariff</span> | | <span id="maxTariff">maxTariff</span> | ||
− | | | + | | Limit for the maximum allowed value of the "base fare" (i.e. sum of all fares in a flight excluding airline taxes). If this value is defined, the whole pricing rule will be applied only in case if the flight fare is less or equal to this value. |
| | | | ||
− | + | empty = any нет<br/>xxxCODE (see examples) | |
| | | | ||
Строка 238: | Строка 238: | ||
|- | |- | ||
− | | | + | | private fare |
| <span id="privateFare">privateFare</span> | | <span id="privateFare">privateFare</span> | ||
− | | | + | | Pricing rule will be applied only in case if the flight fare is private (confidential). This characteristic is returned by the GDS. If a specific private fare code is already known, then this parameter is not mandatory. |
| | | | ||
− | + | empty = any fares<br/>1 - at least 1 private fare must be in a flight<br/>0 - only public fares are allowed | |
| | | | ||
Строка 248: | Строка 248: | ||
|- | |- | ||
− | | | + | | tax codes |
| <span id="taxes">taxes</span> | | <span id="taxes">taxes</span> | ||
− | | | + | | Allowed airline taxes |
− | + | Acceptable values: | |
− | * | + | *CODE,CODE,CODE : at least 1 tax code from a flight must be in the list. |
− | * | + | *CODE,CODE,CODE! : all taxes must be in the list for this flight. |
− | *<> | + | *<>CODE,CODE,CODE : at least 1 tax must not be in the list. |
− | *<> | + | *<>CODE,CODE,CODE! : all taxes must not be in the list for this flight. |
− | + | where CODE is a sequence of uppercase latin letters. | |
| | | | ||
− | + | empty = any<br/>- 1 or several values (see the description) | |
| | | | ||
YQ,YR<br/><>YQ! | YQ,YR<br/><>YQ! | ||
Строка 269: | Строка 269: | ||
|- | |- | ||
− | | | + | | price is confirmed |
| <span id="priceIsActual">priceIsActual</span> | | <span id="priceIsActual">priceIsActual</span> | ||
− | | | + | | This parameter is verified by the system during the search step and after going to the checkout page. During and after a search request the flight price is considered as unconfirmed. Price is confirmed (and relevant) after making an availability check, when the user goes to an order page. |
− | | | + | | |
− | + | empty = any flights<br/>1 - price is checked and confirmed<br/>0 - flight price is just returned in the search results | |
| | | | ||
Строка 279: | Строка 279: | ||
|- | |- | ||
− | | | + | | validating carrier's fare is present in each flight segment |
| <span id="valSegmentsInTariff">valSegmentsInTariff</span> | | <span id="valSegmentsInTariff">valSegmentsInTariff</span> | ||
− | | | + | | System will check if there is at least one fare owned by the validating carrier in each segment. |
| | | | ||
− | + | empty or 0 = any fares<br/>1 - requirement described above is mandatory. | |
| | | | ||
Строка 290: | Строка 290: | ||
|- | |- | ||
− | | | + | | service classes |
| <span id="serviceClass">serviceClass</span> | | <span id="serviceClass">serviceClass</span> | ||
| | | | ||
− | + | Allowed service class categories<br/>Applicable values: | |
− | * | + | *CODE,CODE: at least 1 class from any flight segment must be in the list. |
− | * | + | *CODE,CODE! : classes of all segments must be in the list for this flight. |
− | *<> | + | *<>CODE,CODE : at least 1 class must not be in the list. |
− | *<> | + | *<>CODE,CODE! : all classes must not be in the list for this flight. |
− | + | where CODE: | |
− | *B - | + | *B - business |
− | *E - | + | *E - economy |
− | *F - | + | *F - first |
− | *EB - | + | *EB - economy + business combination |
− | *EF - | + | *EF - economy + first combination |
− | *BF - | + | *BF - business + first combination |
| | | | ||
− | + | empty = any<br/>- 1 or several values (see the description) | |
| | | | ||
Строка 317: | Строка 317: | ||
|- | |- | ||
| | | | ||
− | + | booking classes (letters) | |
| <span id="bookingClass">bookingClass</span> | | <span id="bookingClass">bookingClass</span> | ||
| | | | ||
− | + | Different latin letters are allowed (only one letter for each booking class). | |
+ | <br/>Applicable values: | ||
− | * | + | *CODE,CODE: at least 1 class from any flight segment must be in the list. |
− | * | + | *CODE,CODE! : classes of all segments must be in the list for this flight. |
− | *<> | + | *<>CODE,CODE : at least 1 class must not be in the list. |
− | *<> | + | *<>CODE,CODE! : all classes must not be in the list for this flight. |
| | | | ||
− | + | empty = any<br/>- 1 or several values (see the description) | |
| A,B,C<br/><>A,B,C | | A,B,C<br/><>A,B,C | ||
|- | |- | ||
− | | | + | | airlines and classes |
| <span id="airlinesAndClasses">airlinesAndClasses</span> | | <span id="airlinesAndClasses">airlinesAndClasses</span> | ||
| | | | ||
− | + | Set of pairs "marketing carrier" + "booking class" for any segment of the flight route. | |
− | + | Applicable format: | |
− | * | + | * CODE:CODE,CODE:CODE,CODE:CODE : at least 1 segment in the flight must match for the pairs "airline + class" from this column. |
− | * | + | * CODE:CODE,CODE:CODE,CODE:CODE! : all segments of the flight must match |
− | * <> | + | * <>CODE:CODE,CODE:CODE,CODE:CODE : at least 1 segemnt must not match |
− | * <> | + | * <>CODE:CODE,CODE:CODE,CODE:CODE! : all segments must not match |
| | | | ||
− | + | empty = any<br/>- 1 or several values (see the description) | |
| | | | ||
Строка 354: | Строка 355: | ||
<>S7:A,BA:B! | <>S7:A,BA:B! | ||
|- | |- | ||
− | | | + | | geo zones |
| <span id="zones">zones</span> | | <span id="zones">zones</span> | ||
| | | | ||
− | + | Geographic zones of the flight. Pricing rull will be applied, if all segments of the flight are within one of the zones listed here. | |
+ | See also [http://www.geonames.org/countries/ list of all countries and their zones] | ||
− | *AF - | + | *AF - Africa, |
− | *AN - | + | *AN - Antarctic |
− | *AS - | + | *AS - Asia |
− | *EU - | + | *EU - Europe |
− | *NA - | + | *NA - North America |
− | *OC - | + | *OC - Australia/Oceania |
− | *SA - | + | *SA - South America |
− | + | If a flight must belong to 2 zones at the same time ("EUSA, EUNA" - transatlantic flight): | |
− | *EUSA - | + | *EUSA - Europe + South America, |
− | *EUNA - | + | *EUNA - Europe + North America |
− | *EUAS - | + | *EUAS - Europe + Asia |
− | *EUAF - | + | *EUAF - Europe + Africa |
− | *EUOC - | + | *EUOC - Europe + Australia/Oceania |
− | *AFNA - | + | *AFNA - Africa + North America |
− | *ASNA - | + | *ASNA - Asia + North America |
| | | | ||
− | + | empty = any<br/>- 1 or several values (see the description) | |
| | | |
Версия 22:44, 2 марта 2016
Empty file template
Файл:CommImportExampleV1.0.5.xlsx
Title |
Operating name |
Description |
Acceptable values |
Examples |
---|---|---|---|---|
id | id | Unique record number, can be taken from any database/system. It's an optional parameter and isn't involved in any calculations (used only for imformational purpose). | any integer value | 123 |
GDS validating carrier | valCompanyId |
Carrier (airline) code is compared to the airline that is offered by GDS as a validating one. Agency must have a contract with this airline. In case if there is a need to issue tickets and assign another airline stock, you can redefine the validating carrier using the next column ("redefined carrier"). If the GDS validating carrier isn't confirmed by Nemo pricing rules as an allowed carrier and isn't redefined, Nemo considers this сarrier as an unauthorized one. You can exclude such flights from search results using a special search filter. |
empty value is ignored
2 letters/digits |
SU
LH |
redefined validating carrier | manualVV |
If an agency has no contract agreement with the GDS validating carrier (or it provides relatively low commission value), you can redefine the validating carrier on your side using this parameter. In this case the "validating carrier" value must be the same as the GDS validating carrier (or it can be empty). |
empty value is ignored |
SU |
first segment carriers | airlines |
List of allowed marketing carriers for the first route segment. |
empty = any values |
SU,LH,BA
<>S7,SU |
any segment carriers | airlinesAny |
List of allowed marketing carriers (interlines) for any segment.
|
empty = any values |
SU,LH,BA |
code-sharing | codeSharing | Code-sharing index (i.e. if a flight can or can't be operated by another airline). |
empty = all flights |
0
1 |
operators | operatingAirlines |
List of allowed operating carriers (for all segments)
|
empty = any values |
SU,LH,BA |
part of own segments | ownPart | Minimum allowed part of own flight segments (i.e. validating carrier is equal to a marketing carrier for these segments). It has to be greater than or equal to this value.
|
empty = any values |
0.88 |
part of interline segments | interlinePart | Minimum allowed part of interline flight segments (i.e. validating carrier is not equal to a marketing carrier for these segments). It has to be greater than or equal to this value.
|
empty = any values |
0.88 |
contract type | contractType | BSP or TCH system |
empty = any type, |
TCH |
GDS | gds | Here you can define the allowed GDS (Amadeus, Sabre, etc.), PCC or Nemo package ID for a specific pricing rule. Different types can be combined and listed in any sequence. For example, if you choose Sabre as the GDS, then there is no point to list all Sabre PCC's or packages you are going to use. |
empty = any |
SABRE,670P,123
AMADEUS,GALILEO |
start of selling | paymentDateFrom | Minimum allowed date of booking (it is NOT equal to the departure date). Pricing rule will be applied if current date is more or equal to the date defined in this column. | empty = any date DD.MM.YYYY |
01.01.2012
31.01.2010 |
end of selling | paymentDateTo | Maximum allowed date of booking. Pricing rule will be applied if current date is less or equal to the date defined in this column. | empty = any DD.MM.YYYY |
31.12.2022 |
flight type | airlineType | International or domestic flight (i.e. the whole flight with all transfers is within the same country. | empty = any IA (international airlines) DA (domestic airlines) |
IA DA |
flight numbers | flightNumber |
Allowed flight numbers, can be defined with the marketing carrier or code or without it. Acceptable values:
|
empty = any |
SU 123,SU 345 123,345 <>LH 555 |
aircraft type | aircraft |
Allowed aircraft codes, should be defined as returned by the GDS Acceptable values:
|
empty = any |
73C,DH4 735 |
fare codes | tariffs | Allowed fare codes. At least one fare from the flight must match with one of the fare codes listed in this column. There should be no matches, if you use negation in this column. Fuzzy matching is allowed: a code from the rule can be a part of the fare code from the flight (for example, value S1GREY26 from a rule will match to the S1GREY26CH from a flight).
You can also define a regular expression. All one has to do is to write this parameter as /XXX/. Examples:
|
empty = any |
WRUTH9PL,ARUTH9PL
|
maximum fare value | maxTariff | Limit for the maximum allowed value of the "base fare" (i.e. sum of all fares in a flight excluding airline taxes). If this value is defined, the whole pricing rule will be applied only in case if the flight fare is less or equal to this value. |
empty = any нет |
10000RUB |
private fare | privateFare | Pricing rule will be applied only in case if the flight fare is private (confidential). This characteristic is returned by the GDS. If a specific private fare code is already known, then this parameter is not mandatory. |
empty = any fares |
0 |
tax codes | taxes | Allowed airline taxes
Acceptable values:
where CODE is a sequence of uppercase latin letters. |
empty = any |
YQ,YR |
price is confirmed | priceIsActual | This parameter is verified by the system during the search step and after going to the checkout page. During and after a search request the flight price is considered as unconfirmed. Price is confirmed (and relevant) after making an availability check, when the user goes to an order page. |
empty = any flights |
0 |
validating carrier's fare is present in each flight segment | valSegmentsInTariff | System will check if there is at least one fare owned by the validating carrier in each segment. |
empty or 0 = any fares |
0
|
service classes | serviceClass |
Allowed service class categories
where CODE:
|
empty = any |
B,E |
booking classes (letters) |
bookingClass |
Different latin letters are allowed (only one letter for each booking class).
|
empty = any |
A,B,C <>A,B,C |
airlines and classes | airlinesAndClasses |
Set of pairs "marketing carrier" + "booking class" for any segment of the flight route. Applicable format:
|
empty = any |
SU:A,LH:B,BA:C |
geo zones | zones |
Geographic zones of the flight. Pricing rull will be applied, if all segments of the flight are within one of the zones listed here. See also list of all countries and their zones
If a flight must belong to 2 zones at the same time ("EUSA, EUNA" - transatlantic flight):
|
empty = any |
AS,EU |
зона из стран | countryZones | Перечисленные коды стран образуют зону, за пределами которой самолет не должен садиться и взлетать. | пустое = любые
КОД,КОД... |
RU,IT,DE,FR |
страны вылета | depCountries | Допустимые страны вылета для перелета (проверяется только страна вылета первого сегмента маршрута). |
пустое = любые |
RU |
страны назначения | arrCountries | Проверяется страна назначения (для OW и CR: это последняя страна последнего сегмента, для RT: это последняя страна первого плеча маршрута). К примеру для перелета MOW-PAR-MOW страна назначения FR, для MOW-PAR-LON - GB. Правило страна вылета=RU, страна назначения=RU не означает местный рейс - не забывайте указывать тип рейса DA (ВВЛ). |
пустое = любые |
RU |
прямой рейс | isDirect | Признак прямого рейса |
пустое = любые |
0 |
тип маршрута | routeType |
Можно оставить поле пустым или указать одно значение:
|
пустое = любой |
OW |
маршруты | routeFull | Цепочка из IATA кодов городов или аэропортов, описывающая весь маршрут перелета с учетом пересадок, без разрывов и повторов. Всегда следует использовать IATA код города, если он имеется (агрегирующий аэропорт). К примеру перелет VKO-ORY, ORY-VKO приводится к маршруту MOW-PAR-MOW. |
пустое = любые |
MOW-LON,LON-MOW |
содержит маршруты | routePart |
Указывается только часть маршрута, составленного по аналогии с предыдущим. |
пустое = любые |
-CAI- |
маршруты (из аэропортов) | routeAirportsFull | В правиле можно и нужно использовать IATA коды аэропортов (не городов). Остальное аналогично с "маршруты" | см. описание | см. описание |
содержит маршруты (из аэропортов) | routeAirportsPart | В правиле можно и нужно использовать IATA коды аэропортов (не городов). Остальное аналогично с "содержит маршруты" | см. описание | см. описание |
вылет (аэропорты, города) | depAirports | Проверяется только аэропорт вылета первого сегмента. При указании кодов аэропортов необходимо точное совпадение. При указании кодов городов (агрегирующий аэропортов) сопоставление происходит по внутреннему справочнику аэропоротов. Рекомендуется указывать коды конкретных аэропортов. |
пустое = любые |
MOW,PAR,BER <>VKO,LON |
прилет (аэропорты, города) | arrAirports | Аэропорт прилета определяется аналогично "стране назначения". Проверка на сопоставление происходит по аналогии с "вылетом (аэропорты, города)" |
пустое = любые |
MOW,PAR,BER <>VKO,LON |
начало вылета | dateBegin | Дата вылета первого сегмента должна быть больше или равна указанной дате | пустое = игнорируется DD.MM.YYYY |
01.01.2012
31.01.2010 |
вылет через (в часах) | dateDepartureAfter | От текущей даты задается максимальное значение или диапазон вылета. Например, если необходимо выделить перелеты не позднее 5 дней до вылета, то задается диапазон [0,120]. | пустое = ограничения нет максимальное значение [X,X] - диапазон |
13
[10,100] |
конец вылета | dateEnd | Дата вылета первого сегмента должна быть меньше или равна указанной дате | пустое = игнорируется DD.MM.YYYY |
31.12.2022 |
возврат не ранее | dateBackBegin | Дата вылета последнего сегмента маршрута должна быть больше или равна указанной дате | пустое = игнорируется DD.MM.YYYY |
31.12.2022 |
возврат не позднее | dateBack | Дата вылета последнего сегмента маршрута должна быть меньше или равна указанной дате | пустое = игнорируется DD.MM.YYYY |
31.12.2022 |
длительность в днях | daysDuration | Ограничение на максимальный разрыв в днях между первой датой перелета и завершением маршрута. Можно задавать диапазон Длительность в днях считается, как математическая разность дат. При вылете и возврате в один день длительность равна 0 дней. |
пустое = ограничения нет |
13 |
дни недели | dayOfWeek | Допустимые дни недели для даты вылета первого сегмента маршрута. Значения указываются числом, соответствующим порядку дня недели, начиная с понедельника. | пустое = игнорируется 1 - понедельник |
2 |
типы пассажиров | passengers | Допустимые типы пассажиров в перелете. Для срабатывания правила в перелете обязательно должны присутствовать все перечисленные типы. |
пустое = любые |
INF |
маска перелета |
Формализованное описание полета в текстовом формате, для создания сложных правил |
|
| |
приоритет | priority | Если срабатывает несколько правил, то выбирается одно с наибольшим приоритетом. Если существует несколько правил с одинаковым приоритетом (или приоритет не указан) выбирается более новое правило (расположено ниже в импортируемой таблице) | целое число пустое = 0 |
1 2
|
код акции | Универсальный код промоакции. Создается в админ панели в разделе Программа лояльности ⇨ Промоакции и промокоды. | любой набор букв/цифр/символов | 12022014_Promo | |
utm source | utmSource | ID источника перехода, который отображается в поле «№» таблицы источников переходов в метрике. Допустимо вводить несколько источников. |
пустое = любые КОД,КОД... <>КОД,КОД...(кроме) |
123,456 <>123,456 |
комиссия авиакомпании | commission | Прибыль агента, получаемая от авиакомпании за проданные билеты. Обязательное для правильного заполнение поле, должно соответствовать указанному в контракте. Значение передается через ГДС при выписке. Может указываться в процентах от тарифа или в абсолютной стоимости (за каждого пассажира)
При определении валидирующего перевозчика, правила с указанной нулевой комиссией имеют больший приоритет перед правилами с пустой комиссией. |
"xxxКОД" (код валюты) или "XX%" |
100RUB 13% |
комиссия субагентам | agencyCommission | Часть прибыли от авиакомпании, которой агент готов поделится с субагентами. Указанное значение сразу действует как скидка только для субагентов, уменьшая стоимость авиабилетов. Можно указать идентификаторы отдельных субагентов. В случае, когда комиссия задана для всех субагентов, и задана комиссия для конкретного субагента X, то комиссия
субагента X = Комиссия субагента X + Комиссия установленная для всех субагентов.
|
см. описание |
100RUB 5%,(123:6%), (345:8%) |
посегментный расчет комиссии | modeForSegment | Признак применения комиссии или бонуса за каждый сегмент перелета. Например 100 руб. за каждый сегмент.
|
пустое = 0 |
0 |
бонус авиакомпании | bonus | Дополнительная прибыль агента, получаемая от авиакомпании, но не участвующая в запросах к GDS. Задается и вычисляется полностью аналогично комиссиям (при вычислении учитывается параметр "посегментный расчет комиссии"). Используется для расчета "прибыльности" авиаперелета, влияет на работу микшера и может повлиять на сбор при установке параметра "минимальная прибыль".
Из всех сработавших правил бонус будет учтен только из одного по следующему приоритету:
|
"xxxКОД" (код валюты) или "XX%" |
100RUB 13% |
бонус за сегмент (допустимые авиакомпании) | modeForAirlines | Установка текущего параметра принудительно включает режим расчета бонуса за каждый сегмент перелёта (для абсолютно заданного бонуса), но в расчете учитываются только сегменты с валидирующим или с интерлайновыми перевозчиками из заданного здесь списка. |
пустое |
SU |
сбор агентства | charge | Здесь укываются все наценки/скидки, которые будут применены для описанного правилом перелета. В одном поле можно указать несколько ценовых правил, разделив их по типам пользователя. формат = (субъект:сумма),(субъект:сумма),(субъект:сумма)...
Если срабатывает несколько ценовых правил, перечисленных через запятую, берется их сумма. Если это не подходящее поведение, разделяйте ценовые правила в отдельные перелетные правила (строки), их можно регулировать приоритетом |
см. описание |
см. описание |
признак доп.сбора | chargeExt |
Настройка позволяет изменять процедуру расчета сбора, добавляя к итоговому результату дополнительные расчетные правила.
|
пустое = 0 |
0 |
минимальная прибыль | minProfit | Минимальная прибыль, которую агентство получит за заказ. Если рассчитанная прибыль агентства меньше минимальной, то сбор будет увеличен до необходимого значения.
Формат аналогичен формату сбора агентства. Для расчетов будет применено значение из правила, по которому будет определена комиссия авиакомпании. Если требуется изменить это поведение, следует установить параметр "приоритет мин. прибыли" (см. ниже) |
см. описание | 50RUB*LEG*PAS |
приоритет мин. прибыли | minProfitPriority | Дополнительный параметр, отвечающий за расчет минимальной прибыли. Сработает правило с наибольшим приоритетом, если приоритет совпадает, то будет использовано правило, которое находится ниже | Положительные числовые значения. | 1, 2, ... |
округление | chargeRounding | Порядок арифметического округления сбора | пустое = 0, 0 = до целого значения, 0.1 = до десятых, 0.01 = до сотых |
0.1 0.01 |
Ценообразование. Импорт правил. Дополнительные параметры для Немо платформы