प्रचार

खास जानकारी

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

अनुरोध

सिंटैक्स

Promotions मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
            id="message_ID"
            timestamp="timestamp">
  <HotelPromotions hotel_id="HotelID" action="[overlay]">
    <Promotion id="PromotionID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
      </BookingDates>
      <BookingWindow min="integer_or_duration" max="integer_or_duration"/>
      <Ceiling amount_per_night="float"/>
      <Floor amount_per_night="float"/>
      <CheckinDates>
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </CheckoutDates>
      <!-- Specify only one of percentage, percentage_of_base, fixed_amount,
           fixed_amount_per_night, fixed_price, or fixed_price_per_night;
           applied_nights is only used with percentage, fixed_amount_per_night,
           and fixed_price_per_night. -->
      <Discount percentage="float" percentage_of_base="float"
                fixed_amount="float" fixed_amount_per_night="float"
                fixed_price="float" fixed_price_per_night="float"
                applied_nights="integer_1_to_99" rank="integer_1_to_99">
        <!-- FreeNights may not be used in conjunction with attributes on Discount -->
        <FreeNights stay_nights="integer" discount_nights="integer"
                    discount_percentage="float" night_selection="[cheapest|last]"
                    repeats="boolean"/>
      </Discount>
      <!-- Exactly one of Discount or BestDailyDiscount must be specified.
           Specify only one of percentage, fixed_amount, or fixed_price. -->
      <BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <InventoryCount min="integer" max="integer"/>
      <LengthOfStay min="integer" max="integer"/>
      <MembershipRateRule id="RateRuleID"/>
      <MinimumAmount before_discount="integer"/>
      <Occupancy min="integer" max="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <Stacking type="[any|base|none|second]"/>
      <StayDates application="[all|any|overlap]">
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>

तत्व और एट्रिब्यूट

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

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

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

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

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

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

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

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

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

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

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

उदाहरण:

एक रात के लिए ठहरने का किराया तय करना. इसमें AmountBeforeTax की वैल्यू 100 है और दो प्रमोशन लागू हैं:

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

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

  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 का इस्तेमाल करके एक रात के किराये में शामिल किया जाता है. हालांकि, यह TaxFeeInfo का इस्तेमाल करके तय किए गए टैक्स और शुल्क पर लागू नहीं होता.

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

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

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

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

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

उदाहरण:

एक रात के लिए ठहरने का किराया तय करना. इसमें AmountBeforeTax की वैल्यू 100 है और दो प्रमोशन लागू हैं:

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

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

  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 का इस्तेमाल करके एक रात के किराये में शामिल किया जाता है. हालांकि, यह TaxFeeInfo का इस्तेमाल करके तय किए गए टैक्स और शुल्क पर लागू नहीं होता.

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, percentage_of_base, 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 है और TaxFeeInfo में टैक्स की वैल्यू 10 दी गई है, तो

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

    90.00 = 100 * (1 - 0.2) + 10

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

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

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

percentage के उलट, इस छूट का हिसाब हमेशा मूल किराये के प्रतिशत के तौर पर लगाया जाता है. भले ही, पहले कोई प्रमोशन लागू किया गया हो.

उदाहरण:

  • मान लीजिए कि हमारे पास दो प्रमोशन हैं, जिन्हें एक रात के लिए 100 रुपये के किराए पर रुकने वाले व्यक्ति पर क्रम से लागू किया जाता है. पहली छूट, सामान्य तौर पर दी जाने वाली 10% की छूट है. वहीं, दूसरी छूट, बुनियादी कीमत पर दी जाने वाली 10% की छूट है. इसके बाद, छूट वाली दर 80 होगी, क्योंकि दोनों प्रमोशन में 10 की छूट मिलती है. ध्यान दें कि अगर दूसरा प्रमोशन भी प्रतिशत के हिसाब से मिलने वाली सामान्य छूट होती, तो छूट वाली दर 81 होती. ऐसा इसलिए, क्योंकि दूसरे प्रमोशन में 90 का 10% छूट मिलती है.
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

percentage, percentage_of_base, 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 है, तो

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

    180.00 = (100 + 110 + 120) - 150

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

percentage, percentage_of_base, 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 है, तो

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

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

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

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

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

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

percentage, percentage_of_base, 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 है, तो

    promotion rate = 300

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

percentage, percentage_of_base, 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 की वैल्यू सही है), तो ठहरने की रात के दो सेगमेंट होंगे: पहली से चौथी रात और पांचवीं से आठवीं रात. नौवीं और दसवीं रात, ठहरने की रात के सेगमेंट का हिस्सा नहीं हैं.

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 है, तो दो सेगमेंट पर छूट मिलेगी (पहली से चौथी रात और पांचवीं से आठवीं रात); लेकिन, अगर repeats की वैल्यू false है, तो सिर्फ़ एक सेगमेंट पर छूट मिलेगी (पहली से चौथी रात).

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

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

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

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

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

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

  • 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 पर सेट है, तो छूट को उन रातों के लिए रात के किराये के प्रतिशत के तौर पर लागू किया जाता है जिनके लिए छूट लागू है.
  • <Discount> में fixed_amount तय करना और application को overlap पर सेट करना, अमान्य कॉम्बिनेशन है.
  • <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"} के तौर पर दिखाया जा सकता है.

