Difference between revisions of "Pricing (air tickets)"

From docs.websky.tech
Jump to navigation Jump to search
(Created page with "<!-- --> ==Purpose== '''Pricing''' module automates the process of calculating commissions and charges for airline tickets, managing commission rules for carriers, agency char...")
 
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
<!-- -->
 
 
==Purpose==
 
==Purpose==
'''Pricing''' module automates the process of calculating commissions and charges for airline tickets, managing commission rules for carriers, agency charges and commission rewards for subagents.
+
'''Pricing''' module automates the process of calculation of commissions and charges for air tickets, management of carrier's commission rules, agency fees and sub-agents' commissions.
* allows you to quickly configure even complex commission rules,
+
 
* allows you to build a convenient and understandable pricing scheme,
+
* allows you to quickly set up even complex commission rules,  
* accurately comply with the complex conditions provided by airlines,
+
* allows you to build a convenient and clear pricing scheme,
 +
* accurately comply with the difficult conditions provided by airlines,  
 
* guarantees correct calculations,
 
* guarantees correct calculations,
* provides a tool for monitoring the accuracy of calculations.
+
* provides a tool to control the correctness of calculations.
  
== Princile of operation ==
+
==Principle of operation==
The module is based on the pricing rules that the agency sets.
+
The module's operation is based on the agency's pricing rules.
  
'''Rule''' — a set ''commission and charge values'' и ''условия их применения''. <br />
+
'''Rule''' — set of "commission and fee values" and "conditions of their application". <br />
'''Commission and charge values''' are:<br />
+
'''Values of commissions and charges''' is:<br />  
*airline commisssion, <br />
+
*commission from the airline, <br />
*airline bonus, <br />
+
* airline bonus, <br />
 
*agency charge, <br />
 
*agency charge, <br />
*comission for the subagents. <br />
+
*commission for subagents. <br />
'''Commission and charge application rules''' — a set of flight parameters to which the comsissions and charges of the rule will apply (“validating carrier”, “GDS”, “flight type”, “passenger types” etc).  
+
'''Condition of application for commissions and charges''' — a set of flight parameters to which the fees and charges of the rules will apply ("validating carrier", "GDS", "flight type", "passenger types", etc.).
  
Pricing rules are set in the table, in the XLS or XLSX file where:
+
Pricing rules are defined in a table in an XLS or XLSX file, where:
 +
* "Table string" - rule.  <br />
 +
* " String cell" - parameter value.  <br />
 +
* "Column header" - parameter name.  <br /> Each line is a separate rule. <br /> ''For one flight, only one rule is selected by criteria and only one rule applies''.
  
*''Table string'' — rule.  <br />
+
Before calculating the commissions, the pricing module determines the availability of the flight for the ticketing and the rule by which the commissions and fees are calculated, using the following algorithm:
*''String cell'' — parameter value. <br />
 
*''Column heading'' — parameter name. <br /> Each string is a separate rule. <br /> '''For a single flight, only one rule is selected by criteria and applied'''
 
  
Before calculating commissions, the pricing module determines the availability of the flight for ticketing and the rule by which commissions and fees are calculated according to the algorithm:
+
# The module records which airline GDS has defined as the validating airline;
 +
# Finds all the rules for that airline in the pricing file;
 +
# Selects the rules that match the flight by all parameters;
 +
# Selects '''one''' of the appropriate rules by priority criteria;
 +
# If the triggered rule does not contain an override of the validating carrier, the validating carrier obtained from the GDS is established.
 +
# * If the triggered rule contains an override of the validating carrier, the overriding validating carrier is set.
 +
# The rule applies.
  
# The module records which airline is identified by GDS as validating;
+
The agency may only issue online flights of '''contract airlines'''. An airline is considered a contract airline if it has at least 1 rule in its uploaded pricing file.  
# Finds all the rules for a given airline in the pricing file;
 
# Selects the rules that match the flight by all the parameters;
 
# Selects '''one''' of the appropriate rules by priority criteria;
 
#* If the triggered rule does not contain the validating carrier override, the validating carrier received from GDS will be set.
 
#* If the triggered rule contains the validating carrier override, an overridden validating carrier is established.
 
# The rule is applied.  
 
  
The Agency can issue online flights only for '''contract airlines'''. An airline is considered to be contract if at least 1 rule in the downloaded pricing file is set for it.
 
  
'''ATTENTION!''' Flight '''cannot be issued''' if:
+
'''Attention!''' The flight '''cannot be ticketed''' if:
* rules for an airline are not set. It is recommended to delete such flights from the search results by the filter “Airline is not contract”.
+
* there are no rules for the airline. It is recommended to delete such flights from the search results filter output "Airline is not contract".
* rules are set, but flight parameters don’t match rule parameters.
+
* rules for the airline are established, but the flight parameters do not correspond to the rule parameters.
Workflow is shown in the following scheme:
+
The module's working order is given in the diagram:
  
<!-- {| class="wikitable"
+
{| class="wikitable"
 
|-
 
|-
|[[Файл:Pricing_scheme.png|1000px]]
+
|[[File:Pricing_1.png|1000px]]
 
|-
 
|-
|Pricing module work scheme
+
|Workflow of the Pricing module
|} -->
+
|}
  
 +
Commissions and charges '''are calculated each time an order is updated according to the rules loaded into the system at the time of checking''':
 +
* when the search results are generated,
 +
* at the time of booking,
 +
* when switching to payment and ticketing,
 +
* when updating the order page.
  
Commissions and charges '''are calculated at each order update by the rules loaded into the system at the time of verification''':
+
If, during the period between booking and ticketing, '''''rules were changed''''', аfter bookingб the order the commissions will be calculated according to the new rules, so the price at the time of booking and the price at the ticketing may differ. The behavior of the system in case of such a situation is set by the parameter '''''Recalculate service charge''''' under System Settings → Background Processes → Synchronization Events. You can track the calculation of commissions valid at the time of booking in the logs on order.  
*when forming search results,
 
*when booking,
 
*when switching to payment and ticketing,
 
*when refreshing order page.
 
  
If '''''rules were changed''''' between booking and ticketing, after the booking of an order, commissions will be calculated by the new rules; thus, booking price may be different from the ticketing price. System behavior for such situations is set by the parameter '''''Recalculate service charge''''' in the '''System settings → Background processes → Triggers settings section'''. Calculation of commissions, which are active at the time of booking, can be traced in the order logs.  
+
In the price details (on the order page) and in the itinerary receipt information on the charges is provided in accordance with one of the '''modes of division of charges by passengers''':
 +
* Equally divided between non-zero ticket prices - agency and subagency charges are divided equally between all passengers with fare and tax more than 0. This mode is selected by default.
 +
* Equivalent between all fares - agency and subagency charges are divided equally among all passengers.
 +
* Proportional to fares - agency and subagency charges are divided proportionally to the fare price for a particular passenger in the total amount of the order, i.e. the more the fare price is, the more part of the charge is allocated for it.
 +
* Only to the first type of passenger - agency and subagency charges are allocated to the first type of passenger.
 +
* Proportional to fares , except for infants - agency and subagency charges are divided proportionally to the fare price for a particular passenger in the total amount of the order, except for infants.
 +
''The fees in the price details are presented with the division only if they are hidden in XP/XX taxes, otherwise they are displayed as a separate line without division.''<br>
 +
You can find the setting in the '''Sales Management - Air Tickets - Pricing - Settings - Passenger Fee Splitting Mode'''.  
  
In the price details (on the order page) and in the itinerary receipt, information on fees is presented by one of the '''passenger charge separation modes''':
+
=== Commission calculation for non-contractual airlines ===
* Equally between non-zero ticket prices - agency and sub-agency charges are divided equally between all passengers whose fare and tax amount is greater than 0. This mode is selected by default.
 
* Equally between all fares - agency and sub-agency charges are divided equally among all passengers.
 
* In proportion to fares - agency and sub-agency charges are divided in proportion to the fare price for a specific passenger in the total amount of the order, i.e. the higher the fare price, the greater part of the charge is allocated to it.
 
* Only for the first type of passenger - agency and sub-agency charges are determined by the first type of passenger.
 
* In proportion to the fare, except infants - agency and sub-agency charges are divided in proportion to the fare for a specific passenger in the total amount of the order, with the exception of the infant type passenger.
 
Charges in the price details are presented with the consideration of the breakdown only if they are hidden in XP/XX fees, otherwise they are displayed as aт individual line without separation.'' <br>
 
The setting can be found in the '''«Product control → Aviatickets → Pricing → Settings».'''
 
  
=== Calculation of comissions for non-contract airlines ===
+
The agency may "issue tickets" to "non-contractual" airlines on "clean interline" terms between the airlines.
  
Agency can '''issue tickets of ''non-contract'' airlines''' on the condition of pure interline between airlines.
+
For example,
 +
* The agency has no contract with "AA" airline.
 +
* The agency has a contract with "BB" airline.
 +
* There is an interline agreement between "AA" and "BB" companies, which allows issuing tickets for "AA" on "BB" form.
  
For example,
+
To issue tickets for "AA" airline, the agency has a rule for "AA" airline, which specifies:
* The agency does not have a contract with «АА» airline.
+
# Validating carrier: '''''«AA»''''',
* The agency has a contract with the airline «BB» airline.
+
# redefined carrier: '''''«BB»''''',
* Between the «АА» and «BB» companies, there is an interline agreement allowing to issue tickets for «АА» on the «BB» form.
+
# share of interline segments:'''''«1»''''',
 +
# airline commission: ''specify the amount of commission provided by "BB" for tickets with 100% share of interline segments''.  
  
In order to issue «АА» airline tickets, the agency sets up a rule for «АА» airline, which contains:
+
'''Attention!''' The Websky system does not monitor the presence of interline agreements between carriers. Responsibility for redefinition lies entirely with the agency.
# validating carrier: '''''«АА»''''',
 
# overriden carrier: '''''«BB»''''',
 
# share of interline segments: '''''1''''',
 
# airline commission: ''indicate the amount of the commission reward provided by «ВВ» for tickets with a 100% share of interline segments''.
 
  
'''ATTENTION!''' Websky system does not track if there are interline agreements between carriers. The agency is fully responsible for the override.  
+
=== Selecting the rule for calculation ===
 +
Commissions for the flight are calculated by one rule. If several rules are suitable for the flight, the system chooses the rule for calculation by priority criteria. Rules are compared on the first criterion, if the criterion in this case does not work, on the second and so on, until one rule is defined.
  
=== Choosing the rule for calculations ===
+
The order of comparing the rules to select the rule for the calculation:
Commissions for flights are calculated by one rule. If several rules are suitable for a flight, the system selects a rule for calculation by the priority criteria. The rules are compared according to the first criterion, if the criterion in this case is not triggered - by the second one and so on, until one rule is determined.  
+
# '''By "Priority" column''' - if the triggered rules have a priority, the rule with the highest priority is selected.
 +
# '''By the presence of an overridden carrier''' - if several rules with the same priority are triggered (or the priority is not specified), the rule with the overridden VC is selected.
 +
# '''For a nonempty ''Commission'' cell''' - the priority of the rules with an established commission (even in 0%) is higher than that of the rules with an empty cell.
 +
# '''Extra priority''' - ''Manually set'' in the section '''Product control → Avia tickets → Pricing → Settings''' by the parameter '''''Extra priority''''':
 +
# * ''''No''' - no additional priority is set.
 +
# * ''''Maximum commission from the airline''''' - the rule with the maximum commission from the airline is selected.
 +
# *''''By the number of parameters in the rule''''' - the rule with the largest number of non-empty parameters is selected.
 +
# '''Rule's ordinal number''' - if none of the priorities is applicable, the newer rule is considered the priority (the table below the others).
  
Procedure for comparing rules for selecting the rule for calculation:
+
== Testing and debugging of rule triggering ==
#'''By the ''Priority'' column''' - if triggered rules have priority indicated, then the rule with the highest priority is selected.
+
All calculations at each stage of their application are logged and displayed in the debug table. The debug table is used to control how the rules work, providing information about how the rules apply to the selected flight.  
#'''By the presence of an overriden carrier''' - if several rules with the same priority are triggered (or priority not defined), the rule with overriden VC is selected.
 
#'''By a non-empty ''Comission'' cell''' - priority of rules with set commission (even 0%) is higher than
 
По непустой ячейке ''Комиссия''''' - priority of rules with a set commission (even at 0%) is higher than priority of rules with an empty commission cell.
 
#'''Additional priority''' - ''set manually'' in the '''Product control → Aviatickets → Pricing → Settings''' section by the parameter '''''Additional priority''''':
 
#*'''''Not set''''' - Additional priority not set.
 
#*'''''Maximum airline comission''''' - selects the rule with maximum airline comission.
 
#*'''''By the number of parameters in the rule''''' - selects the rule with the largest number of non-empty parameters.
 
#'''Rule index number''' - if none of the priorities is applicable, the newer rule (located in the table below the others) is considered priority.
 
  
== Testing and debugging rule triggering ==
+
Link to the debug table is available to the manager and experts of the root agency:
All the calculations at each stage of their application are logged and displayed in the debug table. The debug table is used to control the triggering of the rules, providing information on the application of the rules to the selected flight.
+
* to display search results for each flight by the '''''Commission ''''' link,  
 +
* on the order page, in the flight price detail, by clicking on the amount of commission or charge.
  
The link to the debug table is available to the agency manager:
+
{| class="wikitable"
* on the search results, for each flight by the '''''Comission''''' link,
 
* on the order page, on the flight price details by clicking on the amount of the commission or charge.
 
 
 
<!-- {| class="wikitable"
 
 
|-
 
|-
|[[Файл:Ссылка на таблицу отладки на странице поиска.png|800px]]
+
|[[File:Pricing_2.png|800px]]
 
|-
 
|-
 
|Link to debug table on the search page
 
|Link to debug table on the search page
|} -->
+
|}
  
<!-- {| class="wikitable"
+
{| class="wikitable"
 
|-
 
|-
|[[Файл:Страница заказа.png|700px]]
+
|[[File:Pricing_3.png|700px]]
 
|-
 
|-
 
|Link to price details on the order page
 
|Link to price details on the order page
|} -->
+
|}
  
<!-- {| class="wikitable"
+
{| class="wikitable"
 
|-
 
|-
|[[Файл:Детализация_стоимости.png|600px]]
+
|[[File:Pricing_4.png|600px]]
 
|-
 
|-
|Links to the debug table on the price detail page
+
|Links to debug table on the price detail page
|} -->
+
|}
  
'''Table columns''' — pricing parameters <br />
+
'''Table columns''' — pricing parameters. <br />
'''Column heading''' — values of pricing parameters for the verified flight.<br />
+
'''Column header''' — values of pricing parameters for the flight being checked. <br />
'''Строки таблицы''' — pricing rules ''for validating carrier'' of flight.
+
'''Table rows''' — Pricing rules "for the validating carrier" of the flight.
  
The table shows the order of parameters’ verification.
+
The table shows the order in which parameters are checked.
 
   
 
   
The parameters of each rule are compared to the flight parameters:
+
The parameters of each rule are compared in the flight parameters:
 
# if they match:
 
# if they match:
## cell is highlighted green,
+
## the cell is highlighted in green,
## the next parameter is verified;
+
## the following parameter is checked;  
# if the flight parameter value does not match the rule parameter value:
+
# if the value of the flight parameter does not match the value of the rule parameter:
## cell is highlighted red,
+
## the cell is highlighted in red,  
## rule verification stops.
+
## rule check stops.
'''If the rule matches by all the parameters, them the rule is applied, commissions and charges are highlighted green, their calculated values are shown.'''
+
'''If a rule matches all parameters, the rule applies, commissions and fees are highlighted with green light, and their calculated values are displayed next to each other.'''
  
<!-- {| class="wikitable"
+
 
 +
{| class="wikitable"
 
|-
 
|-
|[[Файл:Таблица_отладки.png|1200px]]
+
|[[File:Pricing_6.png|1200px]]
 
|-
 
|-
 
|Debug table
 
|Debug table
|} -->
+
|}
 
 
== Enabling the module. Import and export of rules ==
 
  
 +
== Enabling module. Rules Import and Export ==
  
To enable calculation of comissions via the Pricing, turn on the following options: '''Commissions 2.0''' and '''Charges and discounts''' in the Product control → Avia tickets → Pricing → Settings section.
+
To enable the calculation of commissions using Pricing, enable the '''Commissions 2.0''' and '''Charges and Discounts 2.0''' options in Product control → Avia tickets → Pricing → Settings.
  
To set a pricing rule:
+
To set the pricing rule:  
# Зайдите в раздел Product control → Avia tickets → Pricing → Import / export Excel.
+
# Go to Product control → Avia tickets → Pricing → Excel import/export.
# Press '''Download in "xls" format''' or '''Download in "xlsx" format'''. Open file for editing.
+
# Press '''Upload in "xls" format''' or '''Upload in "xlsx" format'''. Open the file to edit.
# Set the rule: '''fill in the string parameters'''. The format for entering data in each column must correspond to a strictly defined format (see Rule Import). <br /> Required parameters:
+
# Set the rule: '''Fill in the string parameters'''. The format of data entry in each column must correspond to a strictly defined format (see Rules Import). <br /> Obligatory parameters to fill in:
#* '''''validating carrier'''''
+
#* '''''validating carrier'''.
#* '''''commission'''''
+
#* '''''commission'' #
# Save the changes to the file
+
# Save the changes to the file.
# On the '''Import / export Excel''' in the administration panel, click '''Browse''', open the file.
+
# On the '''Excel import/export''' page in the Administration panel click '''Browse''', open the file.
# Press '''Send''' to upload the file to the system.
+
# Click '''Send''' to upload the file to the system.
  
