Dokumentacja XML reguł stawek

Plik XML z regułami dotyczącymi cen określa reguły obsługi cen warunkowych i prywatnych. Plik XML z regułami dotyczącymi cen możesz dodać lub edytować na stronie Reguły stawek w Hotel Center. Więcej informacji o cenach warunkowych i prywatnych znajdziesz w artykule Ceny warunkowe i prywatne.

Każda reguła dotycząca ceny wymaga parametru id, do którego może się odwoływać w elemencie <Rate> w wiadomości dotyczącej transakcji. Wartość <Rate>, która odwołuje się do identyfikatora reguły dotyczącej ceny, jest wyświetlana użytkownikom tylko zgodnie z warunkami określonymi przez regułę dotyczącą ceny. Identyfikator reguły dotyczącej ceny można też odwoływać się za pomocą zmiennej w adresie URL strony docelowej.

<RateRuleSettings>

Element główny pliku XML z regułami dotyczącymi stawek. Element <RateRuleSettings> (dawniej <PrivateRates>) zawiera:

  • <UserRateCondition>, które definiują warunki dopasowywania cen warunkowych i prywatnych. Możesz na przykład utworzyć cenę warunkową, która będzie spełniać warunki wszystkich użytkowników w danym kraju.

  • <RateRule>, z których każdy definiują regułę ceny dla pliku referencyjnego w <Rate> w wiadomości transakcji. Każdy element <RateRule> określa warunki i metodę obsługi interfejsu, które tworzą cenę warunkową lub prywatną.

Element <RateRuleSettings> występuje w hierarchii XML reguł dotyczących stawek w tym miejscu:

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

Składnia

Element <RateRuleSettings> ma taką składnię:

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

Atrybuty

Element <RateRuleSettings> nie ma żadnych atrybutów.

Elementy potomne

Element <RateRuleSettings> ma te elementy podrzędne:

Element podrzędny Wymagana? Typ Opis
<RateRule> Required <RateRule>

Określa warunki dopasowania, zmiany i możliwość wyświetlania stawki warunkowej lub prywatnej. Wymaga atrybutu id, do którego może się odwoływać w elemencie <Rate> w komunikacie transakcji lub w adresie URL strony docelowej.

<UserRateCondition> Optional <UserRateCondition>

Definiuje co najmniej 1 warunek, który po spełnieniu skutkuje wyświetlaniem cen warunkowych lub prywatnych.

Warunki można określać w tekście za pomocą elementów podrzędnych <UserRateCondition>, w odniesieniu do innego elementu <UserRateCondition> za pomocą atrybutu reference_id lub zarówno w tekście, jak i za pomocą odwołania. Jednak każda właściwość <UserRateCondition> z reference_id musi mieć 0 elementów podrzędnych.

Element <UserRateCondition> najwyższego poziomu w atrybucie <RateRuleSettings> musi mieć atrybut id.

Przykłady cen warunkowych

Poniższe przykłady pokazują podstawowe sposoby definiowania cen warunkowych.

Zalecamy odwołanie się od wstępnie zdefiniowanych warunków, jak pokazano w przykładzie Użytkownicy urządzeń mobilnych.

Użytkownicy urządzeń mobilnych

Ten przykład stawek warunkowych definiuje regułę ceny, która będzie pasować do wszystkich użytkowników urządzeń mobilnych, korzystając ze wstępnie zdefiniowanej wartości <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>

Użytkownicy ze Stanów Zjednoczonych

Ten przykład stawek warunkowych definiuje regułę dotyczącą ceny, która będzie dopasowywana do wszystkich użytkowników wyszukujących w Stanach Zjednoczonych poprzez odwołanie do wstępnie zdefiniowanej wartości <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>

Kontener do określania:

  • Warunki wyświetlania stawki
  • ewentualne zmiany w cenie i sposobie obsługi stawki.
  • Użycie ukrytych metod interfejsu w przypadku cen prywatnych

Element <RateRule> pojawia się w tym miejscu w hierarchii XML reguł dotyczących stawek:

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

Składnia

Element <RateRule> ma taką składnię:

<?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>
    </UserRateCondition>
    <RateIneligibility>
      <IneligibilityType>[exact|price_band|existence]</IneligibilityType>
      <IneligibilityReason>[program_member]</IneligibilityReason>
    </RateIneligibility>
    <RateModification>
      <HotelAmenity>[free_wifi]</HotelAmenity>
    </RateModification>
  </RateRule>
</RateRuleSettings>

Atrybuty

Element <RateRule> ma te atrybuty:

Atrybut Wymagana? Typ Opis
id Wymagane string,

