Sửa đổi cước phí

Tổng quan

API này giúp bạn xác định cách linh động áp dụng các hành động cho một mức giá bất cứ khi nào đáp ứng các điều kiện, chẳng hạn như điều chỉnh giá hoặc bật tính năng hoàn tiền. Không giống như promotion API, chỉ có thể áp dụng các chương trình khuyến mãi đủ điều kiện có mức chiết khấu cao nhất, thì API này sẽ áp dụng mọi thao tác khi một số điều kiện được đáp ứng, bao gồm cả việc điều chỉnh giá có thể cuối cùng là tăng giá cuối cùng.

Yêu cầu

Cú pháp

Thông báo RateModifications sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <CheckinDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckoutDates>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Phần tử và thuộc tính

Thông báo RateModifications có các thành phần sau và thuộc tính:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
RateModifications 1 Complex element Phần tử gốc của thông báo về việc sửa đổi giá.
RateModifications / @partner 1 string Tài khoản đối tác dùng cho thư này. Giá trị chuỗi này là "Khoá đối tác" giá trị được liệt kê trên Trang Cài đặt tài khoản trong Hotel Center.

Lưu ý: Nếu bạn có phần phụ trợ cung cấp nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này cần phải khớp với ID được chỉ định trong <RequestorID> của <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> tin nhắn cho cùng một kết quả tài khoản.

RateModifications / @id 1 string Giá trị nhận dạng duy nhất cho thông báo yêu cầu này. Giá trị này được trả về trong tin nhắn phản hồi. Các ký tự được phép là a-z, A-Z, 0-9, _ (dấu gạch dưới) và - (dấu gạch ngang).
RateModifications / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Sửa đổi giá cho một cơ sở lưu trú. Áp dụng từng nội dung sửa đổi giá vào một thuộc tính.

Lưu ý:Nếu có thể áp dụng nhiều mức điều chỉnh giá có cùng tỷ lệ, tất cả các nội dung sửa đổi đều được áp dụng. Không có đơn đặt hàng cụ thể nào được đảm bảo.

RateModifications / HotelRateModifications / @hotel_id 1 string Giá trị nhận dạng duy nhất của cơ sở lưu trú. Giá trị này phải khớp với Mã khách sạn được chỉ định bằng <id> trong phần tử <listing> trong Nguồn cấp dữ liệu danh sách khách sạn. Mã khách sạn cũng có trong Hotel Center.
RateModifications / HotelRateModifications / @action 0..1 enum

Nếu bạn không chỉ định action, thì các nội dung sửa đổi trong phần tử này được thêm hoặc cập nhật cho khách sạn này. Nếu action="overlay" đã được chỉ định, sau đó tất cả các ô đã xác định trước đó nội dung sửa đổi cho khách sạn này sẽ bị xoá lần đầu. Sau đó, các sửa đổi chỉ định ở đây sẽ được viết ra. Nếu bạn sử dụng action="overlay" và không có sửa đổi nào được chỉ định trong phần tử này, thì tất cả nội dung sửa đổi cho khách sạn này đã bị xoá.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Một lần sửa đổi giá cho một cơ sở lưu trú.

Lưu ý:Việc sửa đổi mức giá rất khó gỡ lỗi và chúng tôi khuyên bạn nên dùng chúng một cách thận trọng. Liên hệ với Giám đốc Quản lý Khách hàng về Kỹ thuật (TAM) của bạn để biết các trường hợp sử dụng phải có hơn 200 lần sửa đổi tỷ lệ.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Giá trị nhận dạng duy nhất của nội dung sửa đổi giá. Số lượng tối đa chỉ được phép nhập tối đa 40 ký tự. Các ký tự được phép là a-z, A-Z, 0-9, _ (dấu gạch dưới), - (dấu gạch ngang) và . (dấu chấm).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Nếu không được chỉ định và sửa đổi giá bằng cùng một id không được lưu trữ, thì nội dung sửa đổi giá này sẽ được lưu trữ. Ngược lại, nếu không được chỉ định và sửa đổi giá bằng cùng một id được lưu trữ, thì nội dung sửa đổi giá hiện tại sẽ là đã cập nhật.