While importing, the system validates all entered values. If a value is entered in an incorrect format in a certain cell, the system will report an error, while retaining all correctly defined rules.
+
During import, the system will validate all entered values. If a value is entered in a cell in an incorrect format, the system will report an error while saving all correctly defined rules.
 
 
<!-- {| class="wikitable"
 
|-
 
|[[Файл:Ошибки_импорта_Ценообразование.png|500px]]
 
|-
 
|Parameter validation errors
 
|} -->
 
  
After validation, a table is displayed on the page, in which all loaded rules are reflected in a short form.
+
After validation, the page displays a table showing all loaded rules in a compressed form.
  
<!-- {| class="wikitable"
+
<!--{| class="wikitable"
 
|-
 
|-
|[[Файл:Правила ценообразования.png|900px]]
+
|[[File:Правила ценообразования.png|900px]]
 
|-
 
|-
 
|Pricing rules
 
|Pricing rules
|} -->
+
|}-->
 
 
  
Invalid rules are highlited by the following colors in the table:
+
The table provides color-coded rules that are currently invalid:
* rules which are not active yet (sale begin date is later than the current date, see pricing rule parameters) are highlighted orange;
+
* rules that have not yet come into effect (the sale start date is higher than the current date, see Parameters of Pricing Rules) are highlighted in orange,
* expired rules (sale end date is later than the current date) are highlighted violet.
+
* the rules that have expired (the sale expiration date is greater than the current date) are highlighted in purple.
  
== Pricing Rules Parameters ==
+
== Pricing rule parameters ==
'''Pricing rules file template:'''<br/>[[File:CommImportExampleV1.0.5.xlsx]]
+
'''Template of file for entering pricing rules:'''<br/><!--[[File:CommImportExampleV1.0.5.xlsx]]-->
  
'''ATTENTION!''' It is restricted to rename columns! <br/> It is allowed to swap columns and delete unnecessary ones.
+
'''Attention!''' It is forbidden to rename columns!<br/> But it is allowed to change columns and remove unnecessary columns.
  
To see parameter descriptions <span style="background-color:gold">expand the table</span>:
+
To view the description of parameters <span style="background-color:gold">expand the table</span>:
  
 
{| class="wikitable mw-collapsible mw-collapsed"
 
{| class="wikitable mw-collapsible mw-collapsed"
|colspan="5"| '''Pricing Rules Parameters'''
+
|colspan="5"| '''Pricing rule parameters'''
 
|-
 
|-
! scope="col" | Headline
+
! scope="col" | Title
 
! scope="col" | Internal name
 
! scope="col" | Internal name
 
! scope="col" | Description
 
! scope="col" | Description
! scope="col" | Valid Values
+
! scope="col" | Permissible values
 
! scope="col" | Examples
 
! scope="col" | Examples
 
|-
 
|-
 
| id
 
| id
 
| <span id="id">id</span>
 
| <span id="id">id</span>
| Unique record number from any external system (or database). Optional parameter. It is not involved in the calculation logic and is used to conveniently identify rules.
+
| A unique record number from any external system (or database). Optional parameter. It does not participate in the calculation logic and is used for convenient rule identification.
 
| any value
 
| any value
 
| 123
 
| 123
Line 210: Line 200:
 
| GDS validating carrier
 
| GDS validating carrier
 
| <span id="valCompanyId">valCompanyId</span>
 
| <span id="valCompanyId">valCompanyId</span>
| The airline for which the rule is set. Must be a contract airline of the agent. If it is necessary to conduct ticketing on the stock of another airline (interline), the validating carrier is overriden (see overriden validating carrier). If GDS validating carrier is unacceptable by the specified pricing rules and is not overriden, the flight is considered unacceptable for ticketing and is removed from the search results with the appropriate filtering settings for the results.
+
| The airline for which the rule is set. Must be the contract airline of the agent. If it is necessary to make ticketing on the stock of another airline (by interline), the validating carrier is redefined (see Redefined validating carrier). If the validating carrier from GDS is unacceptable by specified pricing rules and is not overridden - the flight is considered unacceptable for ticketing and is removed from search results with appropriate settings of results filtering.
 
| width="20%"| empty is ignored
 
| width="20%"| empty is ignored
  
2-letter airline IATA code
+
2-digit IATA airline code
 
| SU
 
| SU
  
 
LH
 
LH
 
|-
 
|-
| overriden vc
+
| redefined vc
 
| <span id="manualVV">manualVV</span>
 
| <span id="manualVV">manualVV</span>
| If the validating carrier proposed by the GDS is not contract or does not suit the commission agent, it can be overriden forcibly through this field. The GDS VC is indicated in the VC field (or it is left empty), and the carrier overriden by the agency is indicated in this field.
+
| If the validating carrier proposed by the GDS is not a contractual carrier or does not satisfy the commission agent, it can be overridden through this field. The VC field indicates the VC from GDS (or it is left empty), and this field indicates the carrier redefined by the agency.
  
The responsibility for the admissibility of the replacement and for the adequacy of the flight price (which was calculated by GDS for the carrier proposed by it) is assumed by the agent. The priority for rules with overrides is higher than for rules without it.
+
The agent is responsible for acceptance of replacement and adequacy of the flight price (which was calculated by GDS for the carrier offered to it). The priority for the rules with the redefinition is higher than for the rules without it.
 
| empty is ignored
 
| empty is ignored
  
2-letter airline IATA code
+
2-digit IATA airline code
 
| SU
 
| SU
  
 
LH
 
LH
 
|-
 
|-
| first segment carriages
+
| first segment carriers
 
| <span id="airlines">airlines</span>
 
| <span id="airlines">airlines</span>
| A set of allowable marketing carriers for the first segment of the route.
+
| A set of acceptable marketing carriers of the first segment of the route.
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except)
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except)
 
| SU,LH,BA
 
| SU,LH,BA
Line 240: Line 230:
 
| carriers of any segment
 
| carriers of any segment
 
| <span id="airlinesAny">airlinesAny</span>
 
| <span id="airlinesAny">airlinesAny</span>
| A set of valid marketing carriers (interlines) on any segment of the route.
+
| A set of acceptable marketing carriers (interlines) of any segment of the route.
 +
 
 +
Permissible input options:
 +
* CODE,CODE,CODE&nbsp;: the rule applies if at least one marketing carrier from the flight is on the list.
 +
* CODE,CODE,CODE!&nbsp;: the rule applies if each marketing carrier from the flight is found on the list
 +
* <>CODE,CODE,CODE&nbsp;: the rule will not apply if at least one marketing carrier from the flight is found on the list
 +
* <>CODE,CODE,CODE!&nbsp;: the rule will not apply if all marketing carriers from the flight are found on the list.
  
Valid input options:
+
| empty = any<br/>- one or more values (see description)
* CODE,CODE,CODE&nbsp;: rule will apply if at least one marketing carrier from the flight is present in the list
 
* CODE,CODE,CODE!&nbsp;: rule will apply if each of marketing carriers from the flight appears on the list
 
* <>CODE,CODE,CODE&nbsp;: rule will not apply if at least one marketing carrier from the flight appears in this list
 
* <>CODE,CODE,CODE!&nbsp;: rule will not apply if all the marketing carriers from the flight appear in this list
 
| empty = any<br/>- one or several values (see description)
 
 
| SU,LH,BA<br/>SU,LH!<br/><>S7,SU<br/><>S7,BA!
 
| SU,LH,BA<br/>SU,LH!<br/><>S7,SU<br/><>S7,BA!
 
|-
 
|-
 
| code sharing
 
| code sharing
 
| <span id="codeSharing">codeSharing</span>
 
| <span id="codeSharing">codeSharing</span>
| Allowability of a flight by another (operating) airline
+
| Permissibility of a flight being operated by another (operating) airline
| empty all flights<br/>1 code sharing is required <br/>0 code sharing is restricted
+
| empty - all flights<br/>1 - code sharing is required <br/>0 - code sharing is prohibited
 
| 0
 
| 0
  
Line 260: Line 251:
 
| operators
 
| operators
 
| <span id="operatingAirlines">operatingAirlines</span>
 
| <span id="operatingAirlines">operatingAirlines</span>
| Valid operating airlines (verified on all segments).
+
| Permissible operating airlines (need to be tested on all segments).
  
Input variants:
+
Input options:
* CODE,CODE,CODE&nbsp;: rule will apply if at least one operating carrier appears in the list.
+
* CODE, CODE, CODE&nbsp;: the rule applies if at least one operating carrier of the flight is found on the list.
* CODE,CODE,CODE!&nbsp;: rule will apply if each operating carrier of the flight is present on the list.
+
* CODE,CODE,CODE&nbsp;: the rule applies if every operating carrier of the flight is found on the list.
* <>CODE,CODE,CODE&nbsp;: rule will not apply if at least one operating carrier appears in the list.
+
* <>CODE,CODE,CODE&nbsp;: the rule does not apply if at least one operating flight carrier is found on the list.
* <>CODE,CODE,CODE!&nbsp;: rule will not apply if all the operating carriers of the flight are present on the list.
+
* <>CODE,CODE,CODE&nbsp;: the rule will not apply if all operating carriers of the flight are found on the list.
| empty = any<br/>- one or several values (see description)
+
| empty = any<br/>- one or more values (see description)
 
| SU,LH,BA<br/>SU,LH!<br/><>S7,SU<br/><>S7,BA!
 
| SU,LH,BA<br/>SU,LH!<br/><>S7,SU<br/><>S7,BA!
 
|-
 
|-
| share of own segments
+
| own segment share
 
| <span id="ownPart">ownPart</span>
 
| <span id="ownPart">ownPart</span>
| The minimum allowable share of own segments (segments where the validating carrier is equal to the marketing one) must be greater than or equal to the specified value (any number from 0 to 1):
+
| The minimum allowed share of own segments (segments where the validating carrier is equal to a marketing one) must be greater than or equal to a given value (any number from 0 to 1):
* 1 all segments are own
+
* 1 - all segments are own
* 0.5 half or more own segments  
+
* 0.5 - half or more of own segments
* 0.25 quarter or more own segments  
+
* 0.25 - a quarter or more of own segments
* 0.01 — minimum one own segment
+
* 0.01 - there is at least one own segment
* 0 all segments are interline
+
* 0 - all segments of interline
 
| empty = any number<br/>
 
| empty = any number<br/>
 
any number from 0 to 1
 
any number from 0 to 1
 
| 0.88
 
| 0.88
 
|-
 
|-
| share of interline segments
+
| interline segment share
 
| <span id="interlinePart">interlinePart</span>
 
| <span id="interlinePart">interlinePart</span>
| The minimum allowable share of not own segments (segments where the validating carrier is not equal to the marketing one) must be greater than or equal to the specified value (any number from 0 to 1).
+
| The minimum allowed percentage of nonproprietary segments (segments where the validating carrier is not equal to the marketing one) must be greater than or equal to the specified value (any number from 0 to 1).
* 1 all segments are interline
+
* 1 - all segments of interline
* 0.5 half or more own segments are interline
+
* 0.5 - half or more segments of interlines
* 0.25 quarter or more own segments are interline
+
* 0.25 - a quarter or more segments of interlines
* 0.01 at least one interline segmnt is present
+
* 0.01 - there is at least one segment of the interline
* 0 all segments are own
+
* 0 - all segments are own
 
| empty = any number<br/>
 
| empty = any number<br/>
 
any number from 0 to 1
 
any number from 0 to 1
Line 296: Line 287:
 
| contract type
 
| contract type
 
| <span id="contractType">contractType</span>
 
| <span id="contractType">contractType</span>
| Settlement system: BSP or ТКП
+
| BSP or TCH settlement system
 
| empty = any,<br/>BSP<br/>TCH
 
| empty = any,<br/>BSP<br/>TCH
 
| TCH
 
| TCH
Line 302: Line 293:
 
| booking systems
 
| booking systems
 
| <span id="gds">gds</span>
 
| <span id="gds">gds</span>
| Global distribution system in which the flight / PCC of specific requisites / requisite package ID is found in {{NameProject1}} system.
+
| Global distribution system, in which the flight/ PCC of specific Websky requisites/ ID of the Websky requisite package was found.
Listed in any order; you can mix different types. The "or" rule applies: if Sabre is specified entirely, all of its PCC / packages are no longer indicated.  
+
Listed in any sequence, you can mix different types. The "or" rule applies: if the whole Sabre is specified, you don’t need to specify all its PCC/packages.
  
'''ATTENTION!''' When specifying the name of the GDS, strictly follow the name format specified in the documentation. If the name doesn’t match the template, the rule will not apply!
+
'''Attention!''' When specifying the name of the GDS, strictly follow the name format specified in the documentation. If the rule doesn’t match with the template, it will not apply!
| empty = any<br/>GDS: <code>SABRE, GALILEO, AMADEUS, SIRENA, SITA, SIG23</code><br/>PCC: [letters+numbers]<br/>package ID: [numbers]
+
| empty = any<br/>ГРС: <code>SABRE, GALILEO, AMADEUS, SIRENA, SITA, SIG23</code><br/>PCC: [letters+digits]<br/>Package ID: [digits]
 
| SABRE,670P,123
 
| SABRE,670P,123
  
Line 313: Line 304:
 
SITA
 
SITA
 
|-
 
|-
| sale beginning
+
| start of sale
 
| <span id="paymentDateFrom">paymentDateFrom</span>
 
