การเปลี่ยนแปลงอัตรา

ภาพรวม

API นี้ช่วยให้คุณกำหนดวิธีนำการดำเนินการไปใช้กับราคาแบบไดนามิกได้ทุกเมื่อ เป็นไปตามเงื่อนไขที่กำหนด เช่น ปรับราคาหรือเปิดใช้การคืนเงิน ต่างจาก Promotions API ที่ใช้ได้เฉพาะ โปรโมชันที่มีสิทธิ์ซึ่งมีส่วนลดสูงสุด API นี้จะใช้การดำเนินการทั้งหมด เมื่อเป็นไปตามเงื่อนไขบางประการ รวมถึงการปรับราคาที่อาจ ขึ้นราคาสุดท้ายในท้ายที่สุด

คำขอ

ไวยากรณ์

ข้อความ RateModifications ใช้ไวยากรณ์ต่อไปนี้

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

องค์ประกอบและแอตทริบิวต์

ข้อความ RateModifications มีองค์ประกอบต่อไปนี้และ ดังนี้

องค์ประกอบ / @แอตทริบิวต์ จำนวนข้อผิดพลาด ประเภท คำอธิบาย
RateModifications 1 Complex element องค์ประกอบรูทของข้อความการปรับราคา
RateModifications / @partner 1 string บัญชีพาร์ทเนอร์สำหรับข้อความนี้ ค่าสตริงนี้คือค่า "คีย์พาร์ทเนอร์" มูลค่าที่แสดงใน หน้าการตั้งค่าบัญชีใน Hotel Center

หมายเหตุ: หากคุณมีแบ็กเอนด์ที่มีฟีดสำหรับ หลายบัญชี ค่านี้ต้องตรงกับ ID ที่ระบุใน <RequestorID> องค์ประกอบของ <OTA_HotelRateAmountNotifRQ> และ <OTA_HotelAvailNotifRQ> ข้อความสำหรับ ของคุณได้

RateModifications / @id 1 string ตัวระบุที่ไม่ซ้ำกันสำหรับข้อความคำขอนี้ ระบบแสดงผลค่านี้ ในข้อความตอบกลับ อักขระที่อนุญาตคือ a-z, A-Z, 0-9, _ (ขีดล่าง) และ - (ขีดกลาง)
RateModifications / @timestamp 1 DateTime วันที่และเวลาที่สร้างข้อความนี้
RateModifications / HotelRateModifications 0..n HotelRateModifications

การปรับราคาที่พัก การปรับราคาแต่ละครั้งมีผล ในพร็อพเพอร์ตี้เดียว

หมายเหตุ: ในกรณีที่ใช้การปรับราคาได้หลายรายการ ให้มีอัตราเดียวกัน การแก้ไขทั้งหมดจะมีผล ไม่ได้ระบุลำดับที่เฉพาะเจาะจง รับประกันการแสดงผล

RateModifications / HotelRateModifications / @hotel_id 1 string ตัวระบุที่ไม่ซ้ำกันของที่พัก ค่านี้ต้องตรงกับแอตทริบิวต์ รหัสโรงแรมที่ระบุโดยใช้ <id> ในองค์ประกอบ <listing> ในฟีดข้อมูลโรงแรม นอกจากนี้ รหัสโรงแรมยังอยู่ใน Hotel Center ด้วย
RateModifications / HotelRateModifications / @action 0..1 enum

หากไม่ได้ระบุ action การแก้ไข ภายในองค์ประกอบนี้จะได้รับการเพิ่มหรืออัปเดตสำหรับโรงแรมนี้ ถ้า มีการระบุ action="overlay" แล้ว ระบุไว้ก่อนหน้านี้ทั้งหมด ระบบจะลบการแก้ไขของโรงแรมนี้ก่อน จากนั้น การปรับเปลี่ยน ระบุไว้ที่นี่เขียน หากใช้ action="overlay" และ ไม่มีการระบุการแก้ไขภายในองค์ประกอบนี้ แล้วทั้งหมด ระบบได้ลบการแก้ไขของโรงแรมนี้ออกแล้ว

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

