OTA_HotelRateAmountNotifRQ

要求

語法

OTA_HotelRateAmountNotifRQ 訊息使用下列語法:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="message_ID"
                            TimeStamp="timestamp"
                            Version="3.0"
                            NotifType="[Overlay|Delta|Remove]"
                            NotifScopeType="[ProductRate]">
  <POS>
    <Source>
      <RequestorID ID="partner_key"/>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"
                                RatePlanType="[26]" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="float"
                            AmountAfterTax="float"
                            CurrencyCode="currency"
                            NumberOfGuests="integer"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="float"
                                   AgeQualifyingCode="[10|8]"
                                   MaxAge="integer"/>
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

元素與屬性

OTA_HotelRateAmountNotifRQ 訊息包含下列元素和屬性:

元素 / @屬性 發生次數 類型 說明
OTA_HotelRateAmountNotifRQ 1 Complex element 費率訊息的根元素。
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 string (URI) XML 命名空間。
OTA_HotelRateAmountNotifRQ / @EchoToken 1 string 此要求訊息的專屬 ID。這個值會在回應訊息中傳回。允許的字元包括 a-zA-Z0-9_ (underscore)- (dash)
OTA_HotelRateAmountNotifRQ / @TimeStamp 1 DateTime 這則訊息的建立日期和時間。
OTA_HotelRateAmountNotifRQ / @Version 1 decimal OpenTravel 訊息版本。
OTA_HotelRateAmountNotifRQ / @NotifType 0..1 enum

要套用至每 <RateAmountMessage> 的通知類型。

以下為有效值:

如要瞭解這些屬性的運作方式,請參考範例

  • Overlay:請刪除 <StatusApplicationControl> 中指定的房型、費率方案和日期的所有每人入住費率,並替換為新費率。
  • Remove: 刪除 <StatusApplicationControl> 中指定的房型、費率方案和日期所有現有的每人入住費率。
  • Delta: (如未指定 NotifType,此為預設值) 針對 <StatusApplicationControl> 中指定的房型、房價方案和日期新增或更新現有的每人入住費率。
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

要套用到每個 <RateAmountMessage>NotifType 範圍。

以下為有效值:

  • ProductRate: (如未指定 NotifScopeType,此為預設值) NotifType 適用於各種產品,包括房型 (InvTypeCode) 和房價方案 (RatePlanCode) 的組合。
OTA_HotelRateAmountNotifRQ / POS 0..1 POS 用於為這則訊息指定合作夥伴帳戶的容器 (如果後端為多個合作夥伴帳戶提供價格動態饋給,通常就會使用)。
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source 如果 <POS> 存在,則為必要欄位。<RequestorID> 的容器。
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID 如果 <POS> 存在,則為必要欄位。定義合作夥伴帳戶。
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 string 這則訊息的合作夥伴帳戶。這個字串值會是 Hotel Center 中 帳戶設定頁面列出的「合作夥伴鍵」值。

注意:如果您的後端為多個帳戶提供動態饋給,這個值必須符合同一帳戶 <OTA_HotelAvailNotifRQ> 訊息中 <RequestorID> 訊息的 partner 屬性值,以及 ID 屬性值。

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages 可定義費率的 <RateAmountMessage> 元素集合。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 string 房源的專屬 ID。這個值必須與飯店清單動態饋給中<listing> 元素中的 <id> 指定飯店 ID 相符。飯店 ID 也會列在 Hotel Center 中。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage 用來設定房價 (特定日期範圍內的房型和房價方案組合) 的容器。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl 1 StatusApplicationControl 定義日期範圍,以及房型 (InvTypeCode) 和房價方案 (RatePlanCode) 的 ID。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start 1 Date 開始日期 (以房源的時區為準),含日期範圍。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date 結束日期 (以房源的時區為準),含指定日期範圍。必須大於或等於 start 值。如果 startend 相同,更新就會套用至該日期。請注意,Google 最多支援三年內的資料。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 boolean 設為 true1 即可明確包含星期一。

