खास जानकारी
इस एपीआई की मदद से, संभावित छूट के बारे में बताया जा सकता है. बताए गए प्रमोशन में से, Google उस प्रमोशन या प्रमोशन के सेट को लागू करता है जो ज़रूरी शर्तें पूरी करता हो और जिसकी वजह से सबसे कम कीमत मिलती हो. अगर आपको ऐसा एपीआई चाहिए जो शर्तों के पूरा होने पर, कीमत को घटाने या बढ़ाने के लिए, किसी भी रेट में बदलाव करने की सुविधा देता हो, तो Rate Modifications API का इस्तेमाल करें. ध्यान दें कि अगर दोनों एपीआई मौजूद हैं, तो प्रमोशन से पहले किराये में बदलाव लागू किए जाते हैं.
अनुरोध
सिंटैक्स
Promotions मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
id="message_ID"
timestamp="timestamp">
<HotelPromotions hotel_id="HotelID" action="[overlay]">
<Promotion id="PromotionID" action="[delete]">
<BookingDates>
<DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
days_of_week="MTWHFSU_or_subset"/>
<DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
days_of_week="MTWHFSU_or_subset"/>
</BookingDates>
<BookingWindow min="integer_or_duration" max="integer_or_duration"/>
<Ceiling amount_per_night="float"/>
<Floor amount_per_night="float"/>
<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>
<!-- Specify only one of percentage, percentage_of_base, fixed_amount,
fixed_amount_per_night, fixed_price, or fixed_price_per_night;
applied_nights is only used with percentage, fixed_amount_per_night,
and fixed_price_per_night. -->
<Discount percentage="float" percentage_of_base="float"
fixed_amount="float" fixed_amount_per_night="float"
fixed_price="float" fixed_price_per_night="float"
applied_nights="integer_1_to_99" rank="integer_1_to_99">
<!-- FreeNights may not be used in conjunction with attributes on Discount -->
<FreeNights stay_nights="integer" discount_nights="integer"
discount_percentage="float" night_selection="[cheapest|last]"
repeats="boolean"/>
</Discount>
<!-- Exactly one of Discount or BestDailyDiscount must be specified.
Specify only one of percentage, fixed_amount, or fixed_price. -->
<BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
<Devices>
<Device type="[desktop|tablet|mobile]"/>
</Devices>
<InventoryCount min="integer" max="integer"/>
<LengthOfStay min="integer" max="integer"/>
<MembershipRateRule id="RateRuleID"/>
<MinimumAmount before_discount="integer"/>
<Occupancy min="integer" max="integer"/>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<Stacking type="[any|base|none|second]"/>
<StayDates application="[all|any|overlap]">
<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>
</Promotion>
</HotelPromotions>
</Promotions>
तत्व और एट्रिब्यूट
प्रमोशन मैसेज में ये एलिमेंट और एट्रिब्यूट होते हैं:
| Element / @Attribute | आवृत्तियां | टाइप | ब्यौरा |
|---|---|---|---|
| Promotions | 1 | Complex element | प्रमोशन के मैसेज का रूट एलिमेंट. |
| Promotions / @partner | 1 | string | यह मैसेज किस पार्टनर खाते के लिए है. यह स्ट्रिंग वैल्यू, Hotel Center में
खाते की सेटिंग वाले पेज पर मौजूद "पार्टनर की" वैल्यू होती है.
अगर आपके पास ऐसा बैकएंड है जो कई खातों के लिए फ़ीड उपलब्ध कराता है, तो इस वैल्यू को |
| Promotions / @id | 1 | string | इस अनुरोध मैसेज के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, जवाब वाले मैसेज में दिखती है. a-z, A-Z, 0-9, _ (अंडरस्कोर), और - (डैश) का इस्तेमाल किया जा सकता है. |
| Promotions / @timestamp | 1 | DateTime | इस मैसेज को बनाने की तारीख और समय. |
| Promotions / HotelPromotions | 0..n | HotelPromotions | किसी प्रॉपर्टी के लिए प्रमोशन. हर प्रमोशन, किसी एक प्रॉपर्टी पर लागू होता है.
|
| Promotions / HotelPromotions / @hotel_id | 1 | string | प्रॉपर्टी के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, होटल सूची फ़ीड में <listing> एलिमेंट में
<id> का इस्तेमाल करके तय किए गए होटल आईडी से मेल खानी चाहिए. होटल आईडी, Hotel Center में भी दिखता है. |
| Promotions / HotelPromotions / @action | 0..1 | enum | अगर यह प्रॉपर्टी सेट की गई है, तो इसकी वैल्यू अगर इस बारे में जानकारी नहीं दी जाती है, तो मौजूदा मैसेज में बताए गए हर प्रमोशन को इनमें से किसी एक के तौर पर माना जाता है:
|
| Promotions / HotelPromotions / Promotion | 0..99 | Promotion | किसी प्रॉपर्टी के लिए एक प्रमोशन. ध्यान दें कि अगर अगर आपको 99 से ज़्यादा प्रमोशन इस्तेमाल करने हैं, तो अपने तकनीकी खाता मैनेजर (टैम) से संपर्क करें. |
| Promotions / HotelPromotions / Promotion / @id | 1 | string | प्रमोशन के लिए यूनीक आइडेंटिफ़ायर. ज़्यादा से ज़्यादा 40 वर्णों का इस्तेमाल किया जा सकता है. a-z, A-Z, 0-9, _ (अंडरस्कोर), - (डैश), और . वर्णों का इस्तेमाल किया जा सकता है. (पीरियड). |
| Promotions /HotelPromotions / Promotion / @action | 0..1 | enum | अगर यह वैल्यू दी गई है, तो यह अगर |
| Promotions / HotelPromotions / Promotion / BookingDates | 0..1 | BookingDates | यह एक या उससे ज़्यादा रेंज के लिए कंटेनर होता है. इससे यह तय होता है कि प्रमोशन लागू करने के लिए बुकिंग कब होनी चाहिए. |
| Promotions / HotelPromotions / Promotion / BookingDates / DateRange | 1..99 | DateRange | यह एक रेंज होती है, जिसमें यह बताया जाता है कि प्रमोशन लागू होने के लिए बुकिंग कब होनी चाहिए. |
| Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start | 0..1 | Date या DateTime | रेंज की शुरुआती तारीख या तारीख और समय (प्रॉपर्टी के टाइम ज़ोन के आधार पर). इसमें यह तारीख और समय शामिल है.
|
| Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end | 0..1 | Date या DateTime | रेंज की खत्म होने की तारीख या तारीख और समय (प्रॉपर्टी के टाइम ज़ोन के हिसाब से). इसमें यह तारीख और समय शामिल है.
|
| Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week | 0..1 | string | तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी जाती है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| Promotions / HotelPromotions / Promotion / BookingWindow | 0..1 | BookingWindow | यह उस समयावधि के बारे में बताता है जब चेक-इन करने की तारीख (प्रॉपर्टी के समय क्षेत्र के आधार पर) के हिसाब से बुकिंग होनी चाहिए. उदाहरण के लिए, चेक-इन करने से कम से कम सात दिन पहले और ज़्यादा से ज़्यादा 180 दिन पहले बुकिंग की जा सकती है. |
| Promotions / HotelPromotions / Promotion / BookingWindow / @min | 0..1 | integer or duration | चेक-इन करने से कम से कम कितने समय पहले बुकिंग की जानी चाहिए, ताकि प्रमोशन लागू हो सके. अगर यह तय नहीं किया गया है या इसकी वैल्यू 0 है, तो कोई भी वैल्यू इस्तेमाल की जा सकती है.
मान्य वैल्यू टाइप ये हैं:
|
| Promotions / HotelPromotions / Promotion / BookingWindow / @max | 0..1 | integer or duration | चेक-इन करने से ज़्यादा से ज़्यादा कितने दिन पहले बुकिंग की जानी चाहिए, ताकि प्रमोशन लागू हो सके. अगर यह वैल्यू नहीं दी गई है या इसकी वैल्यू 0 है, तो कोई ज़्यादा से ज़्यादा सीमा नहीं होती.
मान्य वैल्यू टाइप ये हैं:
|
| Promotions / HotelPromotions / Promotion / Ceiling | 0..1 | Ceiling |
यह प्रमोशन लागू होने के बाद, ज़्यादा से ज़्यादा वैल्यू पर पाबंदियां तय करता है. प्रमोशन के लिए, हमेशा अगर स्टैकिंग की सुविधा कॉन्फ़िगर की गई है, तो एक ही स्टे पर उदाहरण: एक रात के लिए ठहरने का किराया तय करना. इसमें
कैलकुलेशन का क्रम यहां दिया गया है:
इस बात से कोई फ़र्क़ नहीं पड़ता कि 60, कुल मिलाकर एक ज़्यादा पाबंदी वाली सीमा है, क्योंकि यह सिर्फ़ अपने प्रमोशन के लिए मान्य है. साथ ही, ऐसी कोई एक सीमा नहीं हो सकती जो पूरे प्रमोशन स्टैक पर लागू हो. |
| Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night | 1 | float |
छूट लागू होने के बाद, एक रात के किराये की ज़्यादा से ज़्यादा रकम. अगर
|
| Promotions / HotelPromotions / Promotion / Floor | 0..1 | Floor |
इससे, प्रमोशन लागू होने के बाद, किसी किराये के लिए कम से कम वैल्यू सेट करने से जुड़ी पाबंदियां तय की जाती हैं. प्रमोशन के लिए, हमेशा
अगर स्टैकिंग की सुविधा कॉन्फ़िगर की गई है, तो एक ही स्टे पर उदाहरण: एक रात के लिए ठहरने का किराया तय करना. इसमें
कैलकुलेशन का क्रम यहां दिया गया है:
इस बात से कोई फ़र्क़ नहीं पड़ता कि 90, कुल मिलाकर एक सख्त फ़्लोर है, क्योंकि यह सिर्फ़ अपने प्रमोशन के लिए मान्य है. साथ ही, ऐसा कोई फ़्लोर नहीं हो सकता जो पूरे प्रमोशन स्टैक पर लागू हो. |
| Promotions / HotelPromotions / Promotion / Floor / @amount_per_night | 1 | float |
छूट लागू होने के बाद, एक रात के लिए कमरे का कम से कम किराया. अगर
|
| Promotions / HotelPromotions / Promotion / CheckinDates | 0..1 | CheckinDates | यह एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर होता है. इससे यह तय होता है कि प्रमोशन लागू करने के लिए, चेक-इन कब होना चाहिए. |
| Promotions / HotelPromotions / Promotion / CheckinDates / DateRange | 1..20 | DateRange | तारीख की वह सीमा जिसके दौरान चेक-इन करने पर प्रमोशन लागू होगा. अगर आपको एक या उससे ज़्यादा प्रमोशन मिटाने हैं, तो इस एलिमेंट की ज़रूरत नहीं है. YearlessDate फ़ॉर्मैट का भी इस्तेमाल किया जा सकता है.
|
| Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start | 0..1 | Date or YearlessDate | तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से हमेशा के लिए सेट हो जाती है. |
| Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end | 0..1 | Date or YearlessDate | तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end की जानकारी नहीं दी जाती है, तो तारीख की सीमा के खत्म होने की तारीख तय नहीं होती. |
| Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week | 0..1 | string | तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी जाती है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| Promotions / HotelPromotions / Promotion / CheckoutDates | 0..1 | CheckoutDates | यह एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर होता है. इससे यह तय होता है कि प्रमोशन लागू करने के लिए, चेक-आउट कब होना चाहिए. |
| Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange | 1..20 | DateRange | तारीख की वह सीमा जिसके दौरान चेक-आउट करने पर प्रमोशन लागू होगा. अगर आपको एक या उससे ज़्यादा प्रमोशन मिटाने हैं, तो इस एलिमेंट की ज़रूरत नहीं है. YearlessDate फ़ॉर्मैट का भी इस्तेमाल किया जा सकता है.
|
| Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start | 0..1 | Date or YearlessDate | तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से हमेशा के लिए सेट हो जाती है. |
| Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end | 0..1 | Date or YearlessDate | तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end की जानकारी नहीं दी जाती है, तो तारीख की सीमा के खत्म होने की तारीख तय नहीं होती. |
| Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week | 0..1 | string | तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी जाती है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| Promotions / HotelPromotions / Promotion / Devices | 0..1 | Devices | उपयोगकर्ता के उन डिवाइसों की सूची के लिए कंटेनर जिन पर प्रमोशन लागू किया जा सकता है. अगर यह जानकारी दी जाती है, तो सूची में शामिल डिवाइसों पर ज़रूरी शर्तें पूरी करने वाले लोगों को ही छूट वाला किराया दिखाया जाता है. अगर यह जानकारी नहीं दी जाती है, तो ज़रूरी शर्तें पूरी करने वाले उपयोगकर्ताओं को किसी भी डिवाइस पर छूट वाली कीमत ऑफ़र की जाती है. |
| Promotions / HotelPromotions / Promotion / Devices / Device | 1..3 | Device | यह प्रमोशन के लिए ज़रूरी उपयोगकर्ता डिवाइस के टाइप के बारे में बताता है. |
| Promotions / HotelPromotions / Promotion / Devices / Device / @type | 1 | enum | डिवाइस का टाइप. यह ज़रूरी है कि वैल्यू desktop,
tablet या mobile हो. |
| Promotions / HotelPromotions / Promotion / Discount | 1 | Discount |
इस प्रमोशन के लिए लागू की जाने वाली छूट के बारे में बताता है. |
| Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float |
यह 0 से 100 के बीच की दशमलव वैल्यू होती है. इससे छूट का प्रतिशत पता चलता है.
यह उदाहरण:
|
| Promotions / HotelPromotions / Promotion / Discount / @percentage_of_base | 0..1 | float |
यह 0 से 100 तक की दशमलव वैल्यू होती है. इससे, बुनियादी छूट का प्रतिशत पता चलता है.
उदाहरण:
|
| Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float |
यह एक तय रकम होती है, जिसे उदाहरण:
|
| Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float |
उदाहरण:
|
| Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float |
अगर अगर उदाहरण:
|
| Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float |
अगर अगर अगर उदाहरण:
|
| Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | इसका इस्तेमाल सिर्फ़ छूट वाली रातों की संख्या. यह संख्या, सबसे कम कीमत वाली रात से शुरू होती है. यह 1 से 99 के बीच का पूर्णांक होना चाहिए. अगर यह जानकारी नहीं दी जाती है, तो सभी रातों के लिए छूट लागू होती है. |
| Promotions / HotelPromotions / Promotion / Discount / FreeNights | 0..1 | FreeNights | इससे, होटल में ठहरने की कम से कम अवधि पूरी होने पर, कुछ रातों के लिए छूट तय की जाती है. अगर इस एलिमेंट का इस्तेमाल किया जाता है, तो पैरंट Discount एलिमेंट के एट्रिब्यूट इस्तेमाल करने की अनुमति नहीं है. |
| Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights | 1 | integer | छूट लागू करने के लिए, ज़रूरी रातों की संख्या. हर छूट, ठहरने की रातों के अलग-अलग सेगमेंट पर लागू होती है. उदाहरण के लिए, अगर 10 रातों के लिए रुकने पर |
| Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights | 1 | integer | ठहरने की रातों के हर सेगमेंट में, छूट वाली रातों की संख्या. |
| Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage | 1 | float | छूट वाली रातों पर लागू होने वाली छूट. अगर यह वैल्यू 50 है, तो चुनी गई हर रात के लिए 50% की छूट मिलेगी. |
| Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection | 1 | string | यह cheapest या last में से कोई एक होना चाहिए. अगर
last है, तो ठहरने की अवधि के आखिर की रातों पर छूट मिलती है. अगर cheapest, तो ठहरने की रातों के सेगमेंट में सबसे सस्ती रातों पर छूट दी जाती है. |
| Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats | 1 | boolean | क्या छूट को एक से ज़्यादा रात के ठहरने वाले सेगमेंट पर लागू किया जा सकता है. अगर उदाहरण के लिए, अगर |
| Promotions / HotelPromotions / Promotion / Discount / @rank | 0..1 | integer | इस प्रमोशन को रैंक असाइन करता है और इसे रैंक के हिसाब से चुनने की सुविधा में ऑप्ट इन करता है. इस सुविधा में, सिर्फ़ सबसे कम रैंक वाले प्रमोशन को लागू करने के लिए चुना जाता है. वैल्यू, 1 से 99 के बीच होनी चाहिए. अगर कई प्रमोशन की रैंक एक जैसी है, तो उनमें से किसी एक को चुनकर लागू कर दिया जाता है. |
| Promotions / HotelPromotions / Promotion / BestDailyDiscount | 1 | Discount |
इसमें रोज़ाना की छूट के बारे में बताया जाता है, जो ठहरने की एक रात पर लागू हो सकती है. यह हर प्रॉपर्टी के लिए, प्रमोशन का एक ऐसा ग्रुप हो सकता है जिसे "हर दिन के लिए सबसे अच्छा" माना जाता है. इसका मतलब है कि हर रात के लिए, "सबसे कम किराये पर हर दिन" वाला एक ऐसा प्रमोशन चुना जाता है जो ज़रूरी शर्तें पूरी करता हो और उस रात के लिए सबसे ज़्यादा छूट देता हो. साथ ही, इसे लागू किया जा सकता है.
इस तरह की छूट के साथ |
| Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float |
यह 0 से 100 के बीच की दशमलव वैल्यू होती है. इससे छूट का प्रतिशत पता चलता है.
यह उदाहरण:
|
| Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float |
यह एक तय रकम होती है, जिसे उदाहरण:
|
| Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float |
अगर उदाहरण:
|
| Promotions / HotelPromotions / Promotion / InventoryCount | 0..1 | InventoryCount | इससे उन कमरों की संख्या पर पाबंदियां तय होती हैं जो इस प्रमोशन को लागू करने के लिए उपलब्ध होने चाहिए. छूट सिर्फ़ उन रातों पर लागू होती है जो शर्त पूरी करती हैं. fixed_amount से मिली छूट के साथ इस्तेमाल नहीं किया जा सकता. ध्यान दें कि उपलब्ध कमरों की संख्या, OTA_HotelInvCountNotifRQ (InvCount) या OTA_HotelAvailNotifRQ (BookingLimit) में से किसी एक के साथ दी जाती है. |
| Promotions / HotelPromotions / Promotion / InventoryCount / @min | 0..1 | integer | कम से कम इतने कमरे उपलब्ध होने चाहिए, ताकि प्रमोशन को एक रात के किराये पर लागू किया जा सके. अगर इसके बारे में जानकारी नहीं दी गई है, तो कोई न्यूनतम सीमा नहीं होती. |
| Promotions / HotelPromotions / Promotion / InventoryCount / @max | 0..1 | integer | प्रमोशन को रात के किराये पर लागू करने के लिए, ज़्यादा से ज़्यादा कितने कमरे उपलब्ध होने चाहिए. अगर इसके बारे में जानकारी नहीं दी गई है, तो कोई ज़्यादा से ज़्यादा सीमा नहीं होती. |
| Promotions / HotelPromotions / Promotion / LengthOfStay | 0..1 | LengthOfStay | इससे यह तय किया जाता है कि किसी व्यक्ति को होटल में कम से कम कितने दिन रुकना होगा, ताकि वह इस प्रमोशन का फ़ायदा पा सके. अगर ठहरने की अवधि, कम से कम और ज़्यादा से ज़्यादा अवधि की सीमा से बाहर है, तो प्रमोशन लागू नहीं होगा. |
| Promotions / HotelPromotions / Promotion / LengthOfStay / @min | 0..1 | integer | प्रमोशन लागू करने के लिए, होटल में कम से कम कितनी रातें ठहरना ज़रूरी है. अगर इसके बारे में जानकारी नहीं दी गई है, तो कोई भी कम से कम वैल्यू नहीं होती. |
| Promotions / HotelPromotions / Promotion / LengthOfStay / @max | 0..1 | integer | प्रमोशन लागू करने के लिए, होटल में ठहरने की ज़्यादा से ज़्यादा रातों की संख्या. अगर इसके बारे में जानकारी नहीं दी गई है, तो कोई ज़्यादा से ज़्यादा सीमा नहीं होती. |
| Promotions / HotelPromotions / Promotion / MembershipRateRule | 0..1 | MembershipRateRule |
यह सदस्यता के लिए तय किए गए शुल्क से जुड़े नियम का कंटेनर है. यह नियम, छूट से जुड़े यूज़र इंटरफ़ेस (यूआई) को ट्रिगर करता है. इस एलिमेंट की वैल्यू तब तक सबमिट नहीं करनी चाहिए, जब तक |
| Promotions / HotelPromotions / Promotion / MembershipRateRule / @id | 1 | string |
सदस्यता कार्यक्रम से जुड़े किराये के नियम का आईडी. |
| Promotions / HotelPromotions / Promotion / MinimumAmount | 0..1 | MinimumAmount | इससे, कमरे के रोज़ के किराये का कम से कम योग तय किया जाता है. इसके लिए, AmountBeforeTax या AmountAfterTax में से ज़्यादा वैल्यू का इस्तेमाल किया जाता है. प्रमोशन लागू करने के लिए, इस योग से ज़्यादा वैल्यू होनी चाहिए. |
| Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount | 1 | integer | वह वैल्यू जिसे पार करने पर प्रमोशन लागू होगा. |
| Promotions / HotelPromotions / Promotion / Occupancy | 0..1 | Occupancy | इससे यह तय किया जाता है कि इस प्रमोशन को किन लोगों पर लागू किया जाएगा. कमरे में मेहमानों की संख्या, कम से कम और ज़्यादा से ज़्यादा सीमा से बाहर होने पर प्रमोशन लागू नहीं होता.
प्रमोशन, यात्रा की योजना के लिए तय किए गए किराये पर लागू होते हैं. हर व्यक्ति के हिसाब से ज़्यादा से ज़्यादा छूट सेट नहीं की जा सकती. |
| Promotions / HotelPromotions / Promotion / Occupancy / @min | 0..1 | integer | किराये में छूट पाने के लिए, उपयोगकर्ता की ओर से बताई गई ऑक्यूपेंसी कम से कम इतनी होनी चाहिए. |
| Promotions / HotelPromotions / Promotion / Occupancy / @max | 0..1 | integer | छूट लागू करने के लिए, उपयोगकर्ता की ओर से बताई गई ऑक्यूपेंसी, इस वैल्यू से ज़्यादा नहीं होनी चाहिए. |
| Promotions / HotelPromotions / Promotion / RatePlans | 0..1 | RatePlans | यह एक कंटेनर है. इसमें उन किराया प्लान की सूची होती है जिन पर प्रमोशन लागू होता है.
अगर <RatePlans> एट्रिब्यूट की वैल्यू नहीं दी गई है, तो प्रमोशन सभी किराया प्लान पर लागू होगा. |
| Promotions / HotelPromotions / Promotion / RatePlans / RatePlan | 1..n | RatePlan | किराये के प्लान के बारे में बताता है. किराया प्लान, पैकेज, किराये, और उपलब्धता के कॉम्बिनेशन से तय होता है. यह जानकारी, लेन-देन (प्रॉपर्टी का डेटा), OTA_HotelRateAmountNotifRQ, और OTA_HotelAvailNotifRQ मैसेज में दी जाती है. साथ ही, इसे PackageID से पहचाना जाता है. |
| Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id | 1 | string | किराया प्लान के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी का डेटा) मैसेज में <PackageData> में मौजूद PackageID वैल्यू पर मैप करती है. साथ ही, यह <OTA_HotelRateAmountNotifRQ> और <OTA_HotelAvailNotifRQ>, दोनों मैसेज में <StatusApplicationControl> में मौजूद RatePlanCode एट्रिब्यूट पर मैप करती है.
ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं. |
| Promotions / HotelPromotions / Promotion / RoomTypes | 0..1 | RoomTypes | कमरे के टाइप की सूची के लिए कंटेनर, जिस पर प्रमोशन लागू होता है.
प्रमोशन, हर <RoomType> पर लागू होता है. अगर <RoomTypes> एट्रिब्यूट की वैल्यू नहीं दी गई है, तो प्रमोशन सभी कमरों पर लागू होगा. |
| Promotions / HotelPromotions / Promotion / RoomTypes / RoomType | 1..n | RoomType | कमरे का टाइप तय करता है. कमरे के टाइप को Transaction (Property Data) मैसेज में मौजूद <RoomData> एलिमेंट में तय किया जाता है. साथ ही, इसे इसकी <RoomID> वैल्यू का इस्तेमाल करके रेफ़र किया जाता है. (इसकी <RoomID> वैल्यू का रेफ़रंस, OTA_HotelRateAmountNotifRQ मैसेज में InvTypeCode एट्रिब्यूट से भी दिया जाता है.) |
| Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id | 1 | string | इन्वेंट्री (कमरे का टाइप) के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी डेटा) मैसेज में <RoomID> पर मैप करती है.
ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं. |
| Promotions / HotelPromotions / Promotion / Stacking | 0..1 | Stacking | इससे पता चलता है कि प्रमोशन को कैसे एक साथ इस्तेमाल किया जा सकता है. अगर "type" एट्रिब्यूट की वैल्यू नहीं दी जाती है, तो इसे base माना जाता है. |
| Promotions / HotelPromotions / Promotion / Stacking / @type | 1 | enum | इस सेटिंग के आधार पर, एक ही किराये पर कई प्रमोशन लागू किए जा सकते हैं:
अनुमति वाले कॉम्बिनेशन में से, प्रमोशन का वह सेट लागू किया जाता है जिससे सबसे ज़्यादा छूट मिलती है. |
| Promotions / HotelPromotions / Promotion / StayDates | 0..1 | StayDates | यह एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर होता है. इससे यह तय होता है कि प्रमोशन कैसे लागू किया जाएगा. जैसे, सीज़नल छूट को शामिल करने के लिए. |
| Promotions / HotelPromotions / Promotion / StayDates / @application | 1 | enum | इससे पता चलता है कि प्रमोशन को कैसे लागू किया जाना चाहिए. मान्य मान हैं:
इस एट्रिब्यूट की वैल्यू हमेशा दी जानी चाहिए.
|
| Promotions / HotelPromotions / Promotion / StayDates / DateRange | 1..99 | DateRange | तारीख की वह सीमा जिसमें प्रमोशन लागू करना है. YearlessDate फ़ॉर्मैट का भी इस्तेमाल किया जा सकता है.
अगर आपको हफ़्ते के कुछ दिनों के लिए |
| Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start | 0..1 | Date or YearlessDate | तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से हमेशा के लिए सेट हो जाती है.
अगर |
| Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end | 0..1 | Date or YearlessDate | तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end तय नहीं की गई है, तो तारीख की सीमा start से आगे तक के लिए तय नहीं की जाती.
अगर |
| Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week | 0..1 | string | तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी जाती है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है. मान्य वर्ण ये हैं:
वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. |
| Promotions / HotelPromotions / Promotion / UserCountries | 0..1 | UserCountries | यह कंटेनर, उन देशों की सूची बनाने के लिए होता है जहां रहने वाले लोग प्रमोशन देख सकते हैं. अगर यह जानकारी दी जाती है, तो सूची में शामिल देशों में रहने वाले सिर्फ़ ज़रूरी शर्तें पूरी करने वाले लोगों को छूट वाली कीमत पर सदस्यता खरीदने का ऑफ़र दिया जाता है. अगर यह जानकारी नहीं दी जाती है, तो किसी भी देश में ज़रूरी शर्तें पूरी करने वाले लोगों को छूट वाली कीमत ऑफ़र की जाती है. |
| Promotions / HotelPromotions / Promotion / UserCountries / @type | 0..1 | enum | UserCountries स्पेसिफ़िकेशन का टाइप.
मान्य वैल्यू अगर UserCountries अगर UserCountries अगर UserCountries |
| Promotions / HotelPromotions / Promotion / UserCountries / Country | 1..300 | Country | इससे उस देश के बारे में पता चलता है जहां के लोग प्रमोशन का फ़ायदा पा सकते हैं. |
| Promotions / HotelPromotions / Promotion / UserCountries / Country / @code | 1 | string | CLDR देश का कोड, जैसे कि DE या FR. ध्यान दें कि कुछ देशों के लिए, CLDR देश का कोड और दो अक्षरों वाला आईएसओ देश का कोड एक जैसा नहीं होता. साथ ही, CLDR के क्षेत्र के कोड इस्तेमाल नहीं किए जा सकते. |
उदाहरण
हर प्रॉपर्टी के लिए, ज़्यादा से ज़्यादा 500 प्रमोशन बनाए जा सकते हैं. किसी प्रॉपर्टी से प्रमोशन हटाने के लिए, "एक प्रमोशन मिटाना" उदाहरण देखें.
बेसिक मैसेज
इस उदाहरण में, एक सामान्य Promotions मैसेज दिखाया गया है:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
<DateRange start="2020-09-01" end="2020-09-30"/>
</BookingDates>
<BookingWindow min="7" max="330"/>
<CheckinDates>
<DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
</CheckoutDates>
<Devices>
<Device type="mobile"/>
<Device type="tablet"/>
</Devices>
<Discount percentage="20" applied_nights="2"/>
<LengthOfStay min="2" max="14"/>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<Stacking type="base"/>
<UserCountries>
<Country code="US"/>
<Country code="GB"/>
</UserCountries>
</Promotion>
</HotelPromotions>
</Promotions>
इन्वेंट्री की स्थिति
यहां दिए गए उदाहरण में, शिपिंग में लगने वाले समय के करीब इन्वेंट्री ज़्यादा होने पर छूट देने का तरीका बताया गया है:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingWindow max="7"/>
<Discount percentage="10"/>
<InventoryCount min="3"/>
</Promotion>
</HotelPromotions>
</Promotions>
एक प्रमोशन मिटाना
यहां दिए गए उदाहरण में, किसी प्रॉपर्टी के लिए एक प्रमोशन मिटाने का तरीका बताया गया है:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1" action="delete"/>
</HotelPromotions>
</Promotions>
सभी प्रमोशन मिटाएं
यहां दिए गए उदाहरण में, किसी प्रॉपर्टी के सभी प्रमोशन मिटाने का तरीका बताया गया है:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>
सभी प्रमोशन ओवरले करें
यहां दिए गए उदाहरण में, एक या उससे ज़्यादा नए प्रमोशन वाली प्रॉपर्टी के लिए, <HotelPromotions> को ओवरले करने का तरीका बताया गया है. action="overlay" होने पर, सेव किए गए सभी प्रमोशन मिटा दिए जाते हैं. इसके बाद, मौजूदा मैसेज में बताए गए प्रमोशन सेव किए जाते हैं:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1" action="overlay">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-09-01" end="2020-09-30"/>
</BookingDates>
<Discount percentage="10"/>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<Stacking type="base"/>
</Promotion>
</HotelPromotions>
</Promotions>
स्टैकिंग के तीन अलग-अलग टाइप
यहां दिए गए उदाहरण में, तीन अलग-अलग प्रमोशन (base, second, any) लागू किए गए हैं. ध्यान दें कि none प्रमोशन लागू नहीं किया गया है, क्योंकि अन्य प्रमोशन में ज़्यादा छूट मिलती है. अगर मूल कीमत 10,000 रुपये थी, तो छूट वाली कीमत 7,290 रुपये होगी.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="10"/>
<Stacking type="base"/>
</Promotion>
<Promotion id="2">
<Discount percentage="10"/>
<Stacking type="second"/>
</Promotion>
<Promotion id="3">
<Discount percentage="10"/>
<Stacking type="any"/>
</Promotion>
<Promotion id="4">
<Discount percentage="25"/>
<Stacking type="none"/>
</Promotion>
</HotelPromotions>
</Promotions>
कोई स्टैकिंग टाइप नहीं
यहां दिए गए उदाहरण में, none प्रमोशन का इस्तेमाल किया गया है, क्योंकि अन्य प्रमोशन के कॉम्बिनेशन से कम छूट मिलती है. अगर मूल कीमत 10,000 रुपये थी, तो छूट के बाद कीमत 7,500 रुपये होगी.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="10"/>
<Stacking type="base"/>
</Promotion>
<Promotion id="2">
<Discount percentage="10"/>
<Stacking type="any"/>
</Promotion>
<Promotion id="3">
<Discount percentage="25"/>
<Stacking type="none"/>
</Promotion>
</HotelPromotions>
</Promotions>
बुकिंग विंडो की अवधि की सीमाएं
इस उदाहरण में, एक ऐसा मामला दिखाया गया है जहां BookingWindow एलिमेंट का इस्तेमाल किया गया है. इसमें, आईएसओ 8601 अवधि के टाइप के तौर पर, इसकी शुरुआत और खत्म होने की सीमाएं तय की गई हैं. बुकिंग विंडो से जुड़ी इस पाबंदी के तहत, मेहमान को पहुंचने से एक दिन पहले शाम 6 बजे तक बुकिंग करनी होगी. साथ ही, उसे पहुंचने से दो दिन पहले दोपहर 12 बजे के बाद बुकिंग करनी होगी.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingWindow min="P1DT6H" max="P2DT12H"/>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
Booking Dates DateTime Bounds
यहां दिए गए उदाहरण में, BookingDates एलिमेंट को start और end एट्रिब्यूट के साथ DateTime टाइप के तौर पर इस्तेमाल करने का तरीका दिखाया गया है. बुकिंग की तारीख से जुड़ी इस पाबंदी के मुताबिक, बुकिंग 1 जुलाई, 2020 को सुबह 6:30 बजे से 2 जुलाई, 2020 को शाम 6:45 बजे के बीच होनी चाहिए.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
</BookingDates>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
साल के बिना तारीख की सीमाएं
यहां दिए गए उदाहरण में, एक ऐसा मामला दिखाया गया है जिसमें CheckInDates एलिमेंट में ऐसे DateRanges शामिल हैं जिनमें साल के बिना start और end फ़ील्ड मौजूद हैं. इस उदाहरण में, प्रमोशन 29/12 से 2/1 के बीच चेक-इन करने की तारीखों पर लागू होता है. इससे कोई फ़र्क़ नहीं पड़ता कि साल कौन सा है. साल के बिना दी गई ऐसी तारीख की सीमाएं अमान्य होती हैं जो नए साल की सीमा को पार करती हैं. इसलिए, DateRange को दो आस-पास की तारीख की सीमाओं के तौर पर दिखाया जाता है.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<CheckInDates>
<DateRange start="12-29" end="12-31"/>
<DateRange start="01-01" end="01-02"/>
</CheckInDates>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
मुफ़्त रातें पाने की छूट
यहां दिए गए उदाहरण में, बुकिंग की तारीखों की तय सीमा के दौरान चार रातों के लिए रुकने पर, दो रातों के लिए 50% की छूट दी गई है. अगर यात्रा दस रात की है, तो चार रातों के लिए 50% की छूट मिलेगी.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2022-01-01" end="2022-05-31"/>
</BookingDates>
<Discount>
<FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
</Discount>
</Promotion>
</HotelPromotions>
</Promotions>
अगले उदाहरण में, ठहरने की तारीखों की तय की गई रेंज के हिसाब से, तीन रातों के लिए ठहरने पर एक रात के किराये में 50% की छूट दी गई है. छूट पाने के लिए, सिर्फ़ उन रातों को गिना जाता है जो एक-दूसरे से ओवरलैप होती हैं. इस यात्रा के लिए, 2022-01-01 को चेक-इन और 2022-01-07 को चेक-आउट करना है. इसलिए, होटल में ठहरने की ज़रूरी रातें और छूट इस तरह लागू होंगी.
- 2022-01-01 (ठहरना)
- 02-01-2022 (ठहरना)
- 2022-01-03
- 2022-01-04 (छूट वाली कीमत)
- 2022-01-05 (ठहरने की अवधि)
- 2022-01-06 (stay)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<StayDates application="overlap">
<DateRange start="2022-01-01" end="2022-01-02"/>
<DateRange start="2022-01-04" end="2022-01-06"/>
</StayDates>
<Discount>
<FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
</Discount>
</Promotion>
</HotelPromotions>
</Promotions>
रैंक के हिसाब से चुनने की सुविधा
यहां दिए गए उदाहरण में, दो छूट दी गई हैं. एक 20% की छूट है और दूसरी 15% की. आकलन के दौरान, सिर्फ़ 15% की छूट लागू की जाती है, क्योंकि इसकी रैंक कम है.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="15" rank="25"/>
</Promotion>
<Promotion id="2">
<Discount percentage="20" rank="50"/>
</Promotion>
</HotelPromotions>
</Promotions>
BestDailyDiscount
यहां दिए गए उदाहरण में, दो रात ठहरने पर छूट दी गई है. इसके लिए, Discount के साथ BestDailyDiscount को स्टैक किया गया है.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="HotelID" action="overlay">
<Promotion id="general">
<BestDailyDiscount fixed_amount="20"/>
</Promotion>
<Promotion id="may">
<BestDailyDiscount fixed_amount="50"/>
<StayDates application="overlap">
<DateRange start="2023-05-01" end="2023-05-31"/>
</StayDates>
</Promotion>
<Promotion id="fiesta">
<Discount fixed_amount_per_night="5"/>
<Stacking type="any"/>
</Promotion>
</HotelPromotions>
</Promotions>
मान लें कि आपको 30 अप्रैल, 2023 से 2 मई, 2023 तक दो रातें रुकना है किराये का हिसाब लगाने के लिए, सबसे पहले हर दिन के लिए सबसे ज़्यादा छूट देने वाले कॉम्बिनेशन का पता लगाया जाता है.
पहली रात के लिए, "सामान्य" प्रमोशन ही मान्य है. इसमें 20% की छूट तय है.
दूसरी रात के लिए, "मई" प्रमोशन में "सामान्य" छूट की तुलना में ज़्यादा छूट दी गई है. इसलिए, "may" चुनने पर, तय की गई छूट की रकम 50 है.
इसके बाद, ठहरने के लिए "फ़िएस्टा" प्रमोशन के तहत, हर रात के लिए 5 डॉलर या कुल 10 डॉलर की छूट मिलती है. इसे सबसे ज़्यादा रोज़ाना छूट वाले ऑफ़र के साथ स्टैक किया जा सकता है, क्योंकि "फ़िएस्टा" के लिए स्टैक करने का टाइप any पर सेट है. अगर इसे base पर सेट किया जाता है, तो हर दिन मिलने वाली सबसे अच्छी छूट या "फ़िएस्टा" छूट का कॉम्बिनेशन ही लागू होता है. ज़्यादा जानकारी के लिए, Stacking का ब्यौरा देखें.
`कुल मिलाकर, होटल में ठहरने के किराये पर 20 + 50 + 10 = 80 रुपये की छूट मिलती है.
जवाब
सिंटैक्स
PromotionsResponse मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues are populated. -->
<Success/>
<Issues>
<Issue code="issue_code"
status="issue_type">
issue_description
</Issue>
</Issues>
</PromotionsResponse>
तत्व और एट्रिब्यूट
PromotionsResponse मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:
| Element / @Attribute | आवृत्तियां | टाइप | ब्यौरा |
|---|---|---|---|
| PromotionsResponse | 1 | Complex element | यह रूट एलिमेंट है. इससे पता चलता है कि प्रमोशन का अनुरोध करने वाला मैसेज मिला है या नहीं. अगर मिला है, तो उसमें कोई समस्या है या नहीं. |
| PromotionsResponse / @timestamp | 1 | DateTime | इस मैसेज को बनाने की तारीख और समय. |
| PromotionsResponse / @id | 1 | string | प्रमोशन से जुड़े मैसेज का यूनीक आइडेंटिफ़ायर. |
| PromotionsResponse / @partner | 1 | string | यह मैसेज किस पार्टनर खाते के लिए है. |
| PromotionsResponse / Success | 0..1 | Success | इससे पता चलता है कि प्रमोशन के मैसेज को बिना किसी चेतावनी, गड़बड़ी या समस्या के प्रोसेस किया गया है.
हर मैसेज में |
| PromotionsResponse / Issues | 0..1 | Issues | यह एक कंटेनर है. इसमें प्रमोशन वाले मैसेज को प्रोसेस करते समय हुई एक या उससे ज़्यादा समस्याओं की जानकारी होती है.
हर मैसेज में |
| PromotionsResponse / Issues / Issue | 1..n | Issue | प्रमोशन के मैसेज को प्रोसेस करते समय मिली किसी चेतावनी, गड़बड़ी या समस्या की जानकारी. इन समस्याओं के बारे में जानकारी, फ़ीड की स्थिति से जुड़ी गड़बड़ी के मैसेज में देखी जा सकती है. |
| PromotionsResponse / Issues / Issue / @code | 1 | integer | समस्या के लिए आइडेंटिफ़ायर. |
| PromotionsResponse / Issues / Issue / @status | 1 | enum | समस्या किस तरह की है. मान्य वैल्यू |
उदाहरण
पुष्टि हो गई
यहां प्रमोशन के मैसेज को प्रोसेस करने के बाद मिला जवाब दिया गया है.
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</PromotionsResponse>
समस्याएं
यहाँ प्रमोशन के मैसेज का जवाब दिया गया है. हालाँकि, गड़बड़ियों की वजह से इसे प्रोसेस नहीं किया गया.
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</PromotionsResponse>