การแก้ไขราคาครั้งเดียวสำหรับที่พัก

หมายเหตุ: การปรับอัตราแก้ไขข้อบกพร่องนั้นทำได้ยาก แนะนำให้ใช้เท่าที่จำเป็น โปรดติดต่อผู้จัดการลูกค้าด้านเทคนิค (TAM) สำหรับกรณีการใช้งานที่ ต้องมีการแก้ไขอัตรามากกว่า 200 ครั้ง

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string ตัวระบุที่ไม่ซ้ำกันสำหรับการปรับราคา จำนวนสูงสุด อักขระที่อนุญาตคือ 40 ตัว อักขระที่อนุญาตคือ a-z, A-Z, 0-9 _ (ขีดล่าง), - (ขีด) และ (มหัพภาค)
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

หากไม่ได้ระบุและมีการปรับราคาโดยใช้ ระบบไม่ได้จัดเก็บ id ระบบจะจัดเก็บการแก้ไขราคานี้ไว้ ไม่เช่นนั้น หากไม่ระบุและมีการปรับราคาด้วย ระบบได้จัดเก็บ id ไว้ จากนั้นการปรับราคาที่มีอยู่จะเป็น อัปเดตแล้ว

หากระบุ ค่าต้องเป็น "delete" หากระบุ "delete" แล้ว ระบบจะลบการแก้ไขราคาที่จัดเก็บไว้ด้วย id เดียวกัน เมื่อใช้ "delete" ไม่ต้องรวมองค์ประกอบย่อยไว้ใน <ItineraryRateModification> และ "delete" ยังไม่ใช่ ได้รับอนุญาตให้ใช้ร่วมกับ <HotelRateModifications action="overlay"/>

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งกำหนดเมื่อทำการจองต้อง การเปลี่ยนแปลงราคาจึงจะมีผล
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange ช่วงวันที่ที่ระบุเมื่อต้องมีการจองในราคา การปรับเปลี่ยนให้เหมาะสม
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date วันที่เริ่มต้น (ตามเขตเวลาของที่พัก) ซึ่งก็คือ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่ก่อนวันที่ หรือวันที่เดียวกับ end หากไม่ได้ระบุ start จะเป็นวันที่ ไม่มีการกำหนดช่วงของวันที่เริ่มต้นที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date วันที่สิ้นสุด (ตามเขตเวลาของที่พัก) ของ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่เดียวกับหรือหลังจาก start หากไม่ได้ระบุ end จะเป็นวันที่ ไม่มีการกำหนดช่วงวันที่สิ้นสุดที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

วันของสัปดาห์ที่อนุญาตในช่วงวันที่ หากไม่ ระบบจะอนุญาตให้ใช้ทุกวันในช่วงวันที่ ชิ้น อักขระในสตริงระบุวัน เช่น "MTWHF" ระบุ อนุญาตให้ใช้วันธรรมดาในช่วงวันที่

อักขระที่ใช้ได้มีดังนี้

  • M สำหรับวันจันทร์
  • T สำหรับวันอังคาร
  • W สำหรับวันพุธ
  • H สำหรับวันพฤหัสบดี
  • F สำหรับวันศุกร์
  • S สำหรับวันเสาร์
  • U สำหรับวันอาทิตย์