अगर आपको हफ़्ते के कुछ दिनों के लिए StayDates रेंज सेट करनी है, तो आपको start तारीख को मौजूदा तारीख के तौर पर सेट करना चाहिए. साथ ही, end को सेट नहीं करना चाहिए, ताकि प्रमोशन की समयसीमा खत्म न हो.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से हमेशा के लिए सेट हो जाती है.

अगर end की वैल्यू नहीं दी गई है, तो आपको start की वैल्यू देनी होगी.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end तय नहीं की गई है, तो तारीख की सीमा start से आगे तक के लिए तय नहीं की जाती.

अगर 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 UserCountries स्पेसिफ़िकेशन का टाइप.

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

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

अगर UserCountries type exclude है, तो प्रमोशन में शामिल किए गए देशों के बाहर के लोगों पर प्रमोशन लागू होगा.

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

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

उदाहरण

हर प्रॉपर्टी के लिए, ज़्यादा से ज़्यादा 500 प्रमोशन बनाए जा सकते हैं. किसी प्रॉपर्टी से प्रमोशन हटाने के लिए, "एक प्रमोशन मिटाना" उदाहरण देखें.

सामान्य मैसेज

इस उदाहरण में, एक सामान्य Promotions मैसेज दिखाया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <Discount percentage="20" applied_nights="2"/>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <Stacking type="base"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>


इन्वेंट्री की स्थिति

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

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow max="7"/>
      <Discount percentage="10"/>
      <InventoryCount min="3"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


एक प्रमोशन मिटाना

यहां दिए गए उदाहरण में, किसी प्रॉपर्टी के लिए एक प्रमोशन मिटाने का तरीका बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1" action="delete"/>
  </HotelPromotions>
</Promotions>

सभी प्रमोशन मिटाएं

यहां दिए गए उदाहरण में, किसी प्रॉपर्टी के सभी प्रमोशन मिटाने का तरीका बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>



सभी प्रमोशन ओवरले करें

यहां दिए गए उदाहरण में, एक या उससे ज़्यादा नए प्रमोशन वाली प्रॉपर्टी के लिए, <HotelPromotions> को ओवरले करने का तरीका बताया गया है. action="overlay" होने पर, सेव किए गए सभी प्रमोशन मिटा दिए जाते हैं. इसके बाद, मौजूदा मैसेज में बताए गए प्रमोशन सेव किए जाते हैं:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <Discount percentage="10"/>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <Stacking type="base"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

तीन अलग-अलग स्टैकिंग टाइप

यहां एक उदाहरण दिया गया है, जिसमें तीन अलग-अलग प्रमोशन (base, second, any) लागू किए जाएंगे. ध्यान दें कि none प्रमोशन लागू नहीं होगा, क्योंकि अन्य प्रमोशन में ज़्यादा छूट मिलती है. अगर मूल कीमत 10,000 रुपये थी, तो छूट वाली कीमत 7,290 रुपये होगी.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="second"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="4">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


कोई स्टैकिंग टाइप नहीं

यहां दिए गए उदाहरण में, none प्रमोशन का इस्तेमाल किया गया है. ऐसा इसलिए, क्योंकि अन्य प्रमोशन के कॉम्बिनेशन से कम छूट मिलती है. अगर मूल कीमत 10,000 रुपये थी, तो छूट के बाद कीमत 7,500 रुपये होगी.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



बुकिंग विंडो की अवधि की सीमाएं

इस उदाहरण में, एक ऐसा मामला दिखाया गया है जहां BookingWindow एलिमेंट का इस्तेमाल किया गया है. इसमें, आईएसओ 8601 अवधि के टाइप के तौर पर, इसकी शुरुआत और खत्म होने की सीमाएं तय की गई हैं. बुकिंग विंडो से जुड़ी इस पाबंदी के तहत, मेहमान को पहुंचने से एक दिन पहले शाम 6 बजे तक बुकिंग करनी होगी. साथ ही, उसे पहुंचने से दो दिन पहले दोपहर 12 बजे के बाद बुकिंग करनी होगी.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow min="P1DT6H" max="P2DT12H"/>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


Booking Dates DateTime Bounds

यहां दिए गए उदाहरण में, BookingDates एलिमेंट को start और end एट्रिब्यूट के साथ DateTime टाइप के तौर पर इस्तेमाल करने का तरीका दिखाया गया है. बुकिंग की तारीख से जुड़ी इस पाबंदी के मुताबिक, बुकिंग 1 जुलाई, 2020 को सुबह 6:30 बजे से लेकर 2 जुलाई, 2020 को शाम 6:45 बजे के बीच होनी चाहिए.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
      </BookingDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


