XML-справка по правилам тарифов

XML-файл правил ценообразования определяет правила обслуживания условных и индивидуальных тарифов. Вы можете добавить или отредактировать XML-файл правил ценообразования на странице « Правила ценообразования» в Hotel Center . Дополнительную информацию об условных и индивидуальных тарифах см. в разделе «Условные и индивидуальные тарифы» .

Каждое правило расчета тарифа требует id , на который можно сослаться в <Rate> сообщения транзакции. <Rate> , ссылающийся на идентификатор правила расчета тарифа, предоставляется пользователям только при соблюдении условий, определенных этим правилом. Идентификатор правила расчета тарифа также можно указать с помощью переменной в URL целевой страницы .

<RateRuleSettings>

Корневой элемент XML-файла правил тарифов. Элемент <RateRuleSettings> (ранее <PrivateRates> ) содержит:

  • Элементы <UserRateCondition> определяют условия сопоставления для условных и частных тарифов. Например, вы можете создать условный тариф, который сопоставляется с условием, что все пользователи находятся в определенной стране.

  • Элементы <RateRule> определяют правило расчета тарифа для использования в элементе <Rate> сообщения транзакции. Каждый элемент <RateRule> задает условия и обработку пользовательского интерфейса, которые формируют условный или частный тариф.

Элемент <RateRuleSettings> располагается в следующем месте в иерархии XML-файлов правил тарифов:

+ <RateRuleSettings>
    + <UserRateCondition>
    + <RateRule>
        + <UserRateCondition>
        + <RateIneligibility>
        + <RateModification>

Синтаксис

Элемент <RateRuleSettings> использует следующий синтаксис:

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <UserRateCondition id="some_id" op="[all|any|none]">
    ...
  </UserRateCondition>
  <!-- Required -->
  <RateRule id="rate_rule_id">
    <!-- Required -->
    <UserRateCondition op="[all|any|none]">
      ...
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Атрибуты

Элемент <RateRuleSettings> не имеет никаких атрибутов.

Дочерние элементы

Элемент <RateRuleSettings> имеет следующие дочерние элементы:

Дочерний элемент Необходимый? Тип Описание
<RateRule> Required <RateRule>

Определяет условия сопоставления, изменения и критерии для предоставления условного или частного тарифа. Требует атрибута id , на который можно ссылаться в <Rate> сообщения транзакции или в URL целевой страницы .

<UserRateCondition> Optional <UserRateCondition>

Определяет одно или несколько условий, при совпадении которых предоставляются условные или частные тарифы.

Условия могут быть определены либо непосредственно в элементе <UserRateCondition> с помощью дочерних элементов, либо путем ссылки на другой элемент <UserRateCondition> с помощью атрибута reference_id , либо и непосредственно в элементе, и путем ссылки. Однако любой элемент <UserRateCondition> с атрибутом reference_id должен иметь 0 дочерних элементов.

Элемент верхнего уровня <UserRateCondition> в <RateRuleSettings> должен иметь атрибут id .

Примеры условных ставок

Следующие примеры демонстрируют основные способы определения условных ставок.

Рекомендуется использовать предопределенные условия, как показано в примере для мобильных пользователей .

Пользователи мобильных устройств

В следующем примере условных тарифов определяется правило тарифа, которое соответствует всем пользователям мобильной связи, ссылаясь на предопределенное условие <UserRateCondition> :

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <UserRateCondition id="mobile">
    <UserDeviceType>mobile</UserDeviceType>
  </UserRateCondition>
  <RateRule id="mobile">
    <!-- Referencing pre-defined conditions is recommended -->
    <UserRateCondition reference_id="mobile"/>
  </RateRule>
</RateRuleSettings>

Пользователи из США

В приведенном ниже примере условных тарифов определяется правило расчета тарифа, которое соответствует всем пользователям, осуществляющим поиск в США, путем ссылки на предопределенное условие <UserRateCondition> :

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <UserRateCondition id="us">
    <UserCountry>US</UserCountry>
  </UserRateCondition>
  <RateRule id="us">
    <UserRateCondition reference_id="us"/>
  </RateRule>
</RateRuleSettings>

<RateRule>

Контейнер для указания:

  • Условия предоставления услуги по установлению тарифа
  • Возможные изменения цены и обработки данных в пользовательском интерфейсе для данного тарифа.
  • Использование скрытых элементов пользовательского интерфейса для частных тарифов

Элемент <RateRule> располагается в следующем месте в иерархии XML-файлов правил тарифов:

+ 
<RateRuleSettings>
    + <UserRateCondition>
    + <RateRule>
        + <UserRateCondition>
        + <RateIneligibility>
        + <RateModification>

Синтаксис

Элемент <RateRule> использует следующий синтаксис:

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
  <UserRateCondition ...>
  ...
  </UserRateCondition>
  <!-- At least one RateRule is required. The id attribute is required -->
  <RateRule id="rate_rule_id">
    <!-- One or more UserRateCondition elements (inline or referenced) are required. -->
    <UserRateCondition op="[all|any|none]"> // Inline example
      <Description>user_rate_condition_description</Description>
      <!-- Uses the member rate visible UI treatment -->
      <AlwaysEligibleMembershipProgram>program_name</AlwaysEligibleMembershipProgram>
      <LanguageCode>language_code</LanguageCode>
      <MaxUsersPercent>20</MaxUsersPercent> // 20% of users
      <!-- Requires <RateIneligibility> -->
      <MembershipProgram>program_name</MembershipProgram>
      <UserRateCondition reference_id="user_rate_condition_id"/>
      <UserCountry>country_code</UserCountry>
      <UserDeviceType>[mobile|desktop|tablet]</UserDeviceType>
      <UserListId>id</UserListId>
      <UserSignedIn>[true|false]</UserSignedIn>
      <IsDomestic>[true|false]</IsDomestic>
      <PackageType>[direct_offer]</PackageType>
    </UserRateCondition>
    <RateIneligibility>
      <IneligibilityType>[exact|price_band|existence]</IneligibilityType>
      <IneligibilityReason>[program_member]</IneligibilityReason>
    </RateIneligibility>
    <RateModification>
      <HotelAmenity>[free_wifi]</HotelAmenity>
    </RateModification>
  </RateRule>
</RateRuleSettings>

Атрибуты

Элемент <RateRule> имеет следующие атрибуты:

Атрибут Необходимый? Тип Описание
id Необходимый нить

Уникальный идентификатор правила расчета тарифа. Этот идентификатор используется с атрибутом rate_rule_id элемента <Rate> в сообщении транзакции для предоставления условного или приватного тарифа. id правила расчета тарифа также может использоваться с помощью переменной и условий в URL целевой страницы .

Максимально допустимое количество символов — 40. Этот идентификатор не может быть пустой строкой.

Дочерние элементы

Элемент <RateRule> имеет следующие дочерние элементы:

Дочерний элемент Необходимый? Тип Описание
<RateIneligibility> Optional <RateIneligibility> Указывает значения, определяющие конкретный способ обработки пользовательского интерфейса для тарифа <MembershipProgram> .

Действительно только при наличии параметра <MembershipProgram> в параметре <UserRateCondition> .

<UserRateCondition> Required <UserRateCondition>

Определяет одно или несколько условий, при совпадении которых предоставляются условные или частные тарифы.

Условия могут быть определены либо непосредственно в элементе <UserRateCondition> с помощью дочерних элементов, либо путем ссылки на другой элемент <UserRateCondition> с помощью атрибута reference_id , либо и непосредственно в элементе, и путем ссылки.

Однако следует отметить, что если элемент <UserRateCondition> является дочерним элементом элемента <RateRule> , то элемент <UserRateCondition> не может иметь атрибут id и не может быть использован в качестве ссылки другим элементом <UserRateCondition> .

<RateModification> Optional <RateModification> Изменяет обработку пользовательского интерфейса для частных тарифов.
<PromoCode> Optional string Указывает код, который будет связан с тарифом, если применяется данное правило расчета тарифа. Отображается в переменной целевой страницы PROMO-CODE .

<UserRateCondition>

Определяет одно или несколько условий, при совпадении которых предоставляются условные или частные тарифы.

Элемент <UserRateCondition> располагается в следующем месте в иерархии XML-файлов правил расчета тарифов:

+ <RateRuleSettings>
    + <UserRateCondition>
    + <RateRule>
        + <UserRateCondition>
        + <RateIneligibility>
        + <RateModification>

Синтаксис