Nếu được chỉ định, giá trị này phải là "delete". Nếu bạn chỉ định "delete", nội dung sửa đổi mức giá đã lưu trữ có cùng id sẽ bị xoá. Khi sử dụng "delete", không được thêm bất kỳ phần tử con nào trong <ItineraryRateModification>. Ngoài ra, "delete" không được phép kết hợp với <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Vùng chứa một hoặc nhiều phạm vi ngày để xác định thời điểm phải đặt phòng xảy ra để áp dụng nội dung sửa đổi giá.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Phạm vi ngày xác định thời điểm phải đặt phòng với mức giá này sửa đổi sẽ được áp dụng.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Ngày bắt đầu (dựa trên múi giờ của cơ sở lưu trú), tính cả ngày phạm vi ngày. Ngày này phải trước hoặc giống với ngày Ngày end. Nếu bạn không chỉ định start thì ngày này phạm vi hoàn toàn không giới hạn về ngày bắt đầu.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Ngày kết thúc (dựa trên múi giờ của cơ sở lưu trú) kể cả ngày phạm vi ngày. Ngày này phải trùng hoặc sau ngày Ngày start. Nếu bạn không chỉ định end thì ngày này phạm vi thực tế là không giới hạn về ngày kết thúc.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu không đã chỉ định, tất cả các ngày đều được phép trong phạm vi ngày. Một ký tự trong chuỗi chỉ định một ngày. Ví dụ: "MTWHF" chỉ định mà các ngày trong tuần được phép trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Cho biết khoảng thời gian phải đặt phòng so với ngày nhận phòng (dựa trên múi giờ của cơ sở lưu trú). Ví dụ: có thể đặt thời hạn đặt trước tối thiểu là 7 ngày, nhưng không quá 180 ngày, trước khi nhận phòng.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Số ngày tối thiểu phải đặt phòng trước ngày nhận phòng để áp dụng nội dung sửa đổi mức giá. Nếu bạn không xác định điều này, không có giá trị tối thiểu.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Số ngày tối đa phải đặt phòng trước ngày nhận phòng để áp dụng nội dung sửa đổi mức giá. Nếu bạn không xác định điều này, không có giới hạn tối đa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định thời điểm phải nhận phòng xảy ra để áp dụng nội dung sửa đổi giá.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Phạm vi ngày xác định thời điểm phải nhận phòng đối với mức giá này sửa đổi sẽ được áp dụng. Không bắt buộc phải có phần tử này nếu bạn đang xoá một hoặc nhiều nội dung sửa đổi mức giá.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Ngày bắt đầu (dựa trên múi giờ của cơ sở lưu trú), tính cả ngày phạm vi ngày. Ngày này phải trước hoặc giống với ngày Ngày end. Nếu bạn không chỉ định start thì ngày này phạm vi hoàn toàn không giới hạn về ngày bắt đầu.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Ngày kết thúc (dựa trên múi giờ của cơ sở lưu trú) kể cả ngày phạm vi ngày. Ngày này phải trùng hoặc sau ngày Ngày start. Nếu bạn không chỉ định end thì ngày này phạm vi thực tế là không giới hạn về ngày kết thúc.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu không đã chỉ định, tất cả các ngày đều được phép trong phạm vi ngày. Một ký tự trong chuỗi chỉ định một ngày. Ví dụ: "MTWHF" chỉ định mà các ngày trong tuần được phép trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định thời điểm trả phòng phải thực hiện thì nội dung sửa đổi giá mới được áp dụng.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Phạm vi ngày xác định thời điểm phải trả phòng cho mức giá này sửa đổi sẽ được áp dụng. Không bắt buộc phải có phần tử này nếu bạn đang xoá một hoặc nhiều nội dung sửa đổi mức giá.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Ngày bắt đầu (dựa trên múi giờ của cơ sở lưu trú), tính cả ngày phạm vi ngày. Ngày này phải trước hoặc giống với ngày Ngày end. Nếu bạn không chỉ định start thì ngày này phạm vi hoàn toàn không giới hạn về ngày bắt đầu.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Ngày kết thúc (dựa trên múi giờ của cơ sở lưu trú) kể cả ngày phạm vi ngày. Ngày này phải trùng hoặc sau ngày Ngày start. Nếu bạn không chỉ định end thì ngày này phạm vi thực tế là không giới hạn về ngày kết thúc.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu không đã chỉ định, tất cả các ngày đều được phép trong phạm vi ngày. Một ký tự trong chuỗi chỉ định một ngày. Ví dụ: "MTWHF" chỉ định mà các ngày trong tuần được phép trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Vùng chứa để liệt kê những thiết bị của người dùng đủ điều kiện kích hoạt sửa đổi giá. Nếu bạn chỉ định, thì nội dung sửa đổi giá chỉ được áp dụng nếu người dùng khớp với một trong các thiết bị được liệt kê. Nếu không được chỉ định, thì điều này không hạn chế việc áp dụng nội dung sửa đổi giá.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Xác định một loại thiết bị của người dùng đủ điều kiện áp dụng mức giá này nội dung sửa đổi.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Một loại thiết bị. Giá trị phải là desktop, tablet hoặc mobile.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

