Dokumentacja XML reguł stawek

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

Każda reguła dotycząca stawek wymaga elementu id, do którego można się odwoływać w <Rate> wiadomości dotyczącej transakcji. <Rate>, który odwołuje się do identyfikatora reguły dotyczącej stawek, jest wyświetlany tylko użytkownikom i pod warunkami określonymi przez tę regułę. Identyfikator reguły ceny można też podać za pomocą zmiennej w adresie URL strony docelowej.

<RateRuleSettings>

Element główny pliku XML zasad dotyczących stawek. Element <RateRuleSettings> (wcześniej <PrivateRates>) zawiera:

  • <UserRateCondition> elementy, które definiują warunki dopasowywania w przypadku cen warunkowych i prywatnych. Możesz na przykład utworzyć stawkę warunkową, która będzie pasować do warunku dotyczącego wszystkich użytkowników w danym kraju.

  • elementy <RateRule>, z których każdy definiuje regułę dotyczącą stawki do użycia w <Rate> w wiadomości Transaction. Każdy element <RateRule> określa warunki i ustawienia interfejsu, które tworzą cenę warunkową lub prywatną.

Element <RateRuleSettings> znajduje się w hierarchii XML zasad dotyczących stawek w tym miejscu:

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

Składnia

Element <RateRuleSettings> używa tej 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 Wymagany? Typ Opis
<RateRule> Required <RateRule>

Określa warunki dopasowywania, modyfikacje i kryteria kwalifikacji do wyświetlania ceny warunkowej lub prywatnej. Wymaga atrybutu id, do którego można się odwoływać w atrybucie <Rate> wiadomości transakcyjnej lub w  adresie URL strony docelowej.

<UserRateCondition> Optional <UserRateCondition>

Określa co najmniej 1 warunek, który po dopasowaniu powoduje wyświetlanie cen warunkowych lub prywatnych.

Warunki można definiować wbudowanie za pomocą elementów podrzędnych <UserRateCondition>, przez odwołanie do innego elementu <UserRateCondition> za pomocą atrybutu reference_id lub zarówno wbudowanie, jak i przez odwołanie. Jednak każdy element <UserRateCondition> z elementem reference_id musi mieć 0 elementów podrzędnych.

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

Przykłady cen warunkowych

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

Zalecamy korzystanie z wstępnie zdefiniowanych warunków, jak w przykładzie Użytkownicy urządzeń mobilnych.

Użytkownicy urządzeń mobilnych

W tym przykładzie stawek warunkowych zdefiniowano regułę dotyczącą stawek, która pasuje do wszystkich użytkowników urządzeń mobilnych, odwołując się do zdefiniowanej wstępnie 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 w Stanach Zjednoczonych

W tym przykładzie stawek warunkowych zdefiniowano regułę dotyczącą stawek, która pasuje do wszystkich użytkowników szukających w Stanach Zjednoczonych, odwołując się do wstępnie zdefiniowanego elementu:<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
  • modyfikacje ceny i interfejsu dotyczące stawki, jeśli takie występują;
  • Używanie ukrytych elementów interfejsu w przypadku cen prywatnych

Element <RateRule> znajduje się w hierarchii XML reguł cenowych w następującym miejscu:

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

Składnia

Element <RateRule> używa tej 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 Wymagany? Typ Opis
id Wymagany ciąg znaków

Unikalny identyfikator reguły dotyczącej stawki. Ten identyfikator jest wskazywany za pomocą atrybutu rate_rule_id w <Rate> w wiadomości o transakcji, aby wyświetlić cenę warunkową lub prywatną. Do reguły cenowej id można też odwoływać się 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 Wymagany? Typ Opis
<RateIneligibility> Optional <RateIneligibility> Określa wartości, które określają sposób wyświetlania interfejsu dla danej stawki <MembershipProgram>.

Obowiązuje tylko wtedy, gdy w sekcji <UserRateCondition> podano wartość <MembershipProgram>.

<UserRateCondition> Required <UserRateCondition>

Określa co najmniej 1 warunek, który po dopasowaniu powoduje wyświetlanie cen warunkowych lub prywatnych.

Warunki można definiować wbudowanie za pomocą elementów podrzędnych <UserRateCondition>, przez odwołanie do innego elementu <UserRateCondition> za pomocą atrybutu reference_id lub w obu tych przypadkach.

Pamiętaj jednak, że gdy element <UserRateCondition> jest podrzędny względem elementu <RateRule>, element <UserRateCondition> nie może mieć atrybutu id i nie może być używany przez inny element <UserRateCondition>.

<RateModification> Optional <RateModification> Modyfikuje interfejs użytkownika w przypadku stawek prywatnych.
<PromoCode> Optional string Określa kod, który ma być powiązany z taryfą, jeśli ta reguła taryfy jest stosowana. Odzwierciedlone w zmiennej PROMO-CODE „strona docelowa”.

<UserRateCondition>

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

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

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

Składnia

