कीमत और रूम इन्वेंट्री (ट्रांज़ैक्शन) एक्सएमएल रेफ़रंस

इस पेज पर, एक्सएमएल पर आधारित लेन-देन के मैसेज के बारे में जानकारी दी गई है.

<Transaction>

लेन-देन के मैसेज का रूट एलिमेंट <Transaction> है. यह एक कंटेनर है. इसमें कमरों और पैकेज के बारे में जानकारी दी जाती है. साथ ही, कमरों और पैकेज के किराये और उनकी उपलब्धता के बारे में भी बताया जाता है.

<Transaction> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

<Transaction> को रूट एलिमेंट के तौर पर इस्तेमाल करने वाले मैसेज के लिए, कम से कम एक चाइल्ड एलिमेंट होना ज़रूरी है. लेन-देन से जुड़े मैसेज में कितने भी चाइल्ड एलिमेंट हो सकते हैं. हालांकि, मैसेज का कुल साइज़ 100 एमबी से ज़्यादा नहीं होना चाहिए.

सिंटैक्स

<Transaction> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">

  <!-- Defines data about a room or package (Room Bundle) -->
  <PropertyDataSet>
    ...
  </PropertyDataSet>

  <!-- Updates/sets prices and availability for rooms and Room Bundles -->
  <!-- (Also removes itineraries from inventory) -->
  <Result>
    ...
  </Result>

</Transaction>

विशेषताएं

<Transaction> एलिमेंट में ये एट्रिब्यूट होते हैं:

एट्रिब्यूट ज़रूरी है? टाइप ब्यौरा
id Required स्ट्रिंग हर लेन-देन के मैसेज के लिए यूनीक आइडेंटिफ़ायर.
partner Optional string वह पार्टनर खाता जिसके लिए लेन-देन से जुड़ी जानकारी देने वाला मैसेज भेजा गया है. आम तौर पर, इसका इस्तेमाल तब किया जाता है, जब आपका बैकएंड कई पार्टनर खातों के लिए कीमत की जानकारी वाले फ़ीड उपलब्ध कराता है. यह स्ट्रिंग वैल्यू, Hotel Center में खाते की सेटिंग वाले पेज पर मौजूद "पार्टनर की" वैल्यू होती है.
timestamp Required DateTime

वह समय जब लेन-देन का मैसेज भेजा गया था.

पिछले 24 घंटों में भेजे गए किसी भी मैसेज को प्रोसेस किया जाएगा. इसके अलावा, बाकी मैसेज खारिज कर दिए जाएंगे.

मैसेज, timestamp के क्रम में प्रोसेस किए जाते हैं, न कि मिलने के क्रम में. उदाहरण के लिए, अगर 2019-05-03 14:09:00 टाइमस्टैंप वाला कीमत अपडेट, 2019-05-03 14:10:00 टाइमस्टैंप वाले मैसेज के बाद मिलता है, तो भी उसे क्रम से प्रोसेस किया जाएगा. साथ ही, 2019-05-03 14:10:00 टाइमस्टैंप वाले मैसेज में दी गई कीमत का इस्तेमाल किया जाएगा.

चाइल्ड एलीमेंट

<Transaction> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<PropertyDataSet> Optional* <PropertyDataSet>

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

<Result> Optional* <Result>

किसी कमरे की यात्रा की योजना या <RoomBundle> एलिमेंट के लिए किराये का डेटा. यह एलिमेंट, रूम बंडल और प्रॉपर्टी के लिए अन्य तरह के कमरों के बारे में बताता है. <Result> एलिमेंट का इस्तेमाल, इन्वेंट्री से यात्रा की योजनाएं हटाने के लिए भी किया जा सकता है.

* <PropertyDataSet> या <Result> में से कम से कम एक का होना ज़रूरी है.

उदाहरण

कमरे का डेटा

यहां दिए गए उदाहरण में, लेन-देन के मैसेज में कमरे का डेटा बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>5440OF</RoomID>
      <Name>
        <Text text="Single King Bed Room" language="en"/>
        <Text text="Simple Lit de Roi" language="fr"/>
      </Name>
      <Description>
        <Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
          and down comforters (bedspreads). City view. 300 square feet. Desk with
          rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
          complimentary HBO and pay movies." language="en"/>
        <Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Bathroom View" language="en"/>
          <Text text="La salle de baines" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Capacity>4</Capacity>
    </RoomData>
  </PropertyDataSet>
</Transaction>

किराये की जानकारी

इस उदाहरण में, लेन-देन के मैसेज में कीमत की जानकारी दी गई है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">278.33</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="site1"/>
    </AllowablePointsOfSale>
  </Result>
  <Result>
    <Property>052213</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">299.98</Baserate>
    <Tax currency="USD">26.42</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="otto"/>
      <PointOfSale id="simon"/>
    </AllowablePointsOfSale>
    <MilesIncluded>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines"/>
      </Provider>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>
  </Result>
</Transaction>

एक रात के लिए किराया

इस उदाहरण में, 7 जून, 2023 से शुरू होने वाली एक से सात रातों के लिए, किराये का डेटा दिखाया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-08-24T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>1</Nights>
    <Baserate currency="USD">209.99</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">419.98</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>3</Nights>
    <Baserate currency="USD">614.97</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>4</Nights>
    <Baserate currency="USD">819.96</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>5</Nights>
    <Baserate currency="USD">999.95</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>6</Nights>
    <Baserate currency="USD">1193.94</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>7</Nights>
    <Baserate currency="USD">1259.93</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
</Transaction>


मूल और खास किराया

इस उदाहरण में, लेन-देन का ऐसा मैसेज दिखाया गया है जिसमें मूल किराया और शर्त के हिसाब से तय किया गया किराया शामिल है:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">1.00</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
      </Rate>
    </Rates>

  </Result>
</Transaction>

इन्वेंट्री हटाना

यहां दिए गए उदाहरण में, किसी होटल की इन्वेंट्री से कई इन्वेंट्री (अलग-अलग तारीखों के लिए एक रात का स्टे) हटाई गई हैं:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
  <Result>
    <Property>1123581321</Property>
    <Checkin>2023-05-23</Checkin>
    <Nights>1</Nights>
    <Unavailable>
      <NoVacancy/>
    </Unavailable>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>
  </Result>
  <Result>
    <Property>1123581321</Property>
    <Checkin>2023-05-24</Checkin>
    <Nights>1</Nights>
    <Unavailable>
      <NoVacancy/>
    </Unavailable>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>
  </Result>
  <!---Sending <Baserate> is optional with <Unavailable> -->
  <Result>
    <Property>1123581321</Property>
    <Checkin>2023-05-25</Checkin>
    <Nights>1</Nights>
    <Baserate currency="USD">-1</Baserate>
    <Unavailable>
      <NoVacancy/>
    </Unavailable>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>
  </Result>
</Transaction>

<PropertyDataSet>

<Transaction> मैसेज में, कमरे और पैकेज (या रूम बंडल) की जानकारी के लिए कंटेनर. होटल के लिए सेट की गई वैल्यू, पार्टनर के लिए सेट की गई वैल्यू को बदल देती हैं. Google इस जानकारी को सेव करता है, ताकि आपको हर बार किराये के अपडेट भेजते समय इसे तय न करना पड़े.

<PropertyDataSet> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>  // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

सिंटैक्स

<PropertyDataSet> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet>
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>hotel_ID</Property>

    <!-- (Optional) Defines metadata about a room -->
    <RoomData>
      ...
    </RoomData>

    <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) -->
    <PackageData>
      ...
    </PackageData>
  </PropertyDataSet>
  ...
</Transaction>

विशेषताएं

<PropertyDataSet> एलिमेंट में कोई एट्रिब्यूट नहीं है.

चाइल्ड एलीमेंट

<PropertyDataSet> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<PackageData> Optional* <PackageData> यह कुकी, रूम बंडल के बारे में बताती है. यह डेटा किसी पार्टनर और होटल से जुड़ा है, लेकिन किसी यात्रा कार्यक्रम से नहीं. यह एलिमेंट <RoomData> से मिलता-जुलता है. हालांकि, इसमें ऐसी सुविधाएं और शर्तें बताई गई हैं जो कमरे की जानकारी में शामिल नहीं हैं.

आपने कीमत में हुए बदलावों में पैकेज आईडी का रेफ़रंस दिया हो.

ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

<Property> Required string उस होटल का आईडी जिस पर जुड़ा हुआ डेटा लागू होता है. इस एलिमेंट की वैल्यू एक स्ट्रिंग होनी चाहिए. यह वैल्यू, आपके होटल सूची फ़ीड में मौजूद लिस्टिंग <id> से मेल खानी चाहिए.
<RoomData> Optional* <RoomData> किसी कमरे के बारे में बताता है. यह डेटा किसी पार्टनर और होटल से जुड़ा है, लेकिन किसी यात्रा कार्यक्रम से नहीं.

किराये में बदलाव करते समय, कमरे के आईडी का रेफ़रंस दिया जाता है.

* <PackageData> या <RoomData> में से कम से कम एक का होना ज़रूरी है.

उदाहरण

कमरे और पैकेज का डेटा

यहां दिए गए उदाहरण में, <PropertyDataSet> में कमरे और पैकेज, दोनों का डेटा दिखाया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>180054</Property>
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Bed Room" language="en"/>
        <Text text="Chambre single" language="fr"/>
      </Name>
      <Description>
        <Text text="Non-smoking" language="en"/>
        <Text text="Pas de fumiers" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
        <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Includes a delightful array of jams and jellies." language="en"/>
        <Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

इस कमरे और रूम बंडल के लिए किराये और उपलब्धता की जानकारी भेजते समय, आपको किराये की जानकारी वाले मैसेज में कमरे और पैकेज के आईडी का रेफ़रंस देना होगा. इससे आपके मैसेज का साइज़ काफ़ी कम हो जाता है. साथ ही, डुप्लीकेट डेटा की वजह से होने वाली गड़बड़ियों की संख्या भी कम हो जाती है. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

<RoomData>

यह कमरों के बारे में यात्रा कार्यक्रम से अलग मेटाडेटा तय करता है. साथ ही, रूम बंडल के बारे में भी मेटाडेटा तय करता है. ऐसा इसलिए, क्योंकि रूम बंडल में कमरे और अन्य सुविधाएं शामिल होती हैं. कीमत की जानकारी देने वाले फ़ीड में, ब्यौरे वाले डेटा को बार-बार इस्तेमाल करने से बचने के लिए, <RoomData> का इस्तेमाल करें.

<RoomData> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

<RoomData> एलिमेंट में ऐसी जानकारी होती है जो किसी पार्टनर और होटल से जुड़ी होती है, लेकिन यात्रा की योजना से नहीं. इसका मकसद, यात्रा कार्यक्रम के अलावा अन्य सभी तरह के डेटा के लिए है.

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

एक ही रूम या रूम बंडल के लिए, <RoomData> और <PackageData>, दोनों एलिमेंट तय किए जा सकते हैं. जब Google खोज के नतीजों में उस कमरे या पैकेज को दिखाएगा, तो वह दोनों की जानकारी शामिल करेगा. दोनों के बीच में हाइफ़न होगा.

ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

सिंटैक्स

<RoomData> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet>
    ...
    <RoomData>
      <RoomID>room_ID</RoomID>

      <Name>
        <Text text="room_name" language="language_code"/>
        ...
      </Name>

      <Description>
        <Text text="room_description" language="language_code"/>
        ...
      </Description>

      <Capacity>max_number_of_occupants</Capacity>
      <Occupancy>max_number_of_intended_occupants</Occupancy>
      <OccupancyDetails> <!-- optional info about the types of guests,
      whether adults, children, or seniors --></OccupancyDetails>
      <OccupancySettings>
        <MinOccupancy>min_number_of_occupants</MinOccupancy>
        <MinAge>min_age_of_occupants</MinAge>
      </OccupancySettings>

      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      <RoomFeatures>
        ...
      </RoomFeatures>
    </RoomData>
    ...
  </PropertyDataSet>
</Transaction>

विशेषताएं

<RoomData> एलिमेंट में कोई एट्रिब्यूट नहीं है.

चाइल्ड एलीमेंट

<RoomData> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<Capacity> Optional integer किसी कमरे में ज़्यादा से ज़्यादा कितने मेहमान ठहर सकते हैं. किसी कमरे के लिए, क्षमता, उसमें मौजूद लोगों की संख्या से ज़्यादा या उसके बराबर होती है.

इस वैल्यू को तय करते समय, यह <Occupancy> एलिमेंट की वैल्यू के बराबर या उससे ज़्यादा होनी चाहिए. <Occupancy> एलिमेंट, किसी कमरे में ठहरने वाले मेहमानों की संख्या होती है. उदाहरण के लिए, किसी बड़े सुइट के लिए <Capacity> की वैल्यू 6 हो सकती है, लेकिन उसके लिए <Occupancy> की वैल्यू 4 है.

<Capacity> की वैल्यू, 1 से 20 के बीच का पॉज़िटिव पूर्णांक होना चाहिए.

<Description> Optional Object कमरे की पूरी जानकारी. इस एलिमेंट में ऐसी जानकारी होनी चाहिए जिसके बारे में अन्य एलिमेंट या <Name> एलिमेंट में नहीं बताया गया है. कमरे के बारे में जानकारी देते समय, आपको सभी कैपिटल लेटर का इस्तेमाल नहीं करना चाहिए.

<Description> एलिमेंट में सिर्फ़ एक चाइल्ड एलिमेंट, <Text> होता है. इसमें ये दो ज़रूरी एट्रिब्यूट होते हैं:

  • text: कमरे के बारे में पूरी जानकारी.
  • language: दो अक्षरों वाला भाषा कोड; उदाहरण के लिए, fr.

हर उस भाषा के लिए अलग <Text> एलिमेंट का इस्तेमाल करें जिसमें आपका विज्ञापन या मुफ़्त बुकिंग लिंक दिख सकता है. साथ ही, language एट्रिब्यूट के लिए अलग-अलग वैल्यू इस्तेमाल करें.

यहां दिए गए उदाहरण में, कमरे के ब्यौरे के फ़्रेंच और अंग्रेज़ी वर्शन दिखाए गए हैं:

<Description>
  <Text text="Two queen-sized beds" language="en"/>
  <Text text="Deux lits de la reine" language="fr"/>
</Description>
<Name> Required string कमरे की कैटगरी का नाम. यह वैल्यू, होटल के लैंडिंग पेज (पहले इसे बिक्री की जगह कहा जाता था) पर दिखने वाली वैल्यू से मेल खानी चाहिए. इस एलिमेंट की वैल्यू को सभी कैपिटल लेटर में सेट न करें.

यह एलिमेंट, <Text> नाम का एक चाइल्ड एलिमेंट लेता है. इसमें ये दो ज़रूरी एट्रिब्यूट होते हैं:

  • text: चैट रूम का नाम.
  • language: दो अक्षरों वाला भाषा कोड; उदाहरण के लिए, fr.

हर उस भाषा के लिए अलग <Text> एलिमेंट का इस्तेमाल करें जिसमें आपका विज्ञापन या मुफ़्त बुकिंग लिंक दिख सकता है. साथ ही, language एट्रिब्यूट के लिए अलग-अलग वैल्यू इस्तेमाल करें.

यहां दिए गए उदाहरण में, कमरे के नाम के फ़्रेंच और अंग्रेज़ी वर्शन दिखाए गए हैं:

<Name>
  <Text text="Standard Double Room" language="en"/>
  <Text text="Le chambre double" language="fr"/>
</Name>
<Occupancy> Optional integer कमरे में ठहरने के लिए मेहमानों की ज़्यादा से ज़्यादा संख्या. उदाहरण के लिए, किसी बड़े सुइट में छह मेहमानों के ठहरने की जगह हो सकती है (क्षमता = 6), लेकिन उसे सिर्फ़ चार मेहमानों के लिए बनाया गया है.