ชุดค่าผสมของอักขระแบบใดก็ได้สามารถใช้ได้

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow ระบุระยะเวลาที่การจองต้องเกิดขึ้นซึ่งสัมพันธ์กับ วันที่เช็คอิน (ตามเขตเวลาของที่พัก) ตัวอย่างเช่น พารามิเตอร์ คุณจะตั้งระยะเวลาการจองเป็น 7 วันเป็นอย่างน้อยได้ แต่ไม่เกิน 180 วัน ก่อนเช็คอิน
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer จำนวนวันขั้นต่ำก่อนเช็คอินเมื่อต้องมีการจอง เพื่อใช้การปรับราคา หากไม่ได้ระบุ จะมี ไม่มีขั้นต่ำ
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer จำนวนวันสูงสุดก่อนเช็คอินเมื่อต้องมีการจอง เพื่อใช้การปรับราคา หากไม่ได้ระบุ จะมี เป็นแบบไม่มีขีดจำกัดสูงสุด
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งกำหนดเมื่อต้องเช็คอิน การเปลี่ยนแปลงราคาจะมีผลใช้งาน
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange ช่วงวันที่ที่ระบุเมื่อต้องเลือกวันเช็คอินสำหรับราคา การปรับเปลี่ยนให้เหมาะสม คุณไม่จำเป็นต้องมีองค์ประกอบนี้หากคุณ กำลังลบการปรับราคาอย่างน้อย 1 รายการ
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date วันที่เริ่มต้น (ตามเขตเวลาของที่พัก) ซึ่งก็คือ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่ก่อนวันที่ หรือวันที่เดียวกับ end หากไม่ได้ระบุ start จะเป็นวันที่ ไม่มีการกำหนดช่วงของวันที่เริ่มต้นที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date วันที่สิ้นสุด (ตามเขตเวลาของที่พัก) ของ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่เดียวกับหรือหลังจาก start หากไม่ได้ระบุ end จะเป็นวันที่ ไม่มีการกำหนดช่วงวันที่สิ้นสุดที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

วันของสัปดาห์ที่อนุญาตในช่วงวันที่ หากไม่ ระบบจะอนุญาตให้ใช้ทุกวันในช่วงวันที่ ชิ้น อักขระในสตริงระบุวัน เช่น "MTWHF" ระบุ อนุญาตให้ใช้วันธรรมดาในช่วงวันที่

อักขระที่ใช้ได้มีดังนี้

  • M สำหรับวันจันทร์
  • T สำหรับวันอังคาร
  • W สำหรับวันพุธ
  • H สำหรับวันพฤหัสบดี
  • F สำหรับวันศุกร์
  • S สำหรับวันเสาร์
  • U สำหรับวันอาทิตย์

ชุดค่าผสมของอักขระแบบใดก็ได้สามารถใช้ได้

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งจะกำหนดเมื่อเช็คเอาต์ ต้องเกิดขึ้นเพื่อให้การปรับราคามีผล
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange ช่วงวันที่ที่ระบุเมื่อต้องเช็คเอาต์สำหรับราคา การปรับเปลี่ยนให้เหมาะสม คุณไม่จำเป็นต้องมีองค์ประกอบนี้หากคุณ กำลังลบการปรับราคาอย่างน้อย 1 รายการ
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date วันที่เริ่มต้น (ตามเขตเวลาของที่พัก) ซึ่งก็คือ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่ก่อนวันที่ หรือวันที่เดียวกับ end หากไม่ได้ระบุ start จะเป็นวันที่ ไม่มีการกำหนดช่วงของวันที่เริ่มต้นที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date วันที่สิ้นสุด (ตามเขตเวลาของที่พัก) ของ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่เดียวกับหรือหลังจาก start หากไม่ได้ระบุ end จะเป็นวันที่ ไม่มีการกำหนดช่วงวันที่สิ้นสุดที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

วันของสัปดาห์ที่อนุญาตในช่วงวันที่ หากไม่ ระบบจะอนุญาตให้ใช้ทุกวันในช่วงวันที่ ชิ้น อักขระในสตริงระบุวัน เช่น "MTWHF" ระบุ อนุญาตให้ใช้วันธรรมดาในช่วงวันที่

อักขระที่ใช้ได้มีดังนี้

  • M สำหรับวันจันทร์
  • T สำหรับวันอังคาร
  • W สำหรับวันพุธ
  • H สำหรับวันพฤหัสบดี
  • F สำหรับวันศุกร์
  • S สำหรับวันเสาร์
  • U สำหรับวันอาทิตย์