(Các) hành động được áp dụng cho mức giá này nếu tất cả các điều kiện đã chỉ định được đáp ứng.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Sửa đổi mức phí bằng cách nhân cả AmountBeforeTaxAmountAfterTax theo hệ số nhân được chỉ định
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Cả AmountBeforeTaxAmountAfterTax đều là nhân với giá trị này.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Sửa đổi mức giá bằng cách áp dụng mã quy tắc giá đã chỉ định cho mức giá đó.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Mã này khớp với một mức giá với định nghĩa trong Tệp Định nghĩa quy tắc giá. Lưu ý:
  • Trường này có giới hạn ký tự là 40 ký tự.
  • Mỗi mức giá chỉ có thể liên kết với một quy tắc giá duy nhất.
  • Nếu có nhiều nội dung sửa đổi áp dụng một mã quy tắc giá, mã quy tắc giá có giá trị nhỏ nhất về mặt từ điển được chỉ định cho mức giá.
  • Nếu mã này không khớp với một quy tắc giá trong định nghĩa quy tắc giá của bạn thì tệp đó sẽ bị coi là không đủ điều kiện.
Xem bài viết này để biết thông tin về các giao diện người dùng khác nhau của mức giá ưu đãi chọn lọc phương pháp điều trị.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Ghi đè khả năng hoàn tiền của mức giá vào giá trị được chỉ định.