| <span id="paymentDateFrom">paymentDateFrom</span>
| The minimum allowable checkout date (not to be confused with the departure date). To trigger the rule, the current date must be greater than or equal to the specified one.
+
| Minimum allowed date of order execution (not to be confused with the date of departure). To trigger the rule, the current date must be greater or equal to the specified one.
 
| empty = ignored<br/>
 
| empty = ignored<br/>
 
DD.MM.YYYY
 
DD.MM.YYYY
Line 322: Line 313:
 
31.01.2010
 
31.01.2010
 
|-
 
|-
| sale end
+
| end of sale
 
| <span id="paymentDateTo">paymentDateTo</span>
 
| <span id="paymentDateTo">paymentDateTo</span>
| The maximum allowable checkout date (not to be confused with the departure date). To trigger the rule, the current date must be lesser than or equal to the specified one.
+
| Maximum allowable date for placing an order. To trigger a rule, the current date must be less or equal to the specified date.
 
| empty = ignored<br/>DD.MM.YYYY
 
| empty = ignored<br/>DD.MM.YYYY
 
| 31.12.2022
 
| 31.12.2022
Line 330: Line 321:
 
| flight type
 
| flight type
 
| <span id="airlineType">airlineType</span>
 
| <span id="airlineType">airlineType</span>
| International or domestic (all flights within one country) flight.
+
| International or domestic (all flights within the same country) flight.
Single value
+
One value
 
| empty = any<br/>IA (international airlines)<br/>DA (domestic airlines)
 
| empty = any<br/>IA (international airlines)<br/>DA (domestic airlines)
 
| IA<br/>DA
 
| IA<br/>DA
Line 337: Line 328:
 
| flight numbers
 
| flight numbers
 
| <span id="flightNumber">flightNumber</span>
 
| <span id="flightNumber">flightNumber</span>
| Allowable flight numbers, can be indicated with or without the marketing company code.
+
| Permissible flight numbers, can be specified with or without the code of the marketing company.
  
 
Input variants:
 
Input variants:
* NNN,NNN: rule will apply if at least one flight number from any segment appears in the list.
+
* NNN,NNN: the rule applies if at least one flight number from a flight from any segment is found on the list.
* NNN,NNN!&nbsp;: rule will apply if all flight numbers from all segments appear in the list.
+
* NNN,NNNN!&nbsp;: the rule shall apply if all flight numbers from all flight segments are found on the list.
* <>NNN,NNN&nbsp;: rule will not apply if at least one number from the flight appears in the list.
+
* <>NNN,NNNN&nbsp;: the rule will not apply if at least one flight number from any flight segment is found on the list.
* <>NNN,NNN!&nbsp;: rule will not apply if all the numbers from the flight appear in the list.
+
* <>NNN,NNNN!&nbsp;: the rule will not apply if all the flight numbers are found on the list.
  
| empty = any<br/>- one or several values (see description)
+
| empty = any<br/>- one or more values (see description)
 
| SU 123,SU 345<br/>123,345<br/><>LH 555
 
| SU 123,SU 345<br/>123,345<br/><>LH 555
 
|-
 
|-
 
| aircraft type
 
| aircraft type
 
| <span id="aircraft">aircraft</span>
 
| <span id="aircraft">aircraft</span>
| Valid aircraft codes, should be indicated in the same form in which the GDS returns them
+
| Permissible aircraft codes, must be specified in the same form as the codes returned by the GDS.
  
 
Input variants:
 
Input variants:
* CODE,CODE: rule will apply if at least one aircraft code from any segment matches one from the list.
+
* CODE,CODE: the rule applies if at least one aircraft code from any segment matches one of the specified list.
* CODE,CODE!&nbsp;: rule will apply if aircraft codes from all the segments are in the list.
+
* CODE,CODE!&nbsp;: the rule shall be applied if aircraft codes from all flight segments are in the list.
* <>CODE,CODE&nbsp;: rule will not apply if at least one code from the flight is in the list.
+
* <>CODE,CODE&nbsp;: the rule will not apply if at least one aircraft code from the flight is in the list.
* <>CODE,CODE!&nbsp;: rule will not apply if all the codes from the flight are in the list.
+
* <>CODE,CODE&nbsp;: the rule will not apply if all the codes from the flight are in the list.
  
| empty = any<br/>- one or several values (see description)
+
 
 +
| empty = any<br/>- one or more values (see description)
 
| 73C,DH4<br/>735
 
| 73C,DH4<br/>735
 
|-
 
|-
 
| fare codes
 
| fare codes
 
| <span id="tariffs">tariffs</span>
 
| <span id="tariffs">tariffs</span>
| Valid fare codes. At least one fare from the flight must match one from the preset list. Under a denial rule, there should be no match. The match is not exact: code from the rule may be contained in code from the flight (for example, the entered S1GREY26 will match the S1GREY26CH from the flight).
+
| Permissible tariff codes. At least one fare from the flight must coincide with one from the given list. If there is a rule with denial, there must be no matches. The match is not exact: the code from the rule may be contained in the code from the flight (for example, the entered S1GREY26 will match S1GREY26CH from the flight).
  
 
Input variants:
 
Input variants:
* CODE,CODE: rule will apply if at least one fare appears in the list.
+
* CODE, CODE: the rule applies if at least one fare appears in the list.
* CODE,CODE!&nbsp;: rule will apply if all the fares of the flight are in the list.
+
* CODE,CODE!&nbsp;: the rule will be applied if all the fares of the flight are in the list.
* <>CODE,CODE&nbsp;: rule will not apply if at least one fare is in the list.  
+
* <>CODE,CODE&nbsp;: the rule won't be applied, if at least one fare is in the list.
* <>CODE,CODE!&nbsp;: rule will not apply if all the fares of the flight are in the list.
+
* <>CODE,CODE&nbsp;: the rule doesn't apply, if all fares of the flight are in the list.
  