如果設為 true,則會排除一週中未明確設為 true 的其他日子 (實際上,這些日期會從 StartEnd 內的日期中排除)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean 設為 true1 即可明確包含星期二。

如果設為 true,則會排除一週中未明確設為 true 的其他日子 (實際上,這些日期會從 StartEnd 內的日期中排除)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean 設為 true1 即可明確包含星期三。

如果設為 true,則會排除一週中未明確設為 true 的其他日子 (實際上,這些日期會從 StartEnd 內的日期中排除)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean 如要明確包含星期四,請設為 true1

如果設為 true,則會排除一週中未明確設為 true 的其他日子 (實際上,這些日期會從 StartEnd 內的日期中排除)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean 設為 true1 即可明確包含週五。

如果設為 true,則會排除一週中未明確設為 true 的其他日子 (實際上,這些日期會從 StartEnd 內的日期中排除)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 boolean 如要明確包含星期六,請設為 true1

如果設為 true,則會排除一週中未明確設為 true 的其他日子 (實際上,這些日期會從 StartEnd 內的日期中排除)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean 如要明確包含星期日,請設為 true1

如果設為 true,則會排除一週中未明確設為 true 的其他日子 (實際上,這些日期會從 StartEnd 內的日期中排除)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 1 string 商品目錄 (客房類型) 的專屬 ID。這個值會對應至交易 (資源資料) 訊息中的 <RoomID>
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string 房價方案的專屬 ID。這個 ID 對應至交易 (資源資料) 訊息中的 <PackageID>。費率方案已進一步定義,可在 <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 訊息的 <StatusApplicationControl> 中參照。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType 0..1 string 用於表示這項價格更新適用於 ARI 定價模式類型的 ID。使用 LOS 定價模式時,只能使用 26 值來指定這個值。排除此屬性代表這是按日期計費的更新。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates 一組 <Rate> 元素的容器。如果 NotifType"Remove",則不得指定這個元素。否則這個元素就必須指定一次。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate 一組 <BaseByGuestAmts> 元素的容器。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit 0..1 String 指定入住天數的單位。唯一支援的值為 "Day",表示入住天數的時間以天為單位。

如要使用以 LOS 為基礎的定價,則必須指定 RateTimeUnitUnitMultiplier。否則,請勿指定任何一項。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier 0..1 Integer 依據這個費率計算入住天數的 RateTimeUnits 數量。

舉例來說,如果 RateTimeUnits 值為 "Day"UnitMultiplier 為 5 表示在此 Rate 物件中指定的房價會套用至 5 晚的每晚住宿。

這個 Rate 物件中指定的入座率會乘以 UnitMultiplier (入住天數),得出入住天數的總價。

如要使用以 LOS 為基礎的定價,則必須指定 RateTimeUnitUnitMultiplier。否則,請勿指定任何一項。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts 用來裝收基本費用的容器。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt 1..n BaseByGuestAmt 以指定幣別指定房價。您可以使用多個 <BaseByGuestAmt> 元素,且每個 NumberOfGuests 的值都不同,藉此指定每人入住的價格。否則價格適用於 NumberOfGuests 定義的入住上限。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

不含稅金和相關費用的每日房價。

AmountBeforeTaxAmountAfterTax 都可指定。如未指定 AmountBeforeTax,則必須指定 AmountAfterTax。如果指定 AmountBeforeTax,且未指定 AmountAfterTax,則必須在 <TaxFeeInfo> 訊息中指定稅金和相關費用。

如果使用的是促銷活動,折扣會套用至 AmountBeforeTax,百分比折扣也會套用至 AmountAfterTax。這種做法不適用於部分稅金結構,因此強烈建議你在這裡只指定 AmountBeforeTax,並使用 <TaxFeeInfo> 指定稅金和其他費用。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float 含適用稅金和相關費用後,房價的每日價格。如果指定 AmountAfterTax,就不必個別傳送個別資源的 <TaxFeeInfo> 訊息。這項屬性可與 AmountBeforeTax 搭配使用,提供特定地區使用者適用的基本費率和總費率。

