प्रमोशन

खास जानकारी

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

अनुरोध

सिंटैक्स

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, 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" 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>

एलिमेंट और एट्रिब्यूट

प्रमोशन मैसेज में ये एलिमेंट और एट्रिब्यूट होते हैं:

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

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

Promotions / @id 1 string अनुरोध वाले इस मैसेज के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू रिस्पॉन्स वाले मैसेज में दिखती है. a-z, A-Z, 0-9, _ (अंडरस्कोर), और - (डैश) वर्ण इस्तेमाल करने की अनुमति है.
Promotions / @timestamp 1 DateTime यह मैसेज बनाए जाने की तारीख और समय.
Promotions / HotelPromotions 0..n HotelPromotions

किसी प्रॉपर्टी के लिए प्रमोशन. हर प्रमोशन एक ही प्रॉपर्टी पर लागू होता है.

अगर <Stacking> का इस्तेमाल नहीं किया जाता है, तो सबसे ज़्यादा छूट वाला प्रमोशन आपकी बुकिंग पर तब लागू होता है, जब एक से ज़्यादा प्रमोशन ज़रूरी शर्तें पूरी करते हों.

Promotions / HotelPromotions / @hotel_id 1 string प्रॉपर्टी के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू उस होटल आईडी से मेल खानी चाहिए जो होटल सूची फ़ीड के <listing> एलिमेंट में <id> का इस्तेमाल करके बताई गई है. होटल आईडी को Hotel Center में भी शामिल किया गया है.
Promotions / HotelPromotions / @action 0..1 enum

अगर बताया गया है, तो वैल्यू "overlay" होनी चाहिए. वैल्यू "overlay" होने पर, मौजूदा मैसेज में बताए गए प्रमोशन को सेव करने से पहले, सेव किए गए सभी प्रमोशन मिटा दिए जाते हैं.

अगर इसकी जानकारी नहीं दी गई है, तो मौजूदा मैसेज में बताया गया हर प्रमोशन इनमें से एक होगा:

  • Added (अगर सेव किए गए किसी भी प्रमोशन में id मौजूद नहीं है)
  • Updated (अगर सेव किए गए प्रमोशन में id एक ही है)
  • Deleted (अगर सेव किए गए किसी प्रमोशन में id एक जैसा है और मौजूदा मैसेज में बताए गए प्रमोशन के लिए action एट्रिब्यूट की वैल्यू "delete" है)
Promotions / HotelPromotions / Promotion 0..99 Promotion

प्रॉपर्टी के लिए एक प्रमोशन. ध्यान दें कि अगर action="overlay" और <Promotion> नहीं बताई गई है, तो प्रॉपर्टी के सभी प्रमोशन मिटा दिए जाते हैं.

अगर आपको 99 से ज़्यादा प्रमोशन का इस्तेमाल करना है, तो अपने तकनीकी खाता मैनेजर (टीएएम) से संपर्क करें.

Promotions / HotelPromotions / Promotion / @id 1 string प्रमोशन के लिए यूनीक आइडेंटिफ़ायर. ज़्यादा से ज़्यादा 40 वर्ण इस्तेमाल किए जा सकते हैं. इन वर्णों की अनुमति है: a-z, A-Z, 0-9, _ (अंडरस्कोर), - (डैश), और . (पीरियड).
Promotions /HotelPromotions / Promotion / @action 0..1 enum

अगर बताया गया है, तो वैल्यू delete होनी चाहिए. अगर जानकारी नहीं दी गई है और उसी id वाला कोई प्रमोशन सेव नहीं किया गया है, तो यह प्रमोशन सेव किया जाता है. अगर इस बारे में नहीं बताया गया है और उसी id वाला कोई प्रमोशन सेव किया जाता है, तो मौजूदा प्रमोशन अपडेट कर दिया जाता है.

अगर delete बताया गया है, तो उसी id के साथ सेव किया गया प्रमोशन मिटा दिया जाता है. delete का इस्तेमाल करते समय, <Promotion> में कोई चाइल्ड एलिमेंट शामिल न करें. इसके अलावा, delete को <HotelPromotions action="overlay"/> के साथ जोड़ने की अनुमति नहीं है.

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

प्रॉपर्टी के टाइम ज़ोन के हिसाब से, शुरू होने की तारीख या तारीख और समय.

  • start में दी गई तारीख या तारीख, end में बताई गई तारीख या समय से पहले या उसके बराबर होनी चाहिए.
  • अगर start की जानकारी नहीं दी गई है, तो शुरू होने के समय के हिसाब से रेंज की कोई सीमा नहीं है.
  • अगर start को "DD-MM-YYYY" तारीख के तौर पर भरा जाता है, तो इसे तारीख और समय "YYYY-MM-DDT00:00:00" के तौर पर माना जाएगा.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date या DateTime

प्रॉपर्टी के टाइम ज़ोन के हिसाब से, खत्म होने की तारीख या तारीख और समय.

  • end में दी गई तारीख या तारीख, start में बताई गई तारीख या समय के बाद की या उसके बराबर होनी चाहिए.
  • अगर end की जानकारी नहीं दी गई है, तो खत्म होने के समय के हिसाब से रेंज की कोई सीमा नहीं होती है.
  • अगर end को "DD-MM-YYYY" तारीख के तौर पर दिया गया है, तो इसे तारीख और समय "YYYY-MM-DDT23:59:59" के तौर पर माना जाएगा.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

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

मान्य वर्ण हैं:

  • सोमवार का किराया M
  • मंगलवार का T
  • बुधवार का W
  • गुरुवार का H
  • शुक्रवार का F
  • शनिवार का S
  • रविवार का किराया U