You can define [https://en.wikipedia.org/wiki/Regular_expression]. To do this, write the parameter in the /XXX/ format. Examples:
+
You can set a [http://ru.wikipedia.org/wiki/Регулярные_выражения regular expression]. To do this, write the parameter in /XXX/ format. Examples:
* /ABC/ — code must contain "..ABC..", for example "NBABCS"
+
* /ABC/ — code must contain "..ABC..", for example, "NBABCS"
* /abc/i — case-insensitive check, the code may contain characters in any case, for example "NBABCS" or "Abcof"
+
* /abc/i — case insensitive check, the code can contain characters in any case, for example "NBABCS" or "Abcof"
 
* /'''^'''TN/ — code must begin with "TN..", for example "TNQRTY"
 
* /'''^'''TN/ — code must begin with "TN..", for example "TNQRTY"
* /OW'''$'''/ — code must end with "..OW", for example "SRSOW"
+
* /OW'''$'''/ — the code must end with "..OW", for example "SRSOW"
* /'''^.'''L/ — first letter - any ( '''.''' — any symbol), the second letter in the fare code must be L, for example "QLFST"
+
* /'''^.'''L/ — first letter - any ( '''.''' — any symbol ), the second letter in the fare code must be L, for example "QLFST"
* /OK'''.*'''RT/ — ( '''.*''' = any number of any symbols) "..OK..RT..", for example "ANOKURTN"
+
* /OK'''.*'''RT/ — ( '''.*''' = any number of any characters) "..OK..RT..", for example "ANOKURTN"
| empty = any<br/>- one or several values (see description)
+
| empty = any<br/>- one or more values (see description)
 
| WRUTH9PL,ARUTH9PL
 
| WRUTH9PL,ARUTH9PL
 
<br/>/TN.*OW/
 
<br/>/TN.*OW/
Line 384: Line 376:
 
| maximum fare
 
| maximum fare
 
| <span id="maxTariff">maxTariff</span>
 
| <span id="maxTariff">maxTariff</span>
| Restriction on the maximum price value of the "base cost" (the amount of all fares from carriers on the flight or the price from the GDS minus taxes). If the parameter is set, the rule written in the line will only work if the fare is less than or equal to the specified value.
+
| Restriction on the maximum price value of the "base price" (the sum of all fares from the carriers on the flight or the price from GDS minus taxes). If the parameter is set, the rule written in the line is triggered only if the flight fare is less than or equal to the specified value.
| empty = no restriction<br/>xxxCODE (see examples)
+
| empty = no limit<br/>xxxCODE (see examples)
 
| 10000RUB<br>
 
| 10000RUB<br>
 
300EUR
 
300EUR
 
|-
 
|-
| confidential fare
+
| Private fare
 
| <span id="privateFare">privateFare</span>
 
| <span id="privateFare">privateFare</span>
| To trigger the rule, the flight must have a fare with the attribute of confidential (private). Confidentiality of the fare is always reported by GDS. If, for an unambiguous definition of the rule, it is enough to indicate the specific code of the private fare, it is not necessary to set the attribute.
+
| To trigger the rule, the flight must have a fare with the sign of confidential (private). This information is provided by GDS. If it's enough to indicate a specific code of a private fare to unambiguously define the rule, it's not necessary to set the sign.
| empty = any fares<br/>1 — private fare must be present<br/>0 — there shpuld be no private fares
+
| empty = any fares<br/>1 — a private one must be present<br/>0 — there must be no private fares
 
| 0<br/>1
 
| 0<br/>1
 
|-
 
|-
 
| tax codes
 
| tax codes
 
| <span id="taxes">taxes</span>
 
| <span id="taxes">taxes</span>
| Allowable tax codes
+
| Permissible tax codes
 
 
 
Input variants:
 
Input variants:
* CODE,CODE: правило применится, если любая такса из перелета встретится в списке.
+
* CODE, CODE: the rule will apply if any tax from the flight is in the list.
* CODE,CODE!&nbsp;: правило применится, если все таксы перелета встретятся в списке.
+
* CODE,CODE!&nbsp;: the rule will apply  if all the flight taxes are in the list.
* <>CODE,CODE&nbsp;: правило не применится, если любая такса из перелета встретится в списке.
+
* <>CODE,CODE&nbsp;: the rule will not apply if any flight tax is in the list.
* <>CODE,CODE!&nbsp;: правило не применится, если все таксы перелета встретятся в списке.
+
* <>CODE,CODE&nbsp;: the rule will not apply if all the flight tax are in the list.
where CODE set of uppercase latin letters.
+
where CODE is a set of capital Latin letters.
| empty = any<br/>- one or several values (see description)
+
| empty = any<br/>- one or more values (see description)
 
| YQ,YR<br/><>YQ!
 
| YQ,YR<br/><>YQ!
 
|-
 
|-
 
| price confirmed
 
| price confirmed
 
| <span id="priceIsActual">priceIsActual</span>
 
| <span id="priceIsActual">priceIsActual</span>
| Attribute of confirmed flight price. After the search, the flight price is considered unconfirmed, its status changes to “confirmed” (“relevant”) when creating an actual PNR or requesting a price update within the framework of {{NameProject2}} web services (before creating a PNR)
+
| An attribute of a confirmed flight price. The flight price after search is considered unconfirmed, its status changes to "confirmed" ("actual") after creating a real PNR or after requesting price update within Nemo Connect web services (before creating a PNR).
| empty = any flights<br/>1 — the flight is in the PNR or its price is verified beforehand <br/>0 — the flight has just been received from the search results
+
| empty = any flights<br/>1 — flight in the PNR or its price is checked in advance <br/>0 — flight has just been retrieved from search results
 
| 0<br/>1
 
| 0<br/>1
 
|-
 
|-
| presence of VC segments in all the fares
+
| availability of VC segments for all fares
 
| <span id="valSegmentsInTariff">valSegmentsInTariff</span>
 
| <span id="valSegmentsInTariff">valSegmentsInTariff</span>
| Verification: among segments of any fare there must be a segment of a validating carrier (at least one)
+
| Verification: any fare segment must have a validating carrier segment (minimum one).
| empty or 0 = any fares<br/>1 condition must be met
+
| empty or 0 = any fares<br/>1 - condition must be met
 
| 0<br/>1
 
| 0<br/>1
 
|-
 
|-
 
| service classes
 
| service classes
 
| <span id="serviceClass">serviceClass</span>
 
| <span id="serviceClass">serviceClass</span>
| Valid categories of service classes.
+
| Permissible service class categories.
  
Input variants:
+
Input options (one- or two-letter values are entered):
* CODE,CODE: rule will apply if a class from any segment appears in the list.
+
* CODE: The rule applies if the class is in the list.
* CODE,CODE!&nbsp;: rule will apply if all classes from all segments are in the list.
+
* CODE: this rule is applied if a combination of classes is in the list.
* <>CODE,CODE&nbsp;: rule will not apply if a class from any segment appears in the list.
+
* CODE, CODE: a rule is applied if a class from any segment is in the list.
* <>CODE,CODE!&nbsp;: rule will not apply if all classes from all segments are in the list.
+
* CODE,CODE!&nbsp;: the rule applies if all classes from all flight segments are in the list.
where CODE:
+
* <>CODE,CODE&nbsp;: the rule will not apply if a class from any segment is in the list.
 +
* <>CODE,CODE&nbsp;: the rule will not apply if all classes from all flight segments are in the list.
 +
where the CODE:
 
* B - business
 
* B - business
* E - economy
+
* E - economy  
* F - first
+
* F - first  
 
* EB - combination of economy + business
 
* EB - combination of economy + business
 
* EF - combination of economy + first
 
* EF - combination of economy + first
 
* BF - combination of business + first
 
* BF - combination of business + first
| empty = any<br/>- one or several values (see description)
+
 
 +
| empty = any<br/>- one or more values (see description)
 
| B,E<br/>F<br/>EB,EF,F
 
| B,E<br/>F<br/>EB,EF,F
 
|-
 
|-
 
| booking classes (codes)
 
| booking classes (codes)
 
| <span id="bookingClass">bookingClass</span>
 
| <span id="bookingClass">bookingClass</span>
| Allowed literas (single-letter codes) of booking classes. Must be in Latin letters; Russian letters are valid only for the rules of supplier Sirena.
+
| Allowed letters (one-letter codes) of booking classes. Must be Latin letters, Cyrillic letters are allowed only for Sirena supplier rules.
  
 
Input variants:
 
Input variants:
* CODE,CODE: rule will apply if at least one class from any segment appears in the list.
+
* CODE, CODE: the rule applies if at least one class from any segment is in the list.
* CODE,CODE!&nbsp;: rule will apply if classes from all the flight segments are in the list.
+
* CODE,CODE!&nbsp;: the rule applies if the classes from all flight segments are in the list.
* <>CODE,CODE&nbsp;: rule will not apply if at least one class from any segment appears in the list.
+
* <>CODE,CODE&nbsp;: the rule will not apply if at least one class from any segment is in the list.
* <>CODE,CODE!&nbsp;: rule will not apply if classes from all the flight segments are in the list.
+
* <>CODE,CODE&nbsp;: the rule will not apply if the classes from all flight segments are in the list.
| empty = any<br/>- one or several values (see description)
+
| empty = any<br/>- one or more values (see description)
 
| A,B,C<br/><>A,B,C
 
| A,B,C<br/><>A,B,C
 
|-
 
|-
| carriers and classes  
+
| carriers and classes
 
| <span id="airlinesAndClasses">airlinesAndClasses</span>
 
| <span id="airlinesAndClasses">airlinesAndClasses</span>
| A set of "marketing carrier" + "booking class" pairs of any segment of the route.  
+
| Set of "marketing carrier" + "booking class" pairs of any segment of the route.
  
Допустимые варианты ввода:
+
Permissible input options:
  
* CODE:CODE,CODE:CODE,CODE:CODE : rule will apply if at least one flight segment matches one from the list.
+
* CODE:CODE,CODE:CODE,CODE:CODE : the rule applies if at least one flight segment matches one of the listed ones.
* CODE:CODE,CODE:CODE,CODE:CODE! : rule will apply if all flight segments appear in the list.  
+
* CODE:CODE,CODE:CODE,CODE:CODE! : the rule will apply if all the flight segments are in the list.
* <>CODE:CODE,CODE:CODE,CODE:CODE : rule will not apply if at least one flight segment matches one from the list.
+
* <>CODE:CODE,CODE:CODE,CODE:CODE : the rule will not apply if at least one flight segment would match any of the segments in the list.
* <>CODE:CODE,CODE:CODE,CODE:CODE! : rule will apply if all flight segments appear in the list.
+
* <>CODE:CODE,CODE:CODE,CODE:CODE! : the rule will not apply if all flight segments are in the list.
| empty = any<br/>- one or several values (see description)
+
 
 +
| empty = any<br/>- one or more values (see description)
  
 
| SU:A,LH:B,BA:C<br/>
 
| SU:A,LH:B,BA:C<br/>
Line 468: Line 463:
 
<>S7:A,BA:B!
 
<>S7:A,BA:B!
 
|-
 
|-
| zones  
+
| zones
 
| <span id="zones">zones</span>
 
| <span id="zones">zones</span>
| Geographic zones of a flight. The entire flight should not go beyond one of the indicated zones for the rule to trigger. [http://www.geonames.org/countries/ division of countries into specified zones]
+
| Geographical zones of the flight. The whole flight must not exceed one of the specified zones for the rule to be triggered. [http://www.geonames.org/countries/ division of countries by specified zones].
 
* AF - Africa,
 
* AF - Africa,
 
* AN - Antarctica
 
* AN - Antarctica
Line 486: Line 481:
 
* AFNA - Africa + North America
 
* AFNA - Africa + North America
 
* ASNA - Asia + North America
 
* ASNA - Asia + North America
* EUAN - Europe + Antarctica
+
* EUAN - Europe + Antarctic
 
* AFAS - Africa + Asia
 
* AFAS - Africa + Asia
* AFAN - Africa + Antarctica
+
* AFAN - Africa + Antarctica  
 
* AFOC - Africa + Australia and Oceania
 
* AFOC - Africa + Australia and Oceania
 
* AFSA - Africa + South America
 
* AFSA - Africa + South America
* ANNA - Antarctica + North America
+
* ANNA - Antarctic + North America
* ANOC - Antarctica + Australia and Oceania
+
* ANOC - Antarctic + Australia and Oceania
* ANSA - Antarctica + South America
+
* ANSA - Antarctic + South America
 
* ASAN - Asia + Antarctica
 
* ASAN - Asia + Antarctica
 
* NASA - North America + South America
 
* NASA - North America + South America
Line 500: Line 495:
 
* NAOC - North America + Australia and Oceania
 
* NAOC - North America + Australia and Oceania
 
* OCAS - Australia and Oceania + Asia
 
* OCAS - Australia and Oceania + Asia
Only the listed combinations of zones are allowed!
+
Only the listed zone combinations are allowed!
| empty = any
 
  
- one or several values
+
| empty = any<br/>- one or more values  
 
| AS,EU<br/>SA<br/>EUSA, EUNA
 
| AS,EU<br/>SA<br/>EUSA, EUNA
 
|-
 
|-
 
| country zone
 
| country zone
 
| <span id="countryZones">countryZones</span>
 
| <span id="countryZones">countryZones</span>
| The listed country codes form an area outside which the aircraft should not land and take off.
+
| The above country codes form an area beyond which an aircraft must not land and take off.
| empty = any
+
| empty = any<br/>CODE,CODE...
CODE,CODE...
 
 
| RU,IT,DE,FR
 
| RU,IT,DE,FR
 
|-
 
|-
| departure countries
+
| countries of departure
 
| <span id="depCountries">depCountries</span>
 
| <span id="depCountries">depCountries</span>
| Valid departure countries for the flight (only the departure country of the first route’s segment is verified).
+
| Permissible countries of departure for the flight (only the country of departure of the first segment of the route is checked).
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| RU<br/><>LV,LT
 
| RU<br/><>LV,LT
 
|-
 
|-
| arrival countries  
+
| countries of destination
 
| <span id="arrCountries">arrCountries</span>
 
| <span id="arrCountries">arrCountries</span>
| The destination country is verified (for OW and CR it is the last country of the last segment, for RT it is the last country of the first leg of the route). For example, for the flight MOW-PAR-MOW, the destination country is FR, for MOW-PAR-LON it is GB. '''Rule “country of departure = RU, destination country = RU” does not mean a local flight''' - do not forget to indicate “DA” as flight type.
+
| The destination country is checked (for OW and CR: this is the last country of the last segment, for RT: this is the last country of the first leg of the route). For example, for MOW-PAR-MOW flight, the destination country is FR, for MOW-PAR-LON - GB. '''Country of departure=RU, country of destination=RU does not mean a local flight''' - do not forget to specify the flight type DA.
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| RU<br/><>LV,LT
 
| RU<br/><>LV,LT
Line 527: Line 520:
 
| direct flight
 
| direct flight
 
| <span id="isDirect">isDirect</span>
 
| <span id="isDirect">isDirect</span>
| Attribute of a direct flight
+
| Direct flight attribute
| empty = any<br/>0 — with transfers only<br/>1 — direct only<br/>
+
| empty = any<br/>0 — only with transfers<br/>1 — direct only<br/>
extra:<br/>2 — initial flight is direct<br/>3 — initial flight is with transfers
+
additionally:<br/>2 — initial flight is direct <br/>3 — initial flight is with transfers
 
| 0<br/>1
 
| 0<br/>1
 
|-
 
|-
 
| route type
 
| route type
 
| <span id="routeType">routeType</span>
 
| <span id="routeType">routeType</span>
| You can leave the field empty or specify one value:
+
| You can leave the field blank or specify a single value:
* One-Way — OW,
+
* One Way - OW,
* Round Trip RT,
+
* Round Trip - RT,
* Complex Route CR.
+
* Complex Route - CR.
| empty = any<br/>КОД(see examples)
+
| empty = any<br/>CODE (see examples)
 
| OW<br/>RT<br/>CR
 
| OW<br/>RT<br/>CR
 
|-
 
|-
 
| routes
 
| routes
 
| <span id="routeFull">routeFull</span>
 
| <span id="routeFull">routeFull</span>
| A chain of IATA codes of cities or airports that describes the entire flight route including  transfers, without breaks and repetitions. You should always use the IATA area code if available (aggregating airport). For example, the flight VKO-ORY, ORY-VKO is brought to the route MOW-PAR-MOW.
+
| Chain of IATA codes of cities or airports, describing the entire route of the flight, taking into account transfers, without breaks and repetitions. Always use the IATA code of the city, if it is available (aggregation airport). For example, a VKO-ORY, ORY-VKO flight is turned to the MOW-PAR-MOW route.
 
 
 
| empty = any<br/>CODE-CODE,CODE-CODE,...<br/><>CODE-CODE,CODE-CODE,...(except for)
 
| empty = any<br/>CODE-CODE,CODE-CODE,...<br/><>CODE-CODE,CODE-CODE,...(except for)
 
| MOW-LON,LON-MOW<br/><>MOW-BER-PAR
 
| MOW-LON,LON-MOW<br/><>MOW-BER-PAR
Line 550: Line 542:
 
| contains routes
 
| contains routes
 
| <span id="routePart">routePart</span>
 
| <span id="routePart">routePart</span>
| Indicates only a part of the route made up similarly to a previous one.  
+
| Only part of the route compiled similarly to the previous one is specified.
 
| empty = any<br/>CODE-CODE,<br/>-CODE-,...<br/><>-CODE-,...(except for)
 
| empty = any<br/>CODE-CODE,<br/>-CODE-,...<br/><>-CODE-,...(except for)
 
| -CAI-<br/><>-PRG-,PRG-SVX
 
| -CAI-<br/><>-PRG-,PRG-SVX
Line 556: Line 548:
 
| routes (from airports)
 
| routes (from airports)
 
| <span id="routeAirportsFull">routeAirportsFull</span>
 
| <span id="routeAirportsFull">routeAirportsFull</span>
| Use the IATA codes of airports (not cities) in the rule. The rest is similar to "routes"
+
| Use the codes of airports (not cities) in the IATA rule. The rest is similar to the "routes".
| see “routes”
+
| see "routes" parameter description.
| see “routes”
+
| see "routes" parameter description.
 
|-
 
|-
 
| contains routes (from airports)
 
| contains routes (from airports)
 
| <span id="routeAirportsPart">routeAirportsPart</span>
 
| <span id="routeAirportsPart">routeAirportsPart</span>
| Use the IATA codes of airports (not cities) in the rule. The rest is similar to "contains routes"
+
| Use the codes of airports (not cities) in the IATA rule. The rest is similar to the "contains routes".
| see "contains routes"
+
| see "contains routes" parameter description.
| see "contains routes"
+
| see "contains routes" parameter description.
 
|-
 
|-
 
| departure (airports, cities)
 
| departure (airports, cities)
 
| <span id="depAirports">depAirports</span>
 
| <span id="depAirports">depAirports</span>
| Only the departure airport of the first segment is checked. When specifying airport codes, an exact match is required. When specifying city codes (aggregating airports), the comparison is carried out according to the internal airport directory. It is recommended that you provide specific airport codes.
+
| Only the departure airport of the first segment is checked. When you specify airport codes, you need an exact match. While specifying the codes of cities (aggregation of airports), the comparison is made according to the internal glossary of airports. It is recommended to specify the codes of specific airports.
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| MOW,PAR,BER <>VKO,LON
 
| MOW,PAR,BER <>VKO,LON
 
|-
 
|-
| Arrival (airports, cities)
+
| arrival (airports, cities)
 
| <span id="arrAirports">arrAirports</span>
 
| <span id="arrAirports">arrAirports</span>
| The arrival airport is defined similarly to the "arrival countries". Checking for comparisons is carried out similarly to "departure (airports, cities)"
+
| The airport of arrival is defined similarly to the "country of destination". The check for comparison is made similarly to "departure (airports, cities)".
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| MOW,PAR,BER <>VKO,LON
 
| MOW,PAR,BER <>VKO,LON
 
|-
 
|-
| start of departure
+
| start of flight
 
| <span id="dateBegin">dateBegin</span>
 
| <span id="dateBegin">dateBegin</span>
| Departure date of the first segment must be greater than or equal to the specified date
+
| The departure date of the first segment must be greater than or equal to the specified date.
| empty = any<br/>
+
| empty = ignored<br/>DD.MM.YYYY
DD.MM.YYYY
 
 
| 01.01.2012
 
| 01.01.2012
 
 
31.01.2010
 
31.01.2010
 
|-
 
|-
| Departure in (in hours)
+
| departure in (hours)
 
| <span id="dateBegin">dateDepartureAfter</span>
 
| <span id="dateBegin">dateDepartureAfter</span>
| From the current date, the maximum value or departure range is set. For example, if it is necessary to allocate flights no later than 5 days before departure, then the range [0,120] is set.
+
| The maximum value or range of departure is set from the current date. For example, if you want to select flights no later than 5 days before departure, the range [0,120] shall be set.
 
| empty = no restriction <br/> maximum value <br/>[X,X] — range
 
| empty = no restriction <br/> maximum value <br/>[X,X] — range
 
| 13
 
| 13
 
 
[10,100]
 
[10,100]
 
|-
 
|-
| end of departure
+
| end of flight
 
| <span id="dateEnd">dateEnd</span>
 
| <span id="dateEnd">dateEnd</span>
| The departure date of the first segment must be less than or equal to the specified date
+
| The date of departure of the first segment should be less or equal to the specified date
| empty = ignored<br/>
+
| empty = ignored<br/>DD.MM.YYYY
DD.MM.YYYY
 
 
| 31.12.2022
 
| 31.12.2022
 
|-
 
|-
 
| return not earlier than
 
| return not earlier than
 
| <span id="dateBackBegin">dateBackBegin</span>
 
| <span id="dateBackBegin">dateBackBegin</span>
| Departure date of the last segment of the route must be greater than or equal to the specified date
+
| The departure date of the last route segment should be greater than or equal to the specified date
| empty = ignored<br/>
+
| empty = ignored<br/>DD.MM.YYYY
DD.MM.YYYY
 
 
| 31.12.2022
 
| 31.12.2022
 
|-
 
|-
 
| return not later than
 
| return not later than
 
| <span id="dateBack">dateBack</span>
 
| <span id="dateBack">dateBack</span>
| Departure date of the last segment of the route must be less than or equal to the specified date
+
| The departure date of the last route segment should be less than or equal to the specified date
| empty = ignored<br/>
+
| empty = ignored<br/>DD.MM.YYYY
DD.MM.YYYY
 
 
| 31.12.2022
 
| 31.12.2022
 
|-
 
|-
 
| duration in days
 
| duration in days
 
| <span id="daysDuration">daysDuration</span>
 
| <span id="daysDuration">daysDuration</span>
| Limit on the maximum gap in days between the first date of flight and the end of the route. You can specify a range.
+
| Restriction on the maximum gap in days between the first flight date and the end of the route. You can specify a range.
Duration in days is calculated as a mathematical date difference. If departure and return are in one day, the duration is 0 days.
+
 
| empty = no restriction<br/>number of days maximum value (inclusive)<br/>[X,X] — range
+
Duration in days is calculated as a mathematical difference in dates. If the departure and return are in one day, the duration will be equal to 0 days.
 +
| empty = no restriction<br/>number of days - maximum value (inclusive)<br/>[X,X] — range
 
| 13<br/>
 
| 13<br/>
 
[3,13]
 
[3,13]
 
|-
 
|-
| weekdays
+
| days of the week
 
| <span id="dayOfWeek">dayOfWeek</span>
 
| <span id="dayOfWeek">dayOfWeek</span>
| Allowed days of the week for the departure date of the first segment of the route. Values are indicated by the ordinal number of the day of the week, starting on Monday as 1.
+
| Permissible days of the week for the departure date of the route's first segment. Values are specified by the number corresponding to the order of the day of the week, starting from Monday.
| empty = ignored<br/>
+
| empty = ignored<br/>1 — Monday<br/>...<br/>7 — Sunday<br/>- one or more values
1 — Monday<br/>...<br/>7 — Sunday<br/>- one or several values
 
 
| 2<br/>3,5
 
| 2<br/>3,5
 
|-
 
|-
 
| passenger types
 
| passenger types
 
| <span id="passengers">passengers</span>
 
| <span id="passengers">passengers</span>
| Allowed types of passengers on flight. To trigger the rule, all listed types must be present in the flight.
+
| Permissible types of passengers on the flight. For the rule to work, all the listed types of passengers must be present in the flight.
| empty = any<br/>ADT — adult<br/>CLD — child (2-12)<br/>INF — infant (0-2)<br/>INS — infant with seat (0-2)<br/>- one or several values
+
| empty = any<br/>ADT — adult<br/>CLD — child(2-12)<br/>INF — infant(0-2)<br/>INS — infant with seat (0-2)<br/>- one or more values
 
| INF<br/>ADT,CLD
 
| INF<br/>ADT,CLD
 
|-
 
|-
 
| flight mask
 
| flight mask
 
|
 
|
| A formal description of the flight in text format, to create complex rules. <br/> Will be added to the next version of the application.
+
| Formalized flight description in text format, to create complex rules<br/> Will be added to the next version of the program
 
|
 
|
 
|
 
|
Line 645: Line 631:
 
| priority
 
| priority
 
| <span id="priority">priority</span>
 
| <span id="priority">priority</span>
| If several rules are triggered, then the one with the highest priority is selected. If there are several rules with the same priority (or the priority is not specified), a newer rule is selected (located below in the imported table)
+
| If several rules are triggered, one with the highest priority is selected. If there are several rules with the same priority (or no priority is specified), the newer rule is selected (located below in the imported table).
| integer<br/>empty = 0
+
| integral number<br/>empty = 0
 
| 1<br/>2
 
| 1<br/>2
 
|-
 
|-
| promotion code
+
| promotional code
 
|
 
|
| Unique promotion code. It is created in the administration panel under {{Menu|Product control| Modules|Loyalty Program|Promotions and Promotional codes}}.
+
| Unique promotion code. It is created in the Administration panel in the section {{Menu|Product control|Modules|Loyalty program|Promotions and promotional codes.}}
| any set of letters/numbers/characters
+
| any set of letters/digits/symbols
 
| 12022014_Promo
 
| 12022014_Promo
 
|-
 
|-
 
| utm source
 
| utm source
 
| <span id="utmSource">utmSource</span>
 
| <span id="utmSource">utmSource</span>
| Transition source ID, which is displayed in the "No." field of the transition source table in the metrics module.<br/> You can enter multiple sources.
+
| Transition source ID, which is displayed in the "" field of the transition sources table in the metric.<br/> Multiple sources are allowed.
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| empty = any<br/>CODE,CODE...<br/><>CODE,CODE...(except for)
 
| 123,456<br/><>123,456
 
| 123,456<br/><>123,456
Line 663: Line 649:
 
| airline commission
 
| airline commission
 
| <span id="commission">commission</span>
 
| <span id="commission">commission</span>
| Agent profit received from the airline for tickets sold. It is the mandatory field, and it must strictly correspond to the value specified in the contract. The value is transferred to the GDS upon ticketing. May be indicated as a percentage of the fare or in absolute value. The commission is always calculated for each passenger.
+
| Agent's profit, received from the airline for sold tickets. The field required for filling in must strictly correspond to the value indicated in the contract. The value is transferred to the GDS upon ticketing. It can be specified in percentage of the fare or in absolute value. Commission is always calculated for each passenger.
Rules with a specified zero commission has more priority over rules with an empty commission.
+
Rules with specified zero commission have higher priority over rules with empty commission.
 
| "xxxCODE" (currency code) or "XX%"
 
| "xxxCODE" (currency code) or "XX%"
 
| 100RUB<br/>13%
 
| 100RUB<br/>13%
 
|-
 
|-
| commission for subagents
+
| subagent commission
 
| <span id="agencyCommission">agencyCommission</span>
 
| <span id="agencyCommission">agencyCommission</span>
| Subagency commission is a part of the profit from the airline, which the agent gives away to subagents. The value of the commission acts as a discount for subagents, reducing the cost of air tickets. Commission is always calculated for each passenger whose fare value is not 0.
+
| Commission to a subagent is a part of the airline's profit which the agent sends to the subagents. The value of the commission acts as a discount for subagents, reducing the price of air tickets. Commission is always calculated for each passenger fare is not equal to 0.
  
'''Commission Formats for Subagents:'''
+
'''Commission assignment formats for subagents: '''
  
 
For all subagents:<br/>
 
For all subagents:<br/>
 
* Fixed amount: <code>XRUB</code>, where:
 
* Fixed amount: <code>XRUB</code>, where:
** ''X'' - commission amount, integer or decimal fraction number with a dot separator: <code>60</code>, <code>-3</code>, <code>0.5</code>
+
** ''X'' - commission amount, integer or decimal fraction with dot as a separator: <code>60</code>, <code>-3</code>, <code>0.5</code>  
** ''RUB'' - IATA code of the currency:<code>EUR</code>, <code>UAH</code>.
+
** ''RUB'' - IATA code of the currency: <code>EUR</code>, <code>UAH</code>.
* Percentage of the fare: <code>X%</code>,
+
* Percentage of the fare: <code>X%</code>,  
**where ''X'' - percentage of the fare, integer or decimal fraction number with a dot separator: <code>60}</code>, <code>-3</code>, <code>0.5</code>.
+
**where ''X'' - a percentage of the fare, an integer or a decimal fraction with a point separator: <code>60}</code>, <code>-3</code>, <code>0.5</code>.
For specific subagents or subagent groups:<br/>
+
For selected subagents or groups of subagents: <br/>
* <code>(ID:value),(ID:value),(ID:value),...</code>, where ''ID'' - number of subagent (group) in Websky, ''value'' - amount of commission for this subagency (group) in the format <code>X%</code> or <code>XRUB</code>.
+
* <code>(ID:value),(ID:value),(ID:value),...</code>, where ''ID'' - subagent’s (group’s) number in Websky, ''value'' - the size of the commission for this subagency (group) in the following format: <code>X%</code> or <code>XRUB</code>.
  
In one rule, you can combine the commission for all subagents and the commission for the specified subagents in the following format:
+
In one rule, you can combine the commission for all subagents and the commission for the specified subagents in a format:
* <code>XX,(ID:YY),(ID:YY),(ID:YY),...}}, where:
+
* <code>XX,(ID:YY),(ID:YY),..., where:
 
