खास जानकारी
इस एपीआई की मदद से, किसी दर पर डाइनैमिक तरीके से कार्रवाइयां लागू करने के तरीके तय किए जा सकते हैं. ऐसा तब किया जाता है, जब शर्तें पूरी हो जाती हैं. जैसे, कीमत में बदलाव करना या रिफ़ंड की सुविधा चालू करना. 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 के
खाते की सेटिंग वाले पेज पर मौजूद "पार्टनर की" वैल्यू होती है.
ध्यान दें: अगर आपके पास ऐसा बैकएंड है जो कई खातों के लिए फ़ीड उपलब्ध कराता है, तो इस वैल्यू को उसी खाते के लिए |
| 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 | अगर |
| 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 | अगर अगर यह वैल्यू दी गई है, तो |
| 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" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| 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" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| 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" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| 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 | यह आईडी, आपकी किराया तय करने के नियम की परिभाषा फ़ाइल में मौजूद किसी परिभाषा से मेल खाता है.
ध्यान दें:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | किराये के रिफ़ंड की सुविधा को बताई गई वैल्यू पर बदलता है.
एट्रिब्यूट सेट करते समय, इन बातों का ध्यान रखें:
|
| 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 | इसमें बताया जाता है कि किराये में बदलाव कैसे लागू किया जाना चाहिए. मान्य मान हैं:
इस एट्रिब्यूट की वैल्यू हमेशा दी जानी चाहिए. |
| 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" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | अगर यह एट्रिब्यूट दिया गया है, तो किराये में बदलाव सिर्फ़ तब लागू होगा, जब उपयोगकर्ता उन देशों में से किसी एक में मौजूद हो जिनके लिए यह एट्रिब्यूट दिया गया है. अगर यह जानकारी नहीं दी जाती है, तो उपयोगकर्ता की जगह की जानकारी के बावजूद, किराये में बदलाव लागू होता है. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | UserCountries स्पेसिफ़िकेशन का टाइप.
मान्य वैल्यू अगर UserCountries अगर UserCountries अगर UserCountries |
| 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 मैसेज को बिना किसी चेतावनी, गड़बड़ी या समस्या के प्रोसेस किया गया है.
हर मैसेज में |
| RateModificationsResponse / Issues | 0..1 | Issues | RateModifications मैसेज को प्रोसेस करते समय हुई एक या उससे ज़्यादा समस्याओं के लिए कंटेनर.
हर मैसेज में |
| RateModificationsResponse / Issues / Issue | 1..n | Issue | RateModifications मैसेज को प्रोसेस करते समय मिली किसी चेतावनी, गड़बड़ी या समस्या की जानकारी. इन समस्याओं के बारे में जानकारी, फ़ीड की स्थिति से जुड़ी गड़बड़ी के मैसेज में देखी जा सकती है. |
| RateModificationsResponse / Issues / Issue / @code | 1 | integer | समस्या के लिए आइडेंटिफ़ायर. |
| RateModificationsResponse / Issues / Issue / @status | 1 | enum | समस्या किस तरह की है. मान्य वैल्यू |
उदाहरण
पुष्टि हो गई
यहां 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>