वर्णों का कोई भी कॉम्बिनेशन मान्य होता है.

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow उस समयावधि के बारे में बताता है जिसमें बुकिंग, चेक इन करने की तारीख के हिसाब से होनी चाहिए (प्रॉपर्टी के टाइम ज़ोन के आधार पर). उदाहरण के लिए, चेक-इन करने से पहले, बुकिंग विंडो को कम से कम सात दिन के लिए सेट किया जा सकता है. हालांकि, 180 दिनों से ज़्यादा के लिए सेट नहीं किया जा सकता.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration प्रमोशन लागू होने के लिए, चेक-इन से पहले बुकिंग की कम से कम अवधि. अगर यह तय नहीं किया गया है या इसकी वैल्यू 0 है, तो इसकी कोई कम से कम वैल्यू नहीं है.

मान्य वैल्यू टाइप इस तरह हैं:

  • पूरी संख्या: चेक-इन करने की तारीख से पहले के दिनों की संख्या. उदाहरण के लिए, 30 की वैल्यू से पता चलता है कि प्रमोशन, चेक इन करने की तारीख से कम से कम 30 दिन पहले बुकिंग पर लागू होता है.
  • ISO 8601 कुल समय (दिन, घंटे, और मिनट): चेक इन करने की तारीख से पहले दिनों की संख्या (और वैकल्पिक रूप से घंटे/मिनट). उदाहरण के लिए, P30D वैल्यू से पता चलता है कि प्रमोशन सिर्फ़ चेक इन करने की तारीख से कम से कम 30 दिन पहले की बुकिंग पर लागू होता है. P30DT6H की वैल्यू के लिए, पहुंचने से 30 दिन पहले, 18:00 बजे या उससे पहले बुकिंग करना ज़रूरी है.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration प्रमोशन वाला ऑफ़र लागू करने के लिए, चेक-इन से पहले इतने दिनों के अंदर बुकिंग करनी होगी. अगर यह तय नहीं किया गया है या इसकी वैल्यू 0 है, तो तय की गई ज़्यादा से ज़्यादा वैल्यू की सीमा तय नहीं होती है.

मान्य वैल्यू टाइप इस तरह हैं:

  • पूरी संख्या: चेक-इन करने की तारीख से पहले के दिनों की संख्या. उदाहरण के लिए, 30 वैल्यू से पता चलता है कि प्रमोशन सिर्फ़ चेक इन करने की तारीख से 30 दिन पहले की बुकिंग पर लागू होता है.
  • ISO 8601 कुल समय (दिन, घंटे, और मिनट): चेक इन करने की तारीख से पहले दिनों की संख्या (और वैकल्पिक रूप से घंटे/मिनट). उदाहरण के लिए, P30D वैल्यू से पता चलता है कि प्रमोशन सिर्फ़ चेक इन करने की तारीख से 30 दिन पहले की बुकिंग पर लागू होता है. P30DT6H की वैल्यू के लिए, होटल पहुंचने से 30 दिन पहले, 18 बजे या उसके बाद की बुकिंग करना ज़रूरी है.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

इससे प्रमोशन लागू होने के बाद, दर को सेट की जा सकने वाली ज़्यादा से ज़्यादा वैल्यू की सीमा के बारे में पता चलता है.

प्रमोशन में हमेशा एक <Discount> या <BestDailyDiscount> की जानकारी दी जानी चाहिए. इसलिए, ऐसा प्रमोशन बनाने के लिए जो सिर्फ़ <Ceiling> पर लागू होता हो, एक विकल्प यह है कि आप <Discount> को percentage के साथ 0 सेट करें.

अगर स्टैकिंग कॉन्फ़िगर की गई है, तो <Ceiling> के साथ कई प्रमोशन एक ही बार में रुकने के लिए लागू हो सकते हैं. हर प्रमोशन में छूट लागू होगी और उसके तुरंत बाद उसकी सीमा लागू हो जाएगी. इस उदाहरण से पता चलता है कि स्टैक में अगले प्रमोशन कैलकुलेशन के लिए, हर छत का कितना योगदान है.

उदाहरण:

ऐसी स्थिति में 1 रात ठहरने का किराया जहां AmountBeforeTax 100 है और इसमें दो प्रमोशन स्टैक हैं:

  1. ऐसा प्रमोशन जिसमें स्टैकिंग टाइप base, 25 का fixed_amount, और सीलिंग 60 का amount_per_night है
  2. ऐसा प्रमोशन जिसमें स्टैकिंग टाइप second, 25 में से fixed_amount, और 90 में से amount_per_night नंबर पर है

यहां कैलकुलेशन का क्रम दिया गया है:

  1. सबसे पहले, base प्रमोशन लागू किया जाता है और AmountBeforeTax पर, 75 पर छूट लागू की जाती है. हालांकि, बाद में प्रमोशन की संख्या को घटाकर, 60 कर दिया जाता है.
  2. second प्रमोशन में, AmountBeforeTax को 60 से 35 तक की छूट मिलती है. यह 90 की वाली छत से नीचे है, इसलिए दूसरी छत लागू नहीं की जाती है. आखिरी दर 35 है.

हालांकि, 60 ज़्यादा सख्त छत है. इसकी वजह यह है कि यह सिर्फ़ अपने प्रमोशन के लिए मान्य है. साथ ही, पूरे प्रमोशन स्टैक के लिए कोई एक छत नहीं हो सकती.

Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night 1 float

छूट लागू होने के बाद, एक रात का किराया ज़्यादा से ज़्यादा पर सेट किया जा सकता है.

अगर कोई <Floor> एलिमेंट भी दिया गया है, तो इसे <Floor> में मौजूद amount_per_night एट्रिब्यूट से बड़ी या उसके बराबर वैल्यू पर सेट किया जाना चाहिए.

amount_per_night को टैक्स और शुल्क पर तब लागू किया जाता है, जब उन्हें AmountAfterTax का इस्तेमाल करके, रात के किराये में शामिल किया गया हो. हालांकि, टैक्स और शुल्क पर लागू नहीं किया जाता है.

Promotions / HotelPromotions / Promotion / Floor 0..1 Floor

इससे प्रमोशन लागू होने के बाद, उस कम से कम वैल्यू की सीमा तय की जाती है जिस पर दर सेट की जा सकती है.

