रेट में बदलाव

खास जानकारी

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

अनुरोध

सिंटैक्स

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 में खाता सेटिंग पेज पर लिस्ट किया गया है.

ध्यान दें: अगर आपके पास ऐसा बैकएंड है जो कई खातों के लिए फ़ीड उपलब्ध कराता है, तो इस वैल्यू को आपके <OTA_HotelRateAmountNotifRQ> के <RequestorID> एलिमेंट में बताए गए ID एट्रिब्यूट की वैल्यू और उसी खाते के <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

किसी प्रॉपर्टी के लिए, एक दर में बदलाव करने का विकल्प.

ध्यान दें:दर में किए गए बदलावों को डीबग करना मुश्किल होता है और हमारा सुझाव है कि आप इनका कम से कम इस्तेमाल करें. अगर आपको इस्तेमाल के उदाहरणों के लिए, दर में 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 एक या उससे ज़्यादा तारीख की सीमाओं के लिए एक कंटेनर, जो यह तय करता है कि दर में बदलाव लागू करने के लिए बुकिंग कब होनी चाहिए.
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 उस समयावधि के बारे में बताता है जिसमें बुकिंग, चेक इन करने की तारीख के हिसाब से होनी चाहिए (प्रॉपर्टी के टाइम ज़ोन के आधार पर). उदाहरण के लिए, चेक-इन करने से पहले, बुकिंग विंडो को कम से कम सात दिन के लिए सेट किया जा सकता है. हालांकि, 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 है, तो हमारा सुझाव है कि) होटल के स्थानीय समय के हिसाब से, दिन का हाल ही का समय बताता हो. साथ ही, पूरे रिफ़ंड का अनुरोध स्वीकार किया जाता है. उदाहरण के लिए, यह बताने के लिए कि "रिफ़ंड चेक-इन से दो दिन दो दिन पहले शाम 4 बजे तक ही उपलब्ध हैं", refundable_until_days के साथ जोड़ा जा सकता है. अगर 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 रेट प्लान के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी का डेटा) वाले मैसेज में मौजूद <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 उपयोगकर्ता देश के स्पेसिफ़िकेशन का टाइप.

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

हर मैसेज में <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 हैं.

उदाहरण

पुष्टि हो गई

यह विकल्प, सही तरीके से प्रोसेस किए गए RateConfirms मैसेज का जवाब है.

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