警告:如果您使用促銷活動,強烈建議您不要使用 AmountAfterTax 金額。如果您要使用折扣,請使用 <TaxFeeInfo> 訊息指定稅金和費用。您的折扣就會套用至 AmountBeforeTax 的金額。

注意:如未指定 AmountBeforeTax,則必須指定 AmountAfterTax

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode 1 enum 特定貨幣單位的 ISO 4217 (3) 字母字元代碼。

請參閱支援的貨幣清單。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 integer 此費率可容納的房客人數上限。 如未提供,預設為 2 位房客。

請注意,如果 <AdditionalGuestAmounts> 包含兒童費用,NumberOfGuests 就僅是指成人。如果未指定 <AdditionalGuestAmounts> 或不含兒童費用,NumberOfGuests 是指可住人數 (包括成人和兒童)。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts 用來裝載額外房客費用的容器。

如果其他訪客或子發布商費率因日期而有所變更,這個語法非常實用。如果能在屬性層級以靜態方式定義這些金額,建議使用更有效率的 ExtraGuestCharges 訊息。

額外房客金額的計算如下:
  • 這類費率適用於基本可住人數。基本可住人數是 <BaseByGuestAmts> 中指定的最高入住率,小於或等於使用者搜尋中的成人人數。
  • 只要使用者搜尋的入住人數不超過會議室可容納的人數,系統就會套用適當的政策。
  • NotifTypeDelta疊加層時,<AdditionalGuestAmounts> 一律會以新的金額取代先前指定的額外金額。
  • 只有在 NotifTypeDelta 時,才能單獨傳送 <AdditionalGuestAmounts>,而非基本費率。當 NotifTypeOverlay 時,必須指定 <BaseByGuestAmts>
  • 如果空白 <AdditionalGuestAmounts> 元素 NotifType 設為 Delta,在不影響基本費率的情況下,會移除現有額外金額。
  • 系統會使用 <BaseByGuestAmt> 中指定的貨幣套用。

舉例來說,假設指定 1 至 2 位成人的基本費率,

  • 如果使用者搜尋 3 位成人,系統將選取雙人入住費率做為基本費率,並將另外 1 位成人的房客人數套用至該飯店。
  • 如果使用者搜尋 1 位成人和 2 位兒童,則系統會選取單一可住人數做為基本費率,並在上方為這兩個兒童套用額外金額。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount 根據房客類型指定價格,透過 AgeQualifyingCode 指定費用,如果適用,也可依據透過 MaxAge 指定的房客年齡 (如適用)。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum 定義其他訪客的類型 (成人或兒童)。有效選項如下:
  • 10:成人。
  • 8: 位兒童。

最多可將一個 AdditionalGuestAmount 元素的 AgeQualifyingCode 設為 10

AgeQualifyingCode8 時,必須指定 MaxAge

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer AgeQualifyingCode8 時,必須指定 MaxAge。當 AgeQualifyingCode10 時,不得指定。

MaxAge 必須是介於 017. 之間的整數

如果指定 0 值,系統會停用子項乘客。

系統會將大於 17 的值視為可接受的最高 17 值。

您可以透過獨立的 AdditionalGuestAmount 元素指定多個子項年齡層。年齡層必須連續且不重疊。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float 計入每位額外房客的基本費率中,不含稅金和相關費用的金額。

如果稅金和費用視入住人數而定,則必須在 <TaxFeeInfo> 訊息中透過 <AgeBrackets> 元素指定。

示例

本節提供的程式碼範例將重點放在:

設定 addoverlayremove 值時,視目標而定,日期範圍可以相同或不同。例如,您可以使用 overlay 只設定十二月假日,而不設定「新增費率」訊息的整個範圍。這會取代這個時段的入住率。