प्रमोशन में हमेशा एक <Discount> या <BestDailyDiscount> की जानकारी दी जानी चाहिए. इसलिए, ऐसा प्रमोशन बनाने के लिए जो सिर्फ़ <Floor> पर लागू होता हो, एक विकल्प यह है कि आप <Discount> को percentage के साथ 0 सेट करें.

<Floor> वाला लॉजिक अब भी <FreeNights> की छूट पर लागू होता है. भले ही, एक रात के लिए मुफ़्त ऐप्लिकेशन की सुविधा पर 100% की छूट लागू हो.

अगर स्टैकिंग कॉन्फ़िगर की गई है, तो <Floor> के साथ कई प्रमोशन एक ही बार में रुकने के लिए लागू हो सकते हैं. हर प्रमोशन पर छूट लागू होगी और उसके तुरंत बाद उसकी कम से कम कीमत तय होगी. इस उदाहरण से पता चलता है कि स्टैक में अगले प्रमोशन की कैलकुलेशन में हर फ़्लोर का कितना योगदान होता है.

उदाहरण:

ऐसी स्थिति में 1 रात ठहरने का किराया जहां AmountBeforeTax 100 है और इसमें दो प्रमोशन स्टैक हैं:

  1. ऐसा प्रमोशन जिसमें स्टैकिंग टाइप base, 25 का fixed_amount, और 90 में से amount_per_night मंज़िल शामिल है
  2. ऐसा प्रमोशन जिसमें स्टैकिंग टाइप second, 25 में से fixed_amount, और 60 में से amount_per_night फ़्लोर है

यहां कैलकुलेशन का क्रम दिया गया है:

  1. सबसे पहले, base प्रमोशन लागू किया जाता है और AmountBeforeTax को 75 पर छूट दी जाती है. हालांकि, इसके बाद फ़्लोर को बढ़ाकर 90 कर दिया जाता है.
  2. second प्रमोशन में, AmountBeforeTax को 90 से 65 तक की छूट मिलती है. यह 60 वाले फ़्लोर से ऊपर है, इसलिए दूसरा फ़्लोर लागू नहीं होता. फ़ाइनल रेट 65 है.

यह बात सही नहीं है कि 90 सबसे कम लेवल वाला फ़्लोर है. यह सिर्फ़ अपने प्रमोशन के लिए मान्य है. साथ ही, ऐसा कोई प्लैटफ़ॉर्म नहीं हो सकता जो पूरे प्रमोशन स्टैक के लिए हो.

Promotions / HotelPromotions / Promotion / Floor / @amount_per_night 1 float

छूट लागू होने के बाद, एक रात का किराया तय करने के लिए, कम से कम कीमत सेट की जा सकती है.

अगर कोई <Ceiling> एलिमेंट भी दिया गया है, तो इसे <Ceiling> में मौजूद amount_per_night एट्रिब्यूट से कम या उसके बराबर वैल्यू पर सेट किया जाना चाहिए.

amount_per_night को टैक्स और शुल्क पर तब लागू किया जाता है, जब उन्हें AmountAfterTax का इस्तेमाल करके, रात के किराये में शामिल किया गया हो. हालांकि, टैक्स और शुल्क पर लागू नहीं किया जाता है.

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates एक या उससे ज़्यादा तारीख की सीमाओं के लिए एक कंटेनर, जो यह तय करता है कि प्रमोशन लागू करने के लिए चेक-इन कब होना चाहिए.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

तारीख की वह सीमा जिससे तय होता है कि प्रमोशन को लागू करने के लिए, चेक-इन कब करना ज़रूरी है. अगर आप एक या ज़्यादा प्रचार हटा रहे हैं, तो इस तत्व की आवश्यकता नहीं है.

YearlessDate का फ़ॉर्मैट भी इस फ़ॉर्मैट के साथ काम करता है.

  • अगर start या end में से कोई एक साल खत्म होने की तारीख है, तो दोनों को साल भर की तारीखों के तौर पर भरा जाना चाहिए.
  • साल भर की तारीख की सीमाएं, नए साल के आस-पास नहीं होनी चाहिए. इसके बजाय, सीमा को दो निकटतम तारीख की सीमाओं के रूप में दिखाएं. उदाहरण के लिए, {"12-29", "01-05"} को {"12-29", "12-31"} और {"01-01", "01-05"} के तौर पर दिखाया जा सकता है.
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" से पता चलता है कि तारीख की सीमा में, सोमवार से शुक्रवार तक भी इसका इस्तेमाल किया जा सकता है.

मान्य वर्ण हैं:

  • सोमवार का किराया M
  • मंगलवार का T
  • बुधवार का W
  • गुरुवार का H
  • शुक्रवार का F
  • शनिवार का S
  • रविवार का किराया U

वर्णों का कोई भी कॉम्बिनेशन मान्य होता है.

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates एक या उससे ज़्यादा तारीख की सीमाओं के लिए एक कंटेनर, जो यह तय करता है कि प्रमोशन लागू करने के लिए, चेक-आउट कब होना चाहिए.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

तारीख की वह सीमा जिससे तय होता है कि प्रमोशन को लागू करने के लिए, चेक-आउट कब करना होगा. अगर आप एक या ज़्यादा प्रचार हटा रहे हैं, तो इस तत्व की आवश्यकता नहीं है.

YearlessDate का फ़ॉर्मैट भी इस फ़ॉर्मैट के साथ काम करता है.

  • अगर start या end में से कोई एक साल खत्म होने की तारीख है, तो दोनों को साल भर की तारीखों के तौर पर भरा जाना चाहिए.
  • साल भर की तारीख की सीमाएं, नए साल के आस-पास नहीं होनी चाहिए. इसके बजाय, सीमा को दो निकटतम तारीख की सीमाओं के रूप में दिखाएं. उदाहरण के लिए, {"12-29", "01-05"} को {"12-29", "12-31"} और {"01-01", "01-05"} के तौर पर दिखाया जा सकता है.
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" से पता चलता है कि तारीख की सीमा में, सोमवार से शुक्रवार तक भी इसका इस्तेमाल किया जा सकता है.