Khi đặt thuộc tính, hãy lưu ý những điều sau:

  • Hành động sửa đổi này sẽ ghi lại toàn bộ chính sách Có thể hoàn tiền của một mức giá đủ điều kiện chứ không chỉ các trường điền sẵn.
  • Nếu available hoặc refundable_until_days là nếu bạn không đặt, giá sẽ không hiển thị là có thể hoàn lại.
  • Nếu available0 hoặc false, các thuộc tính khác sẽ bị bỏ qua. Thuế suất không hiển thị dưới dạng được hoàn lại ngay cả khi bạn đã thiết lập một trong hai hoặc cả hai thuộc tính còn lại.
  • Bạn nên đặt refundable_until_time; nếu không thời gian sớm nhất (nửa đêm) sẽ được sử dụng.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Bắt buộc) Đặt thành 1 hoặc true để cho biết liệu mức giá này có cho phép refund; nếu không, hãy đặt thành 0 hoặc false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Bắt buộc nếu availabletrue) Chỉ định số ngày trước khi nhận phòng mà có thể được hoàn lại toàn bộ tiền đã yêu cầu. Giá trị của refundable_until_days phải là một số nguyên từ 0 đến 330, gồm cả hai giá trị này.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Nên dùng nếu availabletrue) Chỉ định thời điểm mới nhất trong ngày, theo giờ địa phương của khách sạn, yêu cầu hoàn tiền được thực hiện. Bạn có thể kết hợp các refundable_until_days để chỉ định, cho ví dụ: "có thể hoàn tiền đến 4 giờ chiều hai ngày trước khi xác nhận có mặt". Nếu bạn không đặt refundable_until_time thì giá trị này mặc định là nửa đêm.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Ghi đè tình trạng phòng của giá vào một giá trị được chỉ định. Chúng tôi chỉ hỗ trợ việc đặt mức giá là unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Nếu là status="unavailable", tỷ lệ này sẽ được coi là coi như không có hàng, bất kể có giá hợp lệ cho nó.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Xác định giới hạn thời gian lưu trú mà trong đó, nội dung sửa đổi giá này có thể sẽ được áp dụng. Nội dung sửa đổi giá sẽ không được áp dụng khi thời gian lưu trú là ngoài giới hạn tối thiểu và tối đa.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Số đêm tối thiểu được phép trong thời gian lưu trú để sửa đổi giá áp dụng. Nếu bạn không xác định giá trị này, thì sẽ không có giới hạn tối thiểu.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Số đêm tối đa được phép trong thời gian lưu trú để sửa đổi giá áp dụng. Nếu bạn không xác định giá trị này, thì sẽ không có giới hạn tối đa.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Cho biết tổng tối thiểu của giá phòng hằng ngày (sử dụng giá trị lớn hơn của AmountBeforeTax hoặc AmountAfterTax) phải vượt quá giới hạn để áp dụng nội dung sửa đổi mức giá.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Giá trị phải vượt quá thì mới được sửa đổi giá áp dụng.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Vùng chứa danh sách những gói giá cần sửa đổi giá sẽ được áp dụng. Nếu bạn không chỉ định <RatePlans>, tỷ lệ thì nội dung sửa đổi sẽ áp dụng cho tất cả gói giá.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Xác định một gói giá. Gói giá được xác định bằng cách kết hợp gói, giá và tình trạng còn phòng, như được xác định trong Giao dịch (Dữ liệu của cơ sở lưu trú), OTA_HotelRateAmountNotifRQ và OTA_HotelAvailNotifRQ thông báo và như được xác định bằng PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Giá trị nhận dạng riêng biệt của gói giá. Giá trị này liên kết với Giá trị PackageID trong <PackageData> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và trong Thuộc tính RatePlanCode trong <StatusApplicationControl> ở cả hai <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> tin nhắn. Số lượng ký tự tối đa được phép là 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng được áp dụng nội dung sửa đổi giá. Nội dung sửa đổi giá được áp dụng cho mỗi <RoomType> đã chỉ định. Nếu bạn không chỉ định <RoomTypes>, nội dung sửa đổi giá sẽ áp dụng cho tất cả phòng.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Xác định một loại phòng. Loại phòng được xác định trong một Phần tử <RoomData> trong một Thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và là được tham chiếu bằng cách sử dụng giá trị <RoomID>. (Đó là Giá trị <RoomID> cũng được tham chiếu bởi Thuộc tính InvTypeCode trong OTA_HotelRateAmountNotifRQ messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string Giá trị nhận dạng duy nhất của quỹ phòng (loại phòng). Giá trị này liên kết cho <RoomID> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú). Số lượng ký tự tối đa được phép là 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Vùng chứa một hoặc nhiều phạm vi ngày xác định cách áp dụng nội dung điều chỉnh giá, chẳng hạn như để phù hợp với giá theo mùa.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Mô tả cách áp dụng nội dung sửa đổi mức giá.

Các giá trị hợp lệ là:

  • all: Áp dụng nội dung sửa đổi giá cho mỗi đêm tại hành trình nếu tất cả các ngày trong hành trình đó bị trùng lặp cùng với ngày lưu trú.
  • any: Áp dụng nội dung sửa đổi giá cho tất cả các đêm tại hành trình nếu có bất kỳ ngày nào trong hành trình đó trùng lặp với ngày trong phạm vi ngày lưu trú.

Thuộc tính này phải luôn được chỉ định.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Phạm vi ngày xác định những ngày mà bạn muốn sửa đổi giá áp dụng.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Ngày bắt đầu (dựa trên múi giờ của cơ sở lưu trú), tính cả ngày phạm vi ngày. Ngày này phải trước hoặc giống với ngày Ngày end. Nếu bạn không chỉ định start thì ngày này phạm vi hoàn toàn không giới hạn về ngày bắt đầu.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Ngày kết thúc (dựa trên múi giờ của cơ sở lưu trú) kể cả ngày phạm vi ngày. Ngày này phải trùng hoặc sau ngày start ngày. Nếu bạn không chỉ định end thì ngày này phạm vi thực tế là không giới hạn về ngày kết thúc.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu không đã chỉ định, tất cả các ngày đều được phép trong phạm vi ngày. Một ký tự trong chuỗi chỉ định một ngày. Ví dụ: "MTWHF" chỉ định mà các ngày trong tuần được phép trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Nếu bạn chỉ định, thì nội dung sửa đổi giá chỉ được áp dụng nếu người dùng đặt tại một trong số các quốc gia được chỉ định. Nếu không được chỉ định, tỷ lệ thì nội dung sửa đổi sẽ được áp dụng bất kể vị trí của người dùng.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Loại thông số UserCountry.