Unikalny identyfikator reguły dotyczącej ceny. Do tego identyfikatora odwołuje się atrybut rate_rule_id <Rate> w wiadomości transakcji, aby wyświetlać cenę warunkową lub prywatną. Do reguły dotyczącej ceny id można też się odwoływać za pomocą zmiennej i warunków w adresie URL strony docelowej.

Maksymalna dozwolona liczba znaków to 40.

Elementy potomne

Element <RateRule> ma te elementy podrzędne:

Element podrzędny Wymagana? Typ Opis
<RateIneligibility> Optional <RateIneligibility> Określa wartości określające sposób traktowania stawki <MembershipProgram> w interfejsie.

Tej formuły można użyć tylko wtedy, gdy w polu <UserRateCondition> określono <MembershipProgram>.

<UserRateCondition> Required <UserRateCondition>

Definiuje co najmniej 1 warunek, który po spełnieniu skutkuje wyświetlaniem cen warunkowych lub prywatnych.

Warunki można zdefiniować zarówno w tekście, za pomocą elementów podrzędnych <UserRateCondition>, przez odwołanie do innego elementu <UserRateCondition> za pomocą atrybutu reference_id, lub zarówno w tekście, jak i za pomocą odwołania.

Pamiętaj jednak, że gdy element <UserRateCondition> jest elementem podrzędnym elementu <RateRule>, element <UserRateCondition> nie może mieć atrybutu id i nie może się do niego odwoływać inny element <UserRateCondition>.

<RateModification> Optional <RateModification> Modyfikuje interfejs użytkownika na potrzeby cen prywatnych.
<PromoCode> Optional string Określa kod powiązany ze stawką po zastosowaniu tej reguły dotyczącej ceny. Widoczne w zmiennej PROMO-CODE strony docelowej.

<UserRateCondition>

Określa co najmniej 1 warunek, który po spełnieniu spowoduje wyświetlenie cen warunkowych lub prywatnych.

Element <UserRateCondition> pojawia się w tym miejscu w hierarchii XML reguł dotyczących stawek:

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

Składnia

Element <UserRateCondition> ma taką składnię:

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

Atrybuty

Element <UserRateCondition> ma te atrybuty:

Atrybut Wymagana? Typ Opis
id Required (if top-level under <RateRuleSettings>) string

Unikalny identyfikator elementu <UserRateCondition>. Może być odwołany atrybut <RateRule> id lub atrybut <UserRateCondition> reference_id.

op Optional enum

Atrybut op jest wymagany, gdy element <UserRateCondition> ma wiele elementów podrzędnych. Atrybut może mieć jedną z tych wartości:

  • all: uwzględnij użytkowników spełniających wszystkie warunki określone przez tę regułę dotyczącą ceny. Tej wartości nie można użyć, gdy jeden z warunków ma wartość <UserListId>, chyba że jest zdefiniowany tylko jeden inny warunek – <AlwaysEligibleMembershipProgram> lub <MembershipProgram>.
  • any: uwzględnij użytkowników, którzy spełniają dowolny z warunków zdefiniowanych przez tę regułę dotyczącą ceny.
  • none: wyklucz użytkowników, którzy spełniają dowolny z warunków określonych przez tę regułę dotyczącą ceny. Tej wartości nie można używać, gdy jeden z warunków jest <UserListId>.
reference_id Optional string

Definiuje ten element jako odwołanie do innego wstępnie zdefiniowanego elementu <UserRateCondition>, pasującego atrybutu id.

Gdy występuje reference_id:

  • Elementy podrzędne nie są analizowane
  • id i op nie powinny być obecne

Elementy potomne

Element <UserRateCondition> ma te elementy podrzędne:

Element podrzędny Wymagana? Typ Opis
<AlwaysEligibleMembershipProgram> Optional string

Określa, że stawka będzie wykorzystywać widoczne w interfejsie współczynniki członkowskie.

Wartością tego elementu może być dowolna nazwa programu członkostwa.

<Description> Optional string Opisuje: <UserRateCondition>. Służy to do celów dokumentacji i nie ma wpływu na jej możliwości.
<LanguageCode> Optional string Określa, że stawka będzie oferowana użytkownikom korzystającym z języka zgodnego z tym dwuliterowym kodem języka.
<MaxUsersPercent> Optional float

Określa, że stawka będzie proponowana losowo dla tego odsetka użytkowników.

Wartość musi być liczbą całkowitą z zakresu od 0 do 100 (włącznie). Na przykład wartość 20 będzie kierowana na 20% użytkowników.

<MembershipProgram> Optional string