मान्य वर्ण हैं:

  • सोमवार का किराया M
  • मंगलवार का T
  • बुधवार का W
  • गुरुवार का H
  • शुक्रवार का F
  • शनिवार का S
  • रविवार का किराया U

वर्णों का कोई भी कॉम्बिनेशन मान्य होता है.

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

Discount या BestDailyDiscount में से सिर्फ़ एक के बारे में बताना ज़रूरी है.

इस प्रमोशन पर लागू होने वाली छूट की जानकारी देता है.

Promotions / HotelPromotions / Promotion / Discount / @percentage 0..1 float

percentage, fixed_amount, fixed_amount_per_night, fixed_price या fixed_price_per_night में से सिर्फ़ एक ज़रूरी है.

0 से 100 के बीच की दशमलव वैल्यू, जो छूट का प्रतिशत बताती है. यह AmountAfterTax पर लागू होता है. अगर AmountAfterTax नहीं है, तो AmountBeforeTax पर लागू होता है.

उदाहरण:

  • अगर AmountAfterTax, 100 है और percentage, 20 है, तो

    प्रमोशन की दर = AmountAfterTax * (1 - प्रतिशत छूट)

    80.00 = 100 * (1 - 0.2)

  • अगर AmountBeforeTax, 100 है, percentage का 20 है और टैक्सFeeInfo, 10 का टैक्स तय करता है, तो

    प्रमोशन की दर = AmountBeforeTax * (1 - प्रतिशत में छूट) + टैक्स

    90.00 = 100 * (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

percentage, fixed_amount, fixed_amount_per_night, fixed_price या fixed_price_per_night में से सिर्फ़ एक ज़रूरी है.

एक तय कीमत को, AmountAfterTax के हर रात के किराये के जोड़ से घटाया जाएगा. अगर AmountAfterTax की जानकारी नहीं दी गई है, तो एक रात के किराये का योग AmountBeforeTax होना चाहिए. यह माना जाता है कि यह कीमत उसी मुद्रा में है जो रात के किराये की है. अगर यह हर रात के लिए किराये के कुल किराये से ज़्यादा है, तो नतीजे के तौर पर मिलने वाली वैल्यू शून्य होती है.

उदाहरण:

  • अगर हम एक रात ठहरने का किराया तय कर रहे हैं, जहां AmountBeforeTax का किराया 90, AmountAfterTax का 100, और fixed_amount का किराया 20 है, तो

    प्रमोशन की दर = AmountAfterTax - तय छूट

    80.00 = 100 - 20

  • अगर हम एक रात ठहरने का किराया तय कर रहे हैं, जहां AmountBeforeTax का किराया 100 है, fixed_amount का किराया 20 है, और TaxFeeInfo ने 8% टैक्स लिया है, तो

    प्रमोशन की दर = (AmountBeforeTax - तय छूट) * (1 + टैक्स का प्रतिशत)

    86.40 = (100 - 20) * 1.08

  • अगर हम एक रात ठहरने का किराया तय कर रहे हैं, जहां AmountBeforeTax का किराया 50 है, fixed_amount का किराया 60 है और TaxFeeInfo का टैक्स 10 है, तो

    प्रमोशन की दर = (AmountBeforeTax - तय छूट) * टैक्स

    10.00 = 0 + 10

  • अगर हम तीन रातों के लिए कमरा बुक करने की बात कर रहे हैं, तो AmountAfterTax की वैल्यू 100, 110, और 120 है; और fixed_amount 150 है, तो

    प्रमोशन रेट = कुल(AmountAfterTax) - (तय छूट)

    180.00 = (100 + 110 + 120) - 150

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night 0..1 float

percentage, fixed_amount, fixed_amount_per_night, fixed_price या fixed_price_per_night में से सिर्फ़ एक ज़रूरी है.

हर रात के लिए AmountAfterTax के किराये पर तय छूट लागू होती है. अगर applied_nights की जानकारी दी गई है, तो सबसे सस्ता किराया N होता है. अगर AmountAfterTax के बारे में तय नहीं किया गया है, तो यह AmountBeforeTax पर लागू होता है. यह माना जाता है कि यह कीमत उसी मुद्रा में है जो रात के किराये की है. अगर fixed_amount_per_night का एक रात का किराया, किराये से ज़्यादा है, तो उस किराये को घटाकर शून्य कर दिया जाता है. छूट की वजह से, एक रात के लिए किराये की नेगेटिव वैल्यू नहीं होनी चाहिए.

उदाहरण:

  • अगर हम तीन रातों के लिए कमरा बुक करने की बात कर रहे हैं, तो AmountAfterTax की वैल्यू 100, 110, और 120 है; और fixed_amount_per_night 10 है, तो

    प्रमोशन की दर = कुल(AmountBeforeTax - तय रकम की छूट)

    300.00 = ((100 - 10) + (110 - 10) + (120 - 10))

  • अगर हम तीन रातों के लिए कमरा बुक करने की बात कर रहे हैं, तो AmountAfterTax की वैल्यू 10, 50, और 100 है; और fixed_amount_per_night 20 है, तो

    प्रमोशन की दर = कुल(AmountAfterTax - तय रकम की छूट)

    110.00 = (0 + (50 - 20) + (100 - 20))

Promotions / HotelPromotions / Promotion / Discount / @fixed_price 0..1 float

percentage, fixed_amount, fixed_amount_per_night, fixed_price या fixed_price_per_night में से सिर्फ़ एक ज़रूरी है.

अगर एक रात का किराया AmountAfterTax बताया गया है, तो इससे ठहरने का किराया, टैक्स और शुल्कों के साथ किसी खास वैल्यू पर सेट हो जाता है. अगर AmountBeforeTax की जानकारी दी गई है, तो AmountAfterTax की जानकारी दी गई है या नहीं, इससे तय वैल्यू पर ठहरने के लिए, टैक्स से पहले की कीमत सेट हो जाती है. यह माना जाता है कि यह कीमत उसी मुद्रा में है जो रात के किराये की है.

अगर AmountAfterTax को टैक्स के प्रतिशत के हिसाब से बनाया गया है, तो AmountBeforeTax के लिए तय कीमत सेट करने पर, टैक्स और शुल्क की गलत जानकारी मिल सकती है. आम तौर पर, प्रॉपर्टी के टैक्स और शुल्क की जानकारी देने के लिए, TaxFeeInfo का इस्तेमाल करने का सुझाव दिया जाता है.

उदाहरण:

  • अगर हम एक रात ठहरने का किराया तय कर रहे हैं, जिसमें AmountBeforeTax की वैल्यू 90 है, AmountAfterTax की वैल्यू 100, और fixed_price की वैल्यू 80 है, तो प्रमोशन की दर 80 होगी.
  • अगर हम एक रात ठहरने का किराया तय कर रहे हैं, जहां AmountBeforeTax का किराया 100 है, fixed_amount का किराया 80 है, और TaxFeeInfo ने 8% टैक्स लिया है, तो

    प्रमोशन की दर = तय कीमत * (1 + टैक्स का प्रतिशत)

    86.40 = 80 * 1.08

  • अगर हम तीन रातों के लिए कमरा बुक करने की बात कर रहे हैं, तो AmountAfterTax की वैल्यू 100, 110, और 120 है; और fixed_amount 300 है, तो

    प्रमोशन की दर = 300

Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night 0..1 float

percentage, fixed_amount, fixed_amount_per_night, fixed_price या fixed_price_per_night में से सिर्फ़ एक ज़रूरी है.

अगर एक रात का किराया AmountAfterTax बताया गया है, तो इससे टैक्स और शुल्कों के साथ-साथ, ठहरने की हर रात के लिए, बताई गई वैल्यू पर सेट हो जाता है. अगर AmountBeforeTax बताया गया है, तो AmountAfterTax की जानकारी दी गई है या नहीं, इससे टैक्स से पहले की हर रात के लिए, बताई गई वैल्यू पर सेट हो जाता है. यह माना जाता है कि यह उसी मुद्रा में है जिसमें रात का किराया है.

अगर AmountAfterTax को टैक्स के प्रतिशत के हिसाब से बनाया गया है, तो AmountBeforeTax के लिए तय कीमत सेट करने पर, टैक्स और शुल्क की गलत जानकारी मिल सकती है. आम तौर पर, प्रॉपर्टी के टैक्स और शुल्क की जानकारी देने के लिए, TaxFeeInfo का इस्तेमाल करने का सुझाव दिया जाता है.

अगर applied_nights बताया गया है, तो सबसे कम किराये वाली N रातों के लिए नया किराया लागू होता है.

उदाहरण:

  • अगर हम दो रात ठहरने का किराया तय कर रहे हैं और AmountBeforeTax की वैल्यू 90, 90; AmountAfterTax की वैल्यू 100, 100, और fixed_price 80 है, तो प्रमोशन रेट 80 + 80 = 160 होगा.
  • अगर हम दो रातों के लिए कमरा बुक करने की बात कर रहे हैं, जिसमें AmountBeforeTax की वैल्यू 100, 100 है; fixed_amount 80 है और TaxFeeInfo में 8% टैक्स का पता चलता है, तो प्रमोशन की दर (80 + 80) * 1.08 = 172.8 होगी.
  • अगर हम तीन रातों तक ठहरने का किराया तय कर रहे हैं और AmountAfterTax की वैल्यू 100, 110, और 120 है; और fixed_amount की वैल्यू 110 है, तो प्रमोशन रेट 110 * 3 = 330 होगा.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

इसका इस्तेमाल सिर्फ़ percentage या fixed_amount_per_night के साथ किया जाना चाहिए.

उन रातों की संख्या जिनमें छूट लागू है. सबसे सस्ती फ़्लाइट से शुरू होने वाली छूट. 1 से 99 के बीच का कोई पूर्णांक होना चाहिए. अगर बताया नहीं गया है, तो सभी रातों के लिए छूट लागू होगी.

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights इससे, ठहरने की कुछ रातों के लिए छूट तय की जाती है. ऐसा तब होता है, जब ठहरने की कम से कम अवधि पूरी होती है. अगर इस एलिमेंट का इस्तेमाल किया जाता है, तो पैरंट Discount एलिमेंट पर एट्रिब्यूट की अनुमति नहीं है.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

छूट पाने के लिए ज़रूरी रातों की संख्या. हर छूट, ठहरने के लिए एक अलग दिन पर लागू होती है.

उदाहरण के लिए, अगर 10 रात ठहरने के लिए stay_nights, 4 है (और repeats है), तो वहां ठहरने के दो सेगमेंट होते हैं: पहली से चौथी रातों और पांचवीं से आठवीं रातों तक; नौवीं और 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

रात में ठहरने के एक से ज़्यादा सेगमेंट पर छूट लागू हो सकती है या नहीं. अगर false है, तो यात्रा की शुरुआत में ठहरने की अवधि के दौरान ही छूट मिलेगी. अगर true है, तो ठहरने के लिए चुनी गई रातों के लिए बुक किए गए किसी भी सेगमेंट पर छूट मिलेगी.

उदाहरण के लिए, अगर stay_nights, 4 है और यात्रा की योजना 10 रातों की है, तो अगर repeats true है, तो दो सेगमेंट पर छूट मिलेगी (एक से 4 रात और 5 से 8 रातें). अगर repeats false है, तो सिर्फ़ एक सेगमेंट पर छूट दी जाएगी (1 से 4 रात के लिए).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer इस प्रमोशन को एक रैंक असाइन करता है और इसे रैंक के हिसाब से चुनता है, जहां सबसे कम रैंक वाले प्रमोशन को ही लागू किया जाता है. वैल्यू 1 से 99 के बीच होनी चाहिए. इसमें ये दोनों भी शामिल हैं. अगर एक ही रैंक वाले कई प्रमोशन हैं, तो किसी एक प्रमोशन को मनचाहे तरीके से चुना जाता है और लागू किया जाता है.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

Discount या BestDailyDiscount में से सिर्फ़ एक के बारे में बताना ज़रूरी है.

इससे एक दिन की छूट के बारे में पता चलता है, जो ठहरने की रात पर लागू हो सकती है. इसके उलट, Discount के मामले में, होटल में ठहरने की पूरी अवधि पर छूट लागू होती है.

हर प्रॉपर्टी में प्रमोशन का एक ही ग्रुप हो सकता है, जिसे "हर दिन के लिए सबसे अच्छा" माना जाता है. इसका मतलब है कि ठहरने की हर रात के लिए, एक ही "रोज़ का सबसे अच्छा" प्रमोशन चुना जाता है जो ज़रूरी शर्तों को पूरा करता हो और उस रात के लिए सबसे ज़्यादा छूट देता हो. इसे लागू किया जा सकता है.

हो सकता है कि Stacking को BestDailyDiscount के साथ न बताया गया हो. "हर दिन के हिसाब से सबसे बढ़िया" छूट को मिलाकर, हर रात के लिए सबसे ज़्यादा छूट दी जाती है.इसे एक साथ ठहरने पर मिलने वाली छूट (यानी Discount) माना जाता है. इसमें स्टैकिंग टाइप base पर सेट होता है. इस कुल छूट की तुलना, इस छूट के साथ की जाती है और इसे ज़रूरी शर्तें पूरी करने वाले <Discount> के अन्य प्रमोशन के साथ रखा जा सकता है. इससे, सबसे ज़्यादा छूट देने वाले किसी एक या एक कॉम्बिनेशन को खोजा जा सकता है. कीमत को कम करने के लिए, BestDailyDiscount या एक Discount का कॉम्बिनेशन चुना जाता है और base स्टैकिंग टाइप पर लागू किया जाता है.

इस तरह की छूट StayDates के साथ दी जा सकती है, लेकिन application को overlap पर सेट किया जाना चाहिए

.
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage 0..1 float

percentage, fixed_amount या fixed_price में से सिर्फ़ एक ज़रूरी है.

0 से 100 के बीच की दशमलव वैल्यू, जो छूट का प्रतिशत बताती है. यह AmountAfterTax पर लागू होता है. अगर AmountAfterTax नहीं है, तो AmountBeforeTax पर लागू होता है.

उदाहरण:

  • अगर एक रात ठहरने के लिए AmountAfterTax का मान 100 है और percentage का मान 20 है, तो

    प्रमोशन की दर = AmountAfterTax * (1 - प्रतिशत छूट)

    80.00 = 100 * (1 - 0.2)

  • अगर ठहरने की कुल अवधि के लिए AmountBeforeTax का मान 100 है, percentage का मान 20 है और TaxFeeInfo का टैक्स 10 है, तो

    प्रमोशन की दर = AmountBeforeTax * (1 - प्रतिशत में छूट) + टैक्स

    90.00 = 100 * (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount 0..1 float

percentage, fixed_amount या fixed_price में से सिर्फ़ एक ज़रूरी है.

एक रात के लिए किराया AmountAfterTax में से घटाने के लिए तय की गई रकम. अगर AmountAfterTax नहीं बताया गया है, तो एक रात का किराया AmountBeforeTax है. यह माना जाता है कि यह कीमत उसी मुद्रा में है जो रात के किराये की है. अगर यह हर रात के लिए किराये के कुल किराये से ज़्यादा है, तो नतीजे के तौर पर मिलने वाली वैल्यू शून्य होती है.

उदाहरण:

  • अगर एक रात के लिए AmountBeforeTax का मान 90 है, AmountAfterTax 100 है, और fixed_amount 20 है, तो

    प्रमोशन की दर = AmountAfterTax - तय छूट

    80.00 = 100 - 20

  • अगर एक रात के लिए AmountBeforeTax का मान 100 है, fixed_amount का मान 20 है और TaxFeeInfo ने 8% का टैक्स बताया है, तो

    प्रमोशन की दर = (AmountBeforeTax - तय छूट) * (1 + टैक्स का प्रतिशत)

    86.40 = (100 - 20) * 1.08

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price 0..1 float

percentage, fixed_amount या fixed_price में से सिर्फ़ एक ज़रूरी है.

अगर एक रात का किराया AmountAfterTax बताया गया है, तो इससे टैक्स और शुल्कों के साथ-साथ, रात में ठहरने का किराया, बताई गई वैल्यू पर सेट हो जाता है. अगर AmountBeforeTax की जानकारी दी गई है, तो AmountAfterTax की जानकारी दी गई है या नहीं, इससे तय वैल्यू पर ठहरने के लिए, टैक्स से पहले की कीमत सेट हो जाती है. यह माना जाता है कि यह कीमत उसी मुद्रा में है जो रात के किराये की है.

उदाहरण:

  • अगर एक रात के लिए AmountBeforeTax, 90, AmountAfterTax 100, और fixed_price 80 है, तो प्रमोशन रेट 80 होगा.
  • अगर एक रात के लिए AmountBeforeTax का मान 100 है, fixed_amount का मान 80 है और TaxFeeInfo ने 8% का टैक्स बताया है, तो

    प्रमोशन की दर = तय कीमत * (1 + टैक्स का प्रतिशत)

    86.40 = 80 * 1.08

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

सदस्यता दर के नियम के लिए कंटेनर, जो इससे जुड़ी छूट के लिए खास यूज़र इंटरफ़ेस (यूआई) ट्रीटमेंट को ट्रिगर करता है.

इस एलिमेंट को तब तक नहीं बताया जाना चाहिए, जब तक <Discount> के बारे में नहीं बताया गया हो.

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 इससे पता चलता है कि कमरा किस तरह का है. रूम का टाइप, लेन-देन (प्रॉपर्टी का डेटा) मैसेज में मौजूद <RoomData> एलिमेंट में बताया जाता है और इसकी <RoomID> वैल्यू का इस्तेमाल करके रेफ़रंस दिया जाता है. (इसकी <RoomID> वैल्यू को OTA_HotelRateAmountNotifRQ मैसेज में InvTypeCode एट्रिब्यूट से भी रेफ़र किया जाता है.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string इन्वेंट्री के लिए यूनीक आइडेंटिफ़ायर (कमरे का टाइप). यह वैल्यू, लेन-देन (प्रॉपर्टी का डेटा) वाले मैसेज में <RoomID> से मैप होती है. ज़्यादा से ज़्यादा 50 वर्ण डाले जा सकते हैं.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking इससे पता चलता है कि प्रमोशन को एक साथ कैसे जोड़ा जा सकता है. अगर इस बारे में जानकारी नहीं दी गई है, तो "टाइप" को base माना जाता है.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

इस सेटिंग के आधार पर, एक दर पर कई प्रमोशन लागू किए जा सकते हैं:

  • any: इसे none को छोड़कर, किसी दूसरे प्रमोशन के साथ जोड़ा जा सकता है. हालांकि, इस बात की कोई गारंटी नहीं है कि प्रमोशन किस क्रम में लागू होंगे.
  • base: ज़रूरी शर्तें पूरी करने वाला सबसे सही base वाला प्रमोशन चुना जाता है और उसे लागू किया जाता है, जबकि दूसरे प्रमोशन से पहले उसे लागू किया जाता है. पहले इसका नाम base_only था.
  • second: सबसे ज़रूरी शर्तें पूरी करने वाला second प्रमोशन, base प्रमोशन (अगर लागू हो) के बाद और any प्रमोशन से पहले चुना और लागू किया जाता है.
  • none: इसे दूसरे प्रमोशन के साथ नहीं जोड़ा जा सकता.

मंज़ूर किए गए कॉम्बिनेशन में से, सबसे ज़्यादा छूट देने वाले प्रमोशन के सेट पर, दर लागू की जाती है.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates एक या उससे ज़्यादा तारीख की सीमाओं के लिए कंटेनर, जिससे यह तय होता है कि प्रमोशन कैसे लागू किया जाएगा. जैसे, सीज़न के मुताबिक मिलने वाली छूट के ऑफ़र शामिल करना.
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

यह बताता है कि प्रमोशन कैसे लागू किया जाना चाहिए.

मान्य मान हैं:

  • all: यात्रा की योजना में हर रात के लिए प्रमोशन लागू होता है. हालांकि, ऐसा तब होता है, जब यात्रा की योजना में मौजूद सभी तारीखें और ठहरने की तारीखें एक साथ हों.
  • any: अगर यात्रा की योजना की कोई तारीख, ठहरने की तारीखों की सीमा की किसी तारीख से ओवरलैप करती है, तो यात्रा की योजना में सभी रातों के लिए प्रमोशन लागू होता है.
  • overlap: यात्रा की योजना में सिर्फ़ उन रातों के लिए प्रमोशन लागू होता है जो ठहरने की तारीखों की सीमा में बताई गई तारीख से ओवरलैप करती हैं.

इस एट्रिब्यूट की वैल्यू हमेशा बताना ज़रूरी है.

  • अगर <Discount> में percentage की जानकारी दी गई है और application को all या any पर सेट किया गया है, तो छूट, ठहरने की कुल अवधि के प्रतिशत के तौर पर लागू होगी.
  • अगर <Discount> में percentage की जानकारी दी गई है और application को overlap पर सेट किया गया है, तो ओवरलैप होने वाली रातों के लिए, एक रात के किराये के प्रतिशत के तौर पर छूट लागू होगी.
  • fixed_amount की जानकारी देने वाला <Discount> और overlap पर सेट किया गया application अमान्य कॉम्बिनेशन है.
  • <FreeNights> में, application की सभी वैल्यू इस्तेमाल की जा सकती हैं. ध्यान दें कि overlap के लिए, छूट की ज़रूरी शर्तों के हिसाब से सिर्फ़ एक तय अवधि तक ठहरने की अवधि को माना जाता है.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

तारीख की वह सीमा जिसमें प्रमोशन लागू होने की तारीखें होती हैं.

YearlessDate का फ़ॉर्मैट भी इस फ़ॉर्मैट के साथ काम करता है.

  • अगर start या end में से कोई एक साल खत्म होने की तारीख है, तो दोनों को साल भर की तारीखों के तौर पर भरा जाना चाहिए.
  • साल भर की तारीख की सीमाएं, नए साल के आस-पास नहीं होनी चाहिए. इसके बजाय, सीमा को दो निकटतम तारीख की सीमाओं के रूप में दिखाएं. उदाहरण के लिए, {"12-29", "01-05"} को {"12-29", "12-31"} और {"01-01", "01-05"} के तौर पर दिखाया जा सकता है.
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 नहीं दिया गया है, तो खत्म होने की तारीख के हिसाब से तारीख की सीमा की सीमा नहीं होती है.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 string

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

मान्य वर्ण हैं:

  • सोमवार का किराया M
  • मंगलवार का T
  • बुधवार का W
  • गुरुवार का H
  • शुक्रवार का F
  • शनिवार का S
  • रविवार का किराया U

वर्णों का कोई भी कॉम्बिनेशन मान्य होता है.

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries ऐसा कंटेनर जिसमें उपयोगकर्ता की उन जगहों (देशों) की सूची दी गई हो जिन्हें प्रमोशन के लिए मंज़ूरी मिली है. अगर बताया गया हो, तो छूट वाली कीमत पर सूची में दिए गए देशों के सिर्फ़ उन उपयोगकर्ताओं को छूट दी जाती है जो ज़रूरी शर्तें पूरी करते हैं. अगर इसके बारे में नहीं बताया गया है, तो किसी भी देश में ज़रूरी शर्तें पूरी करने वाले उपयोगकर्ताओं को छूट वाली कीमत पर ऑफ़र किया जाएगा.
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum उपयोगकर्ता देश के स्पेसिफ़िकेशन का टाइप.

मान्य वैल्यू include और exclude हैं.

अगर उपयोगकर्ता के देश type को include के तौर पर सेट किया गया है, तो सूची में दिए गए देशों के उपयोगकर्ताओं पर प्रमोशन लागू होगा.

अगर उपयोगकर्ता के देश का नाम type exclude है, तो सूची में शामिल देशों के बाहर के उपयोगकर्ताओं के लिए यह प्रमोशन लागू होगा.

अगर उपयोगकर्ता देश type सेट नहीं है, तो उसे include माना जाता है. साथ ही, सूची में शामिल देशों के उपयोगकर्ताओं पर प्रमोशन लागू होता है.

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country उस देश के बारे में बताता है जहां उपयोगकर्ता, प्रमोशन की ज़रूरी शर्तें पूरी करते हैं.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string CLDR देश का कोड, जैसे कि DE या FR. ध्यान दें कि कुछ देशों में, CLDR और देश का कोड, दो अक्षरों वाले आईएसओ देश के कोड से अलग है. इसके अलावा, CLDR क्षेत्र कोड का भी इस्तेमाल नहीं किया जा सकता.

उदाहरण

बुनियादी मैसेज

इस उदाहरण में, 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 का प्रमोशन लागू नहीं होगा, क्योंकि अन्य प्रमोशन से बेहतर छूट मिलती है. अगर मूल कीमत 100 डॉलर थी, तो छूट वाली कीमत 72.90 डॉलर होगी.

<?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 प्रमोशन का इस्तेमाल किया गया है. ऐसा इसलिए, क्योंकि अन्य प्रमोशन को एक साथ इस्तेमाल करने पर, कम छूट मिलती है. अगर प्रॉडक्ट की मूल कीमत 100 डॉलर थी, तो छूट वाली कीमत 75 डॉलर होगी.

<?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 एलिमेंट का इस्तेमाल, ISO 8601 अवधि के टाइप के तौर पर तय की गई शुरुआती और आखिरी सीमाओं के साथ किया जाता है. इस पाबंदी की वजह से, होटल पहुंचने से एक दिन पहले 18:00 बजे या उससे पहले बुकिंग करनी होगी. साथ ही, आने से पहले दूसरे दिन, रात 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>


बुकिंग की तारीख और समय की सीमाएं

इस उदाहरण में दिखाया गया है कि BookingDates एलिमेंट का इस्तेमाल start और end एट्रिब्यूट के साथ DateTime टाइप के तौर पर किया गया है. बुकिंग की तारीख से जुड़ी इस पाबंदी के लिए, 01-07-2020 को 06:30 बजे से 02-07-2020 को 18: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 और 1/2 के बीच की चेक-इन तारीखों पर लागू होता है, भले ही साल कोई भी हो. साल-दर-साल तारीख की ऐसी सीमाएं अमान्य होती हैं जो नए साल की सीमा को पार करती हैं. इसलिए, 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>



FreeNights में छूट

यहां दिए गए उदाहरण में, बुकिंग की बताई गई तारीखों के हिसाब से चार रातों के लिए कमरा बुक करने पर, दो रातों के लिए 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% की छूट दी गई है. छूट पाने के लिए, सिर्फ़ उन रातों के लिए बुकिंग की जा सकती है जिनमें एक ही रात ठहरने का समय शामिल है. इस यात्रा की योजना के लिए, 01-01-2022 को चेक-इन और 07-01-2022 को चेक-आउट करने के साथ-साथ, ठहरने की तय रातों और छूट की जानकारी इस तरह से लागू होगी.

  • 01-01-2022 (ठहरें)
  • 02-01-2022 (ठहरें)
  • 2022-01-03
  • 04-01-2022 (छूट दी गई)
  • 05-01-2022 (ठहरें)
  • 06-01-2022 (ठहरें)
<?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 रुपये की छूट मिलेगी.

दूसरी रात के लिए, "सामान्य" छूट के मुकाबले "हो सकता है" प्रमोशन ज़्यादा छूट देता है. इसलिए, जब "मई" चुना जाता है, तो तय छूट की रकम 50 होती है.

इसके बाद, "त्योहार" के प्रमोशन के लिए होटल में एक रात के हिसाब से पांच या कुल 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 मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल हैं:

एलिमेंट / @एट्रिब्यूट दोहराए जाने की संख्या टाइप कंपनी का ब्यौरा
PromotionsResponse 1 Complex element वह रूट एलिमेंट जो प्रमोशन के अनुरोध वाले मैसेज की सफलता या समस्याओं के बारे में बताता है.
PromotionsResponse / @timestamp 1 DateTime यह मैसेज बनाए जाने की तारीख और समय.
PromotionsResponse / @id 1 string प्रमोशन से जुड़े मैसेज में मौजूद यूनीक आइडेंटिफ़ायर.
PromotionsResponse / @partner 1 string इस मैसेज को भेजने के लिए पार्टनर का खाता.
PromotionsResponse / Success 0..1 Success इससे पता चलता है कि प्रमोशन वाले मैसेज को बिना किसी चेतावनी, गड़बड़ी या गड़बड़ी के प्रोसेस किया गया था.

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

PromotionsResponse / Issues 0..1 Issues प्रचार मैसेज को प्रोसेस करते समय एक या ज़्यादा समस्याओं का कंटेनर.

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

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

किस तरह की समस्या का सामना करना पड़ा.

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

उदाहरण

पुष्टि हो गई

यह मैसेज, प्रोसेस हो चुके प्रमोशन मैसेज का जवाब है.

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