रेट में बदलाव

खास जानकारी

इस एपीआई की मदद से, शर्तें पूरी होने पर रेट पर कार्रवाइयों को डाइनैमिक तौर पर लागू करने के तरीके तय किए जा सकते हैं. जैसे, कीमत घटाना या बढ़ाना या रिफ़ंड पाने की सुविधा चालू करना. प्रमोशन एपीआई सिर्फ़ ज़रूरी शर्तें पूरी करने वाले प्रमोशन पर ही बेहतरीन छूट वाले प्रमोशन लागू कर सकता है, जबकि यह एपीआई कुछ शर्तें पूरी करने पर ही किसी भी कार्रवाई को लागू करता है. इसमें, कीमत में ऐसे बदलाव भी शामिल हैं जिनकी वजह से कीमत बढ़ सकती है.

अनुरोध

सिंटैक्स

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 एट्रिब्यूट की वैल्यू से मेल खानी चाहिए. यह वैल्यू आपके <OTA_HotelRateAmountNotifRQ> के <RequestorID> एलिमेंट में दी गई है और उसी खाते के <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 प्रॉपर्टी के लिए यूनीक आइडेंटिफ़ायर. यह मान होटल आईडी से मेल खाना चाहिए, जो होटल सूची फ़ीड में <listing> में <id> एलिमेंट का इस्तेमाल करके दिया गया है. होटल आईडी की जानकारी 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> में कोई भी चाइल्ड एलिमेंट शामिल न करें. साथ ही, <HotelRateModifications action="overlay"/> के साथ "delete" की अनुमति नहीं है.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates तारीख की एक या उससे ज़्यादा सीमाओं वाला कंटेनर, जो तय करता है कि बुकिंग की तारीख कब होनी चाहिए, ताकि किराये में बदलाव किया जा सके.
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 एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर, जो तय करता है कि चेक-इन कब होना चाहिए. इससे दर में बदलाव किया जा सकेगा.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange तारीख की वह सीमा तय करती है कि शुल्क में बदलाव लागू करने के लिए चेक-इन कब होना चाहिए. अगर दरों में किए गए एक या उससे ज़्यादा बदलाव मिटाए जा रहे हैं, तो इस एलिमेंट की ज़रूरत नहीं है.
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 एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर, जो तय करता है कि चेक-आउट कब होना चाहिए. इससे, किराये में बदलाव लागू हो पाएगा.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange तारीख की वह सीमा जो तय करती है कि किराये में बदलाव कब लागू करना है. इसके लिए, चेक-आउट कब करना होगा. अगर दरों में किए गए एक या उससे ज़्यादा बदलाव मिटाए जा रहे हैं, तो इस एलिमेंट की ज़रूरत नहीं है.
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 से ज़्यादा वर्ण नहीं हो सकते.
  • हर किराये को सिर्फ़ एक दर के नियम से जोड़ा जा सकता है.
  • अगर कई बदलावों की वजह से दर के नियम का आईडी लागू होता है, तो दर के लिए नियम के उस आईडी को असाइन किया जाता है जो संदर्भ के हिसाब से सबसे छोटा होता है.
  • अगर यह आईडी, दर के नियम की परिभाषा वाली फ़ाइल में मौजूद दर के नियम से मेल नहीं खाता है, तो इसे ज़रूरी शर्तें पूरी न करने वाला आईडी माना जाएगा.
अलग-अलग निजी दर वाले यूज़र इंटरफ़ेस (यूआई) ट्रीटमेंट के बारे में जानने के लिए, यह लेख पढ़ें.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable तय की गई वैल्यू के लिए, दर की रिफ़ंड मिलने की संभावना को ओवरराइट करता है.