Элемент <UserRateCondition> использует следующий синтаксис:

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
  <!-- "op" is required for more than one child element -->
  <UserRateCondition id="some_id" op="[all|any|none]">
    <UserDeviceType>device_type</UserDeviceType>
    <PackageType>package_type</PackageType>
  </UserRateCondition>
  <UserRateCondition id="some_other_id" op="[all|any|none]">
    <UserDeviceType>device_type</UserDeviceType>
  </UserRateCondition>
  <!-- At least one RateRule is required -->
  <RateRule id="rate_rule_id">
    <UserRateCondition reference_id="some_id"/>
  </RateRule>
  <RateRule id="rate_rule_id">
    <UserRateCondition reference_id="some_other_id"/>
  </RateRule>
  <RateRule id="rate_rule_id">
    <UserRateCondition>
      <UserDeviceType>device_type</UserDeviceType>
    </UserRateCondition>
  </RateRule>
<span class="nocode"></RateRuleSettings></span>

Атрибуты

Элемент <UserRateCondition> имеет следующие атрибуты:

Атрибут Необходимый? Тип Описание
id Required (if top-level under <RateRuleSettings> ) string

Уникальный идентификатор для этого <UserRateCondition> . Может быть указан в атрибуте <RateRule> id или в атрибуте <UserRateCondition> reference_id .

op Optional enum

Атрибут op обязателен, если <UserRateCondition> имеет несколько дочерних элементов. Значение атрибута может быть одним из следующих:

  • all : Включить конечных пользователей, соответствующих всем условиям, определенным этим правилом расчета тарифов. Это значение нельзя использовать, если одно из условий равно <UserListId> , за исключением случаев, когда определено хотя бы одно другое условие — либо <AlwaysEligibleMembershipProgram> , либо <MembershipProgram> .
  • any : Включать конечных пользователей, соответствующих любому из условий, определенных этим правилом расчета тарифов.
  • none : Исключить конечных пользователей, соответствующих любому из условий, определенных этим правилом расчета. Это значение нельзя использовать, если одно из условий равно <UserListId> .
reference_id Optional string

Определяет этот элемент как ссылку на другой предопределенный <UserRateCondition> с соответствующим id .

Если присутствует reference_id :

  • Дочерние элементы не подлежат разбору.
  • id и op не должны присутствовать.

Дочерние элементы

Элемент <UserRateCondition> имеет следующие дочерние элементы:

Дочерний элемент Необходимый? Тип Описание
<AlwaysEligibleMembershipProgram> Optional string

Указывает, что для расчета ставки будет использоваться видимый пользовательский интерфейс для расчета ставки участника.

Значением этого элемента может быть любое название программы членства.

<Description> Optional string Описывает условие <UserRateCondition> . Это сделано в целях документирования и не влияет на его возможности.
<LanguageCode> Optional string Указывает, что тариф будет предложен пользователям, язык которых соответствует этому двухбуквенному языковому коду .

Примечание : Рекомендуется по возможности использовать <UserCountry> вместо <LanguageCode> .

<MaxUsersPercent> Optional float

Указывается, что данная ставка будет предлагаться случайным образом указанному проценту конечных пользователей.

Значение должно быть целым числом от 0 до 100 (включительно). Например, значение 20 будет соответствовать 20% конечных пользователей.

<MembershipProgram> Optional string

Указывает, что для расчета тарифа будет использоваться обработка пользовательского интерфейса программы членства, определяемая параметром <IneligibilityReason> параметра <RateIneligibility> .

Для корректной работы <MembershipProgram> необходимо указать <RateIneligibility> .

Значение параметра <MembershipProgram> может быть любым названием программы членства.

<UserRateCondition> Optional <UserRateCondition>

Определяет одно или несколько условий, при совпадении которых предоставляются условные или частные тарифы.

Объект <UserRateCondition> с reference_id должен иметь 0 дочерних элементов.

<UserCountry> Optional string

Код страны CLDR , например, DE или FR . Обратите внимание, что для некоторых стран код CLDR не совпадает с двухбуквенным кодом ISO. Региональные коды CLDR не поддерживаются.

Указывает, что пользователь должен находиться в указанной стране. Google определяет страну конечного пользователя по его IP-адресу.

<UserDeviceType> Optional enum Определяет условие типа устройства. Допустимые значения:
  • mobile
  • desktop
  • tablet
<UserListId> Optional string Идентификатор списка пользователей Google Ads для списка аудитории.

Это условие может использоваться только с <AlwaysEligibleMembershipProgram> или <MembershipProgram> , или когда opany .