** XX - commission for all subagents in the format described above,
 
** XX - commission for all subagents in the format described above,
** YY - commission for a given subagent in the format described above.
+
** YY - commission for the specified subagent in the format described above.
 +
 
 +
In this case the size of the commission will be calculated:
 +
* for all subagents, except the specified: XX,
 +
* for the specified: XX + YY.
  
In this case, the amount of the commission:
 
* for all subagents except those indicated: XX,
 
* for the indicated one: XX + YY.
 
 
'''Example:''' <br/>
 
'''Example:''' <br/>
  
 
<pre>5%,(123:2%),(345:3%)</pre>.
 
<pre>5%,(123:2%),(345:3%)</pre>.
  
*Subagent comission under the number 123 is: 5% + 2% = 7% from the fare.<br/>
+
* Subagent commission under the number 123 is: 5% + 2% = 7% of the fare. <br/>
*Subagent comission under the number 123 is: 5% + 3% = 8% from the fare.
+
* Subagent commission number 345: 5% + 3% = 8% of the fare.
If you want to enter the amount as decimal number, the fractional part is separated by "." , eg: <code>0.5%</code>
 
  
{{Attention|If your agency plans to create a large number of individual pricing rules, each of which will indicate the value of the subagent commission for individual subagents / groups / users, then the recommended entry form is as follows (12345,12346,12347:3%) instead of (12345:3%),(12346:3%),(12347:3%). Which means using the grouping of the same values.}}
+
If the sum of the decimal is to be entered, the decimal part is separated with "." , for example: <code>0.5%</code>
 +
 
 +
'''Attention!''' In case your agency plans to create a large number of individual pricing rules, each of which will specify the value of the subagent commission for individual subagents / groups / users, the recommended form of entry is as follows: (12345,12346,12347:3%) instead of (12345:3%), (12346:3%), (12347:3%). Which means using a grouping of the same values.
  
 
| see description
 
| see description
Line 711: Line 699:
  
 
|-
 
|-
| segment-by-segment  commission calculation segment-by-segment
+
| segmental commission calculation
 
| <span id="modeForSegment">modeForSegment</span>
 
| <span id="modeForSegment">modeForSegment</span>
| Attribute of applying a commission or bonus to each segment of the flight. For example, 100 rub. for each segment.
+
| Attribute of commission or bonus being applied for each flight segment. For example, 100 rubles for each flight segment.
| empty = 0<br/>0 — one commission for the entire flight <br/>1 — the commission must be multiplied by the number of segments
+
| empty = 0<br/>0 — there is one commission for the entire flight<br/>1 — commission should be multiplied by the number of segments
 
| 0<br/>1
 
| 0<br/>1
 
|-
 
|-
 
| airline bonus
 
| airline bonus
 
| <span id="bonus">bonus</span>
 
| <span id="bonus">bonus</span>
| The agent’s additional profit that the agency receives from the airline, but it is not included in requests to GDS. It is set and calculated in exactly the same way as commissions (the calculation considers the parameter "segment-by-segment commission calculation"). It is used to calculate the "profitability" of air travel, affects the operation of the mixer and may affect the charge when setting the "minimum profit" parameter.
+
| Additional agent profit that the agency receives from the airline, but it is not taken into account in requests to the GDS. It is set and calculated in the same way as commissions (the parameter "segment commission calculation" is taken into account when calculating). It is used to calculate the "profitability" of air travel, affects the mixer and can affect the fee when setting the "minimum profit" parameter.
  
 
+
Of all the triggered rules, the bonus will be taken into account only from one by the following priority:
Of all the rules that triggered, the bonus will be taken into account only from one of them according to the following priority:
+
* Maximum priority for the triggered commission rule
* Maximum priority for triggered commission rule
+
* If there is no bonus in the commission rule, a bonus from another triggered ''non-commission'' rule (an additional rule with an empty commission) will be used. If there are several such rules, the rule with the highest identifier (below in the table) will be used.
* If there is no bonus in the commission rule, the bonus will be used from another triggered '''non-commission''' rule (additional rule with an empty commission). If there are several such rules, the rule with the highest identifier is used (below in the table)
 
 
| "xxxCODE" (currency code) or "XX%"
 
| "xxxCODE" (currency code) or "XX%"
 
| 100RUB<br/>13%
 
| 100RUB<br/>13%
 
|-
 
|-
| segment bonus (allowable airlines)
+
| segment bonus (allowed for airlines)
 
| <span id="modeForAirlines">modeForAirlines</span>
 
| <span id="modeForAirlines">modeForAirlines</span>
| Setting the current parameter forces the bonus calculation mode for each segment of the flight (for an absolutely specified bonus), but only segments with validating or interline carriers from the list specified here are taken into account.
+
| Setting the current parameter forcibly enables the mode of bonus calculation for each flight segment (for absolutely specified bonus), but only segments with validating or interline carriers from the list specified here are taken into account.
| empty<br/>
+
| empty<br/>CODE (airline code)<br/>
CODE (airline code)<br/>
+
CODE,CODE...
CODE,CODE ...
 
 
| SU<br/>
 
| SU<br/>
 
SU,FV
 
SU,FV
Line 739: Line 725:
 
| agency charge
 
| agency charge
 
| <span id="charge">charge</span>
 
| <span id="charge">charge</span>
| All markups/discounts that will be applied to the flight described by the rule are indicated here. You can specify several price rules in one field, dividing them by user type.<br/>
+
| All markups/discounts that will be applied to the flight described by the rule are specified here. You can specify several price rules in one field by dividing them by user types.<br/>
format = (subject:amount),(subject:amount),(subject:amount)...<br/>subject = ID of the groups, users and two "B2C" values, "B2B" with the possibility <>denial<br/>amount = term + term + term...[restriction]<br/>restriction = range of total charge value, is set as [price,price]<br/>term = price*multiplier*multiplier...<br/>price = "xxxCODE" (currency code) or "XX%" (percent of total cost (fare + taxes) ГРС)<br/>multiplier = one of the values:
+
format = (subject:sum), (subject:sum), (subject:sum)...<br/> subject = group ID, user ID and two "B2C", "B2B" values with the possibility of <>rejection<br/> sum = subclause + subclause + subclause. ...[restriction]<br/>restriction = range of the total charge, set as [price, price]<br/> sum = price*multiplier*multiplier...<br/>price = "xxCODE" (currency code) or "XX%" (percentage of the total price (fare+taxes) of GDS)<br/> multiplier = one of the values:
* PAS total number of passengers (including INF)
+
* PAS - total number of passengers (including INF)
* ADT number of adults
+
* ADT - number of adults
* CLD number of children (2-12)
+
* CLD - number of children (2-12)
* INF number of infants (0-2)
+
* INF - number of infants (0-2)
* INS number of infants with seat (0-2)
+
* INS - number of infants with seat (0-2)
* SEG number of flight segments (flight from A to B with 1 transfer => 2 segments)
+
* SEG - number of flight segments (flight from A to B with 1 transfer => 2 segments)
* LEG number of legs (flight from A to B with 1 transfer => 2 segments)
+
* LEG - number of legs (flight from A to B with 1 transplant => 1 shoulder)
* TRF to get the fare price, equal to the total amount of fares
+
* TRF - to get the fare price equal to the fare sum
* SGV number of validating carrier’s segments
+
* SGV - number of segments of the validating carrier
 
Examples:
 
Examples:
* 100RUB*SEG&nbsp;: plus 100 rubles to the order value for each segment
+
* 100RUB*SEG&nbsp;: plus 100 rubles to order value for each segment
* 150RUB*SEG*PAS;: plus 150 rubles for each segment, for each passenger. For example: a flight with two segments and two passengers = 600 rubles.
+
* 150RUB*SEG*PAS;: plus 150 rubles for each segment, for each passenger. For example: flight with two segments and two passengers = 600 rubles.
* -10%*TRF&nbsp;: 10% discount from a fare
+
* -10%*TRF&nbsp;: 10% discount from the fare.
 
* 50RUB*LEG*ADT[,1000RUB]&nbsp;: 50 rubles for each adult ticket on each flight leg, but not more than 1000RUB
 
* 50RUB*LEG*ADT[,1000RUB]&nbsp;: 50 rubles for each adult ticket on each flight leg, but not more than 1000RUB
* (<>123,345: 100RUB), (123,345: -100RUB)&nbsp;: subjects 123 and 345 will receive a discount of 100 rubles., the rest - a markup of 100 rubles.
+
* (<>123,345: 100RUB), (123,345: -100RUB)&nbsp;: subjects 123 and 345 will receive a discount of 100 rubles, the rest of the markup is 100 rubles.
* (B2B: 1000RUB*ADT 100RUB*CLD[-10%,-1%]), (B2C: 10% [10USD,]), (123: -1000RUB)&nbsp;: B2B users receive a markup of 1000 rubles for each adult ticket and a 100 rubles discount for each child ticket, but not less than 1% of the total price and not more than 10%. B2C users get a 10% markup, but no less than $ 10. User with ID=123 will receive a discount of 1000 rubles.
+
* (B2B: 1000RUB*ADT - 100RUB*CLD[-10%,-1%]), (B2C: 10% [10USD,]), (123: -1000RUB)&nbsp;: B2B users will get a markup of 1000 rubles for each adult ticket and 100 rubles discount for each child ticket, but not less than 1% of the total cost and not more than 10%. B2C users receive a 10% surcharge, but not less than $10. User ID=123 will receive a discount of 1000 rubles.
  
If several price rules separated by comma are triggered, their total amount is taken. If this is not a suitable behavior, separate the price rules into separate flight rules (strings), they can be adjusted by priority.
+
If several price rules, listed by comma, are triggered, their amount is taken. If this is not suitable behavior, divide the price rules into separate flight rules (rows), they can be adjusted by priority.
  
{{Attention| If your agency plans to create a large number of individual pricing rules, each of which will indicate the value of the agency charge for individual subagents/groups/users, then the recommended entry form is as follows (12345,12346,12347:3%) instead of (12345:3%), (12346:3%), (12347:3%). It means that you need to use grouping of the same values.}}
+
'''Attention!''' In case you plan to create a large number of individual pricing rules for your agency, each of which will specify the value of the agency fee for individual subagents / groups / users, the recommended form of entry is as follows: (12345,12346,12347:3%) instead of (12345:3%), (12346:3%), (12347:3%). Which means using a grouping of the same values.
  