साल के बिना तारीख की सीमाएं

यहां दिए गए उदाहरण में, एक ऐसा मामला दिखाया गया है जिसमें CheckInDates एलिमेंट में ऐसे DateRanges शामिल हैं जिनमें साल के बिना start और end फ़ील्ड मौजूद हैं. इस उदाहरण में, प्रमोशन 29/12 से 2/1 के बीच चेक-इन करने की तारीखों पर लागू होता है. इससे कोई फ़र्क़ नहीं पड़ता कि साल कौन सा है. साल के बिना दी गई ऐसी तारीख की सीमाएं अमान्य होती हैं जो नए साल की सीमा को पार करती हैं. इसलिए, DateRange को दो आस-पास की तारीख की सीमाओं के तौर पर दिखाया जाता है.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <CheckInDates>
         <DateRange start="12-29" end="12-31"/>
         <DateRange start="01-01" end="01-02"/>
      </CheckInDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



मुफ़्त रातें

यहां दिए गए उदाहरण में, बुकिंग की तारीखों की तय सीमा के दौरान चार रातों के लिए रुकने पर, दो रातों के लिए 50% की छूट दी गई है. अगर यात्रा दस रातों की है, तो चार रातों के लिए 50% की छूट मिलेगी.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
        <DateRange start="2022-01-01" end="2022-05-31"/>
      </BookingDates>
      <Discount>
        <FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>

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

  • 2022-01-01 (ठहरने की अवधि)
  • 02-01-2022 (ठहरने की अवधि)
  • 2022-01-03
  • 2022-01-04 (छूट वाली कीमत)
  • 05-01-2022 (ठहरने की अवधि)
  • 2022-01-06 (स्टे)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <StayDates application="overlap">
        <DateRange start="2022-01-01" end="2022-01-02"/>
        <DateRange start="2022-01-04" end="2022-01-06"/>
      </StayDates>
      <Discount>
        <FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>


रैंक के हिसाब से चुनने की सुविधा

यहां दिए गए उदाहरण में, दो छूट दी गई हैं. एक छूट 20% की है और दूसरी 15% की. आकलन के दौरान, सिर्फ़ 15% की छूट लागू की जाती है, क्योंकि इसकी रैंक कम है.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="15" rank="25"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="20" rank="50"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

BestDailyDiscount

यहां दिए गए उदाहरण में, दो रात ठहरने पर छूट दी गई है. इसके लिए, Discount के साथ BestDailyDiscount को स्टैक किया गया है.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
 <HotelPromotions hotel_id="HotelID" action="overlay">
   <Promotion id="general">
     <BestDailyDiscount fixed_amount="20"/>
   </Promotion>
   <Promotion id="may">
     <BestDailyDiscount fixed_amount="50"/>
     <StayDates application="overlap">
        <DateRange start="2023-05-01" end="2023-05-31"/>
     </StayDates>
   </Promotion>
   <Promotion id="fiesta">
     <Discount fixed_amount_per_night="5"/>
     <Stacking type="any"/>
   </Promotion>
 </HotelPromotions>
</Promotions>

मान लें कि आपको 30 अप्रैल, 2023 से 2 मई, 2023 तक दो रातें रुकना है किराये का हिसाब लगाने के लिए, सबसे पहले हर दिन के लिए सबसे ज़्यादा छूट वाले कॉम्बिनेशन का पता लगाया जाता है.

पहली रात के लिए, "सामान्य" प्रमोशन ही मान्य है. इसमें 20% की छूट तय है.

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

इसके बाद, ठहरने के लिए "fiesta" प्रमोशन के तहत, हर रात के लिए 5 डॉलर या कुल 10 डॉलर की छूट मिलती है. इसे सबसे ज़्यादा रोज़ाना की छूट के साथ जोड़ा जा सकता है, क्योंकि "फ़िएस्टा" के लिए स्टैक करने का टाइप any पर सेट है. अगर इसे base पर सेट किया गया है, तो सिर्फ़ सबसे ज़्यादा रोज़ाना छूट या "फ़िएस्टा" छूट का कॉम्बिनेशन लागू होगा. ज़्यादा जानकारी के लिए, Stacking का ब्यौरा देखें.

`कुल मिलाकर, होटल में ठहरने के किराये पर 20 + 50 + 10 = 80 रुपये की छूट मिलती है.

जवाब

सिंटैक्स

PromotionsResponse मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues are populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code"
           status="issue_type">
      issue_description
    </Issue>
  </Issues>
</PromotionsResponse>

तत्व और एट्रिब्यूट

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

Element / @Attribute आवृत्तियां टाइप ब्यौरा
PromotionsResponse 1 Complex element यह रूट एलिमेंट है. इससे पता चलता है कि Promotions API से मिले अनुरोध के मैसेज में कोई समस्या है या नहीं.
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>