<UserSignedIn> Optional boolean Логическое значение, указывающее, должен ли пользователь быть авторизован в своей учетной записи Google. Значение true означает, что пользователь должен быть авторизован. Значение false означает, что пользователь не должен быть авторизован. Если вам неважно, авторизован пользователь или нет, не используйте условие <UserSignedIn> .
<IsDomestic> Optional boolean Логическое значение, указывающее, должен ли пользователь быть из той же страны, что и отель. Значение true означает, что пользователь должен быть из той же страны, что и отель. Значение false означает, что пользователь может быть из любой страны, кроме страны отеля. Для более точного контроля используйте условие <UserCountry> .
<PackageType> Optional enum Определяет условие типа пакета. Допустимые значения:
  • direct_offer

Примечание : direct_offer — это особый тип тарифа, предоставляемый рекламодателем, который не является общедоступным и превосходит лучший общедоступный тариф.

Примеры условных ставок

Процент пользователей

В следующем примере с условными тарифами указано, что тариф будет предлагаться случайным образом двадцати процентам пользователей:

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="20_percent_users">
    <UserRateCondition>
      <MaxUsersPercent>20</MaxUsersPercent>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Пользователи из Великобритании и пользователи мобильных устройств

В следующем примере условного ценообразования определяется правило ценообразования, которое сопоставляет всех пользователей, осуществляющих поиск в Соединенном Королевстве с помощью мобильного устройства, используя встроенный элемент <UserRateCondition> :

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="gb_mobile">
    <UserRateCondition op="all">
      <UserCountry>GB</UserCountry>
      <UserDeviceType>mobile</UserDeviceType>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Япония, а не Япония

В приведенном ниже примере условных тарифов показано одно правило расчета тарифа, которое соответствует пользователям в Японии, и другое правило расчета тарифа, которое соответствует пользователям в остальном мире (RoW):

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="jp">
    <UserRateCondition>
      <UserCountry>jp</UserCountry>
    </UserRateCondition>
  </RateRule>
  <RateRule id="row_not_jp">
    <UserRateCondition op="none">
      <UserCountry>jp</UserCountry>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Любой, все и ни один

Следующий пример условных ставок показывает, как атрибут op можно использовать для сопоставления по нескольким условиям различными способами, используя значения any , all и none . Например, как показано в условии au_nz , вы можете использовать any для сопоставления пользователей из любой из нескольких стран. Как показано в правиле ставки au_nz_mobile_tablet , вы можете использовать all , чтобы потребовать, чтобы пользователи соответствовали нескольким условиям. Правило ставки row_mobile_tablet будет сопоставлять пользователей, находящихся в остальном мире (строка), за исключением Австралии и Новой Зеландии, и которые также соответствуют условию mobile_tablet .

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <UserRateCondition id="au_nz" op="any">
    <UserCountry>AU</UserCountry>
    <UserCountry>NZ</UserCountry>
  </UserRateCondition>
  <UserRateCondition id="mobile_tablet" op="any">
    <UserDeviceType>mobile</UserDeviceType>
    <UserDeviceType>tablet</UserDeviceType>
  </UserRateCondition>
  <RateRule id="au_nz_mobile_tablet">
    <UserRateCondition op="all">
      <UserRateCondition reference_id="au_nz"/>
      <UserRateCondition reference_id="mobile_tablet"/>
    </UserRateCondition>
  </RateRule>
  <RateRule id="row_mobile_tablet">
    <UserRateCondition op="all">
      <UserRateCondition op="none">
        <UserRateCondition reference_id="au_nz"/>
      </UserRateCondition>
      <UserRateCondition reference_id="mobile_tablet"/>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Примеры частных тарифов

Доступная цена для участников: 1

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="member_visible">
    <UserRateCondition>
      <AlwaysEligibleMembershipProgram>[enter your program here]</AlwaysEligibleMembershipProgram>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Доступная цена для участников (2)

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="member_visible_es_only">
    <UserRateCondition op="all">
      <AlwaysEligibleMembershipProgram>[enter your program here]</AlwaysEligibleMembershipProgram>
      <UserCountry>es</UserCountry>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Рейтинг списка аудитории 1

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="audience_list">
    <UserRateCondition>
      <UserListId>[enter an audience list id]</UserListId>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Рейтинг списка аудитории 2

В этом примере с частными тарифами показано, как задать отображаемый пользовательский интерфейс для тарифов участников в нескольких списках аудитории:

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program">
    <UserRateCondition op="all">
      <AlwaysEligibleMembershipProgram>[enter the program name here]</AlwaysEligibleMembershipProgram>
      <UserRateCondition op="any">
        <UserListId>[enter one audience list id here]</UserListId>
        <UserListId>[enter another audience list id here]</UserListId>
      </UserRateCondition>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

