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 訊息包含下列元素和屬性:

元素 / @Attribute 發生次數 類型 說明
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 帳戶設定頁面中列出的「合作夥伴鍵」值。

注意:如果您有提供多個帳戶動態饋給的後端,這個值必須與交易 (資源資料) 訊息的 partner 屬性值相符,以及相同帳戶 <OTA_HotelAvailNotifRQ> 訊息的 <RequestorID> 元素中的 ID 屬性值相符。

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages 一組定義費率的 <RateAmountMessage> 元素。
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 string 房源的專屬 ID。這個值必須與飯店清單動態饋給中<listing> 元素中使用 <id> 指定的飯店 ID 相符。Hotel Center 也會列出飯店 ID。
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 這個 ID 會指出適用於此價格更新的 ARI 定價模型類型。只有在使用以 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> 中指定的最高住房率,小於或等於使用者搜尋中成人數。
  • 只要使用者搜尋結果的可住人數在房間的容量範圍內,就會套用這些值。
  • NotifTypeDeltaOverlay 時,<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: 子項。

AgeQualifyingCode 可設為 10,最多只會套用至一個 AdditionalGuestAmount 元素。

AgeQualifyingCode8 時,必須指定 MaxAge

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

MaxAge 應為介於 017. 之間的整數

指定 0 值會停用兒童乘客功能。

大於 17 的值會視為最大可接受值 17

您可以透過不同的 AdditionalGuestAmount 元素指定多個兒童年齡層範圍。年齡範圍必須連續且不重疊。

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float 每位額外房客的房價加稅金和其他費用。

依據入住者年齡而定的稅金和費用,必須透過 <TaxFeeInfo> 訊息中的 <AgeBrackets> 元素指定。

範例

本節提供程式碼範例,說明如何:

設定 addoverlayremove 值時,日期範圍可以相同,也可以不同,這取決於您的目標。舉例來說,您可以使用 overlay 只為 12 月假期設定幾週,而非為「加價」訊息設定整個範圍。這項操作只會取代這段期間的入住率。

按日期計費

每個房型和房價方案的房源最多可設 50 個房客人數。如果所有住宿人數的費率相同,請只傳送最多住宿人數和必要價格。這樣一來,Google 就會推斷較低的住房量也會獲得相同的基本費率。

設定基本費率和總費率

範例 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>
新增、重疊及移除費率

每個房源最多可列出 5000 項產品 (房型和套裝行程組合)。使用 OverlayRemove 通知類型,移除先前定義的產品。

新增房價

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

自 2020 年 5 月 18 日起,設定 1 晚、2 晚和 3 晚住宿的房價。在這個範例中,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 為準的費率

新增入住天數

在以住宿天數為基礎的定價模式中,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>

重疊的住宿天數

在以住宿天數為依據的定價模式中,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>

移除入住天數

使用以住宿天數為準的價格時,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 訊息包含下列元素和屬性:

元素 / @Attribute 發生次數 類型 說明
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>