Các giá trị hợp lệ là includeexclude.

Nếu UserCountry type được đặt là include, nội dung sửa đổi giá sẽ áp dụng cho người dùng tại các quốc gia được liệt kê.

Nếu UserCountry typeexclude, thì nội dung sửa đổi giá sẽ áp dụng cho người dùng bên ngoài các quốc gia được liệt kê.

Nếu bạn không đặt type UserCountry, thì trường này sẽ được coi là include và nội dung sửa đổi mức giá áp dụng cho người dùng ở các quốc gia được liệt kê.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Chỉ định một quốc gia được phép của người dùng để sửa đổi mức giá.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Mã quốc gia CLDR, chẳng hạn như DE hoặc FR. Lưu ý rằng, đối với một số quốc gia, mã quốc gia CLDR không giống với mã ISO gồm 2 chữ cái . Ngoài ra, mã vùng CLDR không được hỗ trợ.

Ví dụ

Thông báo cơ bản

Ví dụ sau đây cho thấy một thông báo RateModifications` cơ bản:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Xoá một nội dung sửa đổi mức giá

Ví dụ sau đây trình bày cách xoá một nội dung sửa đổi giá đối với một thuộc tính:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

Xoá tất cả nội dung sửa đổi mức giá

Ví dụ sau đây trình bày cách xoá tất cả các nội dung sửa đổi giá đối với một thuộc tính:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


Phủ tất cả nội dung sửa đổi mức giá

Ví dụ sau đây trình bày cách phủ <HotelRateModifications> cho cơ sở lưu trú có một hoặc nhiều nội dung sửa đổi mới về giá. Thời gian action="overlay", tất cả nội dung sửa đổi mức giá đã lưu trữ sẽ bị xoá trước lưu trữ các nội dung sửa đổi tỷ giá được chỉ định trong thông báo hiện tại:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Nhiều hành động sửa đổi

Ví dụ sau đây trình bày cách thực hiện nhiều thao tác sửa đổi cùng một lúc:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Tắt gói giá cho quốc gia của người dùng

Ví dụ sau đây cho thấy cách giới hạn gói giá thành chỉ Người dùng tiếng Nhật (JP):

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Phản hồi

Cú pháp

Thông báo RateModificationsResponse sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
  </Issues>
</RateModificationsResponse>

Phần tử và thuộc tính

Thông báo RateModificationsResponse có những nội dung sau phần tử và thuộc tính:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
RateModifications 1 Complex element Phần tử gốc cho biết ứng dụng nhận được thành công hay gặp vấn đề Nội dung yêu cầu RateModify.
RateModificationsResponse / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
RateModificationsResponse / @id 1 string Giá trị nhận dạng duy nhất trong thông báo RateModify được liên kết.
RateModificationsResponse / @partner 1 string Tài khoản đối tác dùng cho thư này.
RateModificationsResponse / Success 0..1 Success Cho biết rằng thông báo RateModify đã được xử lý thành công mà không có cảnh báo, lỗi hoặc hỏng hóc.

<Success> hoặc <Issues> là xuất hiện trong mỗi thông điệp.

RateModificationsResponse / Issues 0..1 Issues Vùng chứa một hoặc nhiều vấn đề gặp phải trong khi xử lý Đánh giá Sửa đổi tin nhắn.

<Success> hoặc <Issues> là xuất hiện trong mỗi thông điệp.

RateModificationsResponse / Issues / Issue 1..n Issue Nội dung mô tả về cảnh báo, lỗi hoặc thất bại xảy ra trong khi đang xử lý thông báo RateModify. Bạn có thể xem thông tin chi tiết về những vấn đề này tìm thấy trong mục Lỗi trạng thái nguồn cấp dữ liệu Tin nhắn.
RateModificationsResponse / Issues / Issue / @code 1 integer Giá trị nhận dạng của vấn đề.
RateModificationsResponse / Issues / Issue / @status 1 enum

Loại vấn đề mà bạn gặp phải.

Các giá trị hợp lệ là warning, error, và failure.

Ví dụ

Thành công

Dưới đây là phản hồi cho một RateChanges được xử lý thành công .

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</RateModificationsResponse>

Vấn đề

Sau đây là phản hồi cho một thông báo RateModify chưa được xử lý do lỗi.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</RateModificationsResponse>