<RateIneligibility>

Указывает, как отображать скрытую информацию о тарифах для участников. Если этот параметр не указан, скрытая информация о тарифах для участников не отображается.

Для использования <RateIneligibility> в <RateRule> необходимо также указать <MembershipProgram> в элементе <UserRateCondition> для <RateRule> .

Элемент <RateIneligibility> располагается в следующем месте в иерархии XML-файлов правил расчета ставок:

+ 
<RateRuleSettings>
    + <UserRateCondition>
    + <RateRule>
        + <UserRateCondition>
        + <RateIneligibility>
        + <RateModification>

Синтаксис

Элемент <RateIneligibility> использует следующий синтаксис:

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
  <UserRateCondition ...>
  ...
  </UserRateCondition>
  <RateRule ...>
    <UserRateCondition ...>
      ...
      <!-- Required when using RateIneligibility -->
      <MembershipProgram>program_name</MembershipProgram>
      ...
    </UserRateCondition>
    <RateIneligibility>
      <IneligibilityType>[exact|price_band|existence]</IneligibilityType>
      <IneligibilityReason>[program_member]</IneligibilityReason>
    </RateIneligibility>
  </RateRule>
</RateRuleSettings>

Атрибуты

Элемент <RateIneligibility> не имеет никаких атрибутов.

Дочерние элементы

Элемент <RateIneligibility> имеет следующие дочерние элементы:

Дочерний элемент Необходимый? Тип Описание
<IneligibilityType> Required enum

Определяет, как текст (отображаемый рядом с перечеркнутой ставкой) будет описывать скрытую ставку.

Допустимые значения:

  • exact : Процент скидки. Текст будет выглядеть так: «Получите скидку X% при бесплатной регистрации».
  • price_band : Диапазон скидок. Текст будет выглядеть так: «Получите скидку XY% при бесплатной регистрации». Для скидок от 1 до 5% текст будет выглядеть так: «Получите скидку до 5%». Более крупные скидки будут отображаться с шагом в 5 пунктов, например, «Получите скидку 5-10%» или «Получите скидку 10-15%».
  • existence : Неспецифическая подсказка. В данном случае текст будет выглядеть так: «Получите более низкую цену при бесплатной регистрации».

Подробнее о методах обработки пользовательского интерфейса см. в разделе «Подробная информация о тарифах и примеры для частных клиентов» .

<IneligibilityReason> Required enum

Допустимые значения:

  • program_member : Отображает ставку, используя скрытую обработку пользовательского интерфейса для отображения ставки участника.

Примеры частных тарифов

В этом разделе представлены примеры скрытых тарифов для участников (базовые) и примеры скрытых тарифов для участников (с несколькими условиями). Вы также можете показывать свои тарифы для участников подгруппам пользователей. Для отображения цен по тарифам для участников сначала следует отправить цену по одному тарифу для самого дешевого пакета номеров, а затем цены на остальные пакеты номеров. Показ нескольких тарифов для участников не допускается.

Примеры можно посмотреть в разделе «Примеры тарифов для частных лиц» .

Примеры скрытых тарифов для участников (базовые)

Точная скидка

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program">
    <RateIneligibility>
      <IneligibilityReason>program_member</IneligibilityReason>
      <IneligibilityType>exact</IneligibilityType>
    </RateIneligibility>
    <UserRateCondition>
      <MembershipProgram>[enter program name here]</MembershipProgram>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Скидка для участников группы

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program">
    <RateIneligibility>
      <IneligibilityReason>program_member</IneligibilityReason>
      <IneligibilityType>price_band</IneligibilityType>
    </RateIneligibility>
    <UserRateCondition>
      <MembershipProgram>[enter program name here]</MembershipProgram>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Подсказка о скидке

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program">
    <RateIneligibility>
      <IneligibilityReason>program_member</IneligibilityReason>
      <IneligibilityType>existence</IneligibilityType>
    </RateIneligibility>
    <UserRateCondition>
      <MembershipProgram>[enter program name here]</MembershipProgram>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Примеры скрытых тарифов для участников (при наличии нескольких условий)

op="any"

Стоимость подписки для членов клуба + скрытая скидка для членов клуба (скидка за наличие подписки) для нечленов клуба.