Określa, że stawka będzie wykorzystywać traktowanie interfejsu użytkownika programu członkostwa zgodnie z zasadą <IneligibilityReason> w zasadzie <RateIneligibility>.

Aby <MembershipProgram> był prawidłowy, musisz określić parametr <RateIneligibility>.

Wartością <MembershipProgram> może być dowolna nazwa programu członkostwa.

<UserRateCondition> Optional <UserRateCondition>

Definiuje co najmniej 1 warunek, który po spełnieniu skutkuje wyświetlaniem cen warunkowych lub prywatnych.

Element <UserRateCondition> z reference_id musi mieć 0 elementów podrzędnych.

<UserCountry> Optional string

Kod kraju CLDR, na przykład DE lub FR. Pamiętaj, że w niektórych krajach kod CLDR różni się od dwuliterowego kodu ISO. Kody regionów CLDR nie są obsługiwane.

Określa, że użytkownik musi znajdować się w wybranym kraju. Google określa kraj użytkownika na podstawie jego adresu IP.

<UserDeviceType> Optional enum Określa warunek typu urządzenia. Dozwolone wartości to:
  • mobile
  • desktop
  • tablet
<UserListId> Optional string Identyfikator listy użytkowników Google Ads.

Tego warunku można użyć tylko w przypadku <AlwaysEligibleMembershipProgram> lub <MembershipProgram> albo gdy op ma wartość any.

<UserSignedIn> Optional boolean Wartość logiczna, która określa, czy użytkownik musi być zalogowany na swoje konto Google. Wartość true oznacza, że użytkownik musi być zalogowany. Wartość false oznacza, że użytkownik nie może być zalogowany. Jeśli nie masz znaczenia, czy użytkownik jest zalogowany czy nie, nie uwzględniaj warunku <UserSignedIn>.
<IsDomestic> Optional boolean Wartość logiczna, która określa, czy użytkownik musi pochodzić z tego samego kraju, w którym znajduje się hotel. Wartość true oznacza, że użytkownik musi pochodzić z tego samego kraju co hotel. Wartość false oznacza, że użytkownik może być z innego kraju niż kraj hotelu. Jeśli chcesz mieć dokładniejszą kontrolę, użyj warunku <UserCountry>.

Przykłady cen warunkowych

Odsetek użytkowników

Poniższy przykład stawek warunkowych określa, że stawka będzie oferowana losowo 20% użytkowników:

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

Użytkownicy z Wielkiej Brytanii i urządzeń mobilnych

Poniższy przykład stawek warunkowych definiuje regułę dotyczącą ceny, która dopasuje wszystkich użytkowników przeprowadzających wyszukiwanie w Wielkiej Brytanii za pomocą urządzeń mobilnych za pomocą wbudowanego atrybutu <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>

Japonii zamiast Japonii

