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

इस पेज पर एक्सएमएल पर आधारित लेन-देन से जुड़े मैसेज का रेफ़रंस मिलता है.

<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>
  </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>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </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> एलिमेंट की वैल्यू के बराबर या उससे ज़्यादा होनी चाहिए. यह वैल्यू, किसी खास कमरे में आने वाले मेहमानों की संख्या के बराबर होती है. उदाहरण के लिए, किसी बड़े सुइट का <Capacity>, छह हो सकता है, लेकिन <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 जितने मेहमानों के लिए कमरा है उनकी ज़्यादा से ज़्यादा संख्या. उदाहरण के लिए, हो सकता है कि किसी बड़े सुइट में छह लोग एक साथ शामिल हो सकें (क्षमता = छह), लेकिन इसमें ज़्यादा से ज़्यादा चार मेहमान शामिल हो सकते हैं.

यह वैल्यू, <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>
      <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>
      <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>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

बेड का इस्तेमाल करके जैपनीज़ पश्चिमी देशों में उपलब्ध

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

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <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>
      <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>1000 </NumberOfMiles>
        <Provider>
          <Text language="en" text="United Airlines">
        </Provider>
      </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> एलिमेंट से कम या उसके बराबर होनी चाहिए. यह एलिमेंट, उन लोगों की संख्या होती है जिन्हें रूम में फ़िज़िकल तौर पर शामिल किया जा सकता है.

<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 बजे तक किए जाते हैं". अगर refundable_until_time को सेट नहीं किया जाता है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात में सेट हो जाती है.

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

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

  • अगर available या refundable_until_days को सेट नहीं किया जाता है, तो इस दर को रिफ़ंड की सुविधा के तौर पर नहीं दिखाया जाता.
  • अगर available 0 या false है, तो दूसरे एट्रिब्यूट को अनदेखा कर दिया जाता है. एक या दोनों एट्रिब्यूट के सेट होने पर भी, किराया रिफ़ंड नहीं किया जा सकता.
<MembershipBenefits Included> Optional boolean ठहरने के कुल समय के हिसाब से, किराये में खास स्टेटस के फ़ायदे शामिल हैं. इसमें ये पैरामीटर शामिल हैं:
  • ProgramName: खास स्थिति वाले कार्यक्रम का नाम
  • ProgramLevel: प्रोग्राम का लेवल, जैसे कि "गोल्ड."
  • NightlyValue (optional): हर रात के फ़ायदों की वैल्यू.
<CarRentalIncluded> Optional boolean ठहरने के दौरान, किराये पर कार लेने की सुविधा मुफ़्त मिलती है.
<MilesIncluded>> Optional boolean किराये में फ़्रीक्वेंट फ़्लायर मील शामिल है. पैरामीटर में ये शामिल हैं:
  • 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>
        <Provider>
          <Text language="en" text="United Airlines"/>
        </Provider>
      </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>
      <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>
      <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. -->
    <OccupancyDetails>occupancy_info</OccupancyDetails>

    <Rates>...</Rates>

    <RoomBundle>...</RoomBundle>

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

    <Custom[1-5]>custom_value</Custom[1-5]>
  </Result>
  ...
  </Transaction>

एट्रिब्यूट

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

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

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

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

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

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

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

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

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

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

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

<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> एलिमेंट के कॉम्बिनेशन से यात्रा की योजना बनती है.
<Custom[1‑5]> Optional string एक कस्टम फ़ील्ड तय करता है, जिसका इस्तेमाल करके होटल से जुड़ा अतिरिक्त डेटा भेजा जा सकता है. इन एलिमेंट के नामों का इस्तेमाल करके, ज़्यादा से ज़्यादा पांच कस्टम वैल्यू भेजी जा सकती हैं:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

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

<Rate> एलिमेंट में दिए गए <कस्टम> एलिमेंट, <RoomBundle> एलिमेंट में इनहेरिट नहीं किए जाते. आपको हर <RoomBundle> में, <Custom> एट्रिब्यूट को अलग-अलग तय करना चाहिए.

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

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

Google, ऐसा किराया नहीं दिखाएगा जिसकी समयसीमा खत्म हो चुकी है. साथ ही, यात्रा की योजना के लिए, जिस कीमत की समयसीमा खत्म हो चुकी है वह लाइव कीमत से जुड़ी क्वेरी की सुविधा का इस्तेमाल कर सकती है.

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

<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 बजे तक किए जाते हैं". अगर refundable_until_time को सेट नहीं किया जाता है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात में सेट हो जाती है.

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

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

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

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

<RoomID> Optional string रूम का यूनीक आईडी, ताकि उसे पहले से तय किए गए रूम के डेटा से मैप किया जा सके. साथ ही, इसका इस्तेमाल PARTNER-ROOM-ID के लैंडिंग पेज वैरिएबल को भरने के लिए भी किया जाता है. ज़्यादा जानकारी के लिए, कमरे बंडल का मेटाडेटा देखें.
<Tax> Optional float वे टैक्स जिनका हिसाब, किसी कमरे की आखिरी कीमत के लिए लगाया जाता है. <Tax> एलिमेंट में एक ज़रूरी एट्रिब्यूट, currency का इस्तेमाल किया जाता है. इससे टैक्स के तीन अक्षरों वाले मुद्रा कोड के बारे में पता चलता है. उदाहरण के लिए, USD. अगर <Baserate>, शून्य से ज़्यादा है, तो <Tax> एलिमेंट ज़रूरी है.
<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=""/>: यात्रा की योजना उपलब्ध नहीं थी, क्योंकि बुकिंग करने पर कुछ पाबंदी लगी थी. वैकल्पिक पाबंदी एट्रिब्यूट की मदद से, पाबंदी को टेक्स्ट के तौर पर रिपोर्ट किया जा सकता है.

उदाहरण

मल्टी-प्रॉपर्टी का उदाहरण

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

<?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>
  </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> ब्लॉक के लिए कंटेनर. <Rates> के हर <Rate> में, कमरे या यात्रा की योजना के लिए अलग-अलग कीमत बताई जाती है.

<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>
          ...
        <Custom[1-5]>custom_value</Custom[1-5]>
      </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> के सिंटैक्स के लिए किया जाता है.
<Custom[1‑5]> Optional string ऐसे कस्टम फ़ील्ड जिनका इस्तेमाल करके, होटल से जुड़े अतिरिक्त डेटा को लैंडिंग पेज पर भेजा जा सकता है. यह एलिमेंट उसी सिंटैक्स का इस्तेमाल करता है जो <Custom[1‑5]> के सिंटैक्स को <Result> में इस्तेमाल करता है. हर कस्टम फ़ील्ड में, ज़्यादा से ज़्यादा 200 वर्ण हो सकते हैं. ज़्यादा जानकारी के लिए, लैंडिंग पेज की फ़ाइलें देखें.

अगर <Result> एलिमेंट में <कस्टम> एलिमेंट दिए गए हैं, तो वे <RoomBundle> एलिमेंट में इनहेरिट नहीं होते. हर <RoomBundle> के लिए, उन्हें अलग से तय किया जाना चाहिए. इसके अलावा, ज़रूरत पड़ने पर उन्हें <packageData> में शामिल किया जा सकता है.

<ExpirationTime> Optional DateTime वह तारीख और समय जब दर को खत्म माना जाता है. यह एलिमेंट उसी सिंटैक्स का इस्तेमाल करता है जिसका इस्तेमाल <ExpirationTime> के लिए, <Result> में किया जाता है.
<Occupancy> Optional integer

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

<OtherFees> Required float किसी कमरे की आखिरी कीमत पर असर डालने वाले मूल दर और टैक्स के अलावा, कोई दूसरा शुल्क. यह एलिमेंट उसी सिंटैक्स का इस्तेमाल करता है जिसका इस्तेमाल <OtherFees> <Result> में किया जाता है.
<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 बजे तक किए जाते हैं". अगर refundable_until_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>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </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>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

      <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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode321</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode432</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </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>

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

      <Custom1>custom_value_1</Custom1>
      <Custom2>custom_value_2</Custom2>
      <Custom3>custom_value_3</Custom3>
      <Custom4>custom_value_4</Custom4>
      <Custom5>custom_value_5</Custom5>
    </RoomBundle>
    ...
  </Result>
</Transaction>

एट्रिब्यूट

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

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

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

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

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

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

अगर <Result> एलिमेंट में <कस्टम> एलिमेंट दिए गए हैं, तो वे <RoomBundle> एलिमेंट में इनहेरिट नहीं होते. हर <RoomBundle> के लिए, उन्हें अलग से तय किया जाना चाहिए. इसके अलावा, ज़रूरत पड़ने पर उन्हें <packageData> में शामिल किया जा सकता है.

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

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

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

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

ध्यान दें:

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

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

<RatePlanID> Optional string किराया प्लान आईडी, कमरे और पैकेज के कॉम्बिनेशन के लिए यूनीक आइडेंटिफ़ायर के बारे में बताता है. उदाहरण के लिए, अगर ABC की <RoomID> वैल्यू और ABC की <PackageID> वैल्यू दी गई है, तो <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 बजे तक किए जाते हैं". अगर refundable_until_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>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

      <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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode321</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </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>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode432</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

<OccupancyDetails>

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

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

सिंटैक्स

जब <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">.

उदाहरण

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

नतीजे का रिस्पॉन्स

इस उदाहरण में, लाइव किराया क्वेरी के जवाब में यात्रा की एक योजना और एक प्रॉपर्टी के लिए उसकी कीमत के बारे में बताया गया है. इसमें उपयोगकर्ता ने मेहमानों की संख्या और उनके टाइप के बारे में बताया है. यहां, <OccupancyDetails> -- 2 वयस्क और एक बच्चा -- <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>
        <Custom1>abc4</Custom1>
        <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>
      <Custom1>ratebasic</Custom1>
      <Custom2>ratebasic</Custom2>
      <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>
          <Custom1>ratecode321</Custom1>
        </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>
          <Custom1>ratecode432</Custom1>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>