Plik XML z regułami dotyczącymi cen definiuje reguły wyświetlania cen warunkowych i prywatnych. Plik XML z regułami dotyczącymi cen możesz dodawać i edytować na stronie Reguły dotyczące cen 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 elementu id
, do którego można się odwoływać w <Rate>
komunikatu dotyczącego transakcji. Obiekt <Rate>
odwołujący się do identyfikatora reguły ceny jest wyświetlany tylko użytkownikom w warunkach określonych przez tę regułę. Do identyfikatora reguły dotyczącej ceny można się też odwoływać za pomocą zmiennej w adresie URL strony docelowej.
<RateRuleSettings>
Element główny pliku XML z regułami dotyczącymi cen. Element <RateRuleSettings>
(dawniej <PrivateRates>
) zawiera:
<UserRateCondition>
, które określają warunki dopasowania cen warunkowych i prywatnych. Możesz na przykład utworzyć cenę warunkową, która będzie pasować do wszystkich użytkowników z danego kraju.<RateRule>
, z których każdy definiuje regułę dotyczącą ceny, która znajduje się w elemencie<Rate>
w wiadomości dotyczącej transakcji. Każdy element<RateRule>
określa warunki i elementy interfejsu, które tworzą stawkę warunkową lub prywatną.
Element <RateRuleSettings>
pojawia się w tym miejscu w hierarchii XML reguł stawek:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Składnia
W elemencie <RateRuleSettings>
używana jest taka składnia:
<?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>
zawiera te elementy podrzędne:
Element podrzędny | Wymagana? | Typ | Opis |
---|---|---|---|
<RateRule> |
Required | <RateRule> |
Określa warunki dopasowania, modyfikacje i możliwość wyświetlania ceny warunkowej lub prywatnej. Wymaga atrybutu |
<UserRateCondition> |
Optional | <UserRateCondition> |
Określa co najmniej 1 warunek, który po spełnieniu prowadzi do wyświetlenia cen warunkowych lub prywatnych. Warunki można definiować w treści za pomocą elementów podrzędnych
|
Przykłady cen warunkowych
Poniższe przykłady pokazują podstawowe sposoby definiowania cen warunkowych.
Zalecamy odwołać się do zdefiniowanych wstępnie warunków, tak jak w przykładzie Użytkownicy urządzeń mobilnych.
Użytkownicy urządzeń mobilnych
Ten przykład dotyczący cen warunkowych definiuje regułę dotyczącą ceny, która pasuje do wszystkich użytkowników urządzeń mobilnych, odwołując się do wstępnie zdefiniowanego atrybutu <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 dotyczący cen warunkowych definiuje regułę dotyczącą ceny, która pasuje do wszystkich użytkowników przeprowadzających wyszukiwanie w Stanach Zjednoczonych, odwołując się do wstępnie zdefiniowanego atrybutu <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 ceny
- ewentualne zmiany ceny i sposobu traktowania stawki w interfejsie.
- Korzystanie z ukrytych opcji interfejsu w cenach prywatnych
Element <RateRule>
pojawia się w hierarchii XML reguł stawek w tym miejscu:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Składnia
W elemencie <RateRule>
używana jest taka składnia:
<?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 Maksymalna dozwolona liczba znaków to 40. |
Elementy potomne
Element <RateRule>
zawiera te elementy podrzędne:
Element podrzędny | Wymagana? | Typ | Opis |
---|---|---|---|
<RateIneligibility> |
Optional | <RateIneligibility> |
Określa wartości, które określają sposób obsługi interfejsu w przypadku wskaźnika <MembershipProgram> .
Tej formuły można użyć tylko wtedy, gdy w |
<UserRateCondition> |
Required | <UserRateCondition> |
Określa co najmniej 1 warunek, który po spełnieniu prowadzi do wyświetlenia cen warunkowych lub prywatnych. Warunki można definiować w treści za pomocą elementów podrzędnych Pamiętaj jednak, że jeśli |
<RateModification> |
Optional | <RateModification> |
Modyfikuje interfejs dla cen prywatnych. |
<PromoCode> |
Optional | string | Określa kod, który ma być powiązany z ceną, jeśli stosowana jest ta reguła dotycząca ceny. Odzwierciedla to w zmiennej PROMO-CODE strony docelowej. |
<UserRateCondition>
Określa co najmniej 1 warunek, który po spełnieniu prowadzi do wyświetlenia cen warunkowych lub prywatnych.
Element <UserRateCondition>
pojawi się w hierarchii XML reguł dotyczących stawek w tym miejscu:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Składnia
W elemencie <UserRateCondition>
używana jest taka składnia:
<?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 zasobu |
op |
Optional | enum |
Atrybut
|
reference_id |
Optional | string |
Określa ten element jako odwołanie do innego wstępnie zdefiniowanego elementu Gdy występuje
|
Elementy potomne
Element <UserRateCondition>
zawiera te elementy podrzędne:
Element podrzędny | Wymagana? | Typ | Opis |
---|---|---|---|
<AlwaysEligibleMembershipProgram> |
Optional | string | Określa, że stawka będzie korzystać z wskaźnika widocznego w interfejsie użytkownika. Wartością tego elementu może być dowolna nazwa programu członkostwa. |
<Description> |
Optional | string | Opisuje element <UserRateCondition> . Służą one do celów związanych z dokumentacją i nie mają wpływu na jej możliwości.
|
<LanguageCode> |
Optional | string | Określa, że stawka będzie oferowana użytkownikom, których język pasuje do tego dwuliterowego kodu języka. |
<MaxUsersPercent> |
Optional | float | Określa, że stawka będzie losowo oferowana temu procentowi użytkowników. Wartość musi być liczbą całkowitą z zakresu od 0 do 100 (włącznie). Na przykład lista 20 będzie kierowana na 20% użytkowników. |
<MembershipProgram> |
Optional | string | Określa, że stawka będzie korzystać z interfejsu programu członkostwa zgodnie z wartością Aby właściwość Wartością |
<UserRateCondition> |
Optional | <UserRateCondition> |
Określa co najmniej 1 warunek, który po spełnieniu prowadzi do wyświetlenia cen warunkowych lub prywatnych. Element |
<UserCountry> |
Optional | string | Kod kraju CLDR, np. 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:
|
<UserListId> |
Optional | string | Identyfikator listy użytkowników Google Ads.
Tego warunku można użyć tylko z funkcją |
<UserSignedIn> |
Optional | boolean | Wartość logiczna określająca, 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 ma znaczenia, czy użytkownik jest zalogowany, nie uwzględniaj 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 oznacza, że użytkownik musi być z tego samego kraju co hotel. Wartość false oznacza, że użytkownik może pochodzić z dowolnego kraju innego niż kraj hotelu. Jeśli chcesz mieć większą kontrolę, użyj warunku <UserCountry> .
|
Przykłady cen warunkowych
Procent użytkowników
Ten przykład dotyczący cen warunkowych określa, że stawka będzie losowo oferowana dwudziestu procentom:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="20_percent_users">
<UserRateCondition>
<MaxUsersPercent>20</MaxUsersPercent>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Wielka Brytania i użytkownicy urządzeń mobilnych
Ten przykład dotyczący cen warunkowych definiuje regułę dotyczącą ceny, która dopasowuje wszystkich użytkowników przeprowadzających wyszukiwanie w Wielkiej Brytanii korzystających z urządzeń mobilnych za pomocą wbudowanego elementu <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, a nie Japonia
Poniższy przykład dotyczący cen warunkowych pokazuje jedną regułę dotyczącą ceny pasującą do użytkowników w Japonii i drugą regułę dotyczącą cen dopasowujących użytkowników z pozostałych krajów:
<?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>
Dowolna, wszystkie i brak
Poniższy przykład dotyczący cen warunkowych pokazuje, jak za pomocą atrybutu op
dopasować do wielu warunków na różne sposoby za pomocą wartości any
, all
i none
. Na przykład jak w warunku au_nz
możesz użyć dowolnego, aby dopasować użytkowników w dowolnym z kilku krajów. Jak widać w regule ceny au_nz_mobile_tablet
, możesz użyć funkcji all
, aby wymagać od użytkowników spełnienia kilku warunków. Reguła dotycząca ceny row_mobile_tablet
będzie dopasowywać użytkowników, którzy są z pozostałych krajów (wiersz), z wyłączeniem Australii i Nowej Zelandii, a także spełniający 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 dla członków programu 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 dla członków programu 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 dotyczący stawek prywatnych pokazuje, jak określić wskaźnik członkowski w widocznym interfejsie w przypadku 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świetlać ukryty wskaźnik członkowski w UI. Jeśli jej nie podasz, nie będzie wyświetlana stawka członkowska.
Aby użyć <RateIneligibility>
w <RateRule>
, trzeba też określić <MembershipProgram>
w elemencie <UserRateCondition>
elementu <RateRule>
.
Element <RateIneligibility>
pojawia się w tym miejscu w hierarchii XML reguł stawek:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Składnia
W elemencie <RateIneligibility>
używana jest taka składnia:
<?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>
zawiera te elementy podrzędne:
Element podrzędny | Wymagana? | Typ | Opis |
---|---|---|---|
<IneligibilityType> |
Required | enum | Określa, w jaki sposób tekst (wyświetlany obok przekreślonego współczynnika) ma opisywać współczynnik ukrytych wyświetleń. Prawidłowe wartości to:
Więcej informacji o zasadach dotyczących interfejsu znajdziesz w sekcji Szczegóły i przykłady prywatnych cen. |
<IneligibilityReason> |
Required | enum | Prawidłowe wartości to:
|
Przykłady cen prywatnych
Ta sekcja zawiera przykłady ukrytych stawek członkowskich (podstawowe) oraz przykłady ukrytych stawek członkowskich (wiele warunków). Możesz też wyświetlać stawki członkowskie podzbiorom użytkowników. Przykłady znajdziesz w przykładach prywatnych cen.
Przykłady ukrytych stawek członków (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 pasek
<?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 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>
Przykłady ukrytych stawek członków (wiele warunków)
op="any"
Stawka na liście odbiorców dla wspierających + stawka dla wspierających ukryta (zniżka za obecny stan) dla osób, które nie wspierają kanału
Ten przykład stawek prywatnych określa typ existence
ukrytego interfejsu użytkownika dla stawki członkowskiej, który będzie wyświetlany użytkownikom, a nie liście odbiorców. Użytkownicy na liście odbiorców zobaczą 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 wskaźnik prywatności określa typ exact
ukrytej stawki członkowskiej dla użytkownika, zmodyfikowaną za pomocą dodatkowego tekstu „plus bezpłatne Wi-Fi”. Ten interfejs będzie wyświetlany użytkownikom, którzy pasują do danej 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>
Przejrzysty/widoczny interfejs
Ten przykład pokazuje, jak określić stawkę członkowską z 2 opcjami interfejsu (przezroczysty i widoczny) dla użytkowników z listy odbiorców i współczynniki ukryte w przypadku wszystkich innych 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 dla cen prywatnych.
Element <RateModification>
pojawi 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>
zawiera te elementy podrzędne:
Element podrzędny | Wymagana? | Typ | Opis |
---|---|---|---|
<HotelAmenity> |
Optional | enum | Połącz z atrybutami Prawidłowe wartości to:
|
<PriceMultiplier> |
Optional | float | Modyfikuje cenę, mnożąc tę wartość przez stawkę podstawową, podatki i opłaty. Na przykład, jeśli Pozwala to zastosować rabat 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 dla zespołów) + 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 do stawek mobilnych 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>