प्रमोशन

खास जानकारी

इस एपीआई की मदद से, संभावित छूट के बारे में बताया जा सकता है. बताए गए प्रमोशन में से, 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>

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

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

एलिमेंट / @Attribute दोहराए जाने की संख्या टाइप ब्यौरा
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 से ज़्यादा प्रमोशन का इस्तेमाल करना है, तो अपने तकनीकी खाता मैनेजर (TAM) से संपर्क करें.

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> में कोई भी चाइल्ड एलिमेंट शामिल न करें. साथ ही, <HotelPromotions action="overlay"/> के साथ delete की अनुमति नहीं है.

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 में "YYYY-MM-DD" तारीख के रूप में अपने-आप जानकारी भरी जाती है, तो इसे तारीख और समय "YYYY-MM-DDT00:00:00" के तौर पर माना जाएगा.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date या DateTime

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

  • end में दी गई तारीख या तारीख और समय, start में दी गई तारीख या तारीख के बाद का होना चाहिए या उसके बाद का होना चाहिए.
  • अगर end की जानकारी नहीं दी गई है, तो खत्म होने के समय के हिसाब से यह सीमा अनलिमिटेड है.
  • अगर end तारीख "YYYY-MM-DD" के तौर पर दी गई है, तो इसे तारीख और समय "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 वह समयावधि बताती है जब बुकिंग, चेक इन करने की तारीख (प्रॉपर्टी के समय क्षेत्र के आधार पर) के हिसाब से होनी चाहिए. उदाहरण के लिए, चेक इन करने से पहले, बुकिंग विंडो को कम से कम 7 दिन पर सेट किया जा सकता है. हालांकि, इसे 180 दिन से ज़्यादा समय के लिए सेट नहीं किया जा सकता.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration प्रमोशन लागू करने के लिए, चेक-इन करने से पहले की कम से कम अवधि, जो बुकिंग के लिए ज़रूरी है. अगर इसका कोई ज़िक्र नहीं किया गया है या इसकी वैल्यू 0 है, तो कोई कम से कम सीमा नहीं है.

मान्य वैल्यू टाइप ये हैं:

  • पूरी संख्या: चेक इन करने की तारीख से पहले के दिनों की संख्या. उदाहरण के लिए, 30 की वैल्यू से पता चलता है कि प्रमोशन, सिर्फ़ चेक इन करने की तारीख से कम से कम 30 दिन पहले की बुकिंग पर लागू होता है.
  • ISO 8601 कुल समय (दिन, घंटे, और मिनट): चेक इन करने की तारीख से पहले दिनों की संख्या (और वैकल्पिक तौर पर घंटे/मिनट). उदाहरण के लिए, P30D वैल्यू से पता चलता है कि प्रमोशन, सिर्फ़ चेक इन करने की तारीख से कम से कम 30 दिन पहले की बुकिंग पर लागू होता है. P30DT6H की वैल्यू के तौर पर, फ़्लाइट पहुंचने के 30 दिन पहले, रात 18 बजे या उससे पहले बुक करना ज़रूरी है.
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> लागू करने वाला प्रमोशन बनाने के लिए, एक विकल्प यह है कि आप 0 के percentage वाले <Discount> को सेट करें.

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

उदाहरण:

एक रात ठहरने का शुल्क, जिसमें 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 एट्रिब्यूट की वैल्यू से ज़्यादा या उसके बराबर पर सेट किया जाना चाहिए.

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

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

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

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

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

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

उदाहरण:

एक रात ठहरने का शुल्क, जिसमें 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 एट्रिब्यूट की वैल्यू से कम या उसके बराबर पर सेट किया जाना चाहिए.

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

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 है, और टैक्सFeeInfo, 8% टैक्स के बारे में है, तो

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

    86.40 = (100 - 20) * 1.08

  • अगर हम एक रात के लिए कमरा बुक कर रहे हैं, जिसमें AmountBeforeTax की वैल्यू 50 है, fixed_amount का 60 है, और टैक्सFeeInfo, 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 है, और टैक्सFeeInfo, 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, और टैक्सFeeInfo, टैक्स के लिए 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 चार है (और repeats सही है), तो इसमें ठहरने के दो सेगमेंट होते हैं: पहली से चौथी रात और पांचवीं से आठवीं रातें

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, चार रातों के लिए है और यात्रा की योजना 10 रातों की है. ऐसे में, अगर repeats की कीमत true है, तो दो सेगमेंट पर छूट मिलेगी (रात 1-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 से अलग है, जहां ठहरने पर सभी लोगों पर छूट लागू होती है.

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

हो सकता है कि BestDailyDiscount के साथ Stacking के बारे में न बताया गया हो. हर रात के लिए सबसे ज़्यादा छूट देने वाली "हर दिन की सबसे अच्छी" छूट को एक साथ रखा जाता है. साथ ही, इसे एक बार ठहरने की छूट (यानी 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 है और टैक्सFeeInfo, 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 है, और टैक्सFeeInfo, 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 है, और टैक्सFeeInfo 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 और application को overlap पर सेट करने वाला <Discount> अमान्य कॉम्बिनेशन है.
  • <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 UserCountry की खास जानकारी.

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

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

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

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

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country उस एक देश के बारे में बताता है जहां उपयोगकर्ता प्रमोशन के लिए ज़रूरी शर्तें पूरी करते हैं.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string देश का CLDR कोड, जैसे कि DE या FR. ध्यान दें कि कुछ देशों के लिए, CLDR देश के कोड और दो अक्षरों वाले ISO देश कोड एक जैसे नहीं होते हैं. साथ ही, क्षेत्र के 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:00 बजे या इसके बाद बुकिंग करना ज़रूरी है.

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

रोज़ की सबसे अच्छी छूट

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

एलिमेंट / @Attribute दोहराए जाने की संख्या टाइप ब्यौरा
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>