ชุดค่าผสมของอักขระแบบใดก็ได้สามารถใช้ได้

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices คอนเทนเนอร์สำหรับแสดงอุปกรณ์ของผู้ใช้ที่มีสิทธิ์สำหรับ การเปลี่ยนแปลงอัตรา หากระบุไว้ การปรับราคาจะมีผลเฉพาะ ใช้ในกรณีที่ผู้ใช้ตรงกับอุปกรณ์ใดอุปกรณ์หนึ่งที่แสดงอยู่ หากไม่ได้ระบุ วิธีนี้จะไม่จำกัดการใช้การปรับราคา
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device กำหนดอุปกรณ์ของผู้ใช้ 1 ประเภทที่มีสิทธิ์สำหรับราคานี้ การแก้ไข
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum ประเภทอุปกรณ์ ค่าต้องเป็น desktop tablet หรือ mobile
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

การดำเนินการที่ใช้กับราคาหากเงื่อนไขที่ระบุทั้งหมด ตรงกันหรือไม่

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment แก้ไขอัตราโดยการคูณทั้ง AmountBeforeTax กับ AmountAfterTax ตามตัวคูณที่ระบุ
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float ทั้ง AmountBeforeTax และ AmountAfterTax คูณด้วยค่านี้
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule แก้ไขอัตราโดยใช้รหัสกฎเกี่ยวกับอัตราที่ระบุไว้กับอัตราดังกล่าว
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string รหัสนี้จะจับคู่ราคากับคำจำกัดความใน ไฟล์คำจำกัดความของกฎเกี่ยวกับอัตรา หมายเหตุ:
  • จำนวนอักขระสูงสุดสำหรับช่องนี้คือ 40 ตัว
  • แต่ละอัตราจะเชื่อมโยงกับกฎเกี่ยวกับอัตราได้เพียง 1 ข้อเท่านั้น
  • หากมีการแก้ไขหลายรายการที่ใช้รหัสกฎเกี่ยวกับอัตรา ระบบจะดำเนินการ กำหนดรหัสกฎเกี่ยวกับอัตราที่เล็กที่สุดในเชิงศัพท์ให้กับ อัตรา
  • หากรหัสนี้ไม่ตรงกับกฎเกี่ยวกับอัตราในคำจำกัดความกฎเกี่ยวกับอัตรา ไฟล์จะถือว่าไม่มีสิทธิ์
โปรดดู บทความนี้เพื่อดูข้อมูลเกี่ยวกับ UI อัตราส่วนลดเฉพาะบุคคลแบบต่างๆ การรักษา
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable เขียนทับความสามารถในการคืนเงินของราคาเป็นค่าที่ระบุ

โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อตั้งค่าแอตทริบิวต์

  • การดำเนินการแก้ไขนี้จะเป็นการเขียนข้อมูลการคืนเงินของราคาที่เข้าเกณฑ์โดยสมบูรณ์ ไม่ใช่แค่ช่องป้อนข้อมูลเท่านั้น
  • หาก available หรือ refundable_until_days คือ ไม่ได้ตั้งค่า ระบบจะไม่แสดงราคาห้องพักเป็นขอเงินคืนได้
  • หาก available คือ 0 หรือ false ระบบจะไม่สนใจแอตทริบิวต์อื่นๆ อัตราจะไม่แสดงเป็น สามารถขอคืนเงินได้แม้ว่าจะตั้งค่าแอตทริบิวต์อื่นเพียง 1 หรือทั้ง 2 รายการก็ตาม
  • แนะนำให้ตั้งค่า refundable_until_time หากไม่ ตั้งค่าโดยใช้เวลาที่เร็วที่สุด (เที่ยงคืน)
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (ต้องระบุ) ตั้งค่าเป็น 1 หรือ true เพื่อระบุว่าราคาห้องพักนี้อนุญาตให้ refund; มิฉะนั้น ให้ตั้งค่าเป็น 0 หรือ false
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (ต้องระบุหาก available คือ true) ระบุ จำนวนวันก่อนเช็คอินที่สามารถขอเงินคืนเต็มจำนวนได้ ที่ขอ ค่าของ refundable_until_days ต้องเป็นจำนวนเต็มตั้งแต่ 0 ถึง 330
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (แนะนำหาก available เป็น true) ระบุ ตามเวลาท้องถิ่นของโรงแรมที่ ระบบจะดำเนินการตามคำขอเงินคืน โดยสามารถใช้ร่วมกับ refundable_until_days เพื่อระบุสำหรับ ตัวอย่างเช่น "ขอเงินคืนได้จนถึง 16:00 น. สองวันก่อนหน้า เช็คอิน" หากไม่ได้ตั้งค่า refundable_until_time ไว้ ค่าเริ่มต้นคือเที่ยงคืน
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability เขียนทับห้องว่างของราคาเป็นค่าที่ระบุ เรารองรับการตั้งค่าอัตราเป็น unavailable เท่านั้น
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum หากเป็น status="unavailable" ระบบจะถือว่าราคา เสมือนว่าไม่พร้อมใช้งาน ไม่ว่าจะมีราคาที่ถูกต้องสำหรับ ได้
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay กำหนดขีดจำกัดระยะเวลาในการเข้าพักที่การปรับราคานี้จะสามารถทำได้ ได้ การปรับราคาจะไม่มีผลเมื่อระยะเวลาในการเข้าพักเท่ากับ อยู่นอกขีดจำกัดขั้นต่ำและสูงสุด
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer จำนวนคืนขั้นต่ำที่เข้าพักซึ่งอนุญาตให้ปรับราคาได้ ใช้แล้ว หากไม่ได้ระบุ จะถือว่าไม่มีจำนวนขั้นต่ำ
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer จำนวนคืนสูงสุดที่เข้าพักซึ่งอนุญาตให้แก้ไขราคาได้ ใช้แล้ว หากไม่ได้ระบุ จะถือว่าไม่มีจำนวนสูงสุด
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount ระบุยอดรวมขั้นต่ำของราคาห้องพักรายวัน (โดยใช้จำนวนเงินที่มากกว่า AmountBeforeTax หรือ AmountAfterTax) ที่ต้อง เกินเกณฑ์ การปรับราคาจึงจะมีผล
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer ค่าที่ต้องเกินเพื่อให้การปรับราคาเป็น ใช้แล้ว
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans คอนเทนเนอร์สำหรับรายการแพ็กเกจราคาที่มีการปรับราคา นำไปใช้ได้ หากไม่ได้ระบุ <RatePlans> ราคา จะมีผลกับแพ็กเกจราคาทั้งหมด
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan ระบุแพ็กเกจราคา แพ็กเกจราคากำหนดโดยชุดค่าผสมของ แพ็กเกจ ราคา และห้องว่างตามที่ระบุไว้ใน "ธุรกรรม" (ข้อมูลที่พัก), OTA_HotelRateAmountNotifRQ และ OTA_HotelAvailNotifRQ และตามที่ระบุโดย PackageID
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string ตัวระบุที่ไม่ซ้ำกันสำหรับแพ็กเกจราคา ค่านี้จะแมปกับ ค่า PackageID ใน <PackageData> ในข้อความ Transaction (Property Data) และใน RatePlanCode แอตทริบิวต์ใน <StatusApplicationControl> ในทั้งสองที่ <OTA_HotelRateAmountNotifRQ> และ <OTA_HotelAvailNotifRQ> ข้อความ จำนวนอักขระสูงสุดที่อนุญาตคือ 50 ตัว
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes คอนเทนเนอร์สำหรับรายการประเภทห้องพักที่จะใช้การปรับราคา การปรับราคาจะมีผลกับ <RoomType> ที่ระบุไว้ หากไม่ได้ระบุ <RoomTypes> ค่า การปรับราคาจะมีผลกับห้องพักทั้งหมด
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType ระบุประเภทห้องพัก ประเภทห้องพักจะกำหนดไว้ใน องค์ประกอบ <RoomData> ใน ข้อความ Transaction (Property Data) และเป็น ได้อ้างอิงโดยใช้ค่า <RoomID> ( ค่า <RoomID> ยังอ้างอิงโดยฟังก์ชัน แอตทริบิวต์ InvTypeCode ใน OTA_HotelRateAmountNotifRQ messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string ตัวระบุที่ไม่ซ้ำกันสำหรับห้องพัก (ประเภทห้องพัก) ค่านี้จะแมป กับ <RoomID> ในข้อความ Transaction (Property Data) จำนวนอักขระสูงสุดที่อนุญาตคือ 50 ตัว
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งกำหนดวิธีการตั้งค่า ใช้การปรับราคา เช่น เพื่อรองรับราคาตามฤดูกาล
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

อธิบายวิธีที่ควรใช้การปรับราคา

ค่าที่ใช้ได้มีดังนี้

  • all: ใช้การปรับราคาสำหรับแต่ละคืนใน แผนการเดินทางหากวันที่ทั้งหมดในแผนการเดินทางทับซ้อนกัน พร้อมวันที่เข้าพัก
  • any: ใช้การปรับราคากับทุกคืนใน แผนการเดินทาง หากวันที่ในแผนการเดินทางซ้อนทับกับวันที่ใน ช่วงวันที่เข้าพัก

คุณต้องระบุแอตทริบิวต์นี้เสมอ

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange ช่วงวันที่ที่ระบุวันที่ที่จะปรับราคา ใช้แล้ว
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date วันที่เริ่มต้น (ตามเขตเวลาของที่พัก) ซึ่งก็คือ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่ก่อนวันที่ หรือวันที่เดียวกับ end หากไม่ได้ระบุ start จะเป็นวันที่ ไม่มีการกำหนดช่วงของวันที่เริ่มต้นที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date วันที่สิ้นสุด (ตามเขตเวลาของที่พัก) ของ ช่วงวันที่ วันที่นี้ต้องเป็นวันที่เดียวกับหรือหลังจาก start วันที่ หากไม่ได้ระบุ end จะเป็นวันที่ ไม่มีการกำหนดช่วงวันที่สิ้นสุดที่มีประสิทธิภาพ
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

วันของสัปดาห์ที่อนุญาตในช่วงวันที่ หากไม่ ระบบจะอนุญาตให้ใช้ทุกวันในช่วงวันที่ ชิ้น อักขระในสตริงระบุวัน เช่น "MTWHF" ระบุ อนุญาตให้ใช้วันธรรมดาในช่วงวันที่

อักขระที่ใช้ได้มีดังนี้

  • M สำหรับวันจันทร์
  • T สำหรับวันอังคาร
  • W สำหรับวันพุธ
  • H สำหรับวันพฤหัสบดี
  • F สำหรับวันศุกร์
  • S สำหรับวันเสาร์
  • U สำหรับวันอาทิตย์

ชุดค่าผสมของอักขระแบบใดก็ได้สามารถใช้ได้

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries หากระบุ การแก้ไขราคาจะมีผลก็ต่อเมื่อผู้ใช้ ตั้งอยู่ในประเทศใดประเทศหนึ่งที่ระบุไว้ หากไม่ได้ระบุ ราคา จะใช้การแก้ไขไม่ว่าผู้ใช้จะอยู่ที่ใดก็ตาม
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum ประเภทของข้อกำหนด UserCountry

ค่าที่ถูกต้องคือ include และ exclude

หากมีการตั้งค่า type สำหรับประเทศของผู้ใช้เป็น include การปรับราคาจะมีผลกับ ผู้ใช้จากประเทศที่อยู่ในรายการ

หากtypeประเทศของผู้ใช้คือexclude การปรับราคาจะมีผลกับผู้ใช้ที่อยู่นอกประเทศที่ระบุไว้

หากไม่ได้ตั้งค่า type สำหรับประเทศของผู้ใช้ ระบบจะถือว่าค่านี้ include และการปรับราคา จะมีผลกับผู้ใช้จากประเทศที่อยู่ในรายการ

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country ระบุประเทศของผู้ใช้ที่อนุญาตสำหรับการปรับราคา
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string รหัสประเทศ CLDR เช่น DE หรือ FR โปรดทราบว่าสำหรับบางคน ประเทศ รหัสประเทศ CLDR ไม่เหมือนกับ ISO 2 ตัวอักษร รหัสประเทศ และไม่รองรับรหัสภูมิภาค CLDR ด้วย

ตัวอย่าง

ข้อความพื้นฐาน

ตัวอย่างต่อไปนี้แสดงข้อความ RateModifications` พื้นฐาน

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


ลบการปรับราคา 1 รายการ

ตัวอย่างต่อไปนี้แสดงวิธีลบการปรับราคา 1 รายการสำหรับ พร็อพเพอร์ตี้:

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

ลบการแก้ไขอัตราทั้งหมด

ตัวอย่างต่อไปนี้แสดงวิธีลบการปรับราคาทั้งหมดของ พร็อพเพอร์ตี้:

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


วางซ้อนการปรับราคาทั้งหมด

ตัวอย่างต่อไปนี้แสดงวิธีวางซ้อน <HotelRateModifications> สำหรับ ที่พักที่มีการปรับราคาใหม่อย่างน้อย 1 รายการ วันและเวลา action="overlay" ระบบจะลบการปรับราคาที่จัดเก็บไว้ทั้งหมดก่อน จัดเก็บการปรับราคาที่ระบุในข้อความปัจจุบัน

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

การดำเนินการแก้ไขหลายรายการ

ตัวอย่างต่อไปนี้แสดงวิธีทำการแก้ไขหลายรายการ พร้อมกัน:

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


ปิดแพ็กเกจราคาสำหรับประเทศของผู้ใช้

ตัวอย่างต่อไปนี้แสดงวิธีจำกัดแพ็กเกจราคาให้แสดงเฉพาะ ผู้ใช้ภาษาญี่ปุ่น (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>


การตอบกลับ

ไวยากรณ์

ข้อความ RateModificationsResponse ใช้ไวยากรณ์ต่อไปนี้

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

องค์ประกอบและแอตทริบิวต์

ข้อความ RateModificationsResponse มีข้อมูลต่อไปนี้ องค์ประกอบและแอตทริบิวต์:

องค์ประกอบ / @แอตทริบิวต์ จำนวนข้อผิดพลาด ประเภท คำอธิบาย
RateModifications 1 Complex element องค์ประกอบรูทที่ระบุความสำเร็จหรือปัญหาสำหรับ ข้อความคำขอ RateModifications
RateModificationsResponse / @timestamp 1 DateTime วันที่และเวลาที่สร้างข้อความนี้
RateModificationsResponse / @id 1 string ตัวระบุที่ไม่ซ้ำกันจากข้อความ RateModifications ที่เกี่ยวข้อง
RateModificationsResponse / @partner 1 string บัญชีพาร์ทเนอร์สำหรับข้อความนี้
RateModificationsResponse / Success 0..1 Success บ่งบอกว่าข้อความ RateModifications ได้รับการประมวลผลเรียบร้อยแล้ว โดยไม่มีคำเตือน ข้อผิดพลาด หรือความล้มเหลว

<Success> หรือ <Issues> อาจเป็น ที่อยู่ในแต่ละข้อความ

RateModificationsResponse / Issues 0..1 Issues คอนเทนเนอร์สำหรับปัญหาอย่างน้อย 1 รายการที่พบขณะประมวลผล ข้อความ RateModifications

<Success> หรือ <Issues> อาจเป็น ที่อยู่ในแต่ละข้อความ

RateModificationsResponse / Issues / Issue 1..n Issue คำอธิบายของคำเตือน ข้อผิดพลาด หรือความล้มเหลวที่พบขณะ กำลังประมวลผลข้อความ RateModifications รายละเอียดของปัญหาเหล่านี้อาจ พบในข้อผิดพลาดสถานะฟีด Messages
RateModificationsResponse / Issues / Issue / @code 1 integer ตัวระบุสำหรับปัญหา
RateModificationsResponse / Issues / Issue / @status 1 enum

ประเภทของปัญหาที่พบ

ค่าที่ถูกต้องคือ warning, error และ failure

ตัวอย่าง

สำเร็จ

การตอบกลับ RateModifications ที่ประมวลผลเรียบร้อยแล้วมีดังนี้

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

ปัญหา

การตอบกลับข้อความ RateModifications ที่ไม่ได้ประมวลผลมีดังนี้ เนื่องจากข้อผิดพลาด

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