按日期計費

設定基本費率和總費率

範例 1

預設可住人數 (雙精度) 的基本費率 (不含稅金或相關費用)。在這個模型中,房源的稅金和費用必須以 <TaxFeeInfo> 訊息定義。位於特定區域的使用者會更醒目地搜尋基本費率。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

範例 2

預設入住人數 (雙精度浮點數) 的基本費率和總費率。在這種模型中,請不要使用 <TaxFeeInfo> 訊息單獨定義稅金和相關費用。當使用者在特定地區搜尋時,基本費率會更加顯眼。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

範例 3

多種入住人數的總房價 (含稅金與相關費用)。在這種模型中,請不要使用 <TaxFeeInfo> 訊息單獨定義稅金和相關費用。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

示例 4

不同日期範圍的多種房型和房價方案的基本費率和總價。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-01"
                                End="2020-05-31"
                                InvTypeCode="RoomID_2"
                                RatePlanCode="PackageID_2"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            AmountAfterTax="220.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
新增、重疊及移除房價

新增房價

NotifType 設為 Delta,即可新增 2021 年 10 月 20 日至 2021 年 12 月 31 日期間,RoomID_1 和 PackageID_1 的每人入住費率。提醒您,Google 最多支援三年內的資料。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountBeforeTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

重疊率

NotifType 設為 Overlay,即可刪除 2021 年 10 月 20 日至 2021 年 12 月 31 日之間所有 RoomID_1 和 PackageID_1 的所有入住費率,並替換為新指定的每人入住費率。

舉例來說,如果這則訊息是在「新增房價」訊息之後傳送,系統會刪除這名可住人數 1、2 和 3 的房價,而系統只會儲存新的可住人數 1 房價。您也可以設定較短的日期範圍 (例如:2021-12-20 和 2021-12-31),只取代特定日期 (例如假日) 的部分入住費率。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

移除房價

NotifType 設為 Remove,即可刪除 2021 年 10 月 20 日至 2021 年 12 月 31 日期間所有 RoomID_1 和 PackageID_1 的所有入住費率。

舉例來說,如果這則訊息是在其他範例訊息之後傳送,系統就不會儲存每住人數的費率。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
新增、重疊及移除其他房客金額

新增金額

NotifType 設為 Delta,即可針對 2021 年 10 月 20 日至 2021 年 12 月 31 日這段期間的 RoomID_1 和 PackageID_1 為可住人數 1 和 2 新增的基本費率新增房客數。

除了基本費率,系統會根據使用者搜尋中的可住人數決定基本費率。使用者指定的入住人數不得超過 RoomID_1 的容量。

在本例中,其他房客金額的套用方式如下:

  • 年齡層為 0 到 10 (含) 的兒童 $5 美元。
  • 針對 11 到 17 歲 (含) 年齡層的兒童,金額為 $10 美元。
  • 成人為 $20 美元。
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
            <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
            <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

重疊金額

NotifType 設為 Overlay,即可刪除 2021 年 10 月 20 日至 2021 年 12 月 31 日期間,RoomID_1 和 PackageID_1 的所有額外入住費率和所有額外房客金額,替換為新指定的每個入住人數費率和其他費用。

舉例來說,如果這則訊息是在「新增費率」訊息之後傳送,系統會刪除基本可住人數 1 和 2 的費率,且只會儲存新的可住人數 1 費率。系統會刪除前一組額外房客金額,只會儲存新的一組金額。額外的房客費用現在會採用新的入住人數 1 費率做為基本費率。請注意,本次更新後,兒童無須支付額外的訪客費用。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

移除金額

NotifType 設為 Delete,即可刪除每人入住的基本費率,以及 2021 年 10 月 20 日至 2021 年 12 月 31 日期間 RoomID_1 和 PackageID_1 的所有額外房客金額。