If you want to enter the amount as a decimal fraction, the fractional part is separated with "." , for example: <code>0.5%</code>
+
If you need to enter the amount as a decimal fraction, the fraction is separated with "." , for example: <code>0.5%</code>
 
| see description
 
| see description
 
| see description
 
| see description
 
|-
 
|-
|Commission for metasearch
+
| Metasearch commission
|MetasearchCommission
+
| MetasearchCommission
|The comission is charged by the metasearch system and is calculated at the search stage. The value should be indicated as a decimal representation of the interest rate - it is a fraction of 1 if you, for example, specify 0.05 - 5%. You can specify it with/without the "%" sign. The commission is calculated from the amount = the flight price from the supplier + fees/discounts + additional fees + min. profit. The calculated value is rounded to 2 characters after the separator. This parameter is described in more detail
+
| Commission, charged by the meta-search system (for Websky at the moment it is only Aviasales) and calculated at the search stage. The value should be specified as decimal representation of the interest rate - it is a fraction of 1, for example, if you set 0.05 - 5%. It is possible to specify with/without the sign "%". Commission is calculated from the amount = flight price from supplier + fees/discounts + additional fees + min. profit. The calculated value is rounded to 2 characters after the separator.
[http://support.nemo.travel/ru/%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%D1%81_%D0%BC%D0%B5%D1%82%D0%B0%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8#%D0%9A%D0%BE%D0%BC%D0%B8%D1%81%D1%81%D0%B8%D1%8F_%D0%BC%D0%B5%D1%82%D0%B0%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0 here].
 
 
| see description
 
| see description
|0.05
+
| 0.05
 
0.025%
 
0.025%
 
|-
 
|-
| attribute of an additional charge
+
| extra charge attribute
 
| <span id="chargeExt">chargeExt</span>
 
| <span id="chargeExt">chargeExt</span>
| The setting allows you to change the procedure for calculating the charge, adding additional settlement rules to the final result.
+
| The setting allows you to change the charge calculation procedure by adding additional calculation rules to the final result.
* 0 Standard charge (default value). Of all these fees, the one wih highest priority will be applied.<br/>
+
* 0 - Standard fee (default value). Of all the fees specified, one will be applied by priority.
* 1 Additional charge. Charges indicated as optional are verified separately. Similarly, one extra charge with the highest priority will be applied.
+
* 1 - Additional fee. Fees specified as additional fees are checked separately. In the same way, one extra charge with maximum priority is applied.
* 2 — Mandatory charge. Will be applied if all charge parameters are satisfied. Priority is ignored.
+
* 2 - Obligatory fee. It will be obligatory to apply if all collection parameters are satisfied. Priority is ignored.
 
| empty = 0<br/>
 
| empty = 0<br/>
 
1<br/>
 
1<br/>
Line 788: Line 773:
 
| minimum profit
 
| minimum profit
 
| <span id="minProfit">minProfit</span>
 
| <span id="minProfit">minProfit</span>
| The minimum profit that the agency will receive for the order. If the calculated profit of the agency is less than the minimum, then the charge will be increased to the required value.
+
| Minimum profit that the agency will receive for the order. If the calculated agency profit is less than the minimum profit, the fee will be increased to the required value.
The format is similar to the agency charge format. For calculations, the value from the rule according to which the airline commission will be determined will be applied. If you want to change this behavior, you must set the parameter "priority of min. profit" (see below)
+
The format is similar to that of an agency. For calculations, the value from the rule by which the airline commission will be determined will be applied. If you need to change this behavior, you should set the "priority of the min. profit" parameter (see below).
 
| see description
 
| see description
 
| 50RUB*LEG*PAS
 
| 50RUB*LEG*PAS
 
|-
 
|-
| min. profit priority
+
| minimum profit priority
 
| <span id="minProfitPriority">minProfitPriority</span>
 
| <span id="minProfitPriority">minProfitPriority</span>
| An additional parameter responsible for calculating the minimum profit. The rule with the highest priority will work, and if the priority matches, the rule located below will be used
+
| An additional parameter responsible for calculating the minimum profit. The rule with the highest priority will be triggered, if the priority matches, the rule below will be used.
 
| Positive numeric values.
 
| Positive numeric values.
 
| 1, 2, ...
 
| 1, 2, ...
 
|-
 
|-
| rounding
+
| roundoff
 
| <span id="chargeRounding">chargeRounding</span>
 
| <span id="chargeRounding">chargeRounding</span>
| Arithmetic rounding procedure
+
| The procedure of arithmetic rounding of the charge
| empty = 0,<br/>0 = to an integer value,<br/>0.1 = to tenths,<br/>0.01 = to hundredths
+
| empty = 0,<br/>0 = to integer vaue,<br/>0.1 = to tenths,<br/>0.01 = to hundredths
 
| 0.1<br/>0.01
 
| 0.1<br/>0.01
 
|-
 
|-
Line 812: Line 797:
 
|}
 
|}
  
== Additional rule settings for Websky platform ==
+
== Additional rule parameters for Websky platform ==
  
Parameters for private (confidential) fares management.
+
Parameters for working with private (confidential) fares.
  
To view the description of the parameters <span style="background-color:gold">expand the table</span>:
+
To view the options description <span style="background-color:gold">expand the table</span>:
  
 
{|  class="wikitable mw-collapsible mw-collapsed"
 
{|  class="wikitable mw-collapsible mw-collapsed"
|colspan="5"| '''Additional rule settings'''
+
|colspan="5"| '''additional rule parameters'''
 
|-
 
|-
! scope="col" | Heading<br/>
+
! scope="col" | Title<br/>
 
! scope="col" | Internal name<br/>
 
! scope="col" | Internal name<br/>
 
! scope="col" | Description<br/>
 
! scope="col" | Description<br/>
! scope="col" | Valid values<br/>
+
! scope="col" | Permissible values<br/>
 
! scope="col" | Examples<br/>
 
! scope="col" | Examples<br/>
 
|-
 
|-
 
| tour code
 
| tour code
 
| <span id="id">gdsTourCode</span>
 
| <span id="id">gdsTourCode</span>
| Tour code<br/>
+
| Тур код<br/>
| any value
+
| any value<br/> On the example of Amadeus: if it is not necessary to specify PAX (passengerType), we specify only the RU084P tourcode, before the tourcode on the supplier side, * (asterisk) is always added, and the entered command in the terminal looks as FT *RU084P. If it is necessary to specify PAX (passengerType), you need to to specify it with the tourcode without space PAXRU084P, in the terminal, the entered command looks like FT PAX *RU084P.
| 15ZU
+
| 15ZU<br/> RU084P
 
|-
 
|-
 
| ticket designator
 
| ticket designator
Line 842: Line 827:
 
| <span id="id">gdsEndorsment</span>
 
| <span id="id">gdsEndorsment</span>
 
| Endorsements<br/>
 
| Endorsements<br/>
| any value<br/> or %VAT_VALUE% to transfer the VAT value to the endorsement only for Amadeus, Saber, Galileo, GalileouAPI and S7 NDC; for Sabre, the value is transferred to the GDS, but does not fall into the itinerary receipt
+
| any value<br/> or %VAT_VALUE% to transfer the value of VAT in the endorsement only for GDS Amadeus, Sabre, Galileo, GalileouAPI and S7 NDC; for Sabre, the value is transferred to the GDS, but not to the Itinerary Receipt
 
| Non-Endorsable/Valid on BA/IB only/Refund only to issuing agent; %VAT_VALUE%
 
| Non-Endorsable/Valid on BA/IB only/Refund only to issuing agent; %VAT_VALUE%
 
|-
 
|-
Line 849: Line 834:
 
| Agent's own profit<br/>
 
| Agent's own profit<br/>
 
| "xxxCODE" (currency code) or "XX%" Only integer values are allowed
 
| "xxxCODE" (currency code) or "XX%" Only integer values are allowed
| 100RUB<br/>2%
+
| 100RUB<br/>2%  
 
|-
 
|-
| discount subject by a tour code
+
| tour code discount subject
 
| <span id="id">corpClient</span>
 
| <span id="id">corpClient</span>
| ID of the subject who will receive a discount by the tour code
+
| ID of the subject who will be given a discount on the tourcode
 
| ID,ID
 
| ID,ID
 
<>ID,ID
 
<>ID,ID
Line 859: Line 844:
 
<>2786,2361
 
<>2786,2361
 
|-
 
|-
| discount by a tourcode
+
| discount by tourcode
 
| <span id="id">discount</span>
 
| <span id="id">discount</span>
| Скидка<br/>
+
| Discount <br/>
 
| "xxxCODE" (currency code) or "XX%"
 
| "xxxCODE" (currency code) or "XX%"
 
| 100RUB<br/>13%
 
| 100RUB<br/>13%
 
|-
 
|-
| authorization code
+
| authorisation code
 
| <span id="id">authCode</span>
 
| <span id="id">authCode</span>
| Authorization code<br/>
+
| Authorisation code<br/>
 
| any value
 
| any value
 
| MB10
 
| MB10
 
|}
 
|}
 