Element <UserRateCondition> używa tej 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 Wymagany? Typ Opis
id Required (if top-level under <RateRuleSettings>) string

Unikalny identyfikator tego <UserRateCondition>. Może być używany przez atrybut <RateRule> id lub atrybut <UserRateCondition> reference_id.

op Optional enum

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

  • all: uwzględnia użytkowników, którzy spełniają wszystkie warunki zdefiniowane przez tę regułę dotyczącą cen. Tej wartości nie można użyć, gdy jedno z warunków to <UserListId>, chyba że zdefiniowano tylko jeden inny warunek: <AlwaysEligibleMembershipProgram> lub <MembershipProgram>.
  • any: uwzględnia użytkowników, którzy spełniają dowolny z warunków określonych w tej regule dotyczącej stawek.
  • none: wyklucza użytkowników, którzy spełniają dowolny z warunków określonych przez tę regułę dotyczącą stawek. Tej wartości nie można używać, gdy jedno z warunków to <UserListId>.
reference_id Optional string

Definiuje ten element jako odwołanie do innego wstępnie zdefiniowanego elementu <UserRateCondition> z odpowiednim atrybutem id.

Gdy występuje reference_id:

  • Elementy podrzędne nie są analizowane.
  • Opcje idop nie powinny występować.

Elementy potomne

Element <UserRateCondition> ma te elementy podrzędne:

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

Określa, że stawka będzie używać widocznej dla użytkownika stawki członkowskiej w interfejsie.

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

<Description> Optional string Opisuje <UserRateCondition>. Jest to informacja na potrzeby dokumentacji i nie ma wpływu na możliwości urządzenia.
<LanguageCode> Optional string Określa, że stawka będzie oferowana użytkownikom, których język odpowiada temu dwuliterowemu kodowi języka.
<MaxUsersPercent> Optional float

Określa, że stawka zostanie losowo zaproponowana temu odsetkowi użytkowników.

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

<MembershipProgram> Optional string

Określa, że stawka będzie używać interfejsu programu członkostwa zgodnie z <IneligibilityReason><RateIneligibility>.

Aby <MembershipProgram> był prawidłowy, musisz podać wartość <RateIneligibility>.

Wartością parametru <MembershipProgram> może być dowolna nazwa programu wspierających.

<UserRateCondition> Optional <UserRateCondition>

Określa co najmniej 1 warunek, który po dopasowaniu powoduje wyświetlanie cen warunkowych lub prywatnych.

Element <UserRateCondition> z elementem reference_id nie może mieć żadnych elementów podrzędnych.

<UserCountry> Optional string

kod kraju CLDR, np. DE lub FR. Pamiętaj, że w przypadku niektórych krajów kod CLDR różni się od 2-literowego kodu ISO. Kody regionów CLDR nie są obsługiwane.

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

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

Warunku tego można używać tylko w przypadku funkcji <AlwaysEligibleMembershipProgram> lub <MembershipProgram> albo gdy op = any.

<UserSignedIn> Optional boolean Wartość logiczna określająca, czy użytkownik musi być zalogowany na swoje konto Google. Wartość true wskazuje, że użytkownik musi się zalogować. Wartość false oznacza, że użytkownik nie musi być zalogowany. Jeśli nie zależy Ci, czy użytkownik jest zalogowany, nie dodawaj warunku <UserSignedIn>
<IsDomestic> Optional boolean Wartość logiczna określająca, czy użytkownik musi pochodzić z tego samego kraju, w którym znajduje się hotel. Wartość true wskazuje, że użytkownik musi pochodzić z tego samego kraju co hotel. Wartość false wskazuje, że użytkownik może pochodzić z dowolnego kraju, z wyjątkiem kraju hotelu. Jeśli chcesz mieć większą kontrolę, użyj warunku <UserCountry>.

Przykłady cen warunkowych

Odsetek użytkowników

W tym przykładzie cen warunkowych określamy, że cena 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 użytkownicy urządzeń mobilnych

W tym przykładzie stawek warunkowych definiujemy regułę dotyczącą stawek, która dopasowuje wszystkich użytkowników wyszukujących w Wielkiej Brytanii za pomocą urządzenia mobilnego, używając do tego celu instrukcji <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>

Japonia i poza Japonią

W tym przykładzie stawek warunkowych widzisz jedną regułę dotyczącą użytkowników w Japonii i drugą regułę dotyczącą użytkowników z całego świata:

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

Dowolne, wszystkie i żadne

Poniższy przykład stawek warunkowych pokazuje, jak atrybut op można wykorzystać do dopasowania do wielu warunków na różne sposoby za pomocą wartości any, all i none. Na przykład, jak pokazano w warunku au_nz, możesz użyć dowolnej wartości, aby dopasować użytkowników w dowolnym z kilku krajów. Jak widać w regułach częstotliwości au_nz_mobile_tablet, możesz użyć funkcji all, aby wymagać od użytkowników spełnienia kilku warunków. Reguła ceny row_mobile_tablet będzie pasować do użytkowników z pozostałych części świata (wiersz), z wyjątkiem Australii i Nowej Zelandii, którzy 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