यह वैल्यू, <Capacity> एलिमेंट की वैल्यू से कम या उसके बराबर होनी चाहिए. <Capacity> एलिमेंट, उन लोगों की संख्या होती है जो कमरे में मौजूद हो सकते हैं.

<Occupancy> की वैल्यू, 1 से 99 के बीच का पॉज़िटिव पूर्णांक होना चाहिए.

<Occupancy> के साथ <OccupancyDetails> हो सकता है. इससे मेहमानों (वयस्कों या बच्चों) के टाइप के बारे में पता चलता है. सिंटैक्स और चाइल्ड एलिमेंट के ब्यौरे के लिए, <OccupancyDetails> पर जाएं.

<OccupancySettings> Optional Object ऐसी सेटिंग जिनसे किसी कमरे में लोगों के रहने की ज़रूरी शर्तों को सीमित किया जा सकता है या उनमें बदलाव किया जा सकता है.

<OccupancySettings> एलिमेंट में ये चाइल्ड एलिमेंट शामिल होते हैं:

  • <MinOccupancy>: एक कमरे में कम से कम कितने मेहमान ठहर सकते हैं. उदाहरण के लिए, अगर इसे 2 पर सेट किया जाता है, तो इस कमरे को एक मेहमान के लिए बुक नहीं किया जा सकता.

    <MinOccupancy> की वैल्यू, 1 से 99 के बीच का पॉज़िटिव पूर्णांक होना चाहिए.

  • <MinAge>: एक कमरे में ठहरने वाले सभी मेहमानों की कम से कम उम्र. उदाहरण के लिए, अगर इसे 18 पर सेट किया जाता है, तो इस कमरे को सिर्फ़ उन ग्रुप के लिए बुक किया जा सकता है जिनमें सभी मेहमानों की उम्र 18 साल या इससे ज़्यादा हो.

    <MinAge> की वैल्यू, 0 से 99 के बीच का कोई पॉज़िटिव पूर्णांक होना चाहिए.

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

सभी चाइल्ड एलिमेंट को शामिल करना ज़रूरी नहीं है.

<PhotoURL> Optional Object दिए गए कमरे या अलग-अलग सुविधाओं वाले एक तरह के कमरे की फ़ोटो के लिए यूआरएल और कैप्शन (ज़रूरी नहीं). किसी कमरे या रूम बंडल के लिए, एक से ज़्यादा <PhotoURL> की जानकारी दी जा सकती है. हर फ़ोटो यूआरएल, अपने <PhotoURL> में होना चाहिए.

यह एलिमेंट, इन चाइल्ड एलिमेंट को लेता है:

  • <URL>: इससे फ़ोटो की जगह की जानकारी मिलती है. जगह सार्वजनिक होनी चाहिए (फ़ायरवॉल के पीछे नहीं). साथ ही, इसमें प्रोटोकॉल (उदाहरण के लिए, https://) शामिल होना चाहिए. हर <PhotoURL> के लिए सिर्फ़ एक <URL> का इस्तेमाल करें.
  • <Caption>: इससे फ़ोटो के कैप्शन के बारे में पता चलता है. यह एलिमेंट, <Text> नाम का एक चाइल्ड एलिमेंट लेता है. इसमें दो ज़रूरी एट्रिब्यूट होते हैं: text और language. text एट्रिब्यूट, कैप्शन है. वहीं, language एट्रिब्यूट, दो वर्णों वाला भाषा कोड बताता है. जैसे, en.

उदाहरण:

<PhotoURL>
  <URL>https://www.example.com/static/bar/image1234.jpg</URL>
  <Caption>
    <Text text="A bright and breezy way to enjoy your mornin'
      cuppa tea." language="en"/>
    <Text text="Une façon lumineuse et aérée pour profiter
      de votre journée tasse de thé." language="fr"/>
  </Caption>
</PhotoURL>
<PhotoURL>
  <URL>https://www.foo.com/static/bar/image5678.jpg</URL>
  <Caption>
    <Text text="Or, perhaps you prefer coffee." language="en"/>
    <Text text="Ou peut-être préférez-vous le café." language="fr"/>
  </Caption>
</PhotoURL>
<RoomFeatures> Optional <RoomFeatures> इसमें रूम की सुविधाओं के बारे में जानकारी होती है.
<RoomID> Required string कमरे का यूनीक आईडी. इस आईडी का इस्तेमाल करके, कमरे के डेटा को कीमत अपडेट में मौजूद <Result> ब्लॉक से मैच करें. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें. (इस आईडी का इस्तेमाल, एक ही लेन-देन के मैसेज में रूम की सामान्य परिभाषा को रेफ़रंस देने के लिए भी किया जा सकता है. ऐसा तब किया जाता है, जब रूम के डेटा को इनलाइन तरीके से तय किया जा रहा हो.)

उदाहरण

कमरे का डेटा

यहां दिए गए उदाहरण में, रूम डेटा के बारे में बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>5440OF</RoomID>
      <Name>
        <Text text="Single King Bed Room" language="en"/>
        <Text text="Simple Lit de Roi" language="fr"/>
      </Name>
      <Description>
        <Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
          and down comforters (bedspreads). City view. 300 square feet. Desk with
          rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
          complimentary HBO and pay movies." language="en"/>
        <Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Bathroom View" language="en"/>
          <Text text="La salle de baines" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Capacity>4</Capacity>
    </RoomData>
  </PropertyDataSet>
</Transaction>

कमरे और पैकेज का मेटाडेटा

यहां दिए गए उदाहरण में, कमरे और पैकेज के मेटाडेटा के बारे में बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>180054</Property>
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Bed Room" language="en"/>
        <Text text="Chambre single" language="fr"/>
      </Name>
      <Description>
        <Text text="Non-smoking" language="en"/>
        <Text text="Pas de fumiers" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
        <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Includes a delightful array of jams and jellies." language="en"/>
        <Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

अलग-अलग सुविधाओं वाले एक तरह के कई कमरे

यहां दिए गए उदाहरण में, एक से ज़्यादा रूम बंडल के लिए रूम और पैकेज के मेटाडेटा को तय किया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <!-- A transaction message with room types result. -->
  <PropertyDataSet>
    <Property>12345</Property>
    <RoomData>
      <RoomID>single</RoomID>
      <Name>
        <Text text="Single room" language="en"/>
        <Text text="Chambre simple" language="fr"/>
      </Name>
      <Description>
        <Text text="A single room" language="en"/>
        <Text text="Le chambre simple" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image1235.jpg</URL>
      </PhotoURL>
      <Capacity>2</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>double</RoomID>
      <Name>
        <Text text="Double room" language="en"/>
        <Text text="Chambre double" language="fr"/>
      </Name>
      <Occupancy>1</Occupancy>
    </RoomData>
    <PackageData>
      <PackageID>refundbreakfast</PackageID>
      <Name>
        <Text text="Refundable Room with Breakfast" language="en"/>
        <Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Continental Breakfast" language="en"/>
        <Text text="Petit déjeuner continental" language="fr"/>
      </Description>
      <ChargeCurrency>hotel</ChargeCurrency>
      <Refundable available="1" refundable_until_days="3"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>prepaid</PackageID>
      <Name>
        <Text text="Nonrefundable" language="en"/>
        <Text text="Non remboursable" language="fr"/>
      </Name>
      <Description>
        <Text text="Blah blah blad" language="en"/>
        <Text text="Le blah blah blad" language="fr"/>
      </Description>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="0"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

<RoomFeatures>

इससे कमरे में मौजूद सुविधाओं के बारे में पता चलता है.

<RoomFeatures> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
            + <RoomFeatures>

सिंटैक्स

<RoomFeatures> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet ... >
    ...
    <RoomData>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="width"/>
             <Length unit="cm" number="length"/>
           </Bed>
           <!-- Include with any additional beds. -->
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>[shared|private]</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>[smoking|non_smoking]</Smoking>
        <BathAndToilet relation="[together|separate]">
          <Bath bathtub="[false|true]" shower="[false|true]"/>
          <Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <!-- (Optional) Defines the type of views from the room. -->
          <!-- Example: <OceanView/> -->
        </Views>

      </RoomFeatures>
      ...
    </RoomData>
    ...
  </PropertyDataSet>
</Transactions>

विशेषताएं

<RoomFeatures> एलिमेंट में कोई एट्रिब्यूट नहीं है.

चाइल्ड एलीमेंट

<RoomFeatures> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<JapaneseHotelRoomStyle> Optional enum

इससे जापानी होटल के कमरे की स्टाइल के बारे में पता चलता है.

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

  • western: पश्चिमी शैली का कमरा, जिसमें बेड हैं.
  • japanese: जैपनीज़ स्टाइल वाला कमरा, जिसमें फ़्यूटॉन बेड हैं.
  • japanese_western: जैपनीज़ वेस्टर्न स्टाइल वाला कमरा. इसमें वेस्टर्न स्टाइल वाले बेड और जैपनीज़ स्टाइल वाले फ़ूटॉन, दोनों हैं.
<Beds> Optional Object इसमें कमरे में मौजूद <Bed> की संख्या शामिल होती है. ध्यान दें कि यहां जैपनीज़ फ़्यूटॉन को नहीं गिना जाना चाहिए.

हर <Bed> में ये एट्रिब्यूट होते हैं:

  • size (ज़रूरी नहीं है): मान्य वैल्यू single, semi_double, double, queen, और king हैं.
हर <Bed> में ये चाइल्ड एलिमेंट होते हैं:
  • <Width> (ज़रूरी नहीं): इससे बिस्तर की चौड़ाई के बारे में पता चलता है. इसमें unit एट्रिब्यूट की वैल्यू cm होनी चाहिए. साथ ही, number एट्रिब्यूट की वैल्यू, बेड की चौड़ाई के हिसाब से पूर्णांक सेंटीमीटर में होनी चाहिए.
  • <Length> (ज़रूरी नहीं): इससे बेड की लंबाई के बारे में पता चलता है. इसमें unit एट्रिब्यूट की वैल्यू cm होनी चाहिए. साथ ही, number एट्रिब्यूट में बिस्तर की लंबाई, पूर्णांक सेंटीमीटर में होनी चाहिए.
उदाहरण:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
<Suite> Optional empty अगर यह कमरा सुइट है, तो यह एलिमेंट दें.
<Capsule> Optional empty अगर यह कमरा कैप्सूल रूम है, तो यह एलिमेंट दें.
<Roomsharing> Optional enum यह कमरा, मालिक या अन्य मेहमानों जैसे अन्य लोगों के साथ शेयर किया गया है या नहीं. मान्य वैल्यू shared और private हैं.
<Outdoor> Optional empty इस एलिमेंट की वैल्यू तब दें, जब कमरा बाहर की ओर हो और उसमें दीवारें, प्लंबिंग, और तापमान कंट्रोल करने की सुविधा न हो. उदाहरण के लिए, होटल के कमरे आउटडोर लॉजिंग नहीं हैं. वहीं, कैंपसाइट आउटडोर लॉजिंग हैं, जहां मेहमान टेंट में ठहरते हैं. इसके अलावा, आरवी पार्क भी आउटडोर लॉजिंग हैं, जहां मेहमान अपने आरवी लाते हैं.
<MobilityAccessible> Optional empty अगर इस कमरे में व्हीलचेयर से जाया जा सकता है, तो यह एलिमेंट दें.
<Smoking> Optional enum यह कमरा, धूम्रपान करने की अनुमति वाला कमरा है या धूम्रपान करने की अनुमति नहीं है. मान्य वैल्यू non_smoking और smoking हैं.
<BathAndToilet> Optional Object इस कुकी में, कमरे में मौजूद बाथटब और टॉयलेट के बारे में जानकारी होती है.

यह एट्रिब्यूट है:

  • relation (वैकल्पिक): इससे पता चलता है कि बाथटब और टॉयलेट एक-दूसरे के साथ कैसे रखे गए हैं. मान्य वैल्यू ये हैं: together (बाथटब और टॉयलेट, दोनों एक ही कमरे में मौजूद हैं. जैसे, बाथरूम में एक-दूसरे के बगल में) और separate (बाथटब और टॉयलेट, दोनों के लिए अलग-अलग जगह है). अगर कमरे में बाथटब और टॉयलेट, दोनों नहीं हैं, तो इस एट्रिब्यूट की वैल्यू सेट नहीं की जानी चाहिए.

इस एलिमेंट में, ये चाइल्ड एलिमेंट शामिल किए जा सकते हैं:

  • <Bath> (ज़रूरी नहीं): इस एलिमेंट के मौजूद होने से पता चलता है कि कमरे में बाथटब है.

    ये एट्रिब्यूट हैं:

    • bathtub (वैकल्पिक): इससे पता चलता है कि बाथरूम में बाथटब है. मान्य वैल्यू 0 (या false) और 1 (या true) हैं.
    • shower (ज़रूरी नहीं): इससे पता चलता है कि बाथरूम में शावर की सुविधा है. मान्य वैल्यू 0 (या false) और 1 (या true) हैं.
  • <Toilet> (ज़रूरी नहीं): इस एलिमेंट के मौजूद होने से पता चलता है कि इस कमरे में टॉयलेट है.

    ये एट्रिब्यूट हैं:

    • electronic_bidet (ज़रूरी नहीं): इससे पता चलता है कि टॉयलेट में इलेक्ट्रॉनिक बिडेट है. मान्य वैल्यू 0 (या false) और 1 (या true) हैं.
    • mobility_accessible (ज़रूरी नहीं): इससे पता चलता है कि टॉयलेट में व्हीलचेयर लाने और ले जाने की सुविधा है. मान्य वैल्यू 0 (या false) और 1 (या true) हैं.

उदाहरण:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath> Optional empty अगर इस कमरे में खुली जगह में नहाने की निजी सुविधा है, तो यह एलिमेंट दें.
<AirConditioning> Optional empty अगर इस कमरे में एयर-कंडिशनर है, तो यह एलिमेंट दें.
<Balcony> Optional empty अगर इस कमरे में बालकनी या बरामदा है, तो यह एलिमेंट दें.
<Views> Optional Object मान्य विकल्पों में ये शामिल हैं:

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

उदाहरण

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

दो सिंगल बेड

यहां दिए गए उदाहरण में, <RoomFeatures> का इस्तेमाल करने का तरीका बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two single beds -->
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>private</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>non_smoking</Smoking>
        <BathAndToilet relation="separate">
          <Bath bathtub="1" shower="1"/>
          <Toilet electronic_bidet="1" mobility_accessible="1"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <LakeView/>
          <MarinaView/>
          <BeachView/>
          <ForestView/>
          <MountainView/>
          <NatureView/>
        </Views>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

दो डबल बेड

यहां western स्टाइल वाले जैपनीज़ कमरे का उदाहरण दिया गया है. इसमें दो double बेड हैं.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two double beds-->
          <Bed size="double"></Bed>
          <Bed size="double"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>


बिना बेड वाला जैपनीज़ स्टाइल का कमरा

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

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

बेड वाला जैपनीज़ वेस्टर्न रूम

यहां king साइज़ के बेड वाले japanese_western स्टाइल के कमरे का उदाहरण दिया गया है.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
        <Beds>
          <Bed size="king"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

अगर पार्टनर के पास japanese_western कमरों में बेड की संख्या की जानकारी नहीं है, तो यह उदाहरण देखें:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

<PackageData>

किसी प्रॉपर्टी के लिए, यात्रा की योजना से अलग रूम बंडल के मेटाडेटा के बारे में बताता है. इस एलिमेंट में ऐसी जानकारी होती है जो किसी पार्टनर और होटल से जुड़ी होती है, लेकिन यात्रा की योजना से नहीं. इसका मकसद, यात्रा कार्यक्रम के अलावा अन्य सभी डेटा को एक बार तय करना और यात्रा कार्यक्रम के डेटा से इसे रेफ़रंस करना है.

<PackageData> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

<PackageData> एलिमेंट, <RoomData> एलिमेंट की तरह ही होता है. हालांकि, यह उन सुविधाओं और शर्तों के बारे में बताता है जो कमरे की जानकारी में शामिल नहीं होती हैं. <RoomData> और <PackageData> का इस्तेमाल एक साथ किया जाता है, ताकि रूम बंडल और किराये की सुविधाओं के बारे में जानकारी दी जा सके. अगर कोई कमरा किसी पैकेज का हिस्सा नहीं है, तो उसके लिए सिर्फ़ <RoomData> का इस्तेमाल करें.

एक ही रूम या रूम बंडल के लिए, <RoomData> और <PackageData>, दोनों एलिमेंट तय किए जा सकते हैं. जब Google खोज के नतीजों में उस कमरे या पैकेज को दिखाएगा, तो वह दोनों की जानकारी शामिल करेगा. दोनों के बीच में हाइफ़न होगा.

अगर किसी प्रॉपर्टी के लिए, एक <PackageData> एलिमेंट को अपडेट किया जाता है, तो आपको उस प्रॉपर्टी के लिए सभी <PackageData> और <RoomData> एलिमेंट अपडेट करने होंगे. हर <PropertyDataSet> को प्रॉपर्टी का पूरा डेटा माना जाता है. साथ ही, यह मौजूदा डेटा को बदल देता है.

ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

सिंटैक्स

<PackageData> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet ... >
    <PackageData>
      <PackageID>package_ID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
        ...
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
        ...
      </Description>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
      <Occupancy>max_number_of_intended_occupants</Occupancy>
      <OccupancyDetails><!-- optional info about the types of guests,
      whether adults or children --></OccupancyDetails>
      <!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      ...
      <Meals>
        <Breakfast
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
        <Dinner
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
      </Meals>
      <CheckinTime>checkin_time</CheckinTime>
      <CheckoutTime>checkout_time</CheckoutTime>
      <MembershipBenefitsIncluded>
        <ProgramName>
          <Text language="en" text="Special Rewards">
        </ProgramName>
        <ProgramLevel>
          <Text language="en" text="Platinum">
        </ProgramLevel>
      </MembershipBenefitsIncluded>
      <OnPropertyCredit>
        <Amount currency="USD">123.45</Amount>
      </OnPropertyCredit>
    </PackageData>
    <!-- a PackageID with a MilesIncluded rate feature -->
    <PackageData>
      <PackageID>room_with_miles</PackageID>
      <Name>
       <Text text="Room with Bundled Miles" language="en">
      </Name>
      <ChargeCurrency>hotel </ChargeCurrency>
      <MilesIncluded>
        <NumberOfMiles>integer</NumberOfMiles>
        <Provider>
          <Text language="en" text="provider-name">
        </Provider>
        <!-- Add Loyalty point information -->
        <LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID>
      </MilesIncluded>
    </PackageData>
    ...
    ...
  </PropertyDataSet>
  ...
</Transaction>

विशेषताएं

<PackageData> एलिमेंट में कोई एट्रिब्यूट नहीं है.

चाइल्ड एलीमेंट

<PackageData> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<BreakfastIncluded> Optional boolean इससे पता चलता है कि इस पैकेज में नाश्ता शामिल है या नहीं. मान्य वैल्यू 0 (या false) और 1 (या true) हैं.

हमारा सुझाव है कि आप <BreakfastIncluded> के बजाय <Meals> का इस्तेमाल करें.

<ChargeCurrency> Optional enum उपयोगकर्ता बुकिंग के लिए पेमेंट कब और कहां करता है. यह एलिमेंट, <Result> में <ChargeCurrency> के जैसा ही सिंटैक्स इस्तेमाल करता है.

डिफ़ॉल्ट वैल्यूweb है

<CheckinTime> Optional Time चेक-इन करने का सबसे पहला समय. होटल के स्थानीय समय के हिसाब से, समय 24:00 से पहले का होना चाहिए.
<CheckoutTime> Optional Time होटल के स्थानीय समय के हिसाब से, चेक आउट करने का सबसे नया समय.
<Description> Optional Object पैकेज के बारे में पूरी जानकारी. इस एलिमेंट में ऐसी जानकारी होनी चाहिए जिसके बारे में दूसरे एलिमेंट या <Name> एलिमेंट में नहीं बताया गया है. कमरे के बारे में जानकारी देते समय, आपको सभी कैपिटल लेटर का इस्तेमाल नहीं करना चाहिए.

<Description> एलिमेंट में एक चाइल्ड एलिमेंट, <Text> होता है. इसमें दो ज़रूरी एट्रिब्यूट, text और language होते हैं. text एट्रिब्यूट, ब्यौरा है. साथ ही, language एट्रिब्यूट, दो अक्षरों वाला भाषा का कोड बताता है. इसे इस उदाहरण में दिखाया गया है:

<Description>
  <Text text="Two breakfast buffet certificates for
    each night of stay." language="en"/>
  <Text text="Deux certificats petit-déjeuner buffet
    pour chaque nuit de séjour." language="fr"/>
</Description>
<InternetIncluded> Optional boolean अगर किसी पैकेज में बिना किसी शुल्क के इंटरनेट ऐक्सेस शामिल है, जबकि अन्य पैकेज में यह सुविधा शामिल नहीं है. अगर होटल के सभी कमरों में मुफ़्त इंटरनेट की सुविधा मिलती है, तो रूम बंडल के लिए यह एलिमेंट सेट न करें. यह एलिमेंट, कमरे में मौजूद तार वाले इंटरनेट या मेहमानों के कमरों में उपलब्ध न होने वाले वायरलेस इंटरनेट पर लागू नहीं होता. मान्य वैल्यू ये हैं: 0 (या false) और 1 (या true).
<Meals> Optional Object इस पैकेज में शामिल खाने-पीने की चीज़ों के बारे में जानकारी होती है.

<Meals> एलिमेंट में दो वैकल्पिक चाइल्ड एलिमेंट, <Breakfast> और <Dinner> होते हैं. इनमें ये एट्रिब्यूट होते हैं:

  • included (ज़रूरी है): अगर किराये में नाश्ता/रात का खाना शामिल है, तो इसे 1 (या true) पर सेट करें. अगर किराये में नाश्ता/रात का खाना शामिल नहीं है, तो इसे 0 या false पर सेट करें.
  • in_room (ज़रूरी नहीं): अगर मेहमानों के पास, होटल के उस कमरे में नाश्ता/रात का खाना खाने का विकल्प है जिसमें वे ठहरे हैं, तो इसे 1 (या true) पर सेट करें. ऐसा न होने पर, इसे 0 (या false) पर सेट करें.
  • in_private_space (ज़रूरी नहीं): अगर मेहमानों के पास नाश्ता/रात का खाना खाने के लिए, ऐसी जगह का विकल्प है जहां वे दूसरे मेहमानों से संपर्क से बच सकते हैं, तो इसे 1 (या true) पर सेट करें. हालांकि, यह विकल्प उस कमरे में नहीं होना चाहिए जिसमें वे रुके हैं. अगर ऐसा नहीं है, तो इसे 0 (या false) पर सेट करें.
  • buffet (ज़रूरी नहीं): अगर नाश्ता/रात का खाना बुफ़े (जितना जी चाहे, खाएं) के तौर पर परोसा जाता है, तो इसे 1 (या true) पर सेट करें. अगर ऐसा नहीं है, तो इसे 0 (या false) पर सेट करें.

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

भोजन के फ़िल्टर (no meals, breakfast only, dinner only, और breakfast and dinner) का इस्तेमाल करने के लिए, <Breakfast> और <Dinner>, दोनों के लिए included एट्रिब्यूट की वैल्यू देनी होगी.

<Name> Required string पैकेज का नाम. यह वैल्यू, होटल के लैंडिंग पेज पर दिखने वाली वैल्यू से मेल खानी चाहिए. इस एलिमेंट की वैल्यू को सभी कैपिटल लेटर पर सेट न करें.

यह एलिमेंट, <Text> नाम का एक चाइल्ड एलिमेंट लेता है. इसमें दो एट्रिब्यूट होते हैं: text और language. text एट्रिब्यूट, ब्यौरा है. साथ ही, language एट्रिब्यूट, दो अक्षरों वाला भाषा का कोड बताता है. उदाहरण के लिए:

<Name>
  <Text text="Bed and Breakfast" language="en"/>
  <Text text="Lit et petit déjeuné" language="fr"/>
</Name>
<Occupancy> Optional integer कमरे के बंडल में कितने मेहमानों के लिए जगह है. उदाहरण के लिए, किसी बड़े सुइट में छह मेहमानों के ठहरने का इंतज़ाम हो सकता है, लेकिन उसे सिर्फ़ चार मेहमानों के लिए बनाया गया है.

यह वैल्यू, <Capacity> एलिमेंट की वैल्यू से कम या उसके बराबर होनी चाहिए. <Capacity> एलिमेंट, उन लोगों की संख्या होती है जो कमरे में मौजूद हो सकते हैं.

<Occupancy> की वैल्यू, 1 से 99 के बीच का पॉज़िटिव पूर्णांक होना चाहिए.

अगर आपने इस एलिमेंट को <RoomBundle> और <PackageData>, दोनों में शामिल किया है, तो <RoomBundle> में दी गई वैल्यू को प्राथमिकता दी जाएगी.

ध्यान दें:

<Occupancy> के साथ <OccupancyDetails> हो सकता है. इसमें मेहमानों (वयस्कों या बच्चों) के बारे में जानकारी दी जाती है. सिंटैक्स और चाइल्ड एलिमेंट के ब्यौरे के लिए, <OccupancyDetails> देखें.
<PackageID> Required string

पैकेज का यूनीक आईडी. इस आईडी का इस्तेमाल करके, कमरे के बंडल के डेटा को कीमत के अपडेट में मौजूद <Result> ब्लॉक से मैच करें. ज़्यादा जानकारी के लिए, कमरे के बंडल का मेटाडेटा देखें.

(इस आईडी का इस्तेमाल, रूम बंडल की सामान्य परिभाषा को रेफ़रंस देने के लिए भी किया जा सकता है. इसका इस्तेमाल, रूम बंडल के डेटा को इनलाइन तरीके से तय करते समय, एक ही लेन-देन के मैसेज में किया जाता है.)

<ParkingIncluded> Optional boolean क्या रूम बंडल में पार्किंग की सुविधा बिना किसी शुल्क के शामिल है. ऐसा तब होता है, जब होटल में पार्किंग की सुविधा के लिए शुल्क लिया जाता है. ऐसे होटल के लिए इस एलिमेंट की वैल्यू न दें जहां पार्किंग मुफ़्त है.

मान्य वैल्यू 0 (या false) और 1 (या true) हैं. डिफ़ॉल्ट वैल्यू false है.

<PhotoURL> Optional Object (यह <RoomData> में मौजूद <PhotoURL> जैसा ही है, लेकिन यह पैकेज (जैसे, खाने की फ़ोटो) के लिए है.)
<Refundable> Optional Object इस सुविधा की मदद से, किराये को पूरी तरह से रिफ़ंड किए जाने वाले किराये के तौर पर लिस्ट किया जा सकता है या बिना किसी शुल्क के बुकिंग रद्द करने की सुविधा दी जा सकती है. यह जानकारी न देने पर, रिफ़ंड के बारे में कोई जानकारी नहीं दिखती. <PackageData> लेवल पर मौजूद रिफ़ंड नीति, <Result> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. <Rates> लेवल पर मौजूद रिफ़ंड नीति, <PackageData> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. लेन-देन के मैसेज स्कीमा में सीधे तौर पर बदलाव किए बिना, उपयोगकर्ताओं को अन्य विकल्पों के ज़रिए भी रिफ़ंड की सुविधा वाली कीमत के बारे में बताया जा सकता है. इन विकल्पों के बारे में ज़्यादा जानें रिफ़ंड किए जा सकने वाले किराये की नीति.

इस उदाहरण में, <Refundable> एलिमेंट को उसके सभी एट्रिब्यूट के साथ सेट किया गया है:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

ध्यान दें: हमारा सुझाव है कि आप सभी एट्रिब्यूट सेट करें. एक या उससे ज़्यादा एट्रिब्यूट सेट न होने पर, फ़ीड की स्थिति के बारे में चेतावनी वाला मैसेज जनरेट होता है.

अगर आपने कोई एट्रिब्यूट सेट नहीं किया है, तो किराया, रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा. ये एट्रिब्यूट हैं:

  • available: (ज़रूरी है) 1 या true पर सेट करें, ताकि यह पता चल सके कि किराये के हिसाब से पूरा रिफ़ंड दिया जा सकता है या नहीं. अगर ऐसा नहीं है, तो 0 या false पर सेट करें.
  • refundable_until_days: (अगर available true है, तो यह ज़रूरी है) इससे यह पता चलता है कि चेक-इन से कितने दिन पहले तक, पूरा रिफ़ंड पाने का अनुरोध किया जा सकता है. refundable_until_days की वैल्यू, 0 और 330 के बीच का कोई पूर्णांक होना चाहिए.
  • refundable_until_time: (अगर available true है, तो इसे इस्तेमाल करने का सुझाव दिया जाता है) इससे होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी मिलती है. साथ ही, इसमें पूरे पैसे रिफ़ंड होने की बात शामिल होती है. इसे refundable_until_days के साथ जोड़ा जा सकता है. उदाहरण के लिए, यह बताने के लिए कि "चेक-इन से दो दिन पहले शाम 4:00 बजे तक रिफ़ंड की सुविधा उपलब्ध है". अगर refundable_until_time सेट नहीं है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात पर सेट हो जाती है.

    इस एट्रिब्यूट की वैल्यू, Time फ़ॉर्मैट का इस्तेमाल करती है.

एट्रिब्यूट सेट करते समय, इन बातों का ध्यान रखें:

  • अगर available या refundable_until_days सेट नहीं है, तो किराया रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा.
  • अगर available की वैल्यू 0 या false है, तो अन्य एट्रिब्यूट को अनदेखा कर दिया जाता है. अगर अन्य एट्रिब्यूट में से एक या दोनों सेट किए गए हैं, तब भी किराया, रिफ़ंड किए जा सकने वाले किराये के तौर पर नहीं दिखता.
<MembershipBenefits Included> Optional boolean किराये में, ठहरने की अवधि के लिए एलीट स्टेटस के फ़ायदे शामिल हैं. इसमें ये पैरामीटर शामिल हैं:
  • ProgramName: एलीट स्टेटस प्रोग्राम का नाम
  • ProgramLevel: प्रोग्राम का लेवल. उदाहरण के लिए: "Gold."
  • NightlyValue (optional): फ़ायदों की एक रात की वैल्यू.
<CarRentalIncluded> Optional boolean किराये में, ठहरने के दौरान किराये पर कार लेने की सुविधा शामिल है.
<MilesIncluded> Optional boolean किराये में फ़्रीक्वेंट फ़्लायर माइल्स शामिल हैं. पैरामीटर में ये शामिल हैं:
  • NumberOfMiles: हर यात्रा कार्यक्रम के लिए मील की संख्या.
  • Provider: फ़्रीक्वेंट फ़्लायर प्रोग्राम के तहत मील देने वाली कंपनी.
  • LoyaltyCampaignID: यह एक यूनीक आईडी है. इससे उस लॉयल्टी कैंपेन की पहचान होती है जिसे Google के साथ कॉन्फ़िगर और अपडेट किया गया था. इससे होटल के किराये में लॉयल्टी पॉइंट जुड़ जाते हैं.

    <MilesIncluded> एलिमेंट को शामिल करने के लिए, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन में कैंपेन आईडी कॉन्फ़िगर किया जाना चाहिए. Google, नतीजों में लॉयल्टी पॉइंट का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानकारी, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन से तय होती है.

    <MilesIncluded> एलिमेंट में <NumberOfMiles> चाइल्ड एलिमेंट होता है. इससे कमाए गए पॉइंट की संख्या का हिसाब लगाया जाता है. अगर <NumberOfMiles> सेट नहीं किया गया है, तो कमाए गए पॉइंट, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन के हिसाब से तय किए जाते हैं.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • ध्यान दें: <NumberOfMiles> और <Provider> की वैल्यू देना ज़रूरी नहीं है.

<OnPropertyCredit> Optional boolean किराये में, होटल में मिलने वाला क्रेडिट शामिल है. इसका इस्तेमाल खाने-पीने, रिज़ॉर्ट, स्पा वगैरह के लिए किया जा सकता है. पैरामीटर:
  • Amount: स्थानीय मुद्रा में, हर यात्रा कार्यक्रम के लिए क्रेडिट की वैल्यू.
<AirportTransportationIncluded> Optional Object किराये में, आस-पास के हवाई अड्डे से लाने-ले जाने की सुविधा शामिल है. वैकल्पिक direction एट्रिब्यूट, परिवहन की दिशा बताता है. मान्य वैल्यू में ये शामिल हैं:
    from: एयरपोर्ट से प्रॉपर्टी तक आने-जाने की सुविधा दी जाती है. अगर कोई दिशा नहीं बताई जाती है, तो यह डिफ़ॉल्ट वैल्यू होती है. to: प्रॉपर्टी से एयरपोर्ट तक जाने की सुविधा उपलब्ध है. round_trip: हवाई अड्डे से लाने-ले जाने की सुविधा उपलब्ध है.

उदाहरण

एक ही तरह के कमरे का बंडल

यहां एक रूम बंडल का उदाहरण दिया गया है. इसमें दो लोगों (एक वयस्क और एक बच्चा) के ठहरने की सुविधा है. साथ ही, इसमें नाश्ता भी शामिल है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
        <Children>
          <Child age="17"/>
        </Children>
      </OccupancyDetails>
      <PackageID>P54321</PackageID>
      <Name>
         <Text text="Breakfast Included" language="en"/>
         <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Two certificates for continental
          breakfast will be provided." language="en"/>
        <Text text="Deux certificats pour le petit déjeuner
          continental seront fournis." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

कमरे और पैकेज का मेटाडेटा

यहां दिए गए उदाहरण में, कमरे और पैकेज के मेटाडेटा के बारे में बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>180054</Property>
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Bed Room" language="en"/>
        <Text text="Chambre single" language="fr"/>
      </Name>
      <Description>
        <Text text="Non-smoking" language="en"/>
        <Text text="Pas de fumiers" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
        <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Includes a delightful array of jams and jellies." language="en"/>
        <Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

अलग-अलग सुविधाओं वाले एक तरह के कई कमरे

यहां दिए गए उदाहरण में, एक से ज़्यादा रूम बंडल के लिए रूम और पैकेज के मेटाडेटा को तय किया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <!-- A transaction message with room types result. -->
  <PropertyDataSet>
    <Property>12345</Property>
    <RoomData>
      <RoomID>single</RoomID>
      <Name>
        <Text text="Single room" language="en"/>
        <Text text="Chambre simple" language="fr"/>
      </Name>
      <Description>
        <Text text="A single room" language="en"/>
        <Text text="Le chambre simple" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image1235.jpg</URL>
      </PhotoURL>
      <Capacity>2</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>double</RoomID>
      <Name>
        <Text text="Double room" language="en"/>
        <Text text="Chambre double" language="fr"/>
      </Name>
      <Occupancy>1</Occupancy>
    </RoomData>
    <PackageData>
      <PackageID>refundbreakfast</PackageID>
      <Name>
        <Text text="Refundable Room with Breakfast" language="en"/>
        <Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Continental Breakfast" language="en"/>
        <Text text="Petit déjeuner continental" language="fr"/>
      </Description>
      <ChargeCurrency>hotel</ChargeCurrency>
      <Refundable available="1" refundable_until_days="3"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>prepaid</PackageID>
      <Name>
        <Text text="Nonrefundable" language="en"/>
        <Text text="Non remboursable" language="fr"/>
      </Name>
      <Description>
        <Text text="Blah blah blad" language="en"/>
        <Text text="Le blah blah blad" language="fr"/>
      </Description>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="0"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>


किराये के साथ कमरे का बंडल

यहां दिए गए उदाहरण में, किराये की सुविधाओं के साथ रूम बंडल के लिए, कमरे और पैकेज के मेटाडेटा को तय करने का तरीका बताया गया है:

<Transaction timestamp="2010-04-24T20:44:56-04:00" id="TXNID">
  <PropertyDataSet>
    <Property>12345</Property>
    <RoomData>
     ...
    </RoomData>
<!-- definitions of PackageData types including rate features -->
    <PackageData>
      <PackageID>room_with_addl_benefits</PackageID>
      <Name>
        <Text text="Acme Hotels 2017 Promotion Package" language="en"/>
      </Name>
      <ChargeCurrency>hotel</ChargeCurrency>
      <BreakfastIncluded>1</BreakfastIncluded>
      <MembershipBenefitsIncluded>
        <ProgramName>
          <Text language="en" text="Marriott Rewards"/>
        </ProgramName>
        <ProgramLevel>
          <Text language="en" text="Platinum"/>
        </ProgramLevel>
      </MembershipBenefitsIncluded>
      <OnPropertyCredit>
        <Amount currency="USD">123.45</Amount>
      </OnPropertyCredit>
    </PackageData>
    <PackageData>
      <PackageID>room_with_miles</PackageID>
      <Name>
        <Text text="Room with Bundled Miles" language="en"/>
      </Name>
      <ChargeCurrency>hotel</ChargeCurrency>
      <MilesIncluded>
        <NumberOfMiles>1000</NumberOfMiles>
        <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      </MilesIncluded>
      <AirportTransportationIncluded direction="from"/>
    </PackageData>
  </PropertyDataSet>

<!-- The actual list of prices -->
  <Result>
…
  </Result>
</Transaction>

खाना और फ़ोटो

यहां दिए गए उदाहरण में, खाने-पीने की चीज़ों, फ़ोटो, और चेक-इन और चेक-आउट के समय के लिए, कमरे और पैकेज का मेटाडेटा तय किया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

नाश्ता

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <Breakfast included="true"/>
        <!-- Dinner not included needs to be explicitly specified -->
        <Dinner included="false"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

<Result>

यह <Transaction> मैसेज में, कीमत और खरीदारी के लिए उपलब्धता से जुड़े अपडेट के लिए कंटेनर होता है.

में दें.

<Result> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

कमरे का किराया सेट करने या अपडेट करने के लिए <Result> का इस्तेमाल करें. साथ ही, उपलब्ध इन्वेंट्री तय करें. इस एलिमेंट में तय किए गए आइटम, आम तौर पर <PackageData> और <RoomData> में तय किए गए कमरे या पैकेज के बारे में यात्रा कार्यक्रम से अलग मेटाडेटा का रेफ़रंस देते हैं. जैसे, जानकारी या सुविधाओं का सेट.

आम तौर पर, कीमत में होने वाले बदलावों के साथ लेन-देन के मैसेज बहुत बार भेजे जाते हैं. आपको यह काम कैसे और कितनी बार करना है, यह डिलिवरी मोड पर निर्भर करता है.

इन्वेंट्री हटाना लेख में बताए गए तरीके से, यात्रा की योजनाओं को हटाने के लिए, लेन-देन के मैसेज में <Result> का इस्तेमाल किया जा सकता है. कीमतों और खरीदारी के लिए उपलब्धता की जानकारी अपडेट करने के लिए, लेन-देन के मैसेज इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, इन्वेंट्री जोड़ना और उसे अपडेट करना लेख पढ़ें.

एक लेन-देन वाले मैसेज में, <Result> एलिमेंट की कोई भी संख्या शामिल की जा सकती है. हालांकि, मैसेज का साइज़ 100 एमबी से ज़्यादा नहीं होना चाहिए.

सिंटैक्स

<Result> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    <!-- Required -->
    <Property>hotel_ID</Property>
    <!-- Required -->
    <Checkin>YYYY-MM-DD</Checkin>
    <!-- Required -->
    <Nights>number_of_nights</Nights>

    <Baserate currency="currency_code">price</Baserate>
    <!-- Only required when <Baserate> contains a real price -->
    <Tax currency="currency_code">tax_amount</Tax>
    <!-- Only required when <Baserate> contains a real price  -->
    <OtherFees currency="currency_code">fee_amount</OtherFees>
    <Refundable available="[false|true]" refundable_until_days="number_of_days"
      refundable_until_time="time"/>

    <RoomID>room_ID</RoomID>
    <PackageID>package_ID</PackageID>
    <ExpirationTime>expiration_time</ExpirationTime>
    <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>

    <Occupancy>max_number_of_intended_occupants</Occupancy>
    <!-- For Baserate, occupancy value must be greater than or equal to 2.
         If a value is not provided for occupancy, it defaults to 2. -->
    <!-- Child occupancy rates should only be sent through Live pricing
         with context and not through Pull or Changed pricing -->
    <OccupancyDetails>occupancy_info</OccupancyDetails>

    <Rates>...</Rates>

    <RoomBundle>...</RoomBundle>

    <AllowablePointsOfSale>
      <PointOfSale id="landing_page_identifier"/>
      ...
    </AllowablePointsOfSale>

    <MilesIncluded>
      <NumberOfMiles>integer</NumberOfMiles>
      <Provider>
        <Text language="en" text="provider-name">
      </Provider>
      <!-- Add Loyalty point information -->
      <LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID>
    </MilesIncluded>
  </Result>
  ...
  </Transaction>

विशेषताएं

<Result> एलिमेंट में ये एट्रिब्यूट होते हैं:

एट्रिब्यूट ज़रूरी है? टाइप ब्यौरा
mergeable Optional boolean डिफ़ॉल्ट रूप से, किसी होटल और यात्रा की योजना के लिए नई कीमतें, Google की कैश मेमोरी में मौजूद पिछली (समयसीमा खत्म न हुई) कीमतों को ओवरराइट कर देंगी. मर्ज किए जा सकने वाले एट्रिब्यूट की मदद से, Google की कैश मेमोरी में अतिरिक्त कीमतें सेव की जा सकती हैं. इसके लिए, आपको कीमत की पिछली जानकारी मिटाने की ज़रूरत नहीं होती. कॉन्टेक्स्ट के साथ लाइव क्वेरी करने पर मिलने वाले जवाबों में, यह एट्रिब्यूट हमेशा true पर सेट होता है. भले ही, लेन-देन के मैसेज के जवाब में कुछ भी हो.

चाइल्ड एलीमेंट

<Result> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<AllowablePointsOfSale> Optional Object एक या उससे ज़्यादा ऐसे लैंडिंग पेज जो होटल के लिए ज़रूरी शर्तें पूरी करते हों. लैंडिंग पेज एक ऐसी वेबसाइट होती है जो बुकिंग की प्रोसेस को पूरा कर सकती है. किसी लैंडिंग पेज को साफ़ तौर पर शामिल करने और अन्य को बाहर रखने के लिए, एक या उससे ज़्यादा <AllowablePointsOfSale> एलिमेंट जोड़ें. ये एलिमेंट, लैंडिंग पेजों की फ़ाइल में मौजूद <PointOfSale> एलिमेंट के id एट्रिब्यूट से मेल खाने चाहिए.

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

<Baserate> Optional float

ठहरने के लिए कमरे का किराया. इस एलिमेंट की वैल्यू में यह जानकारी होनी चाहिए:

  • निजी कमरे के लिए, दो लोगों के रहने का सबसे कम किराया सेट करें. अगर आपके पास दो लोगों के हिसाब से किराया तय करने की सुविधा नहीं है और आपके खाते में दो लोगों के हिसाब से किराया तय करने की सुविधा चालू नहीं है, तो यहां ज़्यादा लोगों के हिसाब से किराया तय किया जा सकता है. दो लोग नहीं होने पर की गई बुकिंग के लिए किराये की सुविधा चालू करने के लिए, कृपया हमसे संपर्क करें. यहां एक व्यक्ति के लिए किराये की जानकारी देने की अनुमति नहीं है. इसे <Rates> में सेट करना होगा.
  • शेयर किए गए कमरे के लिए, इसे खाली छोड़ें और <RoomBundle> का इस्तेमाल करें.
  • यह वैल्यू, सभी रातों के लिए कुल मूल किराया होना चाहिए. यह एक रात का औसत किराया नहीं होना चाहिए.

अगर यात्रा की योजना के लिए कमरा उपलब्ध नहीं है, तो <Baserate> को या तो छोड़ दिया जाना चाहिए या -1 पर सेट किया जाना चाहिए. साथ ही, <Unavailable> को सेट किया जाना चाहिए. इसके अलावा, कमरे के उपलब्ध न होने की वजहों के बारे में भी बताया जाना चाहिए.

किसी रूम बंडल को हटाने के लिए, रूम बंडल हटाना में दिए गए निर्देशों का पालन करें.

<Baserate> में, अंकों के ग्रुप बनाने वाले कोई भी सिंबल नहीं होने चाहिए. जैसे, कॉमा (,) या पीरियड (.). दशमलव के तौर पर हमेशा पीरियड (.) का इस्तेमाल करके, फ़्रैक्शन को अलग करें. उदाहरण के लिए, 1,20,040 रुपये को इस तरह दिखाएं:

<Baserate currency="USD">1200.40</Baserate>

<Baserate> एलिमेंट में, यहां दिए गए ऐसे एट्रिब्यूट भी काम करते हैं जो ज़रूरी नहीं हैं:

  • all_inclusive: यह एक बूलियन है. इससे पता चलता है कि इस किराये में टैक्स और शुल्क शामिल हैं या नहीं. आम तौर पर, अमेरिका और कनाडा के उपयोगकर्ताओं के लिए इस वैल्यू को false पर सेट करें. साथ ही, <Tax> और <OtherFees> एलिमेंट के लिए वैल्यू दें. अगर आपने सभी टैक्स और शुल्क शामिल करके किराया तय किया है, तो हो सकता है कि आपको लिस्टिंग में शामिल होने की अनुमति न मिले. ऐसा तब होगा, जब आपने कनाडा में रहने वाले लोगों के लिए टैक्स और शुल्क अलग-अलग नहीं दिखाए होंगे.

    अमेरिका में रहने वाले लोगों को अब टैक्स के साथ किराया दिखाया जाता है.

    अन्य सभी खरीदारों के लिए, आम तौर पर टैक्स और शुल्क को मूल किराये में शामिल किया जाता है. साथ ही, all_inclusive एट्रिब्यूट की वैल्यू को true पर सेट किया जाता है. ज़्यादा जानकारी के लिए, टैक्स और शुल्कों के लिए बनी नीति पढ़ें.

    डिफ़ॉल्ट वैल्यूfalse है

  • currency: तीन अक्षरों वाला मुद्रा कोड. उदाहरण के लिए, डॉलर के लिए USD.
<ChargeCurrency> Optional enum उपयोगकर्ता बुकिंग के लिए पेमेंट कब और कहां करता है. इस एलिमेंट का इस्तेमाल, लेन-देन के मैसेज में किया जा सकता है. इसके लिए, होटल के किराये के लिए <Result> एलिमेंट या रूम बंडल के लिए <PackageData> ब्लॉक का इस्तेमाल करें.

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

  • web: उपयोगकर्ता से बुकिंग के समय ऑनलाइन शुल्क लिया जाता है. यह डिफ़ॉल्ट मान है. असल लैंडिंग पेज, लैंडिंग पेज फ़ाइल से तय होता है. साथ ही, यह उपयोगकर्ता की मुद्रा, जगह, भाषा या अन्य बातों से प्रभावित हो सकता है.
  • hotel: होटल में चेक इन करने पर, उपयोगकर्ता से शुल्क लिया जाता है. अगर पेमेंट हमेशा होटल की मुद्रा में करना है, तो <ChargeCurrency> की वैल्यू को hotel पर सेट करें. उपयोगकर्ता की मुद्रा से, असली लैंडिंग पेज पर कोई असर नहीं पड़ता.
  • deposit: इस विकल्प में, उपयोगकर्ता से कुछ हिस्सा तुरंत ले लिया जाता है. बाकी हिस्सा बाद में लिया जाता है. आम तौर पर, यह तब लिया जाता है, जब उपयोगकर्ता होटल से चेक आउट करता है.
  • installments: इस विकल्प में, उपयोगकर्ता से कुल बकाया रकम का कुछ हिस्सा लिया जाता है. साथ ही, उससे यह उम्मीद की जाती है कि वह तय समय में, तय की गई रकम का नियमित तौर पर पेमेंट करेगा.

डिफ़ॉल्ट वैल्यूweb है

<Checkin> Required Date यात्रा की योजना के लिए, चेक-इन करने की तारीख. इसके लिए, तारीख फ़ॉर्मैट का इस्तेमाल किया जाता है. <Nights> एलिमेंट और <Checkin> एलिमेंट मिलकर यात्रा का प्लान बनाते हैं.
Optional string बंद कर दिया गया: यह एक कस्टम फ़ील्ड तय करता है. इसका इस्तेमाल होटल से जुड़ा अतिरिक्त डेटा पास करने के लिए किया जा सकता है. इन एलिमेंट के नाम के साथ, ज़्यादा से ज़्यादा पांच कस्टम वैल्यू पास की जा सकती हैं:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

<Custom> एलिमेंट की मदद से, कोई भी डेटा पास किया जा सकता है. उदाहरण के लिए, इस फ़ील्ड में कोई ऐसी वैल्यू दी जा सकती है जिसका इस्तेमाल लैंडिंग पेज की फ़ाइल करेगी. इससे लैंडिंग पेज के लिए कस्टम यूआरएल बनाया जा सकेगा. हर कस्टम फ़ील्ड में 200 से ज़्यादा वर्ण नहीं होने चाहिए. ज़्यादा जानकारी के लिए, लैंडिंग पेज की फ़ाइलें देखें. <Rate> एलिमेंट में दिए गए <Custom> एलिमेंट, <RoomBundle> एलिमेंट में इनहेरिट नहीं किए जाते. आपको हर <RoomBundle> में <Custom> एट्रिब्यूट को अलग से तय करना होगा.

अहम जानकारी: अगर आपको CUSTOM वैरिएबल का इस्तेमाल करना है, तो अपने टेक्निकल खाता मैनेजर (टैम) से संपर्क करें.

<ExpirationTime> Optional DateTime वह तारीख और समय जब कीमत को खत्म माना जाता है (कम से कम तीन घंटे).

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

Google, समयसीमा खत्म हो चुके किसी भी किराये को नहीं दिखाता है. साथ ही, समयसीमा खत्म हो चुके किराये वाली कोई भी यात्रा योजना, मौजूदा किराये के बारे में क्वेरी करने की सुविधा के लिए ज़रूरी शर्तें पूरी करेगी.

<MilesIncluded> Optional boolean किराये में फ़्रीक्वेंट फ़्लायर माइल्स शामिल हैं. पैरामीटर में ये शामिल हैं:
  • NumberOfMiles: हर यात्रा कार्यक्रम के लिए मील की संख्या.
  • Provider: फ़्रीक्वेंट फ़्लायर प्रोग्राम के तहत मील देने वाली कंपनी.
  • LoyaltyCampaignID: यह एक यूनीक आईडी है. इससे उस लॉयल्टी कैंपेन की पहचान होती है जिसे Google के साथ कॉन्फ़िगर और अपडेट किया गया था. इससे होटल के किराये में लॉयल्टी पॉइंट जुड़ जाते हैं.

    <MilesIncluded> एलिमेंट को शामिल करने के लिए, कैंपेन आईडी को लॉयल्टी कैंपेन के कॉन्फ़िगरेशन में कॉन्फ़िगर किया जाना चाहिए. Google, नतीजों में लॉयल्टी पॉइंट का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानकारी, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन से तय होती है.

    <MilesIncluded> एलिमेंट में <NumberOfMiles> चाइल्ड एलिमेंट होता है. इससे कमाए गए पॉइंट की संख्या का हिसाब लगाया जाता है. अगर <NumberOfMiles> सेट नहीं किया गया है, तो कमाए गए पॉइंट, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन के हिसाब से तय किए जाते हैं.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • ध्यान दें: <NumberOfMiles> और <Provider> की वैल्यू देना ज़रूरी नहीं है.

<Nights> Required integer यात्रा की योजना में शामिल रातों की संख्या. <Nights> एलिमेंट की वैल्यू, पॉज़िटिव पूर्णांक होनी चाहिए. <Nights> और <Checkin> को मिलाकर यात्रा की योजना बनती है.
<OtherFees> Optional float कमरे के मूल किराये और टैक्स के अलावा, ऐसे शुल्क जिनसे कमरे के फ़ाइनल किराये पर असर पड़ता है. <OtherFees> एलिमेंट में, currency एट्रिब्यूट की वैल्यू सबमिट करना ज़रूरी है. यह एट्रिब्यूट, शुल्क के लिए तीन अक्षरों वाला मुद्रा कोड तय करता है. उदाहरण के लिए, USD.

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

<Occupancy> Optional integer इस किराये के हिसाब से, कमरे में रहने वाले लोगों की ज़्यादा से ज़्यादा संख्या के बारे में बताता है. जब <Occupancy>, <Result> के ठीक नीचे दिखता है, तो इसमें 2 या इससे ज़्यादा वैल्यू होनी चाहिए. <Occupancy> के साथ <OccupancyDetails> भी हो सकता है. इससे मेहमानों के टाइप (वयस्क या बच्चे) के बारे में पता चलता है. अगर मेहमानों के टाइप नहीं बताए गए हैं, तो उन्हें वयस्क माना जाता है. चाइल्ड एलिमेंट के सिंटैक्स और ब्यौरे के लिए, <OccupancyDetails> देखें. अगर <Occupancy> एलिमेंट नहीं दिया गया है, तो डिफ़ॉल्ट रूप से ऑक्यूपेंसी 2 के तौर पर सेट होती है.

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

ध्यान दें: दो से ज़्यादा लोगों के लिए तय किए गए किराये की जानकारी भेजने की सुविधा चालू करने के लिए, सहायता टीम से संपर्क करें.

<PackageID> Optional string पैकेज का यूनीक आईडी, ताकि इसे पहले से तय किए गए पैकेज के डेटा से मैप किया जा सके. इसका इस्तेमाल PACKAGE-ID लैंडिंग पेज वैरिएबल में जानकारी भरने के लिए भी किया जाता है. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

<Result> एलिमेंट में <PackageID> और <RoomID> को तय करने के लिए, <RoomBundle> को शामिल करना ज़रूरी है. हालांकि, हमारा सुझाव है कि पैकेज और कमरों के आईडी, <Result> एलिमेंट के बजाय सिर्फ़ <RoomBundle> एलिमेंट में दिए जाएं.

<Property> Required string उस होटल का आईडी जिस पर जुड़े हुए डेटा (किराया, यात्रा की योजना, रूम बंडल या मेटाडेटा) का असर पड़ा है. इस एलिमेंट की वैल्यू, स्ट्रिंग होनी चाहिए. इस एलिमेंट की वैल्यू, होटल सूची फ़ीड में तय की गई लिस्टिंग <id> से मेल खानी चाहिए.
<Rates> Optional <Rates> एक या उससे ज़्यादा <Rate> ब्लॉक के लिए कंटेनर. <Rates> में मौजूद हर <Rate>, कमरे/यात्रा के कार्यक्रम के कॉम्बिनेशन के लिए अलग-अलग किराया तय करता है.

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

ध्यान दें: <Result> में, एक व्यक्ति के लिए कमरे का किराया सिर्फ़ <Rates> में बताया जा सकता है. दो लोगों के अलावा किसी और के लिए किराये की जानकारी दिखाने की अनुमति पाने के लिए, कृपया हमसे संपर्क करें.

<Refundable> Optional Object इस सुविधा की मदद से, किराये को पूरी तरह से रिफ़ंड किए जाने वाले किराये के तौर पर लिस्ट किया जा सकता है या बिना किसी शुल्क के बुकिंग रद्द करने की सुविधा दी जा सकती है. यह जानकारी न देने पर, रिफ़ंड के बारे में कोई जानकारी नहीं दिखती. <PackageData> लेवल पर मौजूद रिफ़ंड नीति, <Result> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. <Rates> लेवल पर मौजूद रिफ़ंड नीति, <PackageData> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. लेन-देन के मैसेज स्कीमा में सीधे तौर पर बदलाव किए बिना, उपयोगकर्ताओं को अन्य विकल्पों के ज़रिए भी रिफ़ंड की सुविधा वाली कीमत के बारे में बताया जा सकता है. रिफ़ंड किए जा सकने वाले किराये की नीति के बारे में ज़्यादा जानें.

इस उदाहरण में, <Refundable> एलिमेंट को उसके सभी एट्रिब्यूट के साथ सेट किया गया है:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

ध्यान दें: हमारा सुझाव है कि आप सभी एट्रिब्यूट सेट करें. एक या उससे ज़्यादा एट्रिब्यूट सेट न होने पर, फ़ीड की स्थिति के बारे में चेतावनी वाला मैसेज जनरेट होता है.

अगर आपने कोई एट्रिब्यूट सेट नहीं किया है, तो किराया, रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा. ये एट्रिब्यूट हैं:

  • available: (ज़रूरी है) अगर किराये के लिए पूरा रिफ़ंड दिया जा सकता है, तो इसे 1 (या true) पर सेट करें. अगर पूरा रिफ़ंड नहीं दिया जा सकता, तो इसे 0 (या false) पर सेट करें.
  • refundable_until_days: (अगर available true है, तो यह ज़रूरी है) इससे यह पता चलता है कि चेक-इन से कितने दिन पहले तक, पूरा रिफ़ंड पाने का अनुरोध किया जा सकता है. refundable_until_days की वैल्यू, 0 और 330 के बीच का कोई पूर्णांक होना चाहिए.
  • refundable_until_time: (अगर available true है, तो इसे इस्तेमाल करने का सुझाव दिया जाता है) इससे होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी मिलती है. साथ ही, इसमें पूरे पैसे रिफ़ंड होने की बात शामिल होती है. इसे refundable_until_days के साथ जोड़ा जा सकता है. उदाहरण के लिए, यह बताने के लिए कि "चेक-इन से दो दिन पहले शाम 4:00 बजे तक रिफ़ंड की सुविधा उपलब्ध है". अगर refundable_until_time सेट नहीं है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात पर सेट हो जाती है.

    इस एट्रिब्यूट की वैल्यू, Time फ़ॉर्मैट का इस्तेमाल करती है.

एट्रिब्यूट सेट करते समय, इन बातों का ध्यान रखें:

  • अगर available या refundable_until_days सेट नहीं है, तो किराया रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा.
  • अगर available की वैल्यू 0 (या false) है, तो अन्य एट्रिब्यूट को अनदेखा कर दिया जाता है. अगर अन्य एट्रिब्यूट में से एक या दोनों सेट किए गए हैं, तब भी किराया, रिफ़ंड किए जा सकने वाले किराये के तौर पर नहीं दिखता.
<RoomBundle> Optional <RoomBundle> यह कंटेनर, कमरे की कीमत के साथ दी गई जानकारी, सुविधाओं की पैकेजिंग, और दिए गए होटल और यात्रा की योजना के लिए खरीदारी की नीति के बारे में जानकारी देता है.

आम तौर पर, इस एलिमेंट का इस्तेमाल मूल कमरे और एक ही प्रॉपर्टी में मौजूद अलग-अलग तरह के कमरों के लिए किराया तय करने के लिए किया जाता है. रूम बंडल के बारे में जानकारी को इनलाइन तरीके से भी दिया जा सकता है. हालांकि, आपको उस जानकारी को देने के लिए, लेन-देन के अलग मैसेज का इस्तेमाल करना चाहिए. Google, मेटाडेटा को सेव करेगा, ताकि आने वाले समय में कीमत से जुड़े सभी अपडेट में आपको इसे दोहराने के बजाय सिर्फ़ इसका रेफ़रंस देना पड़े.

<RoomID> Optional string कमरे का यूनीक आईडी, ताकि उसे पहले से तय किए गए कमरे के डेटा से मैप किया जा सके. इसका इस्तेमाल PARTNER-ROOM-ID लैंडिंग पेज वैरिएबल को भरने के लिए भी किया जाता है. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

<Result> एलिमेंट में <PackageID> और <RoomID> को तय करने के लिए, <RoomBundle> को शामिल करना ज़रूरी है. हालांकि, हमारा सुझाव है कि पैकेज और कमरों के आईडी, <Result> एलिमेंट के बजाय सिर्फ़ <RoomBundle> एलिमेंट में दिए जाएं.

<Tax> Optional float कमरे के किराये में शामिल टैक्स. <Tax> एलिमेंट में एक ज़रूरी एट्रिब्यूट, currency होता है. यह टैक्स के लिए, तीन अक्षरों वाला करंसी कोड तय करता है. उदाहरण के लिए, USD. अगर <Baserate> की वैल्यू शून्य से ज़्यादा है, तो <Tax> एलिमेंट ज़रूरी है.

अगर <Baserate> एलिमेंट के "all_inclusive" एट्रिब्यूट को साफ़ तौर पर 'सही है' पर सेट किया गया है, तो इस वैल्यू को सेट करना ज़रूरी नहीं है.

<Unavailable> Optional Object इससे पता चलता है कि यात्रा की योजना बुक करने के लिए उपलब्ध नहीं है. यह एक कंटेनर के तौर पर काम करता है. इसमें यह जानकारी होती है कि यात्रा की योजना क्यों उपलब्ध नहीं थी. <Unavailable> टैग में, उपलब्धता न होने की एक या इससे ज़्यादा वजहें नेस्ट की जा सकती हैं:
  • <NoVacancy/>: होटल में ठहरने की एक या उससे ज़्यादा रातों के लिए, अब कोई कमरा बिक्री के लिए उपलब्ध नहीं है.
  • <MinNightStay value=N/>: ठहरने की तारीखों के लिए, यात्रा की योजना में कम से कम N रात ठहरने की शर्त पूरी नहीं की गई थी.
  • <MaxNightStay value=N/>: ठहरने की तारीखों के लिए, यात्रा की योजना में N से ज़्यादा रातें शामिल थीं.
  • <MinAdvancePurchase value=N/>: यात्रा की योजना में, ठहरने की तारीखों के लिए N दिन पहले बुकिंग करने की विंडो नहीं थी.
  • <MaxAdvancePurchase value=N/>: यात्रा की योजना में, ठहरने की तारीखों के लिए N दिन पहले बुकिंग करने की विंडो से ज़्यादा दिन पहले बुकिंग की गई थी.
  • <ClosedToArrival/>: इस प्रॉपर्टी में, यात्रा की योजना के मुताबिक पहुंचने की तारीख को चेक-इन करने की अनुमति नहीं है.
  • <ClosedToDeparture/>: प्रॉपर्टी में, यात्रा की योजना के मुताबिक जाने की तारीख को चेक आउट करने की अनुमति नहीं है.
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: प्रॉपर्टी, ठहरने की अवधि के कुछ या सभी दिनों के लिए बंद है. सुझाए गए एट्रिब्यूट first_open और first_closed, चेक-इन की तारीख के बाद की पहली तारीखें बताते हैं. इनमें से एक एट्रिब्यूट, प्रॉपर्टी के खुले होने की तारीख बताता है और दूसरा, बंद होने की तारीख बताता है. अगर कोई प्रॉपर्टी, मेहमान के पहुंचने की तारीख के बाद बंद हो जाती है, तो first_open की वैल्यू, मेहमान के पहुंचने की तारीख के बराबर होनी चाहिए. साथ ही, first_closed की वैल्यू, प्रॉपर्टी के बंद होने की तारीख होनी चाहिए. अगर कोई प्रॉपर्टी, मेहमान के पहुंचने की तारीख को बंद रहती है, तो first_closed की वैल्यू, मेहमान के पहुंचने की तारीख के बराबर होनी चाहिए. साथ ही, first_opened की वैल्यू, प्रॉपर्टी के खुलने की अगली तारीख होनी चाहिए.
  • <NotFetched/>: यात्रा की योजना के लिए, डाउनस्ट्रीम डेटा सोर्स ने किराया नहीं दिया है.
  • <InvalidProperty/>: अनुरोध किए गए प्रॉपर्टी आइडेंटिफ़ायर की पहचान नहीं हो सकी.
  • <InvalidOccupancy/>: प्रॉपर्टी में, अनुरोध किए गए लोगों के हिसाब से कमरों की उपलब्धता नहीं है.
  • <PriceIssue/>: कीमत से जुड़ी समस्या की वजह से, इसे नहीं भेजा जा सका.
  • <InternalError reason=""/>: कुछ ऐसी गड़बड़ी हुई जिसके बारे में जानकारी नहीं दी गई है. वजह एट्रिब्यूट की वैल्यू के तौर पर, गड़बड़ी की जानकारी टेक्स्ट के तौर पर दी जा सकती है. हालांकि, ऐसा करना ज़रूरी नहीं है.
  • <OtherRestriction restriction=""/>: बुकिंग से जुड़ी कुछ पाबंदियों की वजह से, यात्रा की योजना उपलब्ध नहीं थी. ज़रूरी नहीं है restriction एट्रिब्यूट की मदद से, पाबंदी के बारे में टेक्स्ट के तौर पर बताया जा सकता है.

उदाहरण

एक से ज़्यादा प्रॉपर्टी का उदाहरण

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

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">278.33</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="site1"/>
    </AllowablePointsOfSale>
  </Result>
  <Result>
    <Property>052213</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">299.98</Baserate>
    <Tax currency="USD">26.42</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="otto"/>
      <PointOfSale id="simon"/>
    </AllowablePointsOfSale>
    <MilesIncluded>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines"/>
      </Provider>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>
  </Result>
</Transaction>

इस उदाहरण में, कमरे के बारे में जानकारी नहीं दिखाई गई है. जैसे, कमरे का ब्यौरा, उसकी तस्वीर और कैप्शन, कमरे का नाम, और उसमें ठहरने वाले लोगों की संख्या.

Google इस जानकारी को सेव करता है. इसे अलग से लेन-देन के मैसेज में एक बार तय किया जा सकता है. इसके बाद, कीमत और इन्वेंट्री से जुड़े सभी अपडेट में इसका रेफ़रंस दिया जा सकता है. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें.

एक से ज़्यादा दर का उदाहरण

यहां दिए गए उदाहरण में, एक यात्रा कार्यक्रम और प्रॉपर्टी के बारे में बताया गया है. इसमें अलग-अलग लोगों के हिसाब से, कई किराये दिए गए हैं. <Rates> एलिमेंट का इस्तेमाल करके, किसी प्रॉपर्टी के लिए अलग-अलग किराये की जानकारी दी जा सकती है. यहां दिया गया उदाहरण, छुट्टियों में किराये पर उपलब्ध जगहों (वीआर) की प्रॉपर्टी के लिए भी काम का है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2021-01-13</Checkin>
    <Nights>9</Nights>
    <Baserate currency="USD">3196.1</Baserate>
    <Tax currency="USD">559.49</Tax>
    <OtherFees currency="USD">543.34</OtherFees>
    <Occupancy>2</Occupancy>
    <Rates>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>1</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>3</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>4</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>5</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>6</Occupancy>
      </Rate>
    </Rates>
  </Result>
</Transaction>

उदाहरण उपलब्ध नहीं है

यहां एक उदाहरण दिया गया है. इसमें एक ऐसी यात्रा की योजना के बारे में बताया गया है जिसकी उपलब्धता, डाउनस्ट्रीम चैनलों से नहीं मिल सकी. दूसरी यात्रा की योजना में, ठहरने की कम से कम अवधि से कम समय के लिए बुकिंग की गई है. साथ ही, बताई गई तारीखों के लिए बुकिंग पहले ही हो चुकी है. तीसरी यात्रा की योजना में, प्रॉपर्टी के पहुंचने की तारीख को बंद होने की जानकारी दी गई है. हालांकि, ठहरने के दौरान प्रॉपर्टी खुल जाती है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Unavailable>
      <NotFetched/>
    </Unavailable>
  </Result>
  <Result>
    <Property>073313</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Unavailable>
      <NoVacancy/>
      <MinNightStay value=3/>
    </Unavailable>
  </Result>
  <Result>
    <Property>052213</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>10</Nights>
    <Unavailable>
      <PropertyClosed first_open="2018-06-15" first_closed="2018-06-10"/>
    </Unavailable>
  </Result>
</Transaction>

<Rates>

एक या उससे ज़्यादा <Rate> ब्लॉक के लिए कंटेनर. <Rate> में मौजूद हर <Rates>, कमरे या यात्रा की योजना के कॉम्बिनेशन के लिए अलग-अलग कीमत तय करता है.

<Rates> एलिमेंट का इस्तेमाल सिर्फ़ तब करें, जब एक ही कमरे या यात्रा कार्यक्रम के कॉम्बिनेशन के लिए कई किराये मौजूद हों. उदाहरण के लिए, शर्तों के साथ लागू होने वाले किराये, निजी किराये या रूम बंडल में शामिल शर्तों के साथ लागू होने वाले किराये के लिए, एक से ज़्यादा किराये तय किए जाते हैं.

<Rates> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>         // Pricing and availability
        + <Rates>
        + <RoomBundle> (Can also contain <Rates>)
        + ...

<Rate> में सेट की गई वैल्यू, पैरंट <Result> या <RoomBundle> एलिमेंट में कीमत से जुड़ी वैल्यू को बदल देती हैं. अगर इन्हें <Rate> में सेट नहीं किया गया है, तो ये पैरंट एलिमेंट से वैल्यू इनहेरिट करते हैं. सिर्फ़ <AllowablePointsofSale> को <RoomBundle> एलिमेंट में इनहेरिट किया जाता है.

सिंटैक्स

<Rates> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    <Rates>
      <Rate rate_rule_id="rate_rule_id">
        <Baserate currency="currency_code">price</Baserate>
        <Tax currency="currency_code">tax_amount</Tax>
        <OtherFees currency="currency_code">fee_amount</OtherFees>
        <ExpirationTime>expiration_time</ExpirationTime>
        <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
        <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
        <AllowablePointsOfSale>
          <PointOfSale id="landing_page_identifier"/>
        </AllowablePointsOfSale>
        <Occupancy>max_number_of_intended_occupants</Occupancy>
        <OccupancyDetails> <!-- optional info about the types of guests,
      whether adults or children --></OccupancyDetails>
          ...
        <MilesIncluded>
          <NumberOfMiles>integer</NumberOfMiles>
          <Provider>
            <Text language="en" text="provider-name">
          </Provider>
          <LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID>
        </MilesIncluded>
          ...
      </Rate>
      ...
    </Rates>
  </Result>
  ...
</Transaction>

विशेषताएं

<Rates> एलिमेंट में ये एट्रिब्यूट होते हैं:

एट्रिब्यूट ज़रूरी है? ब्यौरा
rate_rule_id Optional शर्त के हिसाब से तय की गई दरों के लिए, यह आईडी आपकी दर के नियम की परिभाषा वाली फ़ाइल में मौजूद किसी परिभाषा से मेल खाता है. इस फ़ील्ड में ज़्यादा से ज़्यादा 40 वर्ण हो सकते हैं.

चाइल्ड एलीमेंट

<Rates> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<AllowablePointsOfSale> Optional Object एक या उससे ज़्यादा ऐसे लैंडिंग पेज जो होटल के लिए ज़रूरी शर्तें पूरी करते हों. यह एलिमेंट, <Result> पर मौजूद <AllowablePointsOfSale> के सिंटैक्स का इस्तेमाल करता है.
<Baserate> Required float ठहरने के लिए कमरे का किराया. यह एलिमेंट, <Result> पर मौजूद <Baserate> के जैसा ही सिंटैक्स इस्तेमाल करता है.

ध्यान दें: <Rate> के तहत मौजूद <Baserate> चाइल्ड एलिमेंट को, उपलब्ध नहीं है के तौर पर तय नहीं किया जा सकता.

<ChargeCurrency> Optional enum उपयोगकर्ता बुकिंग के लिए पेमेंट कब और कहां करता है. यह एलिमेंट, <Result> में मौजूद <ChargeCurrency> के जैसा ही सिंटैक्स इस्तेमाल करता है.
Optional string बंद कर दिया गया: कस्टम फ़ील्ड का इस्तेमाल करके, होटल से जुड़ा अतिरिक्त डेटा लैंडिंग पेज पर भेजा जा सकता है. यह एलिमेंट, <Result> में मौजूद <Custom[1‑5]> के सिंटैक्स का इस्तेमाल करता है. हर कस्टम फ़ील्ड में 200 से ज़्यादा वर्ण नहीं होने चाहिए. ज़्यादा जानकारी के लिए, लैंडिंग पेज की फ़ाइलें देखें. अगर <Result> एलिमेंट में <Custom> एलिमेंट दिए गए हैं, तो वे <RoomBundle> एलिमेंट में इनहेरिट नहीं किए जाते हैं. साथ ही, उन्हें हर <RoomBundle> के लिए अलग से तय किया जाना चाहिए. इसके अलावा, अगर ज़रूरत हो, तो उन्हें <PackageData> में शामिल किया जा सकता है.

अहम जानकारी: अगर आपको CUSTOM वैरिएबल का इस्तेमाल करना है, तो अपने टेक्निकल खाता मैनेजर (टैम) से संपर्क करें.

<ExpirationTime> Optional DateTime वह तारीख और समय जब किराये को खत्म माना जाता है. यह एलिमेंट, <Result> में मौजूद <ExpirationTime> के सिंटैक्स का इस्तेमाल करता है.
<MilesIncluded> Optional boolean किराये में फ़्रीक्वेंट फ़्लायर माइल्स शामिल हैं. पैरामीटर में ये शामिल हैं:
  • NumberOfMiles: हर यात्रा कार्यक्रम के लिए मील की संख्या.
  • Provider: फ़्रीक्वेंट फ़्लायर प्रोग्राम के तहत मील देने वाली कंपनी.
  • LoyaltyCampaignID: यह एक यूनीक आईडी है. इससे उस लॉयल्टी कैंपेन की पहचान होती है जिसे Google के साथ कॉन्फ़िगर और अपडेट किया गया था. इससे होटल के किराये में लॉयल्टी पॉइंट जुड़ जाते हैं.

    <MilesIncluded> एलिमेंट को शामिल करने के लिए, कैंपेन आईडी को लॉयल्टी कैंपेन के कॉन्फ़िगरेशन में कॉन्फ़िगर किया जाना चाहिए. Google, नतीजों में लॉयल्टी पॉइंट का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानकारी, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन से तय होती है.

    <MilesIncluded> एलिमेंट में <NumberOfMiles> चाइल्ड एलिमेंट होता है. इससे कमाए गए पॉइंट की संख्या का हिसाब लगाया जाता है. अगर <NumberOfMiles> सेट नहीं किया गया है, तो कमाए गए पॉइंट, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन के हिसाब से तय किए जाते हैं.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • ध्यान दें: <NumberOfMiles> और <Provider> की वैल्यू देना ज़रूरी नहीं है.

<Occupancy> Optional integer

इस किराये के हिसाब से, कमरे में रहने वाले लोगों की ज़्यादा से ज़्यादा संख्या के बारे में बताता है. अगर इसे नहीं बताया गया है, तो इसे पैरंट रेट के बराबर माना जाता है. <Occupancy> के साथ <OccupancyDetails> हो सकता है. इससे मेहमानों के टाइप (वयस्क या बच्चे) के बारे में पता चलता है. चाइल्ड एलिमेंट के सिंटैक्स और ब्यौरे के लिए, <OccupancyDetails> देखें.

<OtherFees> Required float कमरे के मूल किराये और टैक्स के अलावा, ऐसे शुल्क जिनसे कमरे के फ़ाइनल किराये पर असर पड़ता है. यह एलिमेंट, <Result> में मौजूद <OtherFees> के सिंटैक्स का इस्तेमाल करता है.

अगर <Baserate> एलिमेंट के "all_inclusive" एट्रिब्यूट को साफ़ तौर पर 'सही है' पर सेट किया गया है, तो इस वैल्यू को सेट करना ज़रूरी नहीं है.

<Refundable> Optional Object इस सुविधा की मदद से, किराये को पूरी तरह से रिफ़ंड किए जाने वाले किराये के तौर पर लिस्ट किया जा सकता है या बिना किसी शुल्क के बुकिंग रद्द करने की सुविधा दी जा सकती है. यह जानकारी न देने पर, रिफ़ंड के बारे में कोई जानकारी नहीं दिखती. <PackageData> लेवल पर मौजूद रिफ़ंड नीति, <Result> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. <Rates> लेवल पर मौजूद रिफ़ंड नीति, <PackageData> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. लेन-देन के मैसेज स्कीमा में सीधे तौर पर बदलाव किए बिना, उपयोगकर्ताओं को अन्य विकल्पों के ज़रिए भी रिफ़ंड की सुविधा वाली कीमत के बारे में बताया जा सकता है. इन विकल्पों के बारे में ज़्यादा जानें रिफ़ंड किए जा सकने वाले किराये की नीति.

इस उदाहरण में, <Refundable> एलिमेंट को उसके सभी एट्रिब्यूट के साथ सेट किया गया है:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

ध्यान दें: हमारा सुझाव है कि आप सभी एट्रिब्यूट सेट करें. एक या उससे ज़्यादा एट्रिब्यूट सेट न होने पर, फ़ीड की स्थिति के बारे में चेतावनी वाला मैसेज जनरेट होता है.

अगर आपने कोई एट्रिब्यूट सेट नहीं किया है, तो किराया, रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा. ये एट्रिब्यूट हैं:

  • available: (ज़रूरी है) अगर किराये के लिए पूरा रिफ़ंड दिया जा सकता है, तो इसे 1 (या true) पर सेट करें. अगर पूरा रिफ़ंड नहीं दिया जा सकता, तो इसे 0 (या false) पर सेट करें.
  • refundable_until_days: (अगर available true है, तो यह ज़रूरी है) इससे यह पता चलता है कि चेक-इन से कितने दिन पहले तक, पूरा रिफ़ंड पाने का अनुरोध किया जा सकता है. refundable_until_days की वैल्यू, 0 और 330 के बीच का कोई पूर्णांक होना चाहिए.
  • refundable_until_time: (अगर available true है, तो इसे इस्तेमाल करने का सुझाव दिया जाता है) इससे होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी मिलती है. साथ ही, इसमें पूरे पैसे रिफ़ंड होने की बात शामिल होती है. इसे refundable_until_days के साथ जोड़ा जा सकता है. उदाहरण के लिए, यह बताने के लिए कि "चेक-इन से दो दिन पहले शाम 4:00 बजे तक रिफ़ंड की सुविधा उपलब्ध है". अगर refundable_until_time सेट नहीं है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात पर सेट हो जाती है.

    इस एट्रिब्यूट की वैल्यू, Time फ़ॉर्मैट का इस्तेमाल करती है.

एट्रिब्यूट सेट करते समय, इन बातों का ध्यान रखें:

  • अगर available या refundable_until_days सेट नहीं है, तो किराया रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा.
  • अगर available की वैल्यू 0 (या false) है, तो अन्य एट्रिब्यूट को अनदेखा कर दिया जाता है. अगर अन्य एट्रिब्यूट में से एक या दोनों सेट किए गए हैं, तब भी किराया, रिफ़ंड किए जा सकने वाले किराये के तौर पर नहीं दिखता.
<Tax> Required float कमरे के किराये में शामिल टैक्स. यह एलिमेंट, <Result> में मौजूद <Tax> के सिंटैक्स का इस्तेमाल करता है.

उदाहरण

मूल किराया और खास किराया

इस उदाहरण में, लेन-देन का एक ऐसा मैसेज दिखाया गया है जिसमें मूल किराया और शर्त के हिसाब से तय किया गया किराया शामिल है:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">1.00</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
      </Rate>
    </Rates>

  </Result>
</Transaction>

खास किराये की एक से ज़्यादा शर्तें

इस उदाहरण में, <RoomBundle> में मूल किराया और शर्तों के हिसाब से तय किए गए कई किराए दिखाए गए हैं:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>
    <!-- When Google receives new room bundle information for an itinerary, all
    previous room bundle pricing is dropped from Google's cache. Thus, if you
    want to delete a specific room bundle from Google's cache, you may do so
    by simply not providing that specific room bundle in subsequent transaction
    messages. -->
    <RoomBundle>
     ...
      <!-- RoomID is required, PackageID is recommended. -->
      <RoomID>5</RoomID>
      <PackageID>ABC</PackageID>
      <!-- Baserate is required. -->
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>

      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>5-ABC</RatePlanID>

      <!-- Occupancy is mandatory for RoomBundle elements. -->
      <!-- Elements below will get inherited to nested rate elements. -->
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
      </OccupancyDetails>
      <InternetIncluded>1</InternetIncluded>

      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides ChargeCurrency from roombundle. -->
          <ChargeCurrency>hotel</ChargeCurrency>
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

<RoomBundle>

<Transaction> मैसेज में, <Result> के चाइल्ड के तौर पर रूम बंडल की कीमत और उपलब्धता तय करता है. हर पैकेज या यात्रा कार्यक्रम के कॉम्बिनेशन के लिए, एक अलग एलिमेंट तय करें. कमरे के बंडल के पैकेज और शर्तों के बारे में बताने के लिए, <RoomData> का इस्तेमाल करें.

<RoomBundle> एलिमेंट, लेन-देन के मैसेज की एक्सएमएल हैरारकी में यहां दिखता है:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

ज़्यादा जानकारी के लिए, रूम बंडल का इस्तेमाल करना लेख पढ़ें.

सिंटैक्स

<RoomBundle> एलिमेंट में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    ...
    <RoomBundle>
      <!-- Required unless specified inline under <RoomData> -->
      <RoomID>room_ID</RoomID>
      <!-- Required  <PackageData> -->
      <PackageID>package_ID</PackageID>

      <!-- Add Loyalty point information -->
      <MilesIncluded>
        <NumberOfMiles>integer</NumberOfMiles>
        <Provider>
          <Text language="en" text="provider-name">
        </Provider>
        <LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID>>
      </MilesIncluded>

      <!-- Required -->
      <Baserate currency="currency_code">price</Baserate>
      <!-- Required -->
      <Tax currency="currency_code">taxes</Tax>
      <!-- Required -->
      <OtherFees currency="currency_code">other_fees</OtherFees>

      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- Required -->
      <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
      <Occupancy>max_number_of_intended_occupants</Occupancy>
      <OccupancyDetails> <!-- optional info about the types of guests,
      whether adults or children --></OccupancyDetails>

      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>

      <RatePlanID>rate_plan_ID</RatePlanID>

      <Rates>...</Rates>

    </RoomBundle>
    ...
  </Result>
</Transaction>

विशेषताएं

<RoomBundle> एलिमेंट में कोई एट्रिब्यूट नहीं है.

चाइल्ड एलीमेंट

<RoomBundle> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<Baserate> Required float इससे ठहरने के लिए, रूम बंडल की कीमत तय की जाती है. यह एलिमेंट, <Result> में मौजूद <Baserate> के सिंटैक्स का इस्तेमाल करता है. हालांकि, इसमें यह अपवाद शामिल है:
  • अगर यात्रा कार्यक्रम के लिए कमरा उपलब्ध नहीं है, तो <RoomBundle> एलिमेंट हटा दें. इससे पता चलेगा कि कमरा अब इन्वेंट्री में नहीं है. ज़्यादा जानकारी के लिए, रूम बंडल हटाना लेख पढ़ें.
<BreakfastIncluded> Optional boolean इससे पता चलता है कि इस रूम बंडल में, किराये के साथ नाश्ता शामिल है या नहीं.
<ChargeCurrency> Optional enum उपयोगकर्ता बुकिंग के लिए पेमेंट कब और कहां करता है. यह एलिमेंट, <Result> में <ChargeCurrency> के जैसा ही सिंटैक्स इस्तेमाल करता है.

डिफ़ॉल्ट वैल्यूweb है

Optional string बंद कर दिया गया: रूम बंडल के लैंडिंग पेजों पर अतिरिक्त डेटा भेजने के लिए कस्टम फ़ील्ड. इन एलिमेंट में, <Result> में <Custom[1-5]> के जैसा ही सिंटैक्स इस्तेमाल किया जाता है. हर कस्टम फ़ील्ड में 200 से ज़्यादा वर्ण नहीं होने चाहिए. ज़्यादा जानकारी के लिए, लैंडिंग पेज की फ़ाइलें देखें. कस्टम वैरिएबल सिर्फ़ तब दिखते हैं, जब लेन-देन के मैसेज में कीमतें भेजी जाती हैं. अगर <Result> एलिमेंट में <Custom> एलिमेंट दिए गए हैं, तो वे <RoomBundle> एलिमेंट में इनहेरिट नहीं होते हैं. साथ ही, उन्हें हर <RoomBundle> के लिए अलग से तय किया जाना चाहिए. इसके अलावा, अगर ज़रूरत हो, तो उन्हें <PackageData> में शामिल किया जा सकता है.

अहम जानकारी: अगर आपको CUSTOM वैरिएबल का इस्तेमाल करना है, तो अपने टेक्निकल खाता मैनेजर (टैम) से संपर्क करें.

<InternetIncluded> Optional boolean अगर किसी रूम बंडल में बिना किसी शुल्क के इंटरनेट ऐक्सेस करने की सुविधा शामिल है, जबकि अन्य बंडलों में यह सुविधा शामिल नहीं है. अगर होटल के सभी कमरों में मुफ़्त इंटरनेट की सुविधा मिलती है, तो होटल के रूम बंडल के लिए यह एलिमेंट सेट न करें. यह एलिमेंट, कमरे में मौजूद तार वाले इंटरनेट या मेहमानों के कमरों में उपलब्ध न होने वाले वायरलेस इंटरनेट पर लागू नहीं होता.
<MilesIncluded> Optional boolean किराये में फ़्रीक्वेंट फ़्लायर माइल्स शामिल हैं. पैरामीटर में ये शामिल हैं:
  • NumberOfMiles: हर यात्रा कार्यक्रम के लिए मील की संख्या.
  • Provider: फ़्रीक्वेंट फ़्लायर प्रोग्राम के तहत मील देने वाली कंपनी.
  • LoyaltyCampaignID: यह एक यूनीक आईडी है. इससे उस लॉयल्टी कैंपेन की पहचान होती है जिसे Google के साथ कॉन्फ़िगर और अपडेट किया गया था. इससे होटल के किराये में लॉयल्टी पॉइंट जुड़ जाते हैं.

    <MilesIncluded> कैंपेन को शामिल करने के लिए, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन में कैंपेन आईडी कॉन्फ़िगर किया जाना चाहिए. Google, खोज नतीजों में लॉयल्टी पॉइंट का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानकारी, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन से तय होती है.

    <MilesIncluded> एलिमेंट में <NumberOfMiles> चाइल्ड एलिमेंट होता है. इससे कमाए गए पॉइंट की संख्या का हिसाब लगाया जाता है. अगर <NumberOfMiles> सेट नहीं किया गया है, तो कमाए गए पॉइंट, लॉयल्टी कैंपेन के कॉन्फ़िगरेशन के हिसाब से तय किए जाते हैं.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • ध्यान दें: <NumberOfMiles> और <Provider> की वैल्यू देना ज़रूरी नहीं है.

<Occupancy> Required integer इस किराये के हिसाब से, कमरे में रहने वाले लोगों की ज़्यादा से ज़्यादा संख्या के बारे में बताता है. उदाहरण के लिए, हो सकता है कि किसी बड़े सुइट में छह मेहमानों के ठहरने का इंतज़ाम हो, लेकिन "हनीमून पैकेज" में सिर्फ़ दो मेहमानों को ठहरने की अनुमति हो.

यह वैल्यू, <Capacity> से कम या इसके बराबर होनी चाहिए. <Capacity>, उन लोगों की संख्या होती है जो कमरे में मौजूद हो सकते हैं.

अपने लैंडिंग पेज के यूआरएल में ऑक्यूपेंसी तय करते समय, NUM-ADULTS और NUM-CHILDREN वैरिएबल का इस्तेमाल करें. इनके बारे में वैरिएबल और शर्तों का इस्तेमाल करना लेख में बताया गया है. डिफ़ॉल्ट वैल्यू 2 वयस्क और 0 बच्चे हैं.

<Occupancy> की वैल्यू, 1 से 99 के बीच का पॉज़िटिव पूर्णांक होना चाहिए.

ध्यान दें:

  • <RoomBundle> के लिए <RoomBundle> एट्रिब्यूट की वैल्यू देना ज़रूरी है. इसलिए, इसे 'ज़रूरी है' के तौर पर फ़्लैग किया गया है. अगर इसे शामिल नहीं किया जाता है, तो 1097 गड़बड़ी दिखेगी.<Occupancy>
  • <Occupancy> इस क्रम में डेटा ऑब्जेक्ट से मिलता है: <RoomBundle>, <PackageData>, और फिर = <RoomData>. अगर इनमें से किसी में भी कोई वैल्यू मौजूद नहीं है, तो वैल्यू डिफ़ॉल्ट रूप से 2 पर सेट हो जाती है.
  • <Occupancy> के साथ <OccupancyDetails>, हो सकता है. इससे मेहमानों के टाइप (वयस्क या बच्चे) के बारे में पता चलता है. अगर मेहमानों के टाइप नहीं बताए गए हैं, तो उन्हें वयस्क माना जाता है. चाइल्ड एलिमेंट के सिंटैक्स और ब्यौरे के लिए, <OccupancyDetails> देखें.
  • अगर आपने <Occupancy> को <RoomBundle> और <PackageData>, दोनों में सेट किया है, तो <RoomBundle> में मौजूद वैल्यू को प्राथमिकता दी जाएगी.
<OtherFees> Required float कमरे के मूल किराये और टैक्स के अलावा, ऐसे शुल्क जिनसे कमरे के फ़ाइनल किराये पर असर पड़ता है. <OtherFees> एलिमेंट में, currency एट्रिब्यूट की वैल्यू सबमिट करना ज़रूरी है. यह एट्रिब्यूट, शुल्क के लिए तीन अक्षरों वाला मुद्रा कोड तय करता है. उदाहरण के लिए, अमेरिकी डॉलर के लिए USD का इस्तेमाल करें.
<PackageID> Optional (recommended) string पैकेज के डेटा के लिए यूनीक आईडी. इस आईडी का इस्तेमाल करके, Room Bundle के डेटा का मिलान उस डेटा से करें जो <PackageData> में भेजा गया था. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा लेख पढ़ें. (इस आईडी का इस्तेमाल, रूम बंडल की उस सामान्य परिभाषा को रेफ़रंस देने के लिए भी किया जा सकता है जिसका इस्तेमाल, रूम बंडल का डेटा इनलाइन तय करते समय, एक लेन-देन के मैसेज में किया जाता है.)
<ParkingIncluded> Optional boolean क्या रूम बंडल में पार्किंग की सुविधा बिना किसी शुल्क के शामिल है. ऐसा तब होता है, जब होटल में पार्किंग की सुविधा के लिए शुल्क लिया जाता है. ऐसे होटल के लिए इस एलिमेंट की वैल्यू न दें जहां पार्किंग मुफ़्त है.

मान्य वैल्यू 0 (या false) और 1 (या true) हैं. डिफ़ॉल्ट वैल्यू false है.

<RatePlanID> Optional string किराया प्लान आईडी, कमरे और पैकेज के कॉम्बिनेशन के लिए यूनीक आइडेंटिफ़ायर होता है. उदाहरण के लिए, अगर <RoomID> की वैल्यू 5 और <PackageID> की वैल्यू ABC है, तो <RatePlanID> के लिए 5-ABC वैल्यू का इस्तेमाल किया जा सकता है. हमारा सुझाव है कि डाइनैमिक लैंडिंग पेज (पहले इसे पॉइंट ऑफ़ सेल कहा जाता था) का यूआरएल बनाने के लिए, RatePlanID को वैरिएबल के तौर पर इस्तेमाल करें.

ज़्यादा जानकारी के लिए, वैरिएबल और शर्तों का इस्तेमाल करना लेख पढ़ें.

<Rates> Optional <Rates> इस रूम बंडल के लिए डिफ़ॉल्ट किराये को बदलने वाले किराये. यह एलिमेंट, <Result> में <Rates> के जैसा ही सिंटैक्स इस्तेमाल करता है.
<Refundable> Optional Object इस सुविधा की मदद से, किराये को पूरी तरह से रिफ़ंड किए जाने वाले किराये के तौर पर लिस्ट किया जा सकता है या बिना किसी शुल्क के बुकिंग रद्द करने की सुविधा दी जा सकती है. यह जानकारी न देने पर, रिफ़ंड के बारे में कोई जानकारी नहीं दिखती. <PackageData> लेवल पर मौजूद रिफ़ंड नीति, <Result> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. <Rates> लेवल पर मौजूद रिफ़ंड नीति, <PackageData> लेवल पर मौजूद रिफ़ंड नीति को बदल देती है. लेन-देन के मैसेज स्कीमा में सीधे तौर पर बदलाव किए बिना, उपयोगकर्ताओं को अन्य विकल्पों के ज़रिए भी रिफ़ंड की सुविधा वाली कीमत के बारे में बताया जा सकता है. इन विकल्पों के बारे में ज़्यादा जानें रिफ़ंड किए जा सकने वाले किराये की नीति.

इस उदाहरण में, <Refundable> एलिमेंट को उसके सभी एट्रिब्यूट के साथ सेट किया गया है:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

ध्यान दें: हमारा सुझाव है कि आप सभी एट्रिब्यूट सेट करें. एक या उससे ज़्यादा एट्रिब्यूट सेट न होने पर, फ़ीड की स्थिति के बारे में चेतावनी वाला मैसेज जनरेट होता है.

अगर आपने कोई एट्रिब्यूट सेट नहीं किया है, तो किराया, रिफ़ंड किए जाने वाले किराये के तौर पर नहीं दिखेगा. ये एट्रिब्यूट हैं:

  • available: (ज़रूरी है) अगर किराये के लिए पूरा रिफ़ंड दिया जा सकता है, तो इसे 1 (या true) पर सेट करें. अगर पूरा रिफ़ंड नहीं दिया जा सकता, तो इसे 0 (या false) पर सेट करें.
  • refundable_until_days: (अगर available true है, तो यह ज़रूरी है) इससे यह पता चलता है कि चेक-इन से कितने दिन पहले तक, पूरा रिफ़ंड पाने का अनुरोध किया जा सकता है. refundable_until_days की वैल्यू, 0 और 330 के बीच का कोई पूर्णांक होना चाहिए.
  • refundable_until_time: (अगर available true है, तो इसे इस्तेमाल करने का सुझाव दिया जाता है) इससे होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी मिलती है. साथ ही, इसमें पूरे पैसे रिफ़ंड होने की बात शामिल होती है. इसे refundable_until_days के साथ जोड़ा जा सकता है. उदाहरण के लिए, यह बताने के लिए कि "चेक-इन से दो दिन पहले शाम 4:00 बजे तक रिफ़ंड की सुविधा उपलब्ध है". अगर refundable_until_time सेट नहीं है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात पर सेट हो जाती है.

    इस एट्रिब्यूट की वैल्यू, Time फ़ॉर्मैट का इस्तेमाल करती है.

एट्रिब्यूट सेट करते समय, इन बातों का ध्यान रखें:

  • अगर available या refundable_until_days सेट नहीं किया गया है, तो किराया रिफ़ंड किए जाने की जानकारी नहीं दिखेगी.
  • अगर available की वैल्यू 0 (या false) है, तो अन्य एट्रिब्यूट को अनदेखा कर दिया जाता है. अगर अन्य एट्रिब्यूट में से एक या दोनों सेट किए गए हैं, तब भी किराया, रिफ़ंड किए जा सकने वाले किराये के तौर पर नहीं दिखता.
<RoomID> Required string कमरे के डेटा के लिए यूनीक आईडी. इस आईडी का इस्तेमाल करके, रूम बंडल के डेटा को <RoomData> में भेजे गए डेटा से मैच करें. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें. (इस आईडी का इस्तेमाल, एक ही लेन-देन के मैसेज में कमरे की सामान्य परिभाषा को रेफ़रंस देने के लिए भी किया जा सकता है. ऐसा तब किया जाता है, जब कमरे के डेटा को इनलाइन तरीके से तय किया जा रहा हो.)
<Tax> Required float कमरे के किराये में शामिल टैक्स. <Tax> एलिमेंट में एक ज़रूरी एट्रिब्यूट, currency होता है. यह टैक्स के लिए, तीन अक्षरों वाला करंसी कोड तय करता है. उदाहरण के लिए, अमेरिकी डॉलर के लिए USD का इस्तेमाल करें.

उदाहरण

एक व्यक्ति के लिए बुकिंग वाला बंडल

इस उदाहरण में, एक ऑक्यूपेंसी बंडल के साथ रिस्पॉन्स को तय किया गया है. जब कोई व्यक्ति, ऑक्यूपेंसी पिकर में 1 चुनता है, तो Google, ऑक्यूपेंसी की संख्या के बावजूद सबसे कम किराया दिखाता है.

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

इस उदाहरण में, <RoomID> और <PackageID> एलिमेंट के साथ, पहले से तय किए गए रूम और पैकेज के मेटाडेटा का रेफ़रंस दिया गया है. उस जानकारी को तय करने के लिए, <RoomData> और <PackageData> एलिमेंट का इस्तेमाल करें.

<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 1 example ----->

<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <!-- Note:  Once defined it does not have to be repeated for future
              Transaction Messages.
              PropertyDataSets can also be defined and sent in their own
              Transaction Message separately from pricing. Google can be
              configured to pull just PropertyDataSets once per day
              (or on a predefined frequency). -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate up to 4, but package data specifies occupancy
           between 1 to 4 -->
      <Capacity>4</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <Capacity>4</Capacity>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P11111</PackageID>
      <Occupancy>1</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
  <Result>
    <!-- Single occupancy pricing will be specified in a room bundle below -->
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>
    <!-- Base Room Bundle -->
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P54321</PackageID>
      <Baserate currency="USD">199.99</Baserate>
      <Tax currency="USD">25.12</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RatePlanID>060773-P54321</RatePlanID>
    </RoomBundle>
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P11111</PackageID>
      <!-- Price for 1 ("occupancy") is the lowest price and will be
           displayed -->
      <Baserate currency="USD">174.99</Baserate>
      <Tax currency="USD">22.08</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RatePlanID>060773-P11111</RatePlanID>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Price for 4 ("occupancy"), any eligible room bundle with 1 or more
           occupancy will be displayed-->
      <Baserate currency="USD">298.88</Baserate>
      <Tax currency="USD">42.12</Tax>
      <OtherFees currency="USD">10.00</OtherFees>
      <RatePlanID>436233-P12345</RatePlanID>
    </RoomBundle>
    <!-- ..Continue providing all available RoomBundle rates under matched
         property for 1 or more occupancies..-->
  </Result>
</Transaction>


दो या उससे ज़्यादा लोगों के रहने की जगह

इस उदाहरण में, दो या उससे ज़्यादा ऑक्यूपेंसी वाला जवाब दिखाया गया है.

इस उदाहरण में, <RoomID> और <PackageID> एलिमेंट के साथ, पहले से तय किए गए रूम और पैकेज के मेटाडेटा का रेफ़रंस दिया गया है. उस जानकारी को तय करने के लिए, <RoomData> और <PackageData> एलिमेंट का इस्तेमाल करें.

<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 3 example ----->

<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
  <!-- Efficient method of defining Room Bundles-->
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate up to 4, but package data specifies occupancy
           between 1 to 4 -->
      <Capacity>4</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <Capacity>4</Capacity>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P33333</PackageID>
      <Occupancy>3</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

  <Result>
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>
    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
    <!-- Base Room Bundle -->
    <RoomBundle>
      <!-- Baserate above and attributes must match atleast one room bundle
           below -->
      <RoomID>060773</RoomID>
      <PackageID>P33333</PackageID>
      <Baserate currency="USD">499.99</Baserate>
      <Tax currency="USD">55.12</Tax>
      <OtherFees currency="USD">22.00</OtherFees>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Lowest price for 3 ("occupancy"), shown below, will be displayed -->
      <Baserate currency="USD">598.88</Baserate>
      <Tax currency="USD">62.12</Tax>
      <OtherFees currency="USD">30.00</OtherFees>
    </RoomBundle>
    <!-- ..Continue providing all available RoomBundle rates under matched
         property for 2 or more occupancies..-->
  </Result>
</Transaction>


अलग-अलग सुविधाओं वाले एक तरह के कई कमरे

यहां दिए गए उदाहरण में, हॉस्टल के कमरों के संभावित किराये को दिखाने के लिए, एक से ज़्यादा रूम बंडल में ऑक्यूपेंसी सेट की गई है.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    ...
    <!-- Suite Room Bundle -->
    <RoomBundle>
      <RoomID>suite1</RoomID>
      <PackageID>standard</PackageID>
      <Occupancy>2</Occupancy>
      <!-- Price for room -->
      <Baserate currency="USD">80.00</Baserate>
      <Tax currency="USD">5.12</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RoomData>
        <Name>
          <Text text="Suite for 2" language="en"/>
        </Name>
      </RoomData>
    </RoomBundle>

    <!-- Small Dorm Room Bundle -->
    <RoomBundle>
      <RoomID>small_dorm</RoomID>
      <PackageID>economy</PackageID>
      <Occupancy>1</Occupancy>
      <!-- Price per bed -->
      <Baserate currency="USD">35.00</Baserate>
      <Tax currency="USD">3.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RoomData>
        <Name>
          <Text text="1 bed in small dorm" language="en"/>
        </Name>
      </RoomData>
    </RoomBundle>

    <!-- Large Dorm Room Bundle -->
    <RoomBundle>
      <RoomID>large_dorm</RoomID>
      <PackageID>economy</PackageID>
      <Occupancy>1</Occupancy>
      <!-- Price per bed -->
      <Baserate currency="USD">20.00</Baserate>
      <Tax currency="USD">2.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RoomData>
        <Name>
          <Text text="1 bed in large dorm" language="en"/>
        </Name>
      </RoomData>
    </RoomBundle>
    ...
  </Result>
</Transaction>

खास किराये की एक से ज़्यादा शर्तें

इस उदाहरण में, <RoomBundle> में मूल किराया और शर्तों के हिसाब से तय किए गए कई किराए दिखाए गए हैं:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>
    <!-- When Google receives new room bundle information for an itinerary, all
    previous room bundle pricing is dropped from Google's cache. Thus, if you
    want to delete a specific room bundle from Google's cache, you may do so
    by simply not providing that specific room bundle in subsequent transaction
    messages. -->
    <RoomBundle>
     ...
      <!-- RoomID is required, PackageID is recommended. -->
      <RoomID>5</RoomID>
      <PackageID>ABC</PackageID>
      <!-- Baserate is required. -->
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>

      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>5-ABC</RatePlanID>

      <!-- Occupancy is mandatory for RoomBundle elements. -->
      <!-- Elements below will get inherited to nested rate elements. -->
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
      </OccupancyDetails>
      <InternetIncluded>1</InternetIncluded>

      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides ChargeCurrency from roombundle. -->
          <ChargeCurrency>hotel</ChargeCurrency>
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

<OccupancyDetails>

<Occupancy>, लेन-देन के मैसेज में किसी कमरे या पैकेज के लिए मेहमानों की ज़्यादा से ज़्यादा संख्या के बारे में बताता है. <OccupancyDetails> में अतिरिक्त जानकारी शामिल हो सकती है. जैसे, मेहमानों की संख्या और टाइप (वयस्क या बच्चे).

जब <Result> या <RoomBundle> के <Rates> एलिमेंट में <Occupancy> और <OccupancyDetails> दिखते हैं, तो इसका मतलब है कि किराये पर, कमरे में रहने वाले लोगों की संख्या की जानकारी का असर पड़ता है.

अगर आपने <RoomBundle> में <OccupancyDetails> और नेस्ट किया गया <Rate> एलिमेंट शामिल किया है, तो <Rate> में बुनियादी <Occupancy> नहीं भेजा जा सकता. इसके बजाय, इनमें से किसी एक विकल्प का इस्तेमाल करने का सुझाव दिया जाता है:

  • <Rate> में रहने वाले लोगों की संख्या शामिल न करें: इस मामले में, <Rate> को <RoomBundle> से सीधे तौर पर <OccupancyDetails> मिलता है

या,

  • डुप्लीकेट <OccupancyDetails>: इस मामले में, <RoomBundle> और नेस्ट किए गए <Rate> एलिमेंट, दोनों में एक जैसे अतिरिक्त <OccupancyDetails> भेजें

सिंटैक्स

<OccupancyDetails> दिखने पर, इससे पहले हमेशा <Occupancy> दिखता है. इस सिंटैक्स का इस्तेमाल करें:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
  ...
    <Occupancy>max_number_of_intended_occupants</Occupancy>
    <OccupancyDetails>
      <NumAdults>number_of_adults</NumAdults>
      <Children>
        <Child age=age_of_one_child_guest/>
        <Child age=age_of_one_child_guest/>
      </Children>
    </OccupancyDetails>
  </Result>
</Transaction>

चाइल्ड एलीमेंट

<OccupancyDetails> एलिमेंट में ये चाइल्ड एलिमेंट होते हैं:

चाइल्ड एलिमेंट ज़रूरी है? टाइप ब्यौरा
<NumAdults> Required integer वयस्क मेहमानों की संख्या. कम से कम:1, ज़्यादा से ज़्यादा:20.
<Children> Optional Object एक या उससे ज़्यादा <Child> एलिमेंट के लिए कंटेनर.
<Child age> Optional integer इस बच्चे की ज़्यादा से ज़्यादा उम्र—उदाहरण के लिए, <Child age="17">.

उदाहरण

यहां दिए गए उदाहरणों में बताया गया है कि <OccupancyDetails>, <Results>, <RoomBundle> या <Rates> चाइल्ड एलिमेंट में कैसे दिख सकता है.

नतीजे का जवाब

इस उदाहरण में, लाइव प्राइसिंग क्वेरी के जवाब में, एक प्रॉपर्टी के लिए एक यात्रा की योजना और उसकी कीमत के बारे में बताया गया है. इस क्वेरी में, उपयोगकर्ता ने मेहमानों की संख्या और उनके टाइप के बारे में बताया है. यहां, <OccupancyDetails> -- दो वयस्क और एक बच्चा -- को <Result> में दिखाया गया है.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">278.33</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="site1"/>
    </AllowablePointsOfSale>
    <Occupancy>3</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
      <Children>
        <Child age="17"/>
      </Children>
    </OccupancyDetails>
  </Result>
</Transaction>

किराये की जानकारी देने वाला जवाब

यहां दिए गए उदाहरण में, एक यात्रा की योजना और उसमें शामिल एक वयस्क और एक बच्चे के लिए तय किया गया किराया बताया गया है. यहां, <OccupancyDetails> को <Result> के <Rates> एलिमेंट में दिखाया गया है.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2018-04-18T11:27:45-04:00">
  <Result>
    <Property>8251</Property>
    <Checkin>2018-06-20</Checkin>
    <Nights>1</Nights>
    <Baserate currency="USD">62.18</Baserate>
    <Tax currency="USD">2.45</Tax>
    <OtherFees currency="USD">0.00</OtherFees>
    <Rates>
      <Rate rate_rule_id="rule-951">
        <Occupancy>2</Occupancy>
        <OccupancyDetails>
          <NumAdults>1</NumAdults>
          <Children>
            <Child age="17"/>
          </Children>
        </OccupancyDetails>
        <Baserate currency="USD">42.61</Baserate>
        <Tax currency="USD">5.70</Tax>
        <OtherFees currency="USD">0.00</OtherFees>
        <AllowablePointsOfSale>
          <PointOfSale id="yourhotelpartnersite.com"/>
        </AllowablePointsOfSale>
      </Rate>
    </Rates>
  </Result>
</Transaction>

अलग-अलग सुविधाओं वाले एक तरह के कमरे

यहां दिए गए उदाहरण में, दो वयस्कों और एक बच्चे के लिए दो रातों के लिए, रिफ़ंड किए जा सकने वाले किराये की जानकारी दी गई है. यहां, <OccupancyDetails>, <RoomBundle> के अंदर दिखते हैं

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>6781291</Property>
    <Checkin>2017-08-05</Checkin>
    <Nights>2</Nights>
    ...
    <RoomBundle>
      <RoomID>10291</RoomID>
      <RatePlanID>564739</RatePlanID>
      <PackageID>564739</PackageID>
      <Occupancy>3</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
        <Children>
          <Child age="17"/>
        </Children>
      </OccupancyDetails>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="true" refundable_until_days="1" refundable_until_time="23:59:00" />
      <Baserate currency="USD">185.34</Baserate>
      <Tax currency="USD">37.06</Tax>
      <OtherFees currency="USD">2.22</OtherFees>
    </RoomBundle>
  </Result>
</Transaction>

अलग-अलग सुविधाओं वाले एक तरह के कई कमरे

यहां दिए गए उदाहरण में, <RoomBundle> के कई ऐसे किराये तय किए गए हैं जो दो वयस्कों और दो बच्चों के लिए ही लागू होते हैं. यहां, <OccupancyDetails>, <RoomBundle> के <Rates> एलिमेंट में दिखते हैं.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">275.00</Baserate>
    <Tax currency="USD">27.50</Tax>
    <OtherFees currency="USD">0</OtherFees>
    <RoomBundle>
      <RoomID>5</RoomID>
      <PackageID>STD</PackageID>
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <OtherFees currency="USD">0</OtherFees>
      <InternetIncluded>1</InternetIncluded>
      <ChargeCurrency>web</ChargeCurrency>
      <Occupancy>4</Occupancy>
      <OccupancyDetails>
          <NumAdults>2</NumAdults>
          <Children>
              <Child age="17"/>
              <Child age="17"/>
          </Children>
      </OccupancyDetails>
      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <ChargeCurrency>hotel</ChargeCurrency>
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>