RateModifications

खास जानकारी

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

Element / @Attribute आवृत्तियां टाइप ब्यौरा
RateModifications 1 Complex element किराये में बदलाव की जानकारी देने वाले मैसेज का रूट एलिमेंट.
RateModifications / @partner 1 string यह मैसेज किस पार्टनर खाते के लिए है. यह स्ट्रिंग वैल्यू, Hotel Center के खाते की सेटिंग वाले पेज पर मौजूद "पार्टनर की" वैल्यू होती है.

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

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

Element / @Attribute आवृत्तियां टाइप ब्यौरा
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 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>