Poniższy przykład stawek warunkowych przedstawia jedną regułę dotyczącą ceny zgodną z użytkownikami w Japonii i drugą pasującą do użytkowników w pozostałych krajach (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>

Wszystkie, wszystkie i żaden

Poniższy przykład współczynników warunkowych pokazuje, jak za pomocą wartości any, all i none na różne sposoby dopasować do wielu warunków atrybut op. Na przykład, jak pokazano w warunku au_nz, możesz użyć dowolnego z nich, aby dopasować użytkowników z kilku krajów. Jak widać w regule dotyczącej ceny au_nz_mobile_tablet, za pomocą all możesz wymagać, aby użytkownicy spełniali kilka warunków. Reguła dotycząca ceny (row_mobile_tablet) dopasuje użytkowników znajdujących się w pozostałych krajach (wiersz) z wyłączeniem Australii i Nowej Zelandii, którzy także spełniają warunek 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>

Przykłady cen prywatnych

Cena członkowska widoczna 1

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

Cena członkowska widoczna 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>

Współczynnik listy odbiorców 1

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

Współczynnik listy odbiorców 2

Ten przykład stawek prywatnych pokazuje, jak w przypadku wielu list odbiorców określić sposób wyświetlania stawki członkowskiej widocznej w interfejsie:

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

Wskazuje, jak wyświetlać w interfejsie ukryty współczynnik członkowski. Jeśli nie jest podany, ukryta informacja o stawce członków nie jest wyświetlana.

Aby użyć <RateIneligibility> w elemencie <RateRule>, musisz też określić <MembershipProgram> w elemencie <UserRateCondition> dla <RateRule>.

Element <RateIneligibility> pojawia się w tym miejscu w hierarchii XML reguł stawek:

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

Składnia

Element <RateIneligibility> ma taką składnię:

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

Atrybuty

Element <RateIneligibility> nie ma żadnych atrybutów.

Elementy potomne

Element <RateIneligibility> ma te elementy podrzędne:

Element podrzędny Wymagana? Typ Opis
<IneligibilityType> Required enum

Określa, jak tekst (wyświetlany obok przekreślonego współczynnika przekreślenia) ma opisywać ukrytą stawkę.

Prawidłowe wartości to:

  • exact: rabat procentowy. Będzie tam tekst „Skorzystaj z bezpłatnej rejestracji, aby uzyskać X% zniżki”.
  • price_band: zakres rabatu. Tekst będzie brzmieć: „Skorzystaj z bezpłatnej rejestracji, aby uzyskać X-Y% zniżki”. W przypadku rabatów w wysokości 1–5% pojawi się tekst „Do 5% zniżki”. Większe rabaty będą wyświetlane w przyrostach co 5 punktów, np. „5–10% zniżki” lub „10–15% zniżki”.
  • existence: niekonkretna wskazówka. W takim przypadku tekst będzie brzmieć: „Zarejestruj się bezpłatnie, by uzyskać niższą cenę”.

Więcej informacji o zastosowaniach interfejsu znajdziesz w szczegółach i przykładach cen prywatnych.

<IneligibilityReason> Required enum

Prawidłowe wartości to:

  • program_member: wyświetla stawkę z uwzględnieniem ukrytych w interfejsie opcji ceny członkowskiej.

Przykłady cen prywatnych

Ta sekcja zawiera ukryte przykłady stawek członkowskich (podstawowe) i ukryte przykłady dotyczące stawek członkowskich (wiele warunków). Możesz też wyświetlać stawki członkowskie podzbiorem użytkowników. Przykłady znajdziesz w artykule Przykłady cen prywatnych.

Ukryte przykłady związane ze stawkami członkowskimi (podstawowe)

Dokładny rabat

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

Zniżka na opaskę

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

Podpowiedź

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

Ukryte przykłady stawek członków (wiele warunków)

op="dowolne"

Stawka na liście odbiorców dla wspierających + stawka członkowska ukryta (obecny rabat) dla użytkowników niebędących członkami

Ten przykładowy koszt prywatny określa existence ukryty interfejs użytkownika, który będzie widoczny dla użytkowników, a nie listy odbiorców. Użytkownicy na liście odbiorców będą widzieć współczynnik odbiorców.

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

Stawka członkowska ukryta tylko dla użytkowników listy odbiorców

Ten przykładowy współczynnik prywatnych żądań określa ukrycie interfejsu użytkownika (exact) z dodatkowym tekstem „plus bezpłatne Wi-Fi”. Ten interfejs będzie wyświetlany użytkownikom dopasowanym do listy odbiorców.

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

Przezroczysty/widoczny interfejs

Z tego przykładu dowiesz się, jak określić stawkę członkowską za pomocą 2 metod UI (przezroczysty i widoczny interfejs) dla użytkowników na liście odbiorców oraz stawki ukryte w przypadku wszystkich pozostałych użytkowników.

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

Modyfikuje interfejs użytkownika na potrzeby cen prywatnych.

Element <RateModification> pojawia się w tym miejscu w hierarchii XML reguł dotyczących stawek:

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

Atrybuty

Element <RateModification> nie ma żadnych atrybutów.

Elementy potomne

Element <RateModification> ma te elementy podrzędne:

Element podrzędny Wymagana? Typ Opis
<HotelAmenity> Optional enum

Połącz wartości <MembershipProgram> i <RateIneligibility>, aby zmienić traktowanie ukrytej stawki w interfejsie użytkownika.

Prawidłowe wartości to:

  • free_wifi: dodaje do tekstu plus free wifi.
<PriceMultiplier> Optional float

Modyfikuje cenę, mnożąc tę wartość przez stawkę podstawową, podatki i opłaty. Jeśli na przykład PriceMultiplier = 0, 9, stawka podstawowa = 100 PLN, podatki = 20 PLN, opłaty = 10 PLN; następnie po zastosowaniu mnożnika: stawka podstawowa = 90 PLN, podatki = 18 PLN, opłaty = 9 PLN.

Umożliwia to zastosowanie rabatu do wszystkich cen z określoną regułą dotyczącą ceny.

Przykłady cen prywatnych

Udogodnienia w hotelu

Stawka członkowska ukryta dla wszystkich użytkowników (rabaty na pasmo) + bezpłatne 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>

Mnożnik ceny

Zastosuj 5% zniżki na stawki mobilne w pliku danych z cenami

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