== Pricing. GDS SITA Gabriel ==
 
 
Setting of the price rules for S7 Airlines in GDS ''SITA Gabriel'' has its own specifics. Due to the fact that GDS ''SITA Gabriel'' carries out only booking and ticketing for S7 Airlines, and the search is executed in other GDSs, the flight price when searching and booking can differ by the amount of taxes which can be in the GDS used for the search but are absent in ''SITA Gabriel''. To prevent changes in the price after proceeding to a booking, special rules are set in the pricing, where discount equal to tax is set via the '''price confirmed''' parameter (see parameters of the pricing rules.
 
 
Tax codes :
 
*in GDS Sabre – ''YQF''.
 
*in GDS Sirena – ''ZZ''.
 
*in GDS Galileo and Amadeus – ''YQ''.
 
Tax amounts vary by course.
 
 
Each rule for flights of '''S7 Airlines''' is divided into 2 separate strings:
 
 
# Rule ''for the search'':
 
#* validating carrier: '''''S7''''';
 
#* booking systems: '''''SITA''''';
 
#* price confirmed: '''0''';
 
#* agency charge: ''indicate the discount by the amount of the GDS fee used for search + indicate agency charge size''.
 
# rule ''for booking'':
 
#* validating carrier: '''''S7''''';
 
#* booking systems: '''''SITA''''';
 
#* price confirmed: '''1''';
 
#* agency charge: ''indicate only the amount of the agency charge''.
 
 
<!-- {| class="wikitable"
 
|-
 
|[[Файл:Правила_цо_для_ак_сибирь.png|800px]]
 
|-
 
|Pricing rules for S7 Airlines
 
|} -->
 
  
  
 
== EMD ==
 
== EMD ==
 
EMD - electronic multi-purpose document or voucher.
 
EMD - electronic multi-purpose document or voucher.
In the "Product control → Aviatickets → Pricing → Settings" section, there is a setting '''Issue EMD by order charges amount'''. It is responsible for issuing the EMD to a collection agency (available only to Siren Travel). How it works: if the agency that buys the ticket has an agency charge for the validating company of the carrier in the pricing rules, then when issuing an order, in addition to the itinerary receipt and EMD for additional services, a separate EMD for agency charge will be issued. If there are several people in the order, then the charge will be divided between them, the total amount of the charge will not increase.
+
In the section "Product control → Avia tickets → Pricing → Settings", there is an option '''Issue EMD by order charge value'''. It is responsible for issuing the EMD for the agency's charge (available only to Sirena Travel). Principle of operation: if, for the agency which buys the ticket there is an agency charge in the pricing rules for the validating air carrier company, then, when issuing an order in addition to the itinerary receipt and EMD for additional services, a separate EMD will be issued for agency charge . If there are several people in the order, the charge will be divided between them, the total amount of the fee will not be increased.
<!-- == See also ==
+
 
* [[Ценообразование для субагентов|Pricing for subagents (rus)]]
+
== See also ==
* [[Валюта|Currency(rus)]] -->
+
* [[Pricing for subagents]]
 +
* [[Currency]]

Latest revision as of 21:42, 30 September 2020

Purpose

Pricing module automates the process of calculation of commissions and charges for air tickets, management of carrier's commission rules, agency fees and sub-agents' commissions.

  • allows you to quickly set up even complex commission rules,
  • allows you to build a convenient and clear pricing scheme,
  • accurately comply with the difficult conditions provided by airlines,
  • guarantees correct calculations,
  • provides a tool to control the correctness of calculations.

Principle of operation

The module's operation is based on the agency's pricing rules.

Rule — set of "commission and fee values" and "conditions of their application".
Values of commissions and charges is:

  • commission from the airline,
  • airline bonus,
  • agency charge,
  • commission for subagents.

Condition of application for commissions and charges — a set of flight parameters to which the fees and charges of the rules will apply ("validating carrier", "GDS", "flight type", "passenger types", etc.).

Pricing rules are defined in a table in an XLS or XLSX file, where:

  • "Table string" - rule.
  • " String cell" - parameter value.
  • "Column header" - parameter name.
    Each line is a separate rule.
    For one flight, only one rule is selected by criteria and only one rule applies.

Before calculating the commissions, the pricing module determines the availability of the flight for the ticketing and the rule by which the commissions and fees are calculated, using the following algorithm:

  1. The module records which airline GDS has defined as the validating airline;
  2. Finds all the rules for that airline in the pricing file;
  3. Selects the rules that match the flight by all parameters;
  4. Selects one of the appropriate rules by priority criteria;
  5. If the triggered rule does not contain an override of the validating carrier, the validating carrier obtained from the GDS is established.
  6. * If the triggered rule contains an override of the validating carrier, the overriding validating carrier is set.
  7. The rule applies.

The agency may only issue online flights of contract airlines. An airline is considered a contract airline if it has at least 1 rule in its uploaded pricing file.


Attention! The flight cannot be ticketed if:

  • there are no rules for the airline. It is recommended to delete such flights from the search results filter output "Airline is not contract".
  • rules for the airline are established, but the flight parameters do not correspond to the rule parameters.

The module's working order is given in the diagram:

Pricing 1.png
Workflow of the Pricing module

Commissions and charges are calculated each time an order is updated according to the rules loaded into the system at the time of checking:

  • when the search results are generated,
  • at the time of booking,
  • when switching to payment and ticketing,
  • when updating the order page.

If, during the period between booking and ticketing, rules were changed, аfter bookingб the order the commissions will be calculated according to the new rules, so the price at the time of booking and the price at the ticketing may differ. The behavior of the system in case of such a situation is set by the parameter Recalculate service charge under System Settings → Background Processes → Synchronization Events. You can track the calculation of commissions valid at the time of booking in the logs on order.

In the price details (on the order page) and in the itinerary receipt information on the charges is provided in accordance with one of the modes of division of charges by passengers:

  • Equally divided between non-zero ticket prices - agency and subagency charges are divided equally between all passengers with fare and tax more than 0. This mode is selected by default.
  • Equivalent between all fares - agency and subagency charges are divided equally among all passengers.
  • Proportional to fares - agency and subagency charges are divided proportionally to the fare price for a particular passenger in the total amount of the order, i.e. the more the fare price is, the more part of the charge is allocated for it.
  • Only to the first type of passenger - agency and subagency charges are allocated to the first type of passenger.
  • Proportional to fares , except for infants - agency and subagency charges are divided proportionally to the fare price for a particular passenger in the total amount of the order, except for infants.

The fees in the price details are presented with the division only if they are hidden in XP/XX taxes, otherwise they are displayed as a separate line without division.
You can find the setting in the Sales Management - Air Tickets - Pricing - Settings - Passenger Fee Splitting Mode.

Commission calculation for non-contractual airlines

The agency may "issue tickets" to "non-contractual" airlines on "clean interline" terms between the airlines.

For example,

  • The agency has no contract with "AA" airline.
  • The agency has a contract with "BB" airline.
  • There is an interline agreement between "AA" and "BB" companies, which allows issuing tickets for "AA" on "BB" form.

To issue tickets for "AA" airline, the agency has a rule for "AA" airline, which specifies:

  1. Validating carrier: «AA»,
  2. redefined carrier: «BB»,
  3. share of interline segments:«1»,
  4. airline commission: specify the amount of commission provided by "BB" for tickets with 100% share of interline segments.

Attention! The Websky system does not monitor the presence of interline agreements between carriers. Responsibility for redefinition lies entirely with the agency.

Selecting the rule for calculation

Commissions for the flight are calculated by one rule. If several rules are suitable for the flight, the system chooses the rule for calculation by priority criteria. Rules are compared on the first criterion, if the criterion in this case does not work, on the second and so on, until one rule is defined.

The order of comparing the rules to select the rule for the calculation:

  1. By "Priority" column - if the triggered rules have a priority, the rule with the highest priority is selected.
  2. By the presence of an overridden carrier - if several rules with the same priority are triggered (or the priority is not specified), the rule with the overridden VC is selected.
  3. For a nonempty Commission cell - the priority of the rules with an established commission (even in 0%) is higher than that of the rules with an empty cell.
  4. Extra priority - Manually set in the section Product control → Avia tickets → Pricing → Settings by the parameter Extra priority:
  5. * 'No - no additional priority is set.
  6. * 'Maximum commission from the airline - the rule with the maximum commission from the airline is selected.
  7. *'By the number of parameters in the rule - the rule with the largest number of non-empty parameters is selected.
  8. Rule's ordinal number - if none of the priorities is applicable, the newer rule is considered the priority (the table below the others).

Testing and debugging of rule triggering

All calculations at each stage of their application are logged and displayed in the debug table. The debug table is used to control how the rules work, providing information about how the rules apply to the selected flight.

Link to the debug table is available to the manager and experts of the root agency:

  • to display search results for each flight by the Commission link,
  • on the order page, in the flight price detail, by clicking on the amount of commission or charge.
Pricing 2.png
Link to debug table on the search page
Pricing 3.png
Link to price details on the order page
Pricing 4.png
Links to debug table on the price detail page

Table columns — pricing parameters.
Column header — values of pricing parameters for the flight being checked.
Table rows — Pricing rules "for the validating carrier" of the flight.

The table shows the order in which parameters are checked.

The parameters of each rule are compared in the flight parameters:

  1. if they match:
    1. the cell is highlighted in green,
    2. the following parameter is checked;
  2. if the value of the flight parameter does not match the value of the rule parameter:
    1. the cell is highlighted in red,
    2. rule check stops.

If a rule matches all parameters, the rule applies, commissions and fees are highlighted with green light, and their calculated values are displayed next to each other.


Pricing 6.png
Debug table

Enabling module. Rules Import and Export

To enable the calculation of commissions using Pricing, enable the Commissions 2.0 and Charges and Discounts 2.0 options in Product control → Avia tickets → Pricing → Settings.

To set the pricing rule:

  1. Go to Product control → Avia tickets → Pricing → Excel import/export.
  2. Press Upload in "xls" format or Upload in "xlsx" format. Open the file to edit.
  3. Set the rule: Fill in the string parameters. The format of data entry in each column must correspond to a strictly defined format (see Rules Import).
    Obligatory parameters to fill in:
    • validating carrier.
    • commission #
  4. Save the changes to the file.
  5. On the Excel import/export page in the Administration panel click Browse, open the file.
  6. Click Send to upload the file to the system.

During import, the system will validate all entered values. If a value is entered in a cell in an incorrect format, the system will report an error while saving all correctly defined rules.

After validation, the page displays a table showing all loaded rules in a compressed form.


The table provides color-coded rules that are currently invalid:

  • rules that have not yet come into effect (the sale start date is higher than the current date, see Parameters of Pricing Rules) are highlighted in orange,
  • the rules that have expired (the sale expiration date is greater than the current date) are highlighted in purple.

Pricing rule parameters

Template of file for entering pricing rules:

Attention! It is forbidden to rename columns!
But it is allowed to change columns and remove unnecessary columns.

To view the description of parameters expand the table:

Pricing rule parameters
Title Internal name Description Permissible values Examples
id id A unique record number from any external system (or database). Optional parameter. It does not participate in the calculation logic and is used for convenient rule identification. any value 123
GDS validating carrier valCompanyId The airline for which the rule is set. Must be the contract airline of the agent. If it is necessary to make ticketing on the stock of another airline (by interline), the validating carrier is redefined (see Redefined validating carrier). If the validating carrier from GDS is unacceptable by specified pricing rules and is not overridden - the flight is considered unacceptable for ticketing and is removed from search results with appropriate settings of results filtering. empty is ignored

2-digit IATA airline code

SU

LH

redefined vc manualVV If the validating carrier proposed by the GDS is not a contractual carrier or does not satisfy the commission agent, it can be overridden through this field. The VC field indicates the VC from GDS (or it is left empty), and this field indicates the carrier redefined by the agency.

The agent is responsible for acceptance of replacement and adequacy of the flight price (which was calculated by GDS for the carrier offered to it). The priority for the rules with the redefinition is higher than for the rules without it.

empty is ignored

2-digit IATA airline code

SU

LH

first segment carriers airlines A set of acceptable marketing carriers of the first segment of the route. empty = any
CODE,CODE...
<>CODE,CODE...(except)
SU,LH,BA

<>S7,SU

carriers of any segment airlinesAny A set of acceptable marketing carriers (interlines) of any segment of the route.

Permissible input options:

  • CODE,CODE,CODE : the rule applies if at least one marketing carrier from the flight is on the list.
  • CODE,CODE,CODE! : the rule applies if each marketing carrier from the flight is found on the list
  • <>CODE,CODE,CODE : the rule will not apply if at least one marketing carrier from the flight is found on the list
  • <>CODE,CODE,CODE! : the rule will not apply if all marketing carriers from the flight are found on the list.
empty = any
- one or more values (see description)
SU,LH,BA
SU,LH!
<>S7,SU
<>S7,BA!
code sharing codeSharing Permissibility of a flight being operated by another (operating) airline empty - all flights
1 - code sharing is required
0 - code sharing is prohibited
0

1

operators operatingAirlines Permissible operating airlines (need to be tested on all segments).

Input options:

  • CODE, CODE, CODE : the rule applies if at least one operating carrier of the flight is found on the list.
  • CODE,CODE,CODE : the rule applies if every operating carrier of the flight is found on the list.
  • <>CODE,CODE,CODE : the rule does not apply if at least one operating flight carrier is found on the list.
  • <>CODE,CODE,CODE : the rule will not apply if all operating carriers of the flight are found on the list.
empty = any
- one or more values (see description)
SU,LH,BA
SU,LH!
<>S7,SU
<>S7,BA!
own segment share ownPart The minimum allowed share of own segments (segments where the validating carrier is equal to a marketing one) must be greater than or equal to a given value (any number from 0 to 1):
  • 1 - all segments are own
  • 0.5 - half or more of own segments
  • 0.25 - a quarter or more of own segments
  • 0.01 - there is at least one own segment
  • 0 - all segments of interline
empty = any number

any number from 0 to 1

0.88
interline segment share interlinePart The minimum allowed percentage of nonproprietary segments (segments where the validating carrier is not equal to the marketing one) must be greater than or equal to the specified value (any number from 0 to 1).
  • 1 - all segments of interline
  • 0.5 - half or more segments of interlines
  • 0.25 - a quarter or more segments of interlines
  • 0.01 - there is at least one segment of the interline
  • 0 - all segments are own
empty = any number

any number from 0 to 1

0.88
contract type contractType BSP or TCH settlement system empty = any,
BSP
TCH
TCH
booking systems gds Global distribution system, in which the flight/ PCC of specific Websky requisites/ ID of the Websky requisite package was found.

Listed in any sequence, you can mix different types. The "or" rule applies: if the whole Sabre is specified, you don’t need to specify all its PCC/packages.

Attention! When specifying the name of the GDS, strictly follow the name format specified in the documentation. If the rule doesn’t match with the template, it will not apply!

empty = any
ГРС: SABRE, GALILEO, AMADEUS, SIRENA, SITA, SIG23
PCC: [letters+digits]
Package ID: [digits]
SABRE,670P,123

AMADEUS,GALILEO

SITA

start of sale paymentDateFrom Minimum allowed date of order execution (not to be confused with the date of departure). To trigger the rule, the current date must be greater or equal to the specified one. empty = ignored

DD.MM.YYYY

01.01.2012

31.01.2010

end of sale paymentDateTo Maximum allowable date for placing an order. To trigger a rule, the current date must be less or equal to the specified date. empty = ignored
DD.MM.YYYY
31.12.2022
flight type airlineType International or domestic (all flights within the same country) flight.

One value

empty = any
IA (international airlines)
DA (domestic airlines)
IA
DA
flight numbers flightNumber Permissible flight numbers, can be specified with or without the code of the marketing company.

Input variants:

  • NNN,NNN: the rule applies if at least one flight number from a flight from any segment is found on the list.
  • NNN,NNNN! : the rule shall apply if all flight numbers from all flight segments are found on the list.
  • <>NNN,NNNN : the rule will not apply if at least one flight number from any flight segment is found on the list.
  • <>NNN,NNNN! : the rule will not apply if all the flight numbers are found on the list.
empty = any
- one or more values (see description)
SU 123,SU 345
123,345
<>LH 555
aircraft type aircraft Permissible aircraft codes, must be specified in the same form as the codes returned by the GDS.

Input variants:

  • CODE,CODE: the rule applies if at least one aircraft code from any segment matches one of the specified list.
  • CODE,CODE! : the rule shall be applied if aircraft codes from all flight segments are in the list.
  • <>CODE,CODE : the rule will not apply if at least one aircraft code from the flight is in the list.
  • <>CODE,CODE : the rule will not apply if all the codes from the flight are in the list.


empty = any
- one or more values (see description)
73C,DH4
735
fare codes tariffs Permissible tariff codes. At least one fare from the flight must coincide with one from the given list. If there is a rule with denial, there must be no matches. The match is not exact: the code from the rule may be contained in the code from the flight (for example, the entered S1GREY26 will match S1GREY26CH from the flight).

Input variants:

  • CODE, CODE: the rule applies if at least one fare appears in the list.
  • CODE,CODE! : the rule will be applied if all the fares of the flight are in the list.
  • <>CODE,CODE : the rule won't be applied, if at least one fare is in the list.
  • <>CODE,CODE : the rule doesn't apply, if all fares of the flight are in the list.

You can set a regular expression. To do this, write the parameter in /XXX/ format. Examples:

  • /ABC/ — code must contain "..ABC..", for example, "NBABCS"
  • /abc/i — case insensitive check, the code can contain characters in any case, for example "NBABCS" or "Abcof"
  • /^TN/ — code must begin with "TN..", for example "TNQRTY"
  • /OW$/ — the code must end with "..OW", for example "SRSOW"
  • /^.L/ — first letter - any ( . — any symbol ), the second letter in the fare code must be L, for example "QLFST"
  • /OK.*RT/ — ( .* = any number of any characters) "..OK..RT..", for example "ANOKURTN"
empty = any
- one or more values (see description)
WRUTH9PL,ARUTH9PL


/TN.*OW/

maximum fare maxTariff Restriction on the maximum price value of the "base price" (the sum of all fares from the carriers on the flight or the price from GDS minus taxes). If the parameter is set, the rule written in the line is triggered only if the flight fare is less than or equal to the specified value. empty = no limit
xxxCODE (see examples)
10000RUB

300EUR

Private fare privateFare To trigger the rule, the flight must have a fare with the sign of confidential (private). This information is provided by GDS. If it's enough to indicate a specific code of a private fare to unambiguously define the rule, it's not necessary to set the sign. empty = any fares
1 — a private one must be present
0 — there must be no private fares
0
1
tax codes taxes Permissible tax codes

Input variants:

  • CODE, CODE: the rule will apply if any tax from the flight is in the list.
  • CODE,CODE! : the rule will apply if all the flight taxes are in the list.
  • <>CODE,CODE : the rule will not apply if any flight tax is in the list.
  • <>CODE,CODE : the rule will not apply if all the flight tax are in the list.

where CODE is a set of capital Latin letters.

empty = any
- one or more values (see description)
YQ,YR
<>YQ!
price confirmed priceIsActual An attribute of a confirmed flight price. The flight price after search is considered unconfirmed, its status changes to "confirmed" ("actual") after creating a real PNR or after requesting price update within Nemo Connect web services (before creating a PNR). empty = any flights
1 — flight in the PNR or its price is checked in advance
0 — flight has just been retrieved from search results
0
1
availability of VC segments for all fares valSegmentsInTariff Verification: any fare segment must have a validating carrier segment (minimum one). empty or 0 = any fares
1 - condition must be met
0
1
service classes serviceClass Permissible service class categories.

Input options (one- or two-letter values are entered):

  • CODE: The rule applies if the class is in the list.
  • CODE: this rule is applied if a combination of classes is in the list.
  • CODE, CODE: a rule is applied if a class from any segment is in the list.
  • CODE,CODE! : the rule applies if all classes from all flight segments are in the list.
  • <>CODE,CODE : the rule will not apply if a class from any segment is in the list.
  • <>CODE,CODE : the rule will not apply if all classes from all flight segments are in the list.

where the CODE:

  • B - business
  • E - economy
  • F - first
  • EB - combination of economy + business
  • EF - combination of economy + first
  • BF - combination of business + first
empty = any
- one or more values (see description)
B,E
F
EB,EF,F
booking classes (codes) bookingClass Allowed letters (one-letter codes) of booking classes. Must be Latin letters, Cyrillic letters are allowed only for Sirena supplier rules.

Input variants:

  • CODE, CODE: the rule applies if at least one class from any segment is in the list.
  • CODE,CODE! : the rule applies if the classes from all flight segments are in the list.
  • <>CODE,CODE : the rule will not apply if at least one class from any segment is in the list.
  • <>CODE,CODE : the rule will not apply if the classes from all flight segments are in the list.
empty = any
- one or more values (see description)
A,B,C
<>A,B,C
carriers and classes airlinesAndClasses Set of "marketing carrier" + "booking class" pairs of any segment of the route.

Permissible input options:

  • CODE:CODE,CODE:CODE,CODE:CODE : the rule applies if at least one flight segment matches one of the listed ones.
  • CODE:CODE,CODE:CODE,CODE:CODE! : the rule will apply if all the flight segments are in the list.
  • <>CODE:CODE,CODE:CODE,CODE:CODE : the rule will not apply if at least one flight segment would match any of the segments in the list.
  • <>CODE:CODE,CODE:CODE,CODE:CODE! : the rule will not apply if all flight segments are in the list.
empty = any
- one or more values (see description)
SU:A,LH:B,BA:C

SU:A,LH:B!
<>S7:A,SU:B
<>S7:A,BA:B!

zones zones Geographical zones of the flight. The whole flight must not exceed one of the specified zones for the rule to be triggered. division of countries by specified zones.
  • AF - Africa,
  • AN - Antarctica
  • AS - Asia
  • EU - Europe
  • NA - North America
  • OC - Australia and Oceania
  • SA - South America

the flight must be in both zones ("EUSA, EUNA" - transatlantic flight):

  • EUSA - Europe + South America,
  • EUNA - Europe + North America
  • EUAS - Europe + Asia
  • EUAF - Europe + Africa
  • EUOC - Europe + Australia and Oceania
  • AFNA - Africa + North America
  • ASNA - Asia + North America
  • EUAN - Europe + Antarctic
  • AFAS - Africa + Asia
  • AFAN - Africa + Antarctica
  • AFOC - Africa + Australia and Oceania
  • AFSA - Africa + South America
  • ANNA - Antarctic + North America
  • ANOC - Antarctic + Australia and Oceania
  • ANSA - Antarctic + South America
  • ASAN - Asia + Antarctica
  • NASA - North America + South America
  • OCSA - Australia and Oceania + South America
  • ASSA - Asia + South America
  • NAOC - North America + Australia and Oceania
  • OCAS - Australia and Oceania + Asia

Only the listed zone combinations are allowed!

empty = any
- one or more values
AS,EU
SA
EUSA, EUNA
country zone countryZones The above country codes form an area beyond which an aircraft must not land and take off. empty = any
CODE,CODE...
RU,IT,DE,FR
countries of departure depCountries Permissible countries of departure for the flight (only the country of departure of the first segment of the route is checked). empty = any
CODE,CODE...
<>CODE,CODE...(except for)
RU
<>LV,LT
countries of destination arrCountries The destination country is checked (for OW and CR: this is the last country of the last segment, for RT: this is the last country of the first leg of the route). For example, for MOW-PAR-MOW flight, the destination country is FR, for MOW-PAR-LON - GB. Country of departure=RU, country of destination=RU does not mean a local flight - do not forget to specify the flight type DA. empty = any
CODE,CODE...
<>CODE,CODE...(except for)
RU
<>LV,LT
direct flight isDirect Direct flight attribute empty = any
0 — only with transfers
1 — direct only

additionally:
2 — initial flight is direct
3 — initial flight is with transfers

0
1
route type routeType You can leave the field blank or specify a single value:
  • One Way - OW,
  • Round Trip - RT,
  • Complex Route - CR.
empty = any
CODE (see examples)
OW
RT
CR
routes routeFull Chain of IATA codes of cities or airports, describing the entire route of the flight, taking into account transfers, without breaks and repetitions. Always use the IATA code of the city, if it is available (aggregation airport). For example, a VKO-ORY, ORY-VKO flight is turned to the MOW-PAR-MOW route. empty = any
CODE-CODE,CODE-CODE,...
<>CODE-CODE,CODE-CODE,...(except for)
MOW-LON,LON-MOW
<>MOW-BER-PAR
contains routes routePart Only part of the route compiled similarly to the previous one is specified. empty = any
CODE-CODE,
-CODE-,...
<>-CODE-,...(except for)
-CAI-
<>-PRG-,PRG-SVX
routes (from airports) routeAirportsFull Use the codes of airports (not cities) in the IATA rule. The rest is similar to the "routes". see "routes" parameter description. see "routes" parameter description.
contains routes (from airports) routeAirportsPart Use the codes of airports (not cities) in the IATA rule. The rest is similar to the "contains routes". see "contains routes" parameter description. see "contains routes" parameter description.
departure (airports, cities) depAirports Only the departure airport of the first segment is checked. When you specify airport codes, you need an exact match. While specifying the codes of cities (aggregation of airports), the comparison is made according to the internal glossary of airports. It is recommended to specify the codes of specific airports. empty = any
CODE,CODE...
<>CODE,CODE...(except for)
MOW,PAR,BER <>VKO,LON
arrival (airports, cities) arrAirports The airport of arrival is defined similarly to the "country of destination". The check for comparison is made similarly to "departure (airports, cities)". empty = any
CODE,CODE...
<>CODE,CODE...(except for)
MOW,PAR,BER <>VKO,LON
start of flight dateBegin The departure date of the first segment must be greater than or equal to the specified date. empty = ignored
DD.MM.YYYY
01.01.2012

31.01.2010

departure in (hours) dateDepartureAfter The maximum value or range of departure is set from the current date. For example, if you want to select flights no later than 5 days before departure, the range [0,120] shall be set. empty = no restriction
maximum value
[X,X] — range
13

[10,100]

end of flight dateEnd The date of departure of the first segment should be less or equal to the specified date empty = ignored
DD.MM.YYYY
31.12.2022
return not earlier than dateBackBegin The departure date of the last route segment should be greater than or equal to the specified date empty = ignored
DD.MM.YYYY
31.12.2022
return not later than dateBack The departure date of the last route segment should be less than or equal to the specified date empty = ignored
DD.MM.YYYY
31.12.2022
duration in days daysDuration Restriction on the maximum gap in days between the first flight date and the end of the route. You can specify a range.

Duration in days is calculated as a mathematical difference in dates. If the departure and return are in one day, the duration will be equal to 0 days.

empty = no restriction
number of days - maximum value (inclusive)
[X,X] — range
13

[3,13]

days of the week dayOfWeek Permissible days of the week for the departure date of the route's first segment. Values are specified by the number corresponding to the order of the day of the week, starting from Monday. empty = ignored
1 — Monday
...
7 — Sunday
- one or more values
2
3,5
passenger types passengers Permissible types of passengers on the flight. For the rule to work, all the listed types of passengers must be present in the flight. empty = any
ADT — adult
CLD — child(2-12)
INF — infant(0-2)
INS — infant with seat (0-2)
- one or more values
INF
ADT,CLD
flight mask Formalized flight description in text format, to create complex rules
Will be added to the next version of the program
priority priority If several rules are triggered, one with the highest priority is selected. If there are several rules with the same priority (or no priority is specified), the newer rule is selected (located below in the imported table). integral number
empty = 0
1
2
promotional code Unique promotion code. It is created in the Administration panel in the section Template:Menu any set of letters/digits/symbols 12022014_Promo
utm source utmSource Transition source ID, which is displayed in the "№" field of the transition sources table in the metric.
Multiple sources are allowed.
empty = any
CODE,CODE...
<>CODE,CODE...(except for)
123,456
<>123,456
airline commission commission Agent's profit, received from the airline for sold tickets. The field required for filling in must strictly correspond to the value indicated in the contract. The value is transferred to the GDS upon ticketing. It can be specified in percentage of the fare or in absolute value. Commission is always calculated for each passenger.

Rules with specified zero commission have higher priority over rules with empty commission.

"xxxCODE" (currency code) or "XX%" 100RUB
13%
subagent commission agencyCommission Commission to a subagent is a part of the airline's profit which the agent sends to the subagents. The value of the commission acts as a discount for subagents, reducing the price of air tickets. Commission is always calculated for each passenger fare is not equal to 0.

Commission assignment formats for subagents:

For all subagents:

  • Fixed amount: XRUB, where:
    • X - commission amount, integer or decimal fraction with dot as a separator: 60, -3, 0.5
    • RUB - IATA code of the currency: EUR, UAH.
  • Percentage of the fare: X%,
    • where X - a percentage of the fare, an integer or a decimal fraction with a point separator: 60}, -3, 0.5.

