Справочник по 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 не должно быть дочерних элементов.

Элемент <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 Обязательно string

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

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

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

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

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

Действительно, только если в <UserRateCondition> указано <MembershipProgram>.

<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 не должен иметь дочерних элементов.

<UserCountry> Optional string

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

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

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

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

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

Примечание. direct_offer – это специальный тип цены, предоставляемый рекламодателем, который не является общедоступным и ниже лучшей общедоступной цены.

Примеры специальных цен

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

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

<?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 – диапазон скидки. Текст будет выглядеть так: "Зарегистрируйтесь бесплатно и получите скидку X–Y %". Для скидок от 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 скрытого оформления цены для участников, дополненный текстом "plus free 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% к тарифам прямых предложений для мобильных устройств в фиде с ценами

<?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>