RateModifications

ภาพรวม

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 บัญชีพาร์ทเนอร์สำหรับข้อความนี้ ค่าของสตริงนี้คือค่า "Partner key" ซึ่งแสดงอยู่ที่ หน้าการตั้งค่าบัญชีใน 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) เพื่อดู Use Case ที่ ต้องมีการแก้ไขราคามากกว่า 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 กำหนดอุปกรณ์ของผู้ใช้ประเภทหนึ่งที่มีสิทธิ์รับการแก้ไขอัตรา
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 ตัว
  • โดยแต่ละราคาจะเชื่อมโยงกับกฎราคาได้เพียงกฎเดียว
  • หากมีการแก้ไขหลายรายการที่ใช้รหัสกฎเกี่ยวกับอัตรา ระบบจะกำหนดรหัสกฎเกี่ยวกับอัตราที่มีค่าเล็กที่สุดตามลำดับตัวอักษรให้กับอัตรา
  • หากรหัสนี้ไม่ตรงกับกฎเกี่ยวกับอัตราในไฟล์คำจำกัดความกฎเกี่ยวกับอัตรา ระบบจะถือว่าไม่มีสิทธิ์
ดูข้อมูลเกี่ยวกับตัวเลือก UI สำหรับอัตราส่วนลดเฉพาะบุคคลต่างๆ ได้ใน บทความนี้
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable เขียนทับการคืนเงินของอัตราเป็นค่าที่ระบุ

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

  • การดำเนินการแก้ไขนี้จะเขียนทับการตั้งค่า Refundable ของอัตราที่มีสิทธิ์ทั้งหมด ไม่ใช่แค่ฟิลด์ที่สร้างขึ้น
  • หากไม่ได้ตั้งค่า available หรือ refundable_until_days ไว้ ระบบจะไม่แสดงราคาห้องพักเป็นขอเงินคืนได้
  • หาก available คือ 0 หรือ false ระบบจะละเว้นแอตทริบิวต์อื่นๆ ราคาห้องพักจะไม่แสดงเป็นขอเงินคืนได้แม้จะมีการตั้งค่าแอตทริบิวต์อื่นๆ อย่างน้อย 1 รายการหรือทั้ง 2 รายการก็ตาม
  • เราขอแนะนำให้ตั้งค่า refundable_until_time หากไม่ได้ตั้งค่า ระบบจะใช้เวลาที่เร็วที่สุด (เที่ยงคืน)
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (ต้องระบุ) ตั้งค่าเป็น 1 หรือ true เพื่อระบุว่าราคาห้องพักนี้ขอเงินคืนเต็มจำนวนได้หรือไม่ มิเช่นนั้นให้ตั้งค่าเป็น 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 น. ก่อนเช็คอิน 2 วัน" หากไม่ได้ตั้งค่า 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 ระบุแพ็กเกจราคา ระบบจะกำหนดแพ็กเกจราคาจากชุดค่าผสมของแพ็กเกจ ราคา และจำนวนห้องว่างตามที่ระบุไว้ในข้อความ Transaction (Property Data), 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)
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 ประเภทของข้อกำหนด UserCountries

ค่าที่ใช้ได้คือ include และ exclude

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

หาก UserCountries type เป็น exclude การแก้ไขอัตราจะมีผลกับผู้ใช้ที่อยู่นอกประเทศที่ระบุ

หากไม่ได้ตั้งค่า UserCountries 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` message พื้นฐาน

<?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 ดูรายละเอียดเกี่ยวกับปัญหาเหล่านี้ได้ในข้อความแสดงข้อผิดพลาดของสถานะฟีด
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>