एट्रिब्यूट सेट करते समय, इन बातों का ध्यान रखें:

  • बदलाव करने की इस कार्रवाई से, रिफ़ंड पाने की तय की गई दर की रिफ़ंड वाली सेटिंग पूरी तरह से बदल दी गई है. इसमें अपने-आप जानकारी भरने वाले फ़ील्ड भी शामिल नहीं हैं.
  • अगर available या refundable_until_days को सेट नहीं किया गया है, तो दर को रिफ़ंड वाले के तौर पर नहीं दिखाया जाएगा.
  • अगर available, 0 या false है, तो अन्य एट्रिब्यूट को अनदेखा किया जाता है. अगर एक या दोनों एट्रिब्यूट सेट किए गए हैं, तो भी दर को रिफ़ंड की सुविधा के तौर पर नहीं दिखाया जाता है.
  • 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 के साथ जोड़ा जा सकता है, ताकि यह बताया जा सके कि "रिफ़ंड, चेक-इन करने से दो दिन पहले शाम 4 बजे तक" तक मिलते हैं. अगर 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 मैसेज में बताया गया है.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string रेट प्लान के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी डेटा) मैसेज में <PackageData> की PackageID वैल्यू पर होती है. साथ ही, <OTA_HotelRateAmountNotifRQ> और <OTA_HotelAvailNotifRQ> मैसेज, <StatusApplicationControl> के RatePlanCode एट्रिब्यूट में मैप की जाती है. ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes कमरों के उन टाइप की सूची के लिए कंटेनर जिस पर रेट में बदलाव लागू होता है. रेट में बदलाव, बताए गए हर <RoomType> पर लागू किया जाता है. अगर <RoomTypes> के बारे में जानकारी नहीं दी गई है, तो किराये में किया गया बदलाव सभी कमरों पर लागू होगा.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType यह बताता है कि कमरा किस तरह का है. रूम टाइप के बारे में लेन-देन (प्रॉपर्टी डेटा) मैसेज के <RoomData> एलिमेंट में बताया जाता है और इसकी <RoomID> वैल्यू का इस्तेमाल करके इसका रेफ़रंस दिया जाता है. (इसकी <RoomID> वैल्यू, OTA_HotelRateAmountNotifRQ मैसेज में InvTypeCode एट्रिब्यूट में भी दी गई है.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string इन्वेंट्री के लिए यूनीक आइडेंटिफ़ायर (कमरे का टाइप). यह वैल्यू, ट्रांज़ैक्शन (प्रॉपर्टी डेटा) मैसेज में <RoomID> पर मैप करती है. ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates एक या उससे ज़्यादा तारीख की सीमाओं का कंटेनर, जो तय करता है कि दर में बदलाव कैसे लागू किया जाएगा. जैसे, सीज़न के मुताबिक कीमत में बदलाव करना.
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 देश के कोड को एक जैसा नहीं होता. साथ ही, 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>


दर में किया गया एक बदलाव मिटाएं

यहां दिए गए उदाहरण में, किसी प्रॉपर्टी के रेट में किए गए बदलाव को मिटाने का तरीका बताया गया है:

<?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> को कैसे ओवरले किया जाता है. 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 वह मुख्य एलिमेंट जिससे रेट में बदलाव के अनुरोध वाले मैसेज की सफलता या उससे जुड़ी समस्याओं की जानकारी मिलती है.
RateModificationsResponse / @timestamp 1 DateTime इस मैसेज को बनाने की तारीख और समय.
RateModificationsResponse / @id 1 string रेट में बदलाव करने से जुड़े मैसेज से मिला यूनीक आइडेंटिफ़ायर.
RateModificationsResponse / @partner 1 string इस मैसेज के लिए पार्टनर खाता.
RateModificationsResponse / Success 0..1 Success इससे पता चलता है कि रेट में बदलाव करने की जानकारी देने वाला मैसेज, बिना किसी चेतावनी, गड़बड़ी या गड़बड़ी के प्रोसेस किया गया था.

हर मैसेज में <Success> या <Issues> मौजूद है.

RateModificationsResponse / Issues 0..1 Issues दर में बदलाव की जानकारी वाले मैसेज को प्रोसेस करते समय, एक या एक से ज़्यादा समस्याओं वाला कंटेनर.

हर मैसेज में <Success> या <Issues> मौजूद है.

RateModificationsResponse / Issues / Issue 1..n Issue दर में बदलाव करने की जानकारी वाले मैसेज को प्रोसेस करते समय, किसी चेतावनी, गड़बड़ी या गड़बड़ी का ब्यौरा मिलता है. इन समस्याओं की जानकारी, फ़ीड के स्टेटस से जुड़ी गड़बड़ी का मैसेज में देखी जा सकती है.
RateModificationsResponse / Issues / Issue / @code 1 integer समस्या के लिए आइडेंटिफ़ायर.
RateModificationsResponse / Issues / Issue / @status 1 enum

किस तरह की समस्या हुई है.

मान्य वैल्यू हैं warning, error, और failure.

उदाहरण

पुष्टि हो गई

नीचे, स्वीकार किए गए दर बदलाव के मैसेज का जवाब दिया गया है.

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

समस्याएं

गड़बड़ियों की वजह से रेट में बदलाव करने से जुड़े मैसेज को प्रोसेस नहीं किया गया. इस मैसेज का जवाब यहां दिया गया है.

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