В этом примере с частными тарифами указан тип existence скрытого пользовательского интерфейса для тарифов участников, который будет показан пользователям, а не списку аудитории. Пользователи из списка аудитории увидят тариф для аудитории.

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program">
    <RateIneligibility>
      <IneligibilityReason>program_member</IneligibilityReason>
      <IneligibilityType>existence</IneligibilityType>
    </RateIneligibility>
    <UserRateCondition op="any">
      <MembershipProgram>[enter program name here]</MembershipProgram>
      <UserListId>[enter you audience list id here]</UserListId>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

op="all"

Скидка для участников скрыта только для пользователей из списка аудитории.

В этом примере с индивидуальным тарифом указан exact тип скрытого интерфейса для участников, дополненный текстом «плюс бесплатный Wi-Fi». Этот интерфейс будет отображаться пользователям, соответствующим списку целевой аудитории.

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program_for_audience_list">
    <RateIneligibility>
      <IneligibilityReason>program_member</IneligibilityReason>
      <IneligibilityType>exact</IneligibilityType>
    </RateIneligibility>
    <RateModification>
      <HotelAmenity>free_wifi</HotelAmenity>
    </RateModification>
    <UserRateCondition op="all">
      <MembershipProgram>[enter program name here]</MembershipProgram>
      <UserListId>[enter you audience list id here]</UserListId>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Прозрачный/видимый пользовательский интерфейс

В этом примере показано, как задать тариф для участников с двумя вариантами отображения в пользовательском интерфейсе (прозрачный и видимый) для пользователей из списка аудитории, а также скрытые тарифы для всех остальных пользователей.

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program">
    <RateIneligibility>
      <IneligibilityReason>program_member</IneligibilityReason>
      <IneligibilityType>existence</IneligibilityType>
    </RateIneligibility>
    <UserRateCondition op="any">
      <MembershipProgram>[enter program name here]</MembershipProgram>
      <UserRateCondition op="all">
        <UserListId>[enter you audience list id here]</UserListId>
        <AlwaysEligibleMembershipProgram>program_name</AlwaysEligibleMembershipProgram>
      </UserRateCondition>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

<RateModification>

Изменяет обработку пользовательского интерфейса для частных тарифов.

Элемент <RateModification> располагается в следующем месте в иерархии XML-файлов правил тарифов:

+ 
<RateRuleSettings>
    + <UserRateCondition>
    + <RateRule>
        + <UserRateCondition>
        + <RateIneligibility>
        + <RateModification>

Атрибуты

Элемент <RateModification> не имеет никаких атрибутов.

Дочерние элементы

Элемент <RateModification> имеет следующие дочерние элементы:

Дочерний элемент Необходимый? Тип Описание
<HotelAmenity> Optional enum

Используйте в сочетании с <MembershipProgram> и <RateIneligibility> для изменения скрытого способа обработки пользовательского интерфейса при установлении тарифов для участников.

Допустимые значения:

  • free_wifi : Добавляет к тексту plus free wifi .
<PriceMultiplier> Optional float

Изменяет цену, умножая это значение на базовую ставку, налоги и сборы. Например, если PriceMultiplier = 0,9, базовая ставка = 100 долларов, налоги = 20 долларов, сборы = 10 долларов; то после применения множителя: базовая ставка = 90 долларов, налоги = 18 долларов, сборы = 9 долларов.

Это позволяет применять скидку ко всем тарифам, для которых действует определенное правило расчета.

Примеры частных тарифов

Удобства отеля

Скрытая скидка для всех пользователей (скидки на билеты) + бесплатный Wi-Fi

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="membership_program">
    <RateIneligibility>
      <IneligibilityReason>program_member</IneligibilityReason>
      <IneligibilityType>price_band</IneligibilityType>
    </RateIneligibility>
    <RateModification>
      <HotelAmenity>free_wifi</HotelAmenity>
    </RateModification>
    <UserRateCondition>
      <MembershipProgram>[enter program name here]</MembershipProgram>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Множитель цены

Примените 5% скидку к тарифам мобильной связи в разделе «Цены».

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="mobile">
    <RateModification>
      <PriceMultiplier>0.95</PriceMultiplier>
    </RateModification>
    <UserRateCondition>
      <UserDeviceType>mobile</UserDeviceType>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>

Прямое предложение

Примените скидку 15% к тарифам мобильного предложения Direct в разделе «Цены».

<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
  <RateRule id="do-mobile">
    <RateModification>
      <PriceMultiplier>0.85</PriceMultiplier>
    </RateModification>
    <UserRateCondition>
      <UserDeviceType>mobile</UserDeviceType>
      <PackageType>direct_offer</PackageType>
    </UserRateCondition>
  </RateRule>
</RateRuleSettings>