For selected subagents or groups of subagents:

  • (ID:value),(ID:value),(ID:value),..., where ID - subagent’s (group’s) number in Websky, value - the size of the commission for this subagency (group) in the following format: X% or XRUB.

In one rule, you can combine the commission for all subagents and the commission for the specified subagents in a format:

  • XX,(ID:YY),(ID:YY),..., where:
    • XX - commission for all subagents in the format described above,
    • YY - commission for the specified subagent in the format described above.

In this case the size of the commission will be calculated:

  • for all subagents, except the specified: XX,
  • for the specified: XX + YY.

Example:

5%,(123:2%),(345:3%)
.
  • Subagent commission under the number 123 is: 5% + 2% = 7% of the fare.
  • Subagent commission number 345: 5% + 3% = 8% of the fare.

If the sum of the decimal is to be entered, the decimal part is separated with "." , for example: 0.5%

Attention! In case your agency plans to create a large number of individual pricing rules, each of which will specify the value of the subagent commission for individual subagents / groups / users, the recommended form of entry is as follows: (12345,12346,12347:3%) instead of (12345:3%), (12346:3%), (12347:3%). Which means using a grouping of the same values.

see description 100RUB

6EUR

2%

5%,(123:100RUB%),(345:2%),(345:-0.5%)

segmental commission calculation modeForSegment Attribute of commission or bonus being applied for each flight segment. For example, 100 rubles for each flight segment. empty = 0
0 — there is one commission for the entire flight
1 — commission should be multiplied by the number of segments
0
1
airline bonus bonus Additional agent profit that the agency receives from the airline, but it is not taken into account in requests to the GDS. It is set and calculated in the same way as commissions (the parameter "segment commission calculation" is taken into account when calculating). It is used to calculate the "profitability" of air travel, affects the mixer and can affect the fee when setting the "minimum profit" parameter.

Of all the triggered rules, the bonus will be taken into account only from one by the following priority:

  • Maximum priority for the triggered commission rule
  • If there is no bonus in the commission rule, a bonus from another triggered non-commission rule (an additional rule with an empty commission) will be used. If there are several such rules, the rule with the highest identifier (below in the table) will be used.
"xxxCODE" (currency code) or "XX%" 100RUB
13%
segment bonus (allowed for airlines) modeForAirlines Setting the current parameter forcibly enables the mode of bonus calculation for each flight segment (for absolutely specified bonus), but only segments with validating or interline carriers from the list specified here are taken into account. empty
CODE (airline code)

CODE,CODE...

SU

SU,FV

agency charge charge All markups/discounts that will be applied to the flight described by the rule are specified here. You can specify several price rules in one field by dividing them by user types.

format = (subject:sum), (subject:sum), (subject:sum)...
subject = group ID, user ID and two "B2C", "B2B" values with the possibility of <>rejection
sum = subclause + subclause + subclause. ...[restriction]
restriction = range of the total charge, set as [price, price]
sum = price*multiplier*multiplier...
price = "xxCODE" (currency code) or "XX%" (percentage of the total price (fare+taxes) of GDS)
multiplier = one of the values:

  • PAS - total number of passengers (including INF)
  • ADT - number of adults
  • CLD - number of children (2-12)
  • INF - number of infants (0-2)
  • INS - number of infants with seat (0-2)
  • SEG - number of flight segments (flight from A to B with 1 transfer => 2 segments)
  • LEG - number of legs (flight from A to B with 1 transplant => 1 shoulder)
  • TRF - to get the fare price equal to the fare sum
  • SGV - number of segments of the validating carrier

Examples:

  • 100RUB*SEG : plus 100 rubles to order value for each segment
  • 150RUB*SEG*PAS;: plus 150 rubles for each segment, for each passenger. For example: flight with two segments and two passengers = 600 rubles.
  • -10%*TRF : 10% discount from the fare.
  • 50RUB*LEG*ADT[,1000RUB] : 50 rubles for each adult ticket on each flight leg, but not more than 1000RUB
  • (<>123,345: 100RUB), (123,345: -100RUB) : subjects 123 and 345 will receive a discount of 100 rubles, the rest of the markup is 100 rubles.
  • (B2B: 1000RUB*ADT - 100RUB*CLD[-10%,-1%]), (B2C: 10% [10USD,]), (123: -1000RUB) : B2B users will get a markup of 1000 rubles for each adult ticket and 100 rubles discount for each child ticket, but not less than 1% of the total cost and not more than 10%. B2C users receive a 10% surcharge, but not less than $10. User ID=123 will receive a discount of 1000 rubles.

If several price rules, listed by comma, are triggered, their amount is taken. If this is not suitable behavior, divide the price rules into separate flight rules (rows), they can be adjusted by priority.

Attention! In case you plan to create a large number of individual pricing rules for your agency, each of which will specify the value of the agency fee for individual subagents / groups / users, the recommended form of entry is as follows: (12345,12346,12347:3%) instead of (12345:3%), (12346:3%), (12347:3%). Which means using a grouping of the same values.

If you need to enter the amount as a decimal fraction, the fraction is separated with "." , for example: 0.5%

see description see description
Metasearch commission MetasearchCommission Commission, charged by the meta-search system (for Websky at the moment it is only Aviasales) and calculated at the search stage. The value should be specified as decimal representation of the interest rate - it is a fraction of 1, for example, if you set 0.05 - 5%. It is possible to specify with/without the sign "%". Commission is calculated from the amount = flight price from supplier + fees/discounts + additional fees + min. profit. The calculated value is rounded to 2 characters after the separator. see description 0.05

0.025%

extra charge attribute chargeExt The setting allows you to change the charge calculation procedure by adding additional calculation rules to the final result.
  • 0 - Standard fee (default value). Of all the fees specified, one will be applied by priority.
  • 1 - Additional fee. Fees specified as additional fees are checked separately. In the same way, one extra charge with maximum priority is applied.
  • 2 - Obligatory fee. It will be obligatory to apply if all collection parameters are satisfied. Priority is ignored.
empty = 0

1
2

0
1

minimum profit minProfit Minimum profit that the agency will receive for the order. If the calculated agency profit is less than the minimum profit, the fee will be increased to the required value.

The format is similar to that of an agency. For calculations, the value from the rule by which the airline commission will be determined will be applied. If you need to change this behavior, you should set the "priority of the min. profit" parameter (see below).

see description 50RUB*LEG*PAS
minimum profit priority minProfitPriority An additional parameter responsible for calculating the minimum profit. The rule with the highest priority will be triggered, if the priority matches, the rule below will be used. Positive numeric values. 1, 2, ...
roundoff chargeRounding The procedure of arithmetic rounding of the charge empty = 0,
0 = to integer vaue,
0.1 = to tenths,
0.01 = to hundredths
0.1
0.01





Additional rule parameters for Websky platform

Parameters for working with private (confidential) fares.

To view the options description expand the table:

additional rule parameters
Title
Internal name
Description
Permissible values
Examples
tour code gdsTourCode Тур код
any value
On the example of Amadeus: if it is not necessary to specify PAX (passengerType), we specify only the RU084P tourcode, before the tourcode on the supplier side, * (asterisk) is always added, and the entered command in the terminal looks as FT *RU084P. If it is necessary to specify PAX (passengerType), you need to to specify it with the tourcode without space PAXRU084P, in the terminal, the entered command looks like FT PAX *RU084P.
15ZU
RU084P
ticket designator gdsTicketDesignator Ticket designator
any value PP08
endorsement gdsEndorsment Endorsements
any value
or %VAT_VALUE% to transfer the value of VAT in the endorsement only for GDS Amadeus, Sabre, Galileo, GalileouAPI and S7 NDC; for Sabre, the value is transferred to the GDS, but not to the Itinerary Receipt
Non-Endorsable/Valid on BA/IB only/Refund only to issuing agent; %VAT_VALUE%
agent's own profit comAgentProfit Agent's own profit
"xxxCODE" (currency code) or "XX%" Only integer values are allowed 100RUB
2%
tour code discount subject corpClient ID of the subject who will be given a discount on the tourcode ID,ID

<>ID,ID

2772,2653

<>2786,2361

discount by tourcode discount Discount
"xxxCODE" (currency code) or "XX%" 100RUB
13%
authorisation code authCode Authorisation code
any value MB10


EMD

EMD - electronic multi-purpose document or voucher. In the section "Product control → Avia tickets → Pricing → Settings", there is an option Issue EMD by order charge value. It is responsible for issuing the EMD for the agency's charge (available only to Sirena Travel). Principle of operation: if, for the agency which buys the ticket there is an agency charge in the pricing rules for the validating air carrier company, then, when issuing an order in addition to the itinerary receipt and EMD for additional services, a separate EMD will be issued for agency charge . If there are several people in the order, the charge will be divided between them, the total amount of the fee will not be increased.

See also