Member rate visible 1

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

Member rate visible 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>

Lista odbiorców o wysokiej skuteczności 1

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

Lista odbiorców – współczynnik 2

Ten przykład dotyczący cen prywatnych pokazuje, jak określić widoczne ceny dla użytkowników w interfejsie użytkownika dla wielu list odbiorców:

<?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świetlić ukryte elementy interfejsu dotyczące ceny dla uczestników programu. Jeśli nie jest uwzględniona, nie wyświetla się ukryta część interfejsu dotycząca ceny dla członków.

Aby używać pola <RateIneligibility> w elementach <RateRule>, musisz też określić wartość <MembershipProgram> w elementach <UserRateCondition> dla elementu <RateRule>.

Element <RateIneligibility> znajduje się w hierarchii XML zasad dotyczących stawek w tym miejscu:

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

Składnia

Element <RateIneligibility> używa tej 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 Wymagany? Typ Opis
<IneligibilityType> Required enum

Określa, jak tekst (wyświetlany obok przekreślonego kursu) będzie opisywać ukryty kurs.

Prawidłowe wartości to:

  • exact: procent rabatu. Tekst będzie brzmiał: „Zapisz się bezpłatnie, aby uzyskać X% zniżki”.
  • price_band: zakres rabatu. Tekst będzie brzmiał: „Zapisz się bezpłatnie, aby uzyskać X-Y% zniżki”. W przypadku rabatów od 1% do 5% tekst będzie brzmiał „Otrzymaj zniżkę do 5%”. Większe rabaty będą wyświetlane w przyrostach co 5%, np. „5–10% zniżki” lub „10–15% zniżki”.
  • existence: ogólna podpowiedź. W tym przypadku tekst będzie brzmiał: „Zapisz się bezpłatnie, aby uzyskać niższą cenę”.

Dowiedz się więcej o opcjach interfejsu użytkownika w szczegółach i na przykładach.

<IneligibilityReason> Required enum

Prawidłowe wartości to:

  • program_member: wyświetla stawkę za pomocą ukrytego interfejsu ceny dla uczestników programu.

Przykłady cen prywatnych

Ta sekcja zawiera przykłady ukrytych stawek dla uczestników (podstawowe) oraz ukrytych stawek dla uczestników (wiele warunków). Możesz też wyświetlać ceny dla uczestników programu lojalnościowego wybranym grupom użytkowników. Aby wyświetlić ceny dla uczestników programu, najpierw prześlij cenę dla pojedynczego pokoju w ramach pakietu, a następnie ceny pozostałych pakietów. Ceny dla wielu uczestników programu są niedozwolone.

Przykłady znajdziesz w artykule Przykłady cen prywatnych.

Przykłady ukrytej stawki dla członków programu (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>

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

Rabat na hint

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

Przykłady ukrytych stawek członkostwa (wiele warunków)

op="any"

Stawka na liście odbiorców dla członków + ukryta stawka dla członków (rabat na istnienie) dla osób spoza grupy

W tym przykładzie cen prywatnych określamy typ existence stawki dla członków, ukrytej opcji interfejsu użytkownika, która będzie widoczna dla użytkowników, a nie dla listy odbiorców. Użytkownicy na liście odbiorców zobaczą stawkę 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 dla członków jest ukryta tylko dla użytkowników list odbiorców

W tym przykładzie cena za pokój prywatny określa typ exact ceny dla członków w sekcji ukrytej w interfejsie użytkownika, zmodyfikowanej o dodatkowy tekst „plus bezpłatny internet Wi-Fi”. To zachowanie interfejsu będzie widoczne dla użytkowników, którzy pasują 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

Ten przykład pokazuje, jak określić stawkę członkostwa za pomocą 2 interfejsów (przezroczystego i widocznego) dla użytkowników na liście odbiorców oraz ukrytych stawek dla 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 w przypadku stawek prywatnych.

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

+ 
<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 Wymagany? Typ Opis
<HotelAmenity> Optional enum

Połącz z wartościami <MembershipProgram><RateIneligibility>, aby zmodyfikować ukryte elementy interfejsu dotyczące stawki dla członków.

Prawidłowe wartości to:

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

Modyfikuje cenę przez pomnożenie tej wartości przez stawkę podstawową, podatki i opłaty. Jeśli np.PriceMultiplier = 0,9, stawka podstawowa = 100 zł, podatki = 20 zł, opłaty = 10 zł, to po zastosowaniu mnożnika: stawka podstawowa = 90 zł, podatki = 18 zł, opłaty = 9 zł.

Dzięki temu możesz zastosować zniżkę do wszystkich stawek z określoną regułą stawek.

Przykłady cen prywatnych

Udogodnienia w hotelu

Cena dla członków programu 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% rabatu do cen na urządzenia mobilne w pliku danych o cenach

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