舉例來說,如果這則訊息是在其他範例訊息後傳送,系統就不會儲存每可住人數的基本費率或額外的房客數量。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

僅移除額外房客金額

NotifType 設為 Delta (搭配空白的 <AdditionalGuestAmounts> 元素),即可刪除 RoomID_1 和 PackageID_1 的所有額外房客數量,而不會影響 2021 年 10 月 20 日至 2021 年 12 月 31 日的基本費率。

舉例來說,如果訊息是在其他範例訊息之後傳送,系統只會儲存基本金額。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <AdditionalGuestAmounts/>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

以 LOS 為基礎的定價

設定 LOS 費率

範例 1

設定 1 晚、2 晚和 3 晚的房價 (從 2020 年 5 月 18 日開始)。在此範例中,1、2 和 3 晚的總房價為 $100 美元、$180 美元和 $240 美元。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="1" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="2" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="90.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
新增、重疊及移除 LOS 費率

新增入住天數

採用以 LOS 為基礎的定價之後,Delta 作業可讓您針對 <StatusApplicationControl> 中指定的入住日期範圍,以及每個子項 Rate 元素的 UnitMultiplier 指定的所有入住天數,逐步更新費率。

你必須針對各個適用的入住日期和入住天數,指定所有可住人數。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

重疊入住天數

如果使用以 LOS 為基礎的定價,Overlay 作業會將產品入住天數和入住日期範圍 (如 <StatusApplicationControl> 所示) 的費率取代。

透過這則訊息,所有入住日期的所有入住天數皆會移除,並以雙人入住費率 (僅針對入住 3 時定義) 取代每人入住費率。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

移除入住天數

採用以 LOS 為基礎的定價之後,Remove 作業會移除產品入住天數和入住日期範圍 (如 <StatusApplicationControl> 所示) 的費率。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

回覆

語法

OTA_HotelRateAmountNotifRS 訊息使用下列語法:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                            TimeStamp="timestamp"
                            EchoToken="echo_token"
                            Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>

元素與屬性

OTA_HotelRateAmountNotifRS 訊息包含下列元素和屬性:

元素 / @屬性 發生次數 類型 說明
OTA_HotelRateAmountNotifRS 1 Complex element 回應可用性訊息的根元素。
OTA_HotelRateAmountNotifRS / @TimeStamp 1 DateTime 這則訊息的建立日期和時間。
OTA_HotelRateAmountNotifRS / @EchoToken 1 string 相關聯 OTA_HotelRateAmountNotifRQ 訊息中的專屬 ID。
OTA_HotelRateAmountNotifRS / Success 0..1 Success 表示 OTA_HotelRateAmountNotifRQ 訊息已成功處理。

每則訊息中都含有 <Success><Errors>

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors 用來存放處理 OTA_HotelRateAmountNotifRQ 訊息的一或多個問題的容器。

每則訊息中都含有 <Success><Errors>

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error 處理 OTA_HotelRateAmountNotifRQ 訊息時發生的錯誤說明。如要進一步瞭解這些錯誤,請參閱動態饋給狀態錯誤訊息
OTA_HotelRateAmountNotifRS / Errors / Error / @Type 1 integer 與錯誤相關聯的 OpenTravel Alliance EWT (錯誤警告類型)。僅使用 12 (Processing exception) 值。
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer 與錯誤相關聯的 OpenTravel Alliance ERR (錯誤代碼)。 僅使用 450 (Unable to process) 值。
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 enum 原始要求的狀態。只會使用 NotProcessed 值。
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText 1 string 問題的 Google 識別碼。如需這些錯誤的詳細資料,請參閱動態饋給狀態錯誤訊息

示例

成功

以下為對成功處理的 OTA_HotelRateAmountNotifRQ 訊息的回應。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelRateAmountNotifRS>

錯誤

以下為回應因發生錯誤而未處理的 OTA_HotelRateAmountNotifRQ 訊息。

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>