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

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

<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> 6 हो सकता है, लेकिन उसका <Occupancy> 4 हो सकता है.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

उदाहरण:

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

उदाहरण

कमरे का डेटा

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

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

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

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

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

एक से ज़्यादा कमरों के बंडल

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

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

<RoomFeatures>

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

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

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

सिंटैक्स

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

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

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

विशेषताएं

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

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

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

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

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

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

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

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

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

एट्रिब्यूट:

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

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

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

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

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

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

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

उदाहरण:

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

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

उदाहरण

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

दो सिंगल बेड

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

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

दो डबल बेड

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

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


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

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

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

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

यहां 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>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
        <Beds>
          <Bed size="king"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

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

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

<PackageData>

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

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

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

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

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

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

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

सिंटैक्स

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

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet ... >
    <PackageData>
      <PackageID>package_ID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
        ...
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
        ...
      </Description>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
      <Occupancy>max_number_of_intended_occupants</Occupancy>
      <OccupancyDetails><!-- optional info about the types of guests,
      whether adults or children --></OccupancyDetails>
      <!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      ...
      <Meals>
        <Breakfast
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
        <Dinner
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
      </Meals>
      <CheckinTime>checkin_time</CheckinTime>
      <CheckoutTime>checkout_time</CheckoutTime>
      <MembershipBenefitsIncluded>
        <ProgramName>
          <Text language="en" text="Special Rewards">
        </ProgramName>
        <ProgramLevel>
          <Text language="en" text="Platinum">
        </ProgramLevel>
      </MembershipBenefitsIncluded>
      <OnPropertyCredit>
        <Amount currency="USD">123.45</Amount>
      </OnPropertyCredit>
    </PackageData>
    <!-- a PackageID with a MilesIncluded rate feature -->
    <PackageData>
      <PackageID>room_with_miles</PackageID>
      <Name>
       <Text text="Room with Bundled Miles" language="en">
      </Name>
      <ChargeCurrency>hotel </ChargeCurrency>
      <MilesIncluded>
        <NumberOfMiles>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> एलिमेंट से कम या उसके बराबर होनी चाहिए. <Capacity> एलिमेंट से पता चलता है कि कमरे में कितने लोगों के ठहरने की जगह है.

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

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

ध्यान दें:

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

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

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

<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 है, तो इसका इस्तेमाल करना ज़रूरी है) इससे पता चलता है कि होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी होनी चाहिए. साथ ही, इसमें पूरे पैसे रिफ़ंड (टैक्स और शुल्क के साथ) होने की बात शामिल होनी चाहिए. उदाहरण के लिए, "रिफ़ंड, चेक-इन से दो दिन पहले शाम 4:00 बजे तक उपलब्ध हैं", यह बताने के लिए, इसे refundable_until_days के साथ जोड़ा जा सकता है. अगर 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>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

नाश्ता

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

<Result>

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

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

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

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

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

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

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

सिंटैक्स

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

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

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

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

    <Occupancy>max_number_of_intended_occupants</Occupancy>
    <!-- For Baserate, occupancy value must be greater than or equal to 2.
         If a value is not provided for occupancy, it defaults to 2. -->
    <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

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

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

एक ही कमरे/यात्रा की योजना के कॉम्बिनेशन के लिए कई किराये होने पर या <Result> लेवल पर किराया तय न किए जाने पर, <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 है, तो इसका इस्तेमाल करना ज़रूरी है) इससे पता चलता है कि होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी होनी चाहिए. साथ ही, इसमें पूरे पैसे रिफ़ंड (टैक्स और शुल्क के साथ) होने की बात शामिल होनी चाहिए. उदाहरण के लिए, "रिफ़ंड, चेक-इन से दो दिन पहले शाम 4:00 बजे तक उपलब्ध हैं", यह बताने के लिए, इसे refundable_until_days के साथ जोड़ा जा सकता है. अगर refundable_until_time सेट नहीं है, तो वैल्यू डिफ़ॉल्ट रूप से आधी रात पर सेट हो जाती है.

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

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

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

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

<RoomID> Optional string रूम का यूनीक आईडी, ताकि उसे पहले से तय किए गए रूम डेटा से मैप किया जा सके. इसका इस्तेमाल, PARTNER-ROOM-ID लैंडिंग पेज वैरिएबल को पॉप्युलेट करने के लिए भी किया जाता है. ज़्यादा जानकारी के लिए, Room के बंडल का मेटाडेटा देखें.
<Tax> Optional float कमरे के किराये पर लगने वाले टैक्स. <Tax> एलिमेंट के लिए, एक ज़रूरी एट्रिब्यूट, currency की वैल्यू सबमिट करना ज़रूरी है. इस एट्रिब्यूट की वैल्यू से, टैक्स के लिए तीन अक्षरों वाला मुद्रा कोड पता चलता है. उदाहरण के लिए, USD. अगर <Baserate> शून्य से ज़्यादा है, तो <Tax> एलिमेंट की वैल्यू देना ज़रूरी है.

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

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

उदाहरण

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

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

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

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

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

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

<OtherFees> Required float बुनियादी किराये और टैक्स के अलावा, कमरे के किराये पर असर डालने वाले अन्य शुल्क. यह एलिमेंट, <Result> में <OtherFees> के उसी सिंटैक्स का इस्तेमाल करता है.

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

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

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

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

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

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

  • available: (ज़रूरी) किराये पर पूरी रकम रिफ़ंड की जा सकती है या नहीं, यह बताने के लिए इसे 1 (या true) पर सेट करें. अगर ऐसा नहीं है, तो इसे 0 (या false) पर सेट करें.
  • refundable_until_days: (available के true होने पर ज़रूरी है) इससे पता चलता है कि चेक-इन से कितने दिन पहले, पूरे रिफ़ंड का अनुरोध किया जा सकता है. refundable_until_days की वैल्यू, 0 और 330 के बीच की कोई पूर्णांक होनी चाहिए.
  • refundable_until_time: (अगर available की वैल्यू true है, तो इसका इस्तेमाल करना ज़रूरी है) इससे पता चलता है कि होटल के स्थानीय समय के हिसाब से, रिफ़ंड की तारीख और समय की पूरी जानकारी होनी चाहिए. साथ ही, इसमें पूरे पैसे रिफ़ंड (टैक्स और शुल्क के साथ) होने की बात शामिल होनी चाहिए. उदाहरण के लिए, "रिफ़ंड, चेक-इन से दो दिन पहले शाम 4:00 बजे तक उपलब्ध हैं", यह बताने के लिए, इसे refundable_until_days के साथ जोड़ा जा सकता है. अगर 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 रूम के बंडल के लिए, लैंडिंग पेजों पर ज़्यादा डेटा भेजने के लिए कस्टम फ़ील्ड. ये एलिमेंट उसी सिंटैक्स का इस्तेमाल करते हैं जो <Result> में <Custom[1-5]> का इस्तेमाल करता है. हर कस्टम फ़ील्ड में 200 वर्ण इस्तेमाल किए जा सकते हैं. ज़्यादा जानकारी के लिए, लैंडिंग पेज की फ़ाइलें देखें. कस्टम वैरिएबल सिर्फ़ तब दिखते हैं, जब लेन-देन के मैसेज में कीमतें भेजी जाती हैं.

अगर <Custom> एलिमेंट, <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 पैकेज डेटा का यूनीक आईडी. इस आईडी का इस्तेमाल करके, Room बंडल के डेटा को <PackageData> में भेजे गए डेटा से मैच करें. ज़्यादा जानकारी के लिए, Room बंडल का मेटाडेटा लेख पढ़ें. (इस आईडी का इस्तेमाल, रूम बंडल के डेटा को इनलाइन में तय करते समय, एक ही लेन-देन वाले मैसेज में इस्तेमाल किए गए सामान्य रूम बंडल की परिभाषा का रेफ़रंस देने के लिए भी किया जा सकता है.)
<ParkingIncluded> Optional boolean क्या रूम के बंडल में पार्किंग की सुविधा मुफ़्त है, जहां पार्किंग के लिए आम तौर पर शुल्क लिया जाता है. मुफ़्त पार्किंग की सुविधा देने वाले होटल के लिए, इस एलिमेंट की वैल्यू न दें.

0 (या false) और 1 (या true) वैल्यू के तौर पर इस्तेमाल की जा सकती हैं. डिफ़ॉल्ट वैल्यू false है.

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

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

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

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

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

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

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

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

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

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

  • अगर available या refundable_until_days सेट नहीं किया गया है, तो किराया रिफ़ंड के तौर पर नहीं दिखता.
  • अगर available की वैल्यू 0 (या false) है, तो अन्य एट्रिब्यूट को अनदेखा कर दिया जाता है. अगर एक या दोनों अन्य एट्रिब्यूट सेट किए गए हैं, तब भी किराया रिफ़ंड के तौर पर नहीं दिखता.
<RoomID> Required string कमरे के डेटा का यूनीक आईडी. इस आईडी का इस्तेमाल करके, Room बंडल के डेटा को <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"> होनी चाहिए.

उदाहरण

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

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

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

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

जवाब को रेटिंग देना

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

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