দাম ও রুম ইনভেনটরি (ট্রানজ্যাকশন) XML রেফারেন্স

এই পৃষ্ঠায় XML-ভিত্তিক ট্রানজ্যাকশন মেসেজ-এর রেফারেন্স দেওয়া আছে।

<Transaction>

ট্রানজ্যাকশন মেসেজের রুট এলিমেন্ট হল <Transaction>। এটি হল রুম ও প্যাকেজ এবং রুম ও প্যাকেজের দাম ও উপলভ্যতা সম্পর্কে বর্ণনামূলক তথ্যের একটি কন্টেনার।

<Transaction> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

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

যেসব মেসেজে রুট এলিমেন্ট হিসেবে <Transaction> ব্যবহার করা হয়, সেগুলিতে অন্তত একটি চাইল্ড এলিমেন্ট থাকতে হবে। ট্রানজ্যাকশন মেসেজে যেকোনও সংখ্যক চাইল্ড এলিমেন্ট থাকতে পারে, তবে মেসেজের মোট সাইজ ১০০ এমবির বেশি হলে চলবে না।

সিন্ট্যাক্স

<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

ট্রানজ্যাকশন মেসেজ পাঠানোর সময়।

আগের ২৪ ঘণ্টার মধ্যে টাইমস্ট্যাম্প সহ পাঠানো যেকোনও মেসেজ প্রসেস করা হবে এবং যেগুলি করা হয়নি সেগুলি বাতিল করা হবে।

মেসেজ timestamp-এর ক্রম অনুযায়ী প্রসেস করা হয়, যে ক্রমে মেসেজ পাওয়া গেছে সেই অনুযায়ী নয়। যেমন, 2019-05-03 14:09:00 টাইমস্ট্যাম্প সহ দামের আপডেট 2019-05-03 14:10:00 টাইমস্ট্যাম্প সহ মেসেজের পরে পাওয়া গেলেও, সেগুলি ক্রম অনুযায়ী প্রসেস করা হবে এবং 2019-05-03 14:10:00 টাইমস্ট্যাম্প সহ মেসেজে উল্লেখ করা দাম ব্যবহার করা হবে।

চাইল্ড এলিমেন্ট

<Transaction> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<PropertyDataSet> Optional* <PropertyDataSet>

নির্দিষ্ট রুম ও রুম বান্ডেল সম্পর্কে বর্ণনা করে। আপনি সাধারণত রুম বান্ডেলের জন্য শেয়ার করা ভ্যালু নির্ধারণ করতে এবং আপনার ট্রানজ্যাকশন মেসেজের সাইজ কমাতে একটি আলাদা ট্রানজ্যাকশন মেসেজে এই এলিমেন্ট ব্যবহার করেন।

<Result> Optional* <Result>

রুমের ভ্রমণসূচী বা <RoomBundle> এলিমেন্টের জন্য দাম সংক্রান্ত ডেটা, যা প্রপার্টির জন্য রুম বান্ডেল ও অতিরিক্ত ধরনের রুমের সংজ্ঞা নির্ধারণ করে। এছাড়াও, <Result> এলিমেন্ট ব্যবহার করে ইনভেনটরি থেকে ভ্রমণসূচী সরানো যেতে পারে।

* <PropertyDataSet> বা <Result>-এর মধ্যে অন্তত একটি প্রয়োজন।

উদাহরণ

রুমের ডেটা

নিম্নলিখিত উদাহরণে ট্রানজ্যাকশন মেসেজে রুমের ডেটা দেখানো হয়েছে:

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

দাম সংক্রান্ত ডেটা

নিচের উদাহরণে ট্রানজ্যাকশন মেসেজে দাম সংক্রান্ত ডেটা দেখানো হয়েছে:

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

প্রতি রাতের ভাড়া

নিম্নলিখিত উদাহরণে ৭ জুন, ২০২৩ থেকে শুরু করে ১ থেকে ৭ রাতের জন্য দামের ডেটা সংজ্ঞায়িত করা হয়েছে:

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


বেস ও শর্তসাপেক্ষে প্রযোজ্য রেট

নিচের উদাহরণে এমন একটি ট্রানজ্যাকশন মেসেজ দেখানো হয়েছে যাতে বেস রেট ও শর্তসাপেক্ষে প্রযোজ্য রেট আছে:

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

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

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

  </Result>
</Transaction>

ইনভেনটরি সরান

নিম্নলিখিত উদাহরণটি ইনভেনটরি থেকে একটি হোটেলের জন্য বেশ কয়েকটি ইনভেনটরি (বিভিন্ন তারিখের জন্য ১-রাতের স্টে) সরিয়ে দেয়:

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

<PropertyDataSet>

<Transaction> মেসেজে রুম ও প্যাকেজ (বা রুম বান্ডেল) সংক্রান্ত তথ্যের জন্য একটি কন্টেনার। কোনও হোটেলে সেট করা ভ্যালু পার্টনারে সেট করা ভ্যালুকে ওভাররাইড করে। Google এই তথ্য স্টোর করে রাখে যাতে আপনি যখনই দাম সংক্রান্ত আপডেট পাঠান, আপনাকে প্রতিবার এটি উল্লেখ করতে না হয়।

<PropertyDataSet> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

+ <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> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

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

<RoomData> এলিমেন্টে পার্টনার ও হোটেলের সাথে সম্পর্কিত তথ্য থাকে, তবে ভ্রমণসূচীর সাথে সম্পর্কিত তথ্য থাকে না। উদ্দেশ্য হল সব নন-ইটিনারি ডেটা।

<RoomData> এলিমেন্টটি <PackageData>-এর মতো, তবে এটি প্যাকেজের সুযোগ-সুবিধা এবং শর্তাবলীর পরিবর্তে ফিজিক্যাল রুমের বর্ণনা দেয়। আপনি <RoomData> এবং <PackageData> একসাথে ব্যবহার করে রুম বান্ডেল সম্পর্কে বিবরণ প্রদান করেন। প্যাকেজের অংশ নয় এমন স্বতন্ত্র রুমের জন্য, শুধু <RoomData> ব্যবহার করুন।

আপনি একই রুম বা রুম বান্ডেলের জন্য <RoomData> এবং <PackageData> এলিমেন্ট দুটিই উল্লেখ করতে পারেন। Google যখন সার্চ ফলাফলে সেই রুম বা প্যাকেজ দেখায়, তখন এটি হাইফেন দিয়ে আলাদা করে দুটিরই বিবরণ অন্তর্ভুক্ত করবে।

আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন।

সিন্ট্যাক্স

<RoomData> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

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

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

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

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

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

অ্যাট্রিবিউট

<RoomData> এলিমেন্টে কোনও অ্যাট্রিবিউট নেই।

চাইল্ড এলিমেন্ট

<RoomData> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<Capacity> Optional integer একটি রুমে সর্বাধিক যতজন অতিথি শারীরিকভাবে থাকতে পারবেন। রুমের ক্ষেত্রে, ধারণক্ষমতা, দখলকৃত জায়গার চেয়ে বেশি বা সমান হতে হবে।

নির্দিষ্ট করা থাকলে, এই ভ্যালু অবশ্যই <Occupancy> এলিমেন্টের ভ্যালুর সমান বা তার বেশি হতে হবে, যা কোনও নির্দিষ্ট রুমের জন্য অতিথির সংখ্যা। যেমন, একটি বড় সুইটের <Capacity> ৬ হতে পারে, কিন্তু <Occupancy> ৪।

<Capacity>-এর মান অবশ্যই ১ থেকে ২০-এর মধ্যে একটি ধনাত্মক পূর্ণসংখ্যা হতে হবে।

<Description> Optional Object রুমের বিস্তারিত বিবরণ। এই এলিমেন্টে এমন তথ্য থাকতে হবে যা অন্য এলিমেন্ট বা <Name> এলিমেন্টে বর্ণনা করা হয়নি। রুমের বিবরণ লেখার সময় সব বড় হাতের অক্ষর ব্যবহার করবেন না।

<Description> এলিমেন্টে একটি চাইল্ড এলিমেন্ট, <Text> থাকে, যার নিম্নলিখিত দুটি প্রয়োজনীয় অ্যাট্রিবিউট আছে:

  • text: রুমের বিস্তারিত বিবরণ।
  • language: দুই অক্ষরের ভাষা কোড; যেমন, fr।

আপনার বিজ্ঞাপন বা ফ্রি বুকিং লিঙ্ক যে ভাষায় দেখানো হতে পারে (language অ্যাট্রিবিউটের জন্য আলাদা আলাদা ভ্যালু সহ) তার প্রত্যেকটির জন্য আলাদা <Text> এলিমেন্ট ব্যবহার করুন।

নিম্নলিখিত উদাহরণে রুমের বিবরণের ফরাসি ও ইংরেজি ভার্সন দেখানো হয়েছে:

<Description>
  <Text text="Two queen-sized beds" language="en"/>
  <Text text="Deux lits de la reine" language="fr"/>
</Description>
<Name> Required string রুমের বিভাগের নাম। এই ভ্যালু হোটেলের ল্যান্ডিং পৃষ্ঠায় (আগে পয়েন্ট অফ সেল বলা হত) দেখানো ভ্যালুর সাথে ম্যাচ করতে হবে। এই এলিমেন্টের ভ্যালু সব বড় হাতের অক্ষরে সেট করবেন না।

এই এলিমেন্টে একটি চাইল্ড এলিমেন্ট, <Text>, থাকে যার নিম্নলিখিত দুটি প্রয়োজনীয় অ্যাট্রিবিউট আছে:

  • text: রুমের নাম।
  • language: দুই অক্ষরের ভাষা কোড; যেমন, fr.

আপনার বিজ্ঞাপন বা ফ্রি বুকিং লিঙ্ক যে ভাষায় দেখানো হতে পারে, তার প্রতিটির জন্য আলাদা <Text> এলিমেন্ট ব্যবহার করুন (language অ্যাট্রিবিউটের জন্য আলাদা ভ্যালু সহ)।

নিচের উদাহরণে রুমের নামের ফরাসি ও ইংরেজি ভার্সন দেখানো হয়েছে:

<Name>
  <Text text="Standard Double Room" language="en"/>
  <Text text="Le chambre double" language="fr"/>
</Name>
<Occupancy> Optional integer একটি রুমে সর্বাধিক যতজন অতিথি থাকতে পারবেন। যেমন, একটি বড় সুইটে ৬ জন অতিথি থাকতে পারেন (ধারণক্ষমতা = ৬), কিন্তু সেটি ৪ জন অতিথির জন্য উপযুক্ত।

এই ভ্যালু অবশ্যই <Capacity> এলিমেন্টের চেয়ে কম বা সমান হতে হবে, যা হল রুমে শারীরিকভাবে যতজন লোক থাকতে পারবেন সেই সংখ্যা।

<Occupancy>-এর মান অবশ্যই ১ থেকে ৯৯-এর মধ্যে কোনও ধনাত্মক পূর্ণসংখ্যা হতে হবে।

<Occupancy>-এর সাথে <OccupancyDetails> থাকতে পারে, যা অতিথির ধরন (প্রাপ্তবয়স্ক বা বাচ্চা) নির্দিষ্ট করে। সিনট্যাক্স এবং চাইল্ড এলিমেন্টের বিবরণের জন্য <OccupancyDetails> দেখুন।

<OccupancySettings> Optional Object সেটিংস যা রুমের অকুপেন্সি সংক্রান্ত প্রয়োজনীয়তা সীমাবদ্ধ বা পরিবর্তন করতে পারে।

<OccupancySettings> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট থাকে:

  • <MinOccupancy>: একটি রুমে ন্যূনতম যতজন অতিথি থাকতে পারবেন। যেমন, এটি 2-এ সেট করা থাকলে, এই রুমটি একজন অতিথির জন্য বুক করা যাবে না।

    <MinOccupancy>-এর মান ১ থেকে ৯৯-এর মধ্যে কোনও ধনাত্মক পূর্ণসংখ্যা হতে হবে, এই দুটি ধরে।

  • <MinAge>: কোনও রুমে থাকা সব অতিথির ন্যূনতম বয়স। যেমন, এটি 18-এ সেট করা থাকলে, এই রুমটি শুধুমাত্র এমন গ্রুপের জন্য বুক করা যাবে যেখানে সব অতিথির বয়স ১৮ বা তার বেশি।

    <MinAge>-এর মান ০ থেকে ৯৯-এর মধ্যে (এই দুটি সংখ্যা সহ) একটি ধনাত্মক পূর্ণসংখ্যা হতে হবে।

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

সব চাইল্ড এলিমেন্ট অন্তর্ভুক্ত করার প্রয়োজন নেই।

<PhotoURL> Optional Object প্রদত্ত রুম বা রুম বান্ডেলের ফটোর জন্য URL এবং ঐচ্ছিক ক্যাপশন। আপনি কোনও রুম বা রুম বান্ডেলের জন্য একাধিক <PhotoURL> উল্লেখ করতে পারেন। প্রতিটি ফটোর URL নিজস্ব <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> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

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

সিন্ট্যাক্স

<RoomFeatures> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

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

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

অ্যাট্রিবিউট

<RoomFeatures> এলিমেন্টে কোনও অ্যাট্রিবিউট নেই।

চাইল্ড এলিমেন্ট

<RoomFeatures> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<JapaneseHotelRoomStyle> Optional enum

জাপানি হোটেল রুমের স্টাইল নির্দেশ করে।

সঠিক ভ্যালু হল:

  • western: বেড সহ ওয়েস্টার্ন স্টাইলের রুম।
  • japanese: ফুটন বেড সহ জাপানি স্টাইলের রুম।
  • japanese_western: জাপানি-ওয়েস্টার্ন স্টাইলের রুম যেখানে ওয়েস্টার্ন স্টাইলের বেড ও জাপানি স্টাইলের ফুটন, দুটিই আছে।
<Beds> Optional Object রুমে যতগুলি <Bed> আছে, ততগুলিই আছে। মনে রাখবেন যে জাপানি ফুটন এখানে গণনা করা উচিত নয়।

প্রতিটি <Bed>-এ নিম্নলিখিত অ্যাট্রিবিউট আছে:

  • size (ঐচ্ছিক): সঠিক ভ্যালু হল single, semi_double, double, queen, এবং king।
প্রতিটি <Bed>-এ নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:
  • <Width> (ঐচ্ছিক): শস্যক্ষেতের প্রস্থ নির্দিষ্ট করে। cm মান সহ unit অ্যাট্রিবিউট এবং পূর্ণসংখ্যা সেন্টিমিটারে শস্যক্ষেতের প্রস্থ সহ number অ্যাট্রিবিউট থাকতে হবে।
  • <Length> (ঐচ্ছিক): শস্যক্ষেতের দৈর্ঘ্য নির্দিষ্ট করে। cm ভ্যালু সহ unit অ্যাট্রিবিউট এবং পূর্ণসংখ্যা সেন্টিমিটারে শস্যক্ষেতের দৈর্ঘ্য সহ 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-এর কোনও ডিফল্ট ভ্যালু নেই। কোনও ভ্যালু বাদ দিলে XML-এ কোনও সমস্যা হয় না, তবে ব্যবহারকারী রুমের স্টাইল বা বেডের সংখ্যা অনুযায়ী ফিল্টার করলে, সার্চ ফলাফলে আপনার লিস্টিং দেখানো হয় না।

দুটি সিঙ্গল বেড

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

দুটি ডবল বেড

নিচে দুটি double বেড সহ 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>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two double beds-->
          <Bed size="double"></Bed>
          <Bed size="double"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>


বেড ছাড়া জাপানি স্টাইল

নিচে জাপানি স্টাইলের বেড ছাড়া রুমের উদাহরণ দেওয়া হল। japanese স্টাইলের রুমের জন্য বেড সম্পর্কিত তথ্য প্রয়োজন নেই।

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

বেড সহ জাপানি-ওয়েস্টার্ন স্টাইলের রুম

king সাইজের বেড সহ japanese_western স্টাইলের রুমের উদাহরণ নিচে দেওয়া হল।

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

পার্টনারের কাছে japanese_westernটি রুমের বেডের সংখ্যা সম্পর্কিত তথ্য না থাকলে, এই উদাহরণটি অনুসরণ করুন:

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

<PackageData>

কোনও প্রপার্টির জন্য রুম বান্ডেল সম্পর্কে ভ্রমণসূচী-স্বাধীন মেটাডেটা নির্ধারণ করে। এই এলিমেন্টে পার্টনার ও হোটেল সম্পর্কিত তথ্য থাকে, তবে ভ্রমণসূচী সম্পর্কিত তথ্য থাকে না। উদ্দেশ্য হল, ভ্রমণসূচী নয় এমন সব ডেটা একবার সংজ্ঞায়িত করা এবং ভ্রমণসূচী ডেটা থেকে সেটির রেফারেন্স দেওয়া।

<PackageData> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

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

<PackageData> এলিমেন্টটি <RoomData>-এর মতোই, তবে এটি রেট ফিচার ও শর্তাবলী বর্ণনা করে যা ফিজিক্যাল রুমের বর্ণনার অংশ নয়। রুম বান্ডেল ও রেট ফিচার সম্পর্কে বিবরণ দিতে আপনি <RoomData> ও <PackageData> একসাথে ব্যবহার করেন। কোনও প্যাকেজের অংশ নয় এমন ব্যক্তিগত রুমের জন্য, শুধু <RoomData> ব্যবহার করুন।

আপনি একই রুম বা রুম বান্ডেলের জন্য <RoomData> এবং <PackageData> এলিমেন্ট দুটিই উল্লেখ করতে পারেন। Google যখন সার্চ ফলাফলে সেই রুম বা প্যাকেজ দেখায়, তখন এটি হাইফেন দিয়ে আলাদা করে দুটিরই বিবরণ অন্তর্ভুক্ত করবে।

আপনি কোনও প্রপার্টির জন্য একটিমাত্র <PackageData> এলিমেন্ট আপডেট করলে, আপনাকে সেই প্রপার্টির সব <PackageData> ও <RoomData> এলিমেন্ট আপডেট করতে হবে। প্রতিটি <PropertyDataSet>-কে প্রপার্টি সম্পর্কিত সব ডেটা হিসেবে বিবেচনা করা হয় এবং আগে থেকে থাকা যেকোনও ডেটা ওভাররাইট করে।

আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন।

সিন্ট্যাক্স

<PackageData> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

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

অ্যাট্রিবিউট

<PackageData> এলিমেন্টে কোনও অ্যাট্রিবিউট নেই।

চাইল্ড এলিমেন্ট

<PackageData> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<BreakfastIncluded> Optional boolean এই প্যাকেজের রেটের মধ্যে ব্রেকফাস্ট অন্তর্ভুক্ত আছে কিনা তা উল্লেখ করে। সঠিক ভ্যালু হল 0 (বা false) এবং 1 (বা true)।

<BreakfastIncluded>-এর পরিবর্তে <Meals> ব্যবহার করলে ভালো হয়।

<ChargeCurrency> Optional enum ব্যবহারকারী কখন এবং কোথায় বুকিংয়ের জন্য পেমেন্ট করেন। এই এলিমেন্টটি <Result>-এ <ChargeCurrency>-এর মতো একই সিনট্যাক্স ব্যবহার করে।

ডিফল্ট ভ্যালু হল web।

<CheckinTime> Optional Time যত তাড়াতাড়ি সম্ভব চেক-ইন করার সময়। হোটেলের স্থানীয় সময় অনুযায়ী সময় ২৪:০০-এর কম হতে হবে।
<CheckoutTime> Optional Time হোটেলের স্থানীয় সময় অনুযায়ী চেক-আউটের সম্ভাব্য লেটেস্ট সময়।
<Description> Optional Object প্যাকেজের বিস্তারিত বিবরণ। এই এলিমেন্টে এমন তথ্য থাকতে হবে যা অন্য এলিমেন্ট বা <Name> এলিমেন্টে বর্ণনা করা হয়নি। রুমের বিবরণ উল্লেখ করার সময় সব বড় হাতের অক্ষর ব্যবহার করবেন না।

<Description> এলিমেন্টে একটিই চাইল্ড এলিমেন্ট, <Text> থাকে, যার দুটি প্রয়োজনীয় অ্যাট্রিবিউট আছে, text এবং language। text অ্যাট্রিবিউট হল বিবরণ এবং language অ্যাট্রিবিউট দুটি অক্ষরের ভাষা কোড নির্দিষ্ট করে, যেমন নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

<Description>
  <Text text="Two breakfast buffet certificates for
    each night of stay." language="en"/>
  <Text text="Deux certificats petit-déjeuner buffet
    pour chaque nuit de séjour." language="fr"/>
</Description>
<InternetIncluded> Optional boolean যদি কোনও প্যাকেজে কোনও চার্জ ছাড়াই ইন্টারনেট অ্যাক্সেস অন্তর্ভুক্ত থাকে, অন্যান্য প্যাকেজে সেই সুবিধা অন্তর্ভুক্ত থাকবে না। যে হোটেলের সব রুমে ফ্রি ইন্টারনেট পরিষেবা দেওয়া হয়, সেখানে রুম বান্ডেলের জন্য এই এলিমেন্ট সেট করবেন না। এই এলিমেন্টটি রুমের মধ্যে ওয়্যার্ড ইন্টারনেট বা ওয়্যারলেস ইন্টারনেটের ক্ষেত্রে প্রযোজ্য নয় যা গেস্ট রুমে উপলভ্য নয়। সঠিক ভ্যালু হল 0 (অথবা false) এবং 1 (অথবা true)।
<Meals> Optional Object এই প্যাকেজে খাবারের তথ্য রয়েছে।

<Meals> এলিমেন্টে দুটি ঐচ্ছিক চাইল্ড এলিমেন্ট থাকে, <Breakfast> এবং <Dinner>, যেগুলির নিম্নলিখিত অ্যাট্রিবিউট আছে:

  • included (প্রয়োজনীয়): রেটে ব্রেকফাস্ট/ডিনার অন্তর্ভুক্ত থাকলে 1 (বা true) হিসেবে সেট করুন; অন্যথায় 0 বা false হিসেবে সেট করুন।
  • in_room (ঐচ্ছিক): 1 (অথবা true) হিসেবে সেট করুন যদি অতিথিদের কাছে তারা যে রুমে থাকছেন সেখানে ব্রেকফাস্ট/ডিনার করার বিকল্প থাকে; অন্যথায় 0 (অথবা false) হিসেবে সেট করুন।
  • in_private_space (ঐচ্ছিক): অতিথিদের জন্য এমন কোনও জায়গায় (যে রুমে তারা থাকছেন সেটি ছাড়া) ব্রেকফাস্ট/ডিনার করার বিকল্প থাকলে, যেখানে তারা অন্যান্য অতিথিদের সাথে যোগাযোগ এড়িয়ে চলতে পারবেন, তাহলে 1 (বা true) হিসেবে সেট করুন; অন্যথায় 0 (বা false) হিসেবে সেট করুন।
  • buffet (ঐচ্ছিক): ব্রেকফাস্ট/ডিনার বুফে হিসেবে পরিবেশন করা হলে 1 (বা true) হিসেবে সেট করুন; অন্যথায় 0 (বা false) হিসেবে সেট করুন।

included সত্য হলে তবেই ঐচ্ছিক অ্যাট্রিবিউট ব্যবহার করা হয়।

মিল ফিল্টার (no meals, breakfast only, dinner only এবং breakfast and dinner) কাজ করার জন্য, <Breakfast> এবং <Dinner> উভয়কেই included অ্যাট্রিবিউট প্রদান করতে হবে।

<Name> Required string প্যাকেজের নাম। এই ভ্যালু হোটেলের ল্যান্ডিং পৃষ্ঠায় দেখানো ভ্যালুর সাথে ম্যাচ করতে হবে। এই এলিমেন্টের ভ্যালু সব বড় হাতের অক্ষরে লিখবেন না।

এই এলিমেন্টে একটি চাইল্ড এলিমেন্ট, <Text>, থাকে যার দুটি অ্যাট্রিবিউট আছে, text এবং language। text অ্যাট্রিবিউট হল বিবরণ এবং language অ্যাট্রিবিউট দুই অক্ষরের ভাষা কোড নির্দিষ্ট করে, যেমন নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

<Name>
  <Text text="Bed and Breakfast" language="en"/>
  <Text text="Lit et petit déjeuné" language="fr"/>
</Name>
<Occupancy> Optional integer রুম বান্ডেল যতজন অতিথির জন্য। যেমন, একটি বড় সুইটে ৬ জন অতিথি থাকতে পারলেও, সেটি সর্বাধিক ৪ জন অতিথির জন্য তৈরি করা হয়েছে।

এই ভ্যালু অবশ্যই <Capacity> এলিমেন্টের সমান বা তার চেয়ে কম হতে হবে, যা হল রুমটিতে শারীরিকভাবে যতজন লোক থাকতে পারবেন সেই সংখ্যা।

<Occupancy>-এর মান ১ থেকে ৯৯-এর মধ্যে কোনও ধনাত্মক পূর্ণসংখ্যা হতে হবে, এই দুটি ধরে।

আপনি যদি <RoomBundle> এবং <PackageData>, উভয় ক্ষেত্রেই এই এলিমেন্ট উল্লেখ করেন, তাহলে <RoomBundle>-এর মানকে অগ্রাধিকার দেওয়া হবে।

মনে রাখবেন:

<Occupancy>-এর সাথে <OccupancyDetails> থাকতে পারে,যা অতিথির ধরন (প্রাপ্তবয়স্ক বা বাচ্চা) নির্দিষ্ট করে। সিনট্যাক্স ও চাইল্ড এলিমেন্টের বিবরণের জন্য <OccupancyDetails> দেখুন।
<PackageID> Required string

প্যাকেজের অনন্য আইডি। আপনার দাম সংক্রান্ত আপডেটে <Result> ব্লকের সাথে রুম বান্ডেল ডেটা ম্যাচ করতে এই আইডি ব্যবহার করুন। আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন।

(এছাড়াও, আপনি এই আইডি ব্যবহার করে একটি সাধারণ রুম বান্ডেল সংজ্ঞা উল্লেখ করতে পারেন যা একটি ট্রানজ্যাকশন মেসেজে ব্যবহার করা হয় যখন রুম বান্ডেল ডেটা ইনলাইন সংজ্ঞায়িত করা হয়।)

<ParkingIncluded> Optional boolean রুম বান্ডেলে কোনও চার্জ ছাড়াই পার্কিং অন্তর্ভুক্ত আছে কিনা, যেখানে এই হোটেলে পার্কিং অন্যথায় একটি পেড পরিষেবা হবে। যে হোটেল ফ্রিতে পার্কিংয়ের সুবিধা দেয়, সেটির জন্য এই এলিমেন্টের কোনও ভ্যালু উল্লেখ করবেন না।

সঠিক ভ্যালু হল 0 (বা false) এবং 1 (বা true)। ডিফল্ট ভ্যালু হল false।

<PhotoURL> Optional Object (<RoomData>-এ <PhotoURL>-এর মতো, তবে প্যাকেজের জন্য (যেমন, খাবারের ফটো)।)
<Refundable> Optional Object সম্পূর্ণ রিফান্ডযোগ্য বা বিনামূল্যে বাতিল করার সুবিধা সহ রেট তালিকাভুক্ত করার সুবিধা দেয়। এটি না দেওয়া হলে, রিফান্ড সম্পর্কে কোনও তথ্য দেখানো হয় না। <PackageData> লেভেলে রিফান্ড সংক্রান্ত নীতি <Result> লেভেলে রিফান্ড সংক্রান্ত নীতিকে ওভাররাইড করে। <Rates> লেভেলে রিফান্ড সংক্রান্ত নীতি <PackageData> লেভেলে রিফান্ড সংক্রান্ত নীতিকে ওভাররাইড করে। এছাড়াও, আপনার ট্রানজ্যাকশন মেসেজ স্কিমা সরাসরি পরিবর্তন না করে বিকল্প উপায়ের মাধ্যমে ব্যবহারকারীদের কাছে রিফান্ডযোগ্য দাম হাইলাইট করা যেতে পারে। এইসব বিকল্প সম্পর্কে আরও জানুন রিফান্ডযোগ্য রেট সংক্রান্ত নীতি।

নিচে দেওয়া উদাহরণে <Refundable> এলিমেন্ট ও তার সব অ্যাট্রিবিউট সেট দেখানো হয়েছে:

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

মনে রাখবেন: আমরা সব অ্যাট্রিবিউট সেট করার সাজেশন দিই। এক বা একাধিক অ্যাট্রিবিউট সেট করা না থাকলে ফিড স্ট্যাটাস সংক্রান্ত সতর্কতামূলক মেসেজ জেনারেট করা হয়।

আপনি কোনও অ্যাট্রিবিউট সেট না করলে, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না। অ্যাট্রিবিউটগুলি হল:

  • available: (প্রয়োজনীয়) রেট অনুযায়ী সম্পূর্ণ রিফান্ড করা যাবে কিনা তা জানাতে 1 বা true সেট করুন; অন্যথায় 0 বা false সেট করুন।
  • refundable_until_days: (প্রয়োজনীয় যদি available true হয়) চেক-ইন করার কত দিন আগে ফুল রিফান্ডের অনুরোধ করা যাবে তা নির্দিষ্ট করে। refundable_until_days-এর মান ০ থেকে ৩৩০-এর মধ্যে পূর্ণসংখ্যা হতে হবে, এই দুটি ধরে।
  • refundable_until_time: (available যদি true হয়, তাহলে এটি অত্যন্ত সাজেস্ট করা হয়) হোটেলের স্থানীয় সময় অনুযায়ী, দিনের কোন সময় পর্যন্ত ফুল রিফান্ডের অনুরোধ গ্রহণ করা হবে তা উল্লেখ করে। এটি refundable_until_days-এর সাথে একত্রিত করে নির্দিষ্ট করা যেতে পারে, যেমন, "চেক-ইন করার দুই দিন আগে বিকেল ৪:০০টা পর্যন্ত রিফান্ড পাওয়া যাবে"। refundable_until_time সেট করা না থাকলে, ভ্যালু ডিফল্ট হিসেবে মাঝরাত সেট করা হয়।

    এই অ্যাট্রিবিউটের ভ্যালু Time ফর্ম্যাট ব্যবহার করে।

অ্যাট্রিবিউট সেট করার সময়, নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

  • available বা refundable_until_days সেট করা না থাকলে, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
  • available যদি 0 বা false হয়, তাহলে অন্যান্য অ্যাট্রিবিউট উপেক্ষা করা হয়। অন্য একটি বা দুটি অ্যাট্রিবিউট সেট করা থাকলেও, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
<MembershipBenefits Included> Optional boolean থাকার সময়সীমার জন্য রেটে এলিট স্ট্যাটাস সুবিধা অন্তর্ভুক্ত আছে। নিম্নলিখিত প্যারামিটার অন্তর্ভুক্ত করে:
  • ProgramName: এলিট স্ট্যাটাস প্রোগ্রামের নাম
  • ProgramLevel: প্রোগ্রামের লেভেল। যেমন: "গোল্ড।"
  • NightlyValue (optional): প্রতি রাতের জন্য সুবিধার মূল্য।
<CarRentalIncluded> Optional boolean থাকার সময়সীমার জন্য রেটে ফ্রি গাড়ি ভাড়া অন্তর্ভুক্ত।
<MilesIncluded> Optional boolean ভাড়ার মধ্যে ফ্রিকোয়েন্ট ফ্লাইয়ার মাইল অন্তর্ভুক্ত আছে। প্যারামিটারের মধ্যে এগুলি পড়ে:
  • NumberOfMiles: প্রতিটি ভ্রমণসূচীতে মাইলের সংখ্যা।
  • Provider: ফ্রিকোয়েন্ট ফ্লায়ার মাইল প্রদানকারী।
  • LoyaltyCampaignID: একটি অনন্য আইডি যা Google-এর সাথে কনফিগার ও আপডেট করা নির্দিষ্ট লয়ালটি ক্যাম্পেন শনাক্ত করে। এটি হোটেলের ভাড়ার সাথে লয়ালটি পয়েন্ট যোগ করে।

    <MilesIncluded> এলিমেন্ট অন্তর্ভুক্ত করতে, লয়ালটি ক্যাম্পেন কনফিগারেশনে ক্যাম্পেন আইডি কনফিগার করতে হবে। Google কীভাবে ফলাফলে লয়ালটি পয়েন্ট ব্যবহার করে তার নির্দিষ্ট বিবরণ লয়ালটি ক্যাম্পেন কনফিগারেশন দ্বারা নির্ধারিত হয়।

    <MilesIncluded> এলিমেন্টে একটি চাইল্ড এলিমেন্ট আছে, <NumberOfMiles> যা অর্জিত পয়েন্টের সংখ্যা গণনা করে। <NumberOfMiles> সেট করা না থাকলে, লয়ালটি ক্যাম্পেন কনফিগারেশন অনুযায়ী পয়েন্ট নির্ধারণ করা হয়।

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • মনে রাখবেন: <NumberOfMiles> এবং <Provider> ঐচ্ছিক।

<OnPropertyCredit> Optional boolean রেটের মধ্যে প্রপার্টিতে ক্রেডিট (খাবার ও পানীয়, রিসর্ট, স্পা ইত্যাদি) অন্তর্ভুক্ত। প্যারামিটার:
  • Amount: স্থানীয় মুদ্রায়, প্রতিটি ভ্রমণসূচীর জন্য ক্রেডিটের মূল্য।
<AirportTransportationIncluded> Optional Object ভাড়ার মধ্যে কাছাকাছি কোনও এয়ারপোর্ট থেকে/পর্যন্ত ফ্রি পরিবহনের সুবিধা অন্তর্ভুক্ত। ঐচ্ছিক direction অ্যাট্রিবিউট পরিবহনের দিকনির্দেশ নির্দিষ্ট করে। সঠিক ভ্যালুর মধ্যে এগুলি অন্তর্ভুক্ত:
    from: এয়ারপোর্ট থেকে প্রপার্টিতে যাওয়ার জন্য পরিবহনের ব্যবস্থা করা হয়। কোনও দিকনির্দেশ নির্দিষ্ট করা না থাকলে এটি ডিফল্ট ভ্যালু হিসেবে সেট করা হয়। to: প্রপার্টি থেকে এয়ারপোর্টে যাওয়ার জন্য ট্রান্সপোর্টের ব্যবস্থা করা হয়। round_trip: এয়ারপোর্টে যাওয়া ও আসার জন্য পরিবহনের ব্যবস্থা করা হয়।

উদাহরণ

সিঙ্গেল রুম বান্ডেল

নিম্নলিখিত উদাহরণে একটি রুম বান্ডেল দেখানো হয়েছে, যেখানে ২ জন (একজন প্রাপ্তবয়স্ক ও একজন বাচ্চা) থাকতে পারবেন এবং ব্রেকফাস্ট অন্তর্ভুক্ত:

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

রুম ও প্যাকেজ মেটাডেটা

নিচের উদাহরণে রুম ও প্যাকেজের মেটাডেটা ব্যাখ্যা করা হয়েছে:

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

একাধিক রুম বান্ডেল

নিম্নলিখিত উদাহরণে একাধিক রুম বান্ডেলের জন্য রুম ও প্যাকেজ মেটাডেটা সংজ্ঞায়িত করা হয়েছে:

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


রেট সহ রুম বান্ডেল

নিচের উদাহরণে রুম বান্ডেলের জন্য রুম ও প্যাকেজ মেটাডেটা রেট ফিচার সহ দেখানো হয়েছে:

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

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

খাবার ও ফটো

নিম্নলিখিত উদাহরণে রুম ও প্যাকেজের মেটাডেটা হিসেবে খাবার, ফটো এবং চেক-ইন ও চেক-আউটের সময় উল্লেখ করা হয়েছে:

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

ব্রেকফাস্ট

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

<Result>

<Transaction>-এ দাম ও উপলভ্যতা সংক্রান্ত আপডেট দেখানোর জন্য কন্টেনার।

<Result> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

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

রুমের ভাড়া সেট বা আপডেট করতে এবং উপলভ্য ইনভেনটরি নির্ধারণ করতে <Result> ব্যবহার করুন। এই এলিমেন্টে উল্লেখ করা আইটেম সাধারণত <PackageData> ও <RoomData>-এ উল্লেখ করা রুম বা প্যাকেজ (যেমন, বিবরণ বা সুযোগ-সুবিধার সেট) সম্পর্কে ভ্রমণসূচী-নিরপেক্ষ মেটাডেটা রেফার করে।

আপনি সাধারণত খুব ঘন ঘন দামের আপডেট সহ ট্রানজ্যাকশন মেসেজ পাঠান। আপনি ঠিক কীভাবে এবং কত ঘন ঘন এটি করবেন তা আপনার ডেলিভারি মোড-এর উপর নির্ভর করে।

ইনভেনটরি সরানো বিভাগে যেভাবে বর্ণনা করা হয়েছে, সেই অনুযায়ী ভ্রমণসূচী সরাতে আপনি ট্রানজ্যাকশন মেসেজে <Result> ব্যবহার করতে পারেন। দাম ও উপলভ্যতা আপডেট করার জন্য ট্রানজ্যাকশন মেসেজ ব্যবহার করা সম্পর্কে আরও তথ্য পেতে, ইনভেনটরি যোগ ও আপডেট করা।

একটি ট্রানজ্যাকশন মেসেজে যেকোনও সংখ্যক <Result> এলিমেন্ট থাকতে পারে, তবে মেসেজের সাইজ ১০০ এমবির বেশি হলে চলবে না।

সিন্ট্যাক্স

<Result> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

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

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

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

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

    <Rates>...</Rates>

    <RoomBundle>...</RoomBundle>

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

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

অ্যাট্রিবিউট

<Result> এলিমেন্টে নিম্নলিখিত অ্যাট্রিবিউট আছে:

অ্যাট্রিবিউট প্রয়োজনীয়? ধরন বিবরণ
mergeable Optional boolean ডিফল্ট হিসেবে, নির্দিষ্ট হোটেল ও ভ্রমণসূচীর পেয়ারের জন্য নতুন দাম Google-এর ক্যাশে থাকা আগের (মেয়াদ শেষ হয়নি এমন) দাম ওভাররাইট করবে। মার্জেবল অ্যাট্রিবিউট আপনাকে আগের দামের তথ্য না মুছেই Google-এর ক্যাশেতে অতিরিক্ত দাম স্টোর করতে দেয়। লাইভ প্রাইসিং কোয়েরি উইথ কনটেক্সট রেসপন্সে সবসময় এই অ্যাট্রিবিউট true-এ সেট করা থাকবে (আপনার ট্রানজ্যাকশন মেসেজ রেসপন্স যাই হোক না কেন)।

চাইল্ড এলিমেন্ট

<Result> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<AllowablePointsOfSale> Optional Object এক বা একাধিক ল্যান্ডিং পৃষ্ঠা যা হোটেলের জন্য উপযুক্ত। ল্যান্ডিং পৃষ্ঠা হল এমন একটি ওয়েবসাইট যা ব্যবহারকারীর জন্য বুকিং প্রসেস ম্যানেজ করতে পারে। নির্দিষ্ট ল্যান্ডিং পৃষ্ঠা অন্তর্ভুক্ত করতে (এবং অন্যগুলি বাদ দিতে), ল্যান্ডিং পৃষ্ঠা ফাইলে <PointOfSale> এলিমেন্টের id অ্যাট্রিবিউটের সাথে ম্যাচ করে এমন এক বা একাধিক <AllowablePointsOfSale> এলিমেন্ট যোগ করুন।

আপনি এই এলিমেন্ট অন্তর্ভুক্ত না করলে, ল্যান্ডিং পৃষ্ঠা ফাইলে উল্লেখ করা সব ল্যান্ডিং পৃষ্ঠা রুম বুক করার জন্য উপযুক্ত বলে বিবেচনা করা হয়। আরও তথ্যের জন্য, ল্যান্ডিং পৃষ্ঠা ফাইলের সিনট্যাক্স দেখুন।

<Baserate> Optional float

থাকার জন্য রুমের ভাড়া। এই এলিমেন্টের ভ্যালু নিম্নলিখিত বিষয়গুলি প্রতিফলিত করবে:

  • ব্যক্তিগত রুমের জন্য, আপনার অফার করা সবচেয়ে সস্তা ডবল-অকুপেন্সি রেট সেট করুন। আপনার কাছে ডবল-অকুপেন্সি রেট না থাকলে এবং আপনার অ্যাকাউন্টে নন-ডবল অকুপেন্সি রেট চালু থাকলে, এখানে বেশি অকুপেন্সির অনুমতি দেওয়া হয়। নন-ডবল অকুপেন্সি রেট চালু করতে আমাদের সাথে যোগাযোগ করুন। এখানে একজন ব্যক্তির জন্য রেট উল্লেখ করা যাবে না—সেটি <Rates>-এর অধীনে সেট করতে হবে।
  • শেয়ার করা রুমের জন্য, খালি রেখে <RoomBundle> ব্যবহার করুন।
  • এই ভ্যালু সব রাতের জন্য মোট বেস প্রাইস হতে হবে, প্রতি রাতের গড় ভাড়া নয়।

ভ্রমণসূচীর জন্য রুম উপলভ্য না থাকলে, <Baserate> বাদ দিতে হবে অথবা -1-এ সেট করতে হবে এবং <Unavailable>-এর সাথে অনুপলভ্যতার যেকোনও জানা কারণ উল্লেখ করতে হবে। <Unavailable> অন্তর্ভুক্ত করা সাজেস্ট করা হয়, তবে বেশিরভাগ ক্ষেত্রে এটি ঐচ্ছিক। আপনার কোনও প্রশ্ন থাকলে, আমাদের সাথে যোগাযোগ করুন।

রুম বান্ডেল সরাতে, রুম বান্ডেল সরানো লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করুন।

<Baserate>-এ কোনও সংখ্যা গ্রুপিং চিহ্ন, যেমন কমা (,) বা ফুলস্টপ (.) থাকলে চলবে না। দশমিক চিহ্ন হিসেবে সবসময় ফুলস্টপ (.) ব্যবহার করে ভগ্নাংশ আলাদা করুন। যেমন, $১,২০০.৪০-কে এইভাবে লিখুন:

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

<Baserate> এলিমেন্টে নিম্নলিখিত ঐচ্ছিক অ্যাট্রিবিউট থাকে:

  • all_inclusive: একটি বুলিয়ান যা দেখায় যে এই রেটে ট্যাক্স ও ফি অন্তর্ভুক্ত আছে কিনা। সাধারণত, মার্কিন যুক্তরাষ্ট্র ও কানাডার ব্যবহারকারীদের জন্য এই ভ্যালু false হিসেবে সেট করুন এবং <Tax> ও <OtherFees> এলিমেন্টের জন্য ভ্যালু প্রদান করুন। আপনি যদি সব-অন্তর্ভুক্ত দাম ব্যবহার করেন, তাহলে কানাডার ব্যবহারকারীদের জন্য আপনার দাম ট্যাক্স এবং ফি আলাদা না করলে আপনি তালিকায় দেখানোর জন্য উপযুক্ত নাও হতে পারেন।

    মার্কিন যুক্তরাষ্ট্রের ব্যবহারকারীদের এখন সব-অন্তর্ভুক্ত দাম দেখানো হয়।

    অন্যান্য সব ব্যবহারকারীর জন্য, আপনি সাধারণত বেস রেটে ট্যাক্স ও ফি অন্তর্ভুক্ত করেন এবং all_inclusive অ্যাট্রিবিউটের ভ্যালু true হিসেবে সেট করেন। আরও তথ্যের জন্য, ট্যাক্স ও ফি সংক্রান্ত নীতি দেখুন।

    ডিফল্ট ভ্যালু হল false।

  • currency: তিন অক্ষরের মুদ্রার কোড। যেমন, মার্কিন ডলারের জন্য USD।
<ChargeCurrency> Optional enum ব্যবহারকারী কখন এবং কোথায় বুকিংয়ের জন্য পেমেন্ট করেন। এই এলিমেন্টটি হোটেলের দামের জন্য <Result> এলিমেন্টে বা রুম বান্ডেলের জন্য <PackageData> ব্লকে ট্রানজ্যাকশন মেসেজে ব্যবহার করা যেতে পারে।

সঠিক ভ্যালু হল:

  • web: বুকিং করার সময় ব্যবহারকারীকে অনলাইনে চার্জ করা হয়। এটি হল ডিফল্ট ভ্যালু। আসল ল্যান্ডিং পৃষ্ঠা ল্যান্ডিং পৃষ্ঠা ফাইল দ্বারা নির্ধারিত হয় এবং ব্যবহারকারীর মুদ্রা, লোকেশন, ভাষা বা অন্যান্য বিষয়ের দ্বারা প্রভাবিত হতে পারে।
  • hotel: হোটেলে চেক-ইন করার সময় ব্যবহারকারীকে চার্জ করা হয়। পেমেন্ট যদি সবসময় হোটেলের মুদ্রায় করতে হয়, তাহলে <ChargeCurrency>-এর ভ্যালু hotel হিসেবে সেট করুন। আসল ল্যান্ডিং পৃষ্ঠা ব্যবহারকারীর মুদ্রার দ্বারা প্রভাবিত হয় না।
  • deposit: ব্যবহারকারীকে অবিলম্বে কিছু অংশ চার্জ করা হয় এবং বাকি অংশটি পরে চার্জ করা হয়, সাধারণত যখন ব্যবহারকারী হোটেল থেকে চেক-আউট করেন।
  • installments: ব্যবহারকারীকে মোট বকেয়া অর্থের একটি প্রাথমিক ভগ্নাংশ চার্জ করা হয় এবং একটি নির্দিষ্ট সময়ের মধ্যে নিয়মিতভাবে একটি সেট ব্যালেন্স প্রদান করবেন বলে আশা করা হয়।

ডিফল্ট ভ্যালু হল web।

<Checkin> Required Date তারিখ ফর্ম্যাট ব্যবহার করে কোনও ভ্রমণসূচীর চেক-ইন করার তারিখ। <Nights> এলিমেন্ট এবং <Checkin> এলিমেন্টের কম্বিনেশন একটি ভ্রমণসূচী তৈরি করে।
Optional string ডেপ্রিকেট করা হয়েছে: কাস্টম ফিল্ড নির্ধারণ করে যা আপনি হোটেলের সাথে সম্পর্কিত অতিরিক্ত ডেটা পাস করার জন্য ব্যবহার করতে পারবেন। আপনি নিম্নলিখিত এলিমেন্টের নামের সাথে সর্বাধিক পাঁচটি কাস্টম ভ্যালু পাস করতে পারবেন:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

<Custom> এলিমেন্ট আপনাকে ইচ্ছামতো ডেটা পাস করতে দেয়। যেমন, আপনি এই ফিল্ডে কোনও ভ্যালু উল্লেখ করতে পারেন যা ল্যান্ডিং পৃষ্ঠার ফাইলের মাধ্যমে ল্যান্ডিং পৃষ্ঠার জন্য কাস্টম URL তৈরি করতে ব্যবহার করা হবে। প্রতিটি কাস্টম ফিল্ডে ২০০টি অক্ষর লেখার সীমা আছে। আরও তথ্যের জন্য, ল্যান্ডিং পৃষ্ঠা ফাইল দেখুন। <Rate> এলিমেন্টে প্রদান করা <Custom> এলিমেন্ট <RoomBundle> এলিমেন্টে ইনহেরিট করা হয় না। আপনাকে প্রতিটি <RoomBundle>-এ আলাদাভাবে <Custom> অ্যাট্রিবিউট উল্লেখ করতে হবে।

<ExpirationTime> Optional DateTime যে তারিখ ও সময়ে দামের মেয়াদ শেষ হয়ে গেছে বলে বিবেচনা করা হয় (কমপক্ষে ৩ ঘণ্টা)।

আপনার দামের স্ট্রাকচারের জন্য গুরুত্বপূর্ণ না হলে, আমরা সাজেস্ট করি যে আপনি মেয়াদ শেষ হওয়ার টাইমস্ট্যাম্প প্রদান করবেন না।

Google মেয়াদ শেষ হয়ে যাওয়া কোনও দাম দেখায় না এবং মেয়াদ শেষ হয়ে যাওয়া দাম সহ যেকোনও ভ্রমণসূচি রিয়েল-টাইম দাম সংক্রান্ত কোয়েরি-এর জন্য উপযুক্ত হবে।

<MilesIncluded> Optional boolean ভাড়ার মধ্যে ফ্রিকোয়েন্ট ফ্লাইয়ার মাইল অন্তর্ভুক্ত আছে। প্যারামিটারের মধ্যে এগুলি পড়ে:
  • NumberOfMiles: প্রতিটি ভ্রমণসূচীতে মাইলের সংখ্যা।
  • Provider: ফ্রিকোয়েন্ট ফ্লায়ার মাইল প্রদানকারী।
  • LoyaltyCampaignID: একটি অনন্য আইডি যা Google-এর সাথে কনফিগার ও আপডেট করা নির্দিষ্ট লয়ালটি ক্যাম্পেন শনাক্ত করে। এটি হোটেলের ভাড়ার সাথে লয়ালটি পয়েন্ট যোগ করে।

    <MilesIncluded> এলিমেন্ট অন্তর্ভুক্ত করতে, লয়ালটি ক্যাম্পেন কনফিগারেশনে ক্যাম্পেন আইডি কনফিগার করতে হবে। Google কীভাবে ফলাফলে লয়ালটি পয়েন্ট ব্যবহার করে তার নির্দিষ্ট বিবরণ লয়ালটি ক্যাম্পেন কনফিগারেশন দ্বারা নির্ধারিত হয়।

    <MilesIncluded> এলিমেন্টে একটি চাইল্ড এলিমেন্ট আছে, <NumberOfMiles> যা অর্জিত পয়েন্টের সংখ্যা গণনা করে। <NumberOfMiles> সেট করা না থাকলে, লয়ালটি ক্যাম্পেন কনফিগারেশন অনুযায়ী পয়েন্ট নির্ধারণ করা হয়।

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • মনে রাখবেন: <NumberOfMiles> এবং <Provider> ঐচ্ছিক।

<Nights> Required integer ভ্রমণসূচীতে যতগুলি রাত আছে। <Nights> এলিমেন্টের মান অবশ্যই একটি ধনাত্মক পূর্ণসংখ্যা হতে হবে। <Nights> ও <Checkin>-এর কম্বিনেশন একটি ভ্রমণসূচী তৈরি করে।
<OtherFees> Optional float বেস রেট ও ট্যাক্স ছাড়া অন্যান্য ফি যা রুমের চূড়ান্ত দামকে প্রভাবিত করে। <OtherFees> এলিমেন্টে একটি প্রয়োজনীয় অ্যাট্রিবিউট, currency, থাকে যা ফি-এর জন্য তিন-অক্ষরের মুদ্রার কোড নির্ধারণ করে। যেমন, USD।

<Baserate> শূন্যের থেকে বেশি হলে <OtherFees> এলিমেন্ট প্রয়োজন।

<Occupancy> Optional integer এই রেটের জন্য সর্বাধিক কতজন থাকতে পারবেন তা উল্লেখ করে। <Occupancy> সরাসরি <Result>-এর নিচে থাকলে, এতে অবশ্যই 2 বা তার বেশি উল্লেখ করতে হবে। <Occupancy>-এর সাথে <OccupancyDetails> থাকতে পারে, যা অতিথির ধরন (প্রাপ্তবয়স্ক বা বাচ্চা) নির্দিষ্ট করে। অতিথির ধরন উল্লেখ করা না থাকলে, তাদের প্রাপ্তবয়স্ক হিসেবে ধরে নেওয়া হয়। চাইল্ড এলিমেন্টের সিনট্যাক্স ও বিবরণের জন্য <OccupancyDetails> দেখুন। যদি <Occupancy> এলিমেন্ট প্রদান করা না হয়, তাহলে অকুপেন্সি ডিফল্ট হিসেবে 2 সেট করা হয়।

মূল পয়েন্ট: বাচ্চাদের জন্য রুমের রেট শুধুমাত্র প্রসঙ্গ সহ রিয়েল-টাইম দামের মাধ্যমে পাঠাতে হবে, পুল বা পরিবর্তিত দামের মাধ্যমে নয়।

মনে রাখবেন: ডবল অকুপেন্সি নয় এমন রুমের দাম পাঠানোর ফিচার চালু করতে আপনার সহায়তা টিমের সাথে যোগাযোগ করুন।

<PackageID> Optional string আগে থেকে নির্ধারিত প্যাকেজ ডেটার সাথে ম্যাপ করার জন্য প্যাকেজের অনন্য আইডি। এছাড়াও, PACKAGE-ID ল্যান্ডিং পৃষ্ঠা ভেরিয়েবল পপুলেট করতে ব্যবহার করা হয়। আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন।

<Result> এলিমেন্টে <PackageID> ও <RoomID> সংজ্ঞায়িত করতে <RoomBundle> যোগ করা বাধ্যতামূলক। তবে, <Result> এলিমেন্টের পরিবর্তে <RoomBundle> এলিমেন্টের মধ্যে প্যাকেজ ও রুম আইডি উল্লেখ করলে ভালো হয়।

<Property> Required string সংশ্লিষ্ট ডেটা (দাম, ভ্রমণসূচী, রুম বান্ডেল বা মেটাডেটা) দ্বারা প্রভাবিত হোটেলের আইডি। এই এলিমেন্টের মান অবশ্যই একটি স্ট্রিং হতে হবে। এই এলিমেন্টের ভ্যালু অবশ্যই আপনার হোটেল তালিকা ফিডে উল্লেখ করা <id> লিস্টিংয়ের সাথে ম্যাচ করতে হবে।
<Rates> Optional <Rates> এক বা একাধিক <Rate> ব্লকের জন্য কন্টেনার। <Rates>-এ প্রতিটি <Rate> রুম/ভ্রমণসূচী কম্বিনেশনের জন্য আলাদা দাম নির্ধারণ করে।

একই রুম/ভ্রমণসূচী কম্বিনেশনের জন্য একাধিক রেট থাকলে অথবা <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-এর মান ০ থেকে ৩৩০-এর মধ্যে পূর্ণসংখ্যা হতে হবে, এই দুটি ধরে।
  • refundable_until_time: (available যদি true হয়, তাহলে এটি অত্যন্ত সাজেস্ট করা হয়) হোটেলের স্থানীয় সময় অনুযায়ী, দিনের কোন সময় পর্যন্ত ফুল রিফান্ডের অনুরোধ গ্রহণ করা হবে তা উল্লেখ করে। এটি refundable_until_days-এর সাথে একত্রিত করে নির্দিষ্ট করা যেতে পারে, যেমন, "চেক-ইন করার দুই দিন আগে বিকেল ৪:০০টা পর্যন্ত রিফান্ড পাওয়া যাবে"। refundable_until_time সেট করা না থাকলে, ভ্যালু ডিফল্ট হিসেবে মাঝরাত সেট করা হয়।

    এই অ্যাট্রিবিউটের ভ্যালু Time ফর্ম্যাট ব্যবহার করে।

অ্যাট্রিবিউট সেট করার সময়, নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

  • available বা refundable_until_days সেট করা না থাকলে, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
  • available যদি 0 (বা false) হয়, তাহলে অন্যান্য অ্যাট্রিবিউট উপেক্ষা করা হয়। অন্য একটি বা দুটি অ্যাট্রিবিউট সেট করা থাকলেও, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
<RoomBundle> Optional <RoomBundle> প্রদত্ত হোটেল ও ভ্রমণসূচীর জন্য রুমের দাম সহ ফিজিক্যাল বিবরণ, সুযোগ-সুবিধার প্যাকেজিং এবং কেনাকাটার নীতি সংক্রান্ত কিছু বিবরণ সংক্রান্ত তথ্য সহ কন্টেনার।

সাধারণত, এই এলিমেন্ট ব্যবহার করে বেস রুম এবং একই প্রপার্টির মধ্যে বিভিন্ন ধরনের রুমের দাম নির্ধারণ করা হয়। রুম বান্ডেলের বিবরণ ইনলাইন সংজ্ঞায়িত করা সম্ভব হলেও, সেই তথ্য সংজ্ঞায়িত করার জন্য আপনার আলাদা ট্রানজ্যাকশন মেসেজ ব্যবহার করা উচিত। Google মেটাডেটা স্টোর করবে যাতে আপনি এটি রেফারেন্স হিসেবে ব্যবহার করতে পারেন, ভবিষ্যতে দাম সংক্রান্ত সব আপডেটে এটি রিপিট করার প্রয়োজন হবে না।

<RoomID> Optional string রুমের অনন্য আইডি যা আগে থেকে নির্ধারিত রুম ডেটার সাথে ম্যাপ করা হয়। এছাড়াও, PARTNER-ROOM-ID ল্যান্ডিং পৃষ্ঠা ভেরিয়েবল পপুলেট করতে ব্যবহার করা হয়। আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন।

<Result> এলিমেন্টে <PackageID> ও <RoomID> সংজ্ঞায়িত করতে <RoomBundle> যোগ করা বাধ্যতামূলক। তবে, <Result> এলিমেন্টের পরিবর্তে <RoomBundle> এলিমেন্টের মধ্যে প্যাকেজ ও রুম আইডি উল্লেখ করলে ভালো হয়।

<Tax> Optional float রুমের চূড়ান্ত দামের জন্য যে ট্যাক্স গণনা করা হয়। <Tax> এলিমেন্টে একটি প্রয়োজনীয় অ্যাট্রিবিউট থাকে, currency, যা ট্যাক্সের জন্য তিন-অক্ষরের মুদ্রার কোড নির্ধারণ করে। যেমন, USD। <Baserate> শূন্যের থেকে বেশি হলে <Tax> এলিমেন্ট প্রয়োজন।

<Baserate> এলিমেন্টের "all_inclusive" অ্যাট্রিবিউট স্পষ্টভাবে true হিসেবে সেট করা থাকলে, এই ভ্যালু সেট করা ঐচ্ছিক।

<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>
    <MilesIncluded>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines"/>
      </Provider>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>
  </Result>
</Transaction>

এই উদাহরণে রুম সম্পর্কে বিবরণ দেখানো হয়নি, যেমন বিবরণ, ছবি ও ক্যাপশন, রুমের নাম ও ধারণ ক্ষমতা।

আপনি সেই তথ্য Google-এর স্টোর করা আলাদা ট্রানজ্যাকশন মেসেজে একবার উল্লেখ করতে পারেন। আপনি পরে দাম ও ইনভেন্টরি সংক্রান্ত সব আপডেটে এটি রেফারেন্স হিসেবে ব্যবহার করতে পারবেন। আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন।

মাল্টি-রেট উদাহরণ

নিম্নলিখিত উদাহরণে একটি ভ্রমণসূচী এবং বিভিন্ন অকুপেন্সির জন্য একাধিক রেট সহ প্রপার্টি সংজ্ঞায়িত করা হয়েছে। <Rates> এলিমেন্ট ব্যবহার করে নির্দিষ্ট প্রপার্টির জন্য একাধিক রেটের দাম প্রদান করা যেতে পারে। নিচের উদাহরণটি ভ্যাকেশন রেন্টাল (VR) প্রপার্টির জন্যও উপযোগী:

<?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> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

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

<Rate>-এ সেট করা ভ্যালু, মূল <Result> বা <RoomBundle> এলিমেন্টে দাম সংক্রান্ত ভ্যালুকে ওভাররাইড করে। <Rate>-এ সেট করা না থাকলে, সেগুলি প্যারেন্ট এলিমেন্ট থেকে ভ্যালু ইনহেরিট করে। শুধুমাত্র <AllowablePointsofSale> <RoomBundle> এলিমেন্টে ইনহেরিট করা হয়।

সিন্ট্যাক্স

<Rates> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

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

অ্যাট্রিবিউট

<Rates> এলিমেন্টে নিম্নলিখিত অ্যাট্রিবিউট আছে:

অ্যাট্রিবিউট প্রয়োজনীয়? বিবরণ
rate_rule_id Optional শর্তসাপেক্ষে প্রযোজ্য রেটের ক্ষেত্রে, এই আইডি আপনার রেট সংক্রান্ত নিয়মাবলির সংজ্ঞা ফাইলে একটি সংজ্ঞার সাথে রেট ম্যাচ করে। এই ফিল্ডের অক্ষর সীমা হল ৪০টি অক্ষর। এই আইডি খালি স্ট্রিং হতে পারবে না।

চাইল্ড এলিমেন্ট

<Rates> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<AllowablePointsOfSale> Optional Object এক বা একাধিক ল্যান্ডিং পৃষ্ঠা যা হোটেলের জন্য উপযুক্ত। এই এলিমেন্টটি <Result>-এ <AllowablePointsOfSale>-এর মতো একই সিনট্যাক্স ব্যবহার করে।
<Baserate> Required float থাকার জন্য রুমের ভাড়া। এই এলিমেন্ট <Result>-এ <Baserate>-এর মতো একই সিনট্যাক্স ব্যবহার করে।

মনে রাখবেন: <Rate>-এর অধীনে <Baserate> চাইল্ড এলিমেন্টকে উপলভ্য নেই হিসেবে সংজ্ঞায়িত করা যাবে না।

<ChargeCurrency> Optional enum ব্যবহারকারী কখন এবং কোথায় বুকিংয়ের জন্য পেমেন্ট করেন। এই এলিমেন্টটি <Result>-এ <ChargeCurrency>-এর মতো একই সিনট্যাক্স ব্যবহার করে।
Optional string ডেপ্রিকেট করা হয়েছে: ল্যান্ডিং পৃষ্ঠায় হোটেলের সাথে সম্পর্কিত অতিরিক্ত ডেটা পাঠানোর জন্য আপনি কাস্টম ফিল্ড ব্যবহার করতে পারবেন। এই এলিমেন্ট <Result>-এ <Custom[1‑5]>-এর মতো একই সিনট্যাক্স ব্যবহার করে। প্রতিটি কাস্টম ফিল্ডে ২০০টি অক্ষর লেখার সীমা আছে। আরও তথ্যের জন্য, ল্যান্ডিং পৃষ্ঠা ফাইল দেখুন। <Result> এলিমেন্টে <Custom> এলিমেন্ট দেওয়া থাকলে, সেগুলি <RoomBundle> এলিমেন্টে ইনহেরিট করা হয় না এবং প্রতিটি <RoomBundle>-এর জন্য আলাদাভাবে উল্লেখ করতে হয় অথবা প্রয়োজন হলে <PackageData>-তে অন্তর্ভুক্ত করা যেতে পারে।
<ExpirationTime> Optional DateTime যে তারিখ ও সময়ে রেটের মেয়াদ শেষ হয়ে গেছে বলে বিবেচনা করা হয়। এই এলিমেন্ট <Result>-এ <ExpirationTime>-এর মতো একই সিনট্যাক্স ব্যবহার করে।
<MilesIncluded> Optional boolean ভাড়ার মধ্যে ফ্রিকোয়েন্ট ফ্লাইয়ার মাইল অন্তর্ভুক্ত আছে। প্যারামিটারের মধ্যে এগুলি পড়ে:
  • NumberOfMiles: প্রতিটি ভ্রমণসূচীতে মাইলের সংখ্যা।
  • Provider: ফ্রিকোয়েন্ট ফ্লায়ার মাইল প্রদানকারী।
  • LoyaltyCampaignID: একটি অনন্য আইডি যা Google-এর সাথে কনফিগার ও আপডেট করা নির্দিষ্ট লয়ালটি ক্যাম্পেন শনাক্ত করে। এটি হোটেলের ভাড়ার সাথে লয়ালটি পয়েন্ট যোগ করে।

    <MilesIncluded> এলিমেন্ট অন্তর্ভুক্ত করতে, লয়ালটি ক্যাম্পেন কনফিগারেশনে ক্যাম্পেন আইডি কনফিগার করতে হবে। Google কীভাবে ফলাফলে লয়ালটি পয়েন্ট ব্যবহার করে তার নির্দিষ্ট বিবরণ লয়ালটি ক্যাম্পেন কনফিগারেশন দ্বারা নির্ধারিত হয়।

    <MilesIncluded> এলিমেন্টে একটি চাইল্ড এলিমেন্ট আছে, <NumberOfMiles> যা অর্জিত পয়েন্টের সংখ্যা গণনা করে। <NumberOfMiles> সেট করা না থাকলে, লয়ালটি ক্যাম্পেন কনফিগারেশন অনুযায়ী পয়েন্ট নির্ধারণ করা হয়।

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • মনে রাখবেন: <NumberOfMiles> এবং <Provider> ঐচ্ছিক।

<Occupancy> Optional integer

এই রেটের জন্য সর্বাধিক কতজন থাকতে পারবেন তা উল্লেখ করে। উল্লেখ করা না থাকলে, এটি পেরেন্ট রেটের মতোই বলে ধরে নেওয়া হয়। <Occupancy>-এর সাথে <OccupancyDetails> থাকতে পারে, যা অতিথির ধরন (প্রাপ্তবয়স্ক বা বাচ্চা) নির্দিষ্ট করে। চাইল্ড এলিমেন্টের সিনট্যাক্স ও বিবরণের জন্য <OccupancyDetails> দেখুন।

<OtherFees> Required float বেস রেট ও ট্যাক্স ছাড়া অন্যান্য ফি যা রুমের চূড়ান্ত দামকে প্রভাবিত করে। এই এলিমেন্টটি <Result>-এ <OtherFees>-এর মতো একই সিনট্যাক্স ব্যবহার করে।

<Baserate> এলিমেন্টের "all_inclusive" অ্যাট্রিবিউট স্পষ্টভাবে true হিসেবে সেট করা থাকলে, এই ভ্যালু সেট করা ঐচ্ছিক।

<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-এর মান ০ থেকে ৩৩০-এর মধ্যে পূর্ণসংখ্যা হতে হবে, এই দুটি ধরে।
  • refundable_until_time: (available যদি true হয়, তাহলে এটি অত্যন্ত সাজেস্ট করা হয়) হোটেলের স্থানীয় সময় অনুযায়ী, দিনের কোন সময় পর্যন্ত ফুল রিফান্ডের অনুরোধ গ্রহণ করা হবে তা উল্লেখ করে। এটি refundable_until_days-এর সাথে একত্রিত করে নির্দিষ্ট করা যেতে পারে, যেমন, "চেক-ইন করার দুই দিন আগে বিকেল ৪:০০টা পর্যন্ত রিফান্ড পাওয়া যাবে"। refundable_until_time সেট করা না থাকলে, ভ্যালু ডিফল্ট হিসেবে মাঝরাত সেট করা হয়।

    এই অ্যাট্রিবিউটের ভ্যালু Time ফর্ম্যাট ব্যবহার করে।

অ্যাট্রিবিউট সেট করার সময়, নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

  • available বা refundable_until_days সেট করা না থাকলে, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
  • available যদি 0 (বা false) হয়, তাহলে অন্যান্য অ্যাট্রিবিউট উপেক্ষা করা হয়। অন্য একটি বা দুটি অ্যাট্রিবিউট সেট করা থাকলেও, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
<Tax> Required float রুমের চূড়ান্ত দামের জন্য যে ট্যাক্স গণনা করা হয়। এই এলিমেন্ট <Result>-এ <Tax>-এর মতো একই সিনট্যাক্স ব্যবহার করে।

উদাহরণ

বেস রেট এবং শর্তসাপেক্ষে প্রযোজ্য রেট

নিচের উদাহরণে একটি ট্রানজ্যাকশন মেসেজ দেখানো হয়েছে যাতে বেস রেট এবং শর্তসাপেক্ষে প্রযোজ্য রেট আছে:

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

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

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

  </Result>
</Transaction>

একাধিক শর্তসাপেক্ষে প্রযোজ্য রেট

নিম্নলিখিত উদাহরণে <RoomBundle>-এর মধ্যে বেস রেট ও একাধিক শর্তসাপেক্ষে প্রযোজ্য রেট সংজ্ঞায়িত করা হয়েছে:

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

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

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

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

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

<RoomBundle>

<Transaction> মেসেজে <Result>-এর চাইল্ড হিসেবে রুম বান্ডেলের দাম ও উপলভ্যতা নির্ধারণ করে। প্রতিটি প্যাকেজ বা ভ্রমণসূচীর কম্বিনেশনের জন্য আলাদা এলিমেন্ট নির্ধারণ করুন। রুম বান্ডেলের প্যাকেজ ও শর্তাবলী নির্ধারণ করতে, <RoomData> ব্যবহার করুন।

<RoomBundle> এলিমেন্টটি ট্রানজ্যাকশন মেসেজ XML হায়ারার্কির নিম্নলিখিত জায়গায় দেখা যায়:

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

আরও তথ্যের জন্য, রুম বান্ডেল ব্যবহার করা নিবন্ধটি দেখুন।

সিন্ট্যাক্স

<RoomBundle> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

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

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

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

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

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

      <RatePlanID>rate_plan_ID</RatePlanID>

      <Rates>...</Rates>

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

অ্যাট্রিবিউট

<RoomBundle> এলিমেন্টে কোনও অ্যাট্রিবিউট নেই।

চাইল্ড এলিমেন্ট

<RoomBundle> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<Baserate> Required float থাকার জন্য রুম বান্ডেলের দাম নির্ধারণ করে। এই এলিমেন্টটি <Result>-এ <Baserate>-এর মতো একই সিনট্যাক্স ব্যবহার করে, নিম্নলিখিত ব্যতিক্রম সহ:
  • ভ্রমণসূচীর জন্য রুম উপলভ্য না থাকলে, <RoomBundle> এলিমেন্ট সরিয়ে দিয়ে জানান যে ইনভেনটরিতে আর রুম উপলভ্য নেই। আরও তথ্যের জন্য, রুম বান্ডেল সরানো নিবন্ধটি দেখুন।
<BreakfastIncluded> Optional boolean এই রুম বান্ডেলের রেটে ব্রেকফাস্ট অন্তর্ভুক্ত আছে কিনা তা উল্লেখ করে।
<ChargeCurrency> Optional enum ব্যবহারকারী কখন এবং কোথায় বুকিংয়ের জন্য পেমেন্ট করেন। এই এলিমেন্টটি <Result>-এ <ChargeCurrency>-এর মতো একই সিনট্যাক্স ব্যবহার করে।

ডিফল্ট ভ্যালু হল web।

Optional string বন্ধ করা হয়েছে: রুম বান্ডেলের জন্য ল্যান্ডিং পৃষ্ঠায় অতিরিক্ত ডেটা পাঠানোর জন্য কাস্টম ফিল্ড। এইসব এলিমেন্ট <Result>-এ <Custom[1-5]>-এর মতো একই সিনট্যাক্স ব্যবহার করে। প্রতিটি কাস্টম ফিল্ডে সর্বাধিক ২০০টি অক্ষর লেখা যাবে। আরও তথ্যের জন্য, ল্যান্ডিং পৃষ্ঠা ফাইল দেখুন। আপনি ট্রানজ্যাকশন মেসেজে দাম পাঠালে তবেই কাস্টম ভেরিয়েবল তালিকাভুক্ত করা হয়। <Result> এলিমেন্টে <Custom> এলিমেন্ট দেওয়া থাকলে, সেগুলি <RoomBundle> এলিমেন্টে ইনহেরিট করা হয় না এবং প্রতিটি <RoomBundle>-এর জন্য আলাদাভাবে উল্লেখ করতে হয় অথবা প্রয়োজন হলে <PackageData>-তে অন্তর্ভুক্ত করা যেতে পারে।
<InternetIncluded> Optional boolean কোনও রুম বান্ডেলে যদি কোনও চার্জ ছাড়াই ইন্টারনেট অ্যাক্সেস অন্তর্ভুক্ত থাকে, তাহলে অন্যান্য বান্ডেলে সেই সুবিধা অন্তর্ভুক্ত থাকবে না। যে হোটেলের সব রুমে ফ্রি ইন্টারনেট পরিষেবা দেওয়া হয়, সেখানে রুম বান্ডেলের জন্য এই এলিমেন্ট সেট করবেন না। এই এলিমেন্টটি রুমের মধ্যে ওয়্যার্ড ইন্টারনেট বা ওয়্যারলেস ইন্টারনেটের ক্ষেত্রে প্রযোজ্য নয় যা গেস্ট রুমে উপলভ্য নয়।
<MilesIncluded> Optional boolean ভাড়ার মধ্যে ফ্রিকোয়েন্ট ফ্লাইয়ার মাইল অন্তর্ভুক্ত আছে। প্যারামিটারের মধ্যে এগুলি পড়ে:
  • NumberOfMiles: প্রতিটি ভ্রমণসূচীতে মাইলের সংখ্যা।
  • Provider: ফ্রিকোয়েন্ট ফ্লায়ার মাইল প্রদানকারী।
  • LoyaltyCampaignID: একটি অনন্য আইডি যা Google-এর সাথে কনফিগার ও আপডেট করা নির্দিষ্ট লয়ালটি ক্যাম্পেন শনাক্ত করে। এটি হোটেলের ভাড়ার সাথে লয়ালটি পয়েন্ট যোগ করে।

    <MilesIncluded> ক্যাম্পেন অন্তর্ভুক্ত করতে লয়ালটি ক্যাম্পেন কনফিগারেশনে আইডি কনফিগার করতে হবে। Google কীভাবে ফলাফলে লয়ালটি পয়েন্ট ব্যবহার করে তার নির্দিষ্ট বিবরণ লয়ালটি ক্যাম্পেন কনফিগারেশন দ্বারা নির্ধারিত হয়।

    <MilesIncluded> এলিমেন্টের একটি চাইল্ড এলিমেন্ট আছে, <NumberOfMiles> যা অর্জিত পয়েন্টের সংখ্যা গণনা করে। <NumberOfMiles> সেট করা না থাকলে, লয়ালটি ক্যাম্পেন কনফিগারেশন অনুযায়ী পয়েন্ট নির্ধারণ করা হয়।

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      <NumberOfMiles>1200</NumberOfMiles>
      <Provider>
        <Text language="en" text="United Airlines">
      </Provider>
    </MilesIncluded>
  • মনে রাখবেন: <NumberOfMiles> এবং <Provider> ঐচ্ছিক।

<Occupancy> Required integer এই রেটের জন্য সর্বাধিক কতজন থাকতে পারবেন তা উল্লেখ করে। যেমন, একটি বড় স্যুটে ৬ জন অতিথি থাকতে পারলেও, "হানিমুন প্যাকেজে" মাত্র ২ জন অতিথি থাকতে পারবেন।

এই ভ্যালু অবশ্যই <Capacity>-এর সমান বা তার চেয়ে কম হতে হবে, যা হল রুমে শারীরিকভাবে যতজন লোক থাকতে পারবেন সেই সংখ্যা।

আপনার ল্যান্ডিং পেজ URL-এ অকুপেন্সি নির্ধারণ করার সময়, NUM-ADULTS এবং NUM-CHILDREN ভেরিয়েবল ব্যবহার করুন, যেমন ভেরিয়েবল এবং শর্তাবলী ব্যবহার করা-তে বর্ণনা করা হয়েছে। ডিফল্ট ভ্যালু হল 2 জন প্রাপ্তবয়স্ক এবং 0 জন বাচ্চা।

<Occupancy>-এর মান ১ থেকে ৯৯-এর মধ্যে কোনও ধনাত্মক পূর্ণসংখ্যা হতে হবে, এই দুটি ধরে।

মনে রাখবেন:

  • <RoomBundle>-এর জন্য <Occupancy> ব্যবহার করার জন্য বিশেষভাবে সাজেস্ট করা হচ্ছে, তাই এটি প্রয়োজনীয় হিসেবে ফ্ল্যাগ করা হয়েছে এবং বাদ দিলে ১০৯৭ নম্বর সমস্যা দেখাবে।
  • <Occupancy> এই ক্রমে ডেটা অবজেক্ট থেকে আসে: <RoomBundle>, <PackageData> এবং তারপর = <RoomData>। এর মধ্যে কোনওটিতেই কোনও ভ্যালু না থাকলে, ডিফল্ট ভ্যালু হিসেবে ২ সেট করা হয়।
  • <Occupancy>-এর সাথে <OccupancyDetails> থাকতে পারে, যা অতিথির ধরন (প্রাপ্তবয়স্ক বা বাচ্চা) নির্দিষ্ট করে। অতিথির ধরন উল্লেখ করা না থাকলে, তাদের প্রাপ্তবয়স্ক হিসেবে ধরে নেওয়া হয়। চাইল্ড এলিমেন্টের সিনট্যাক্স ও বিবরণের জন্য <OccupancyDetails> দেখুন।
  • আপনি <RoomBundle> এবং <PackageData>, উভয় ক্ষেত্রেই <Occupancy> সেট করলে, <RoomBundle>-এর ভ্যালু অগ্রাধিকার পায়।
<OtherFees> Required float বেস রেট ও ট্যাক্স ছাড়া অন্যান্য ফি যা রুমের চূড়ান্ত দামকে প্রভাবিত করে। <OtherFees> এলিমেন্টে একটি প্রয়োজনীয় অ্যাট্রিবিউট, currency, থাকে যা ফি-এর জন্য তিন-অক্ষরের মুদ্রার কোড নির্ধারণ করে। যেমন, মার্কিন ডলারের জন্য USD ব্যবহার করুন।
<PackageID> Optional (recommended) string প্যাকেজ ডেটার জন্য অনন্য আইডি। <PackageData>-এ যা পাঠানো হয়েছে তার সাথে রুম বান্ডেল ডেটা ম্যাচ করতে এই আইডি ব্যবহার করুন। আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন। (এছাড়াও, আপনি এই আইডি ব্যবহার করে ইনলাইন রুম বান্ডেল ডেটা সংজ্ঞায়িত করার সময় একটি ট্রানজ্যাকশন মেসেজে ব্যবহৃত সাধারণ রুম বান্ডেল সংজ্ঞা রেফারেন্স করতে পারেন।)
<ParkingIncluded> Optional boolean রুম বান্ডেলে কোনও চার্জ ছাড়াই পার্কিং অন্তর্ভুক্ত আছে কিনা, যেখানে এই হোটেলে পার্কিং অন্যথায় একটি পেড পরিষেবা হবে। যে হোটেল ফ্রিতে পার্কিংয়ের সুবিধা দেয়, সেটির জন্য এই এলিমেন্টের কোনও ভ্যালু উল্লেখ করবেন না।

সঠিক ভ্যালু হল 0 (বা false) এবং 1 (বা true)। ডিফল্ট ভ্যালু হল false।

<RatePlanID> Optional string রেট প্ল্যান আইডি হল রুম ও প্যাকেজের কম্বিনেশনের অনন্য শনাক্তকারী। যেমন, <RoomID>-এর ভ্যালু ৫ এবং <PackageID>-এর ভ্যালু ABC হলে, <RatePlanID>-এর জন্য আপনি ৫-ABC ভ্যালু ব্যবহার করতে পারেন। আপনার ডায়নামিক ল্যান্ডিং পৃষ্ঠা (আগে পয়েন্ট অফ সেল নামে পরিচিত ছিল) URL তৈরি করার জন্য RatePlanID ভেরিয়েবল হিসেবে ব্যবহার করার জন্য আমরা সাজেস্ট করি।

মনে রাখবেন: সেরা পারফর্ম্যান্সের জন্য 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-এর মান ০ থেকে ৩৩০-এর মধ্যে পূর্ণসংখ্যা হতে হবে, এই দুটি ধরে।
  • refundable_until_time: (available যদি true হয়, তাহলে এটি অত্যন্ত সাজেস্ট করা হয়) হোটেলের স্থানীয় সময় অনুযায়ী, দিনের কোন সময় পর্যন্ত ফুল রিফান্ডের অনুরোধ গ্রহণ করা হবে তা উল্লেখ করে। এটি refundable_until_days-এর সাথে একত্রিত করে নির্দিষ্ট করা যেতে পারে, যেমন, "চেক-ইন করার দুই দিন আগে বিকেল ৪:০০টা পর্যন্ত রিফান্ড পাওয়া যাবে"। refundable_until_time সেট করা না থাকলে, ভ্যালু ডিফল্ট হিসেবে মাঝরাত সেট করা হয়।

    এই অ্যাট্রিবিউটের ভ্যালু Time ফর্ম্যাট ব্যবহার করে।

অ্যাট্রিবিউট সেট করার সময়, নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

  • available বা refundable_until_days সেট করা না থাকলে, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
  • available যদি 0 (বা false) হয়, তাহলে অন্যান্য অ্যাট্রিবিউট উপেক্ষা করা হয়। অন্য একটি বা দুটি অ্যাট্রিবিউট সেট করা থাকলেও, রেট রিফান্ডযোগ্য হিসেবে দেখানো হয় না।
<RoomID> Required string রুম ডেটার জন্য অনন্য আইডি। <RoomData>-এ আপনি যা পাঠিয়েছেন তার সাথে রুম বান্ডেল ডেটা ম্যাচ করতে এই আইডি ব্যবহার করুন। আরও তথ্যের জন্য, রুম বান্ডেল মেটাডেটা দেখুন। (এছাড়াও, আপনি এই আইডি ব্যবহার করে ইনলাইন রুম ডেটা সংজ্ঞায়িত করার সময় একটি ট্রানজ্যাকশন মেসেজে সাধারণ রুমের সংজ্ঞা উল্লেখ করতে পারেন।)
<Tax> Required float রুমের চূড়ান্ত দামের জন্য যে ট্যাক্স গণনা করা হয়। <Tax> এলিমেন্টে একটি প্রয়োজনীয় অ্যাট্রিবিউট থাকে, currency, যা ট্যাক্সের জন্য তিন-অক্ষরের মুদ্রার কোড নির্ধারণ করে। যেমন, মার্কিন ডলারের জন্য USD ব্যবহার করুন।

উদাহরণ

সিঙ্গেল অকুপেন্সি বান্ডেল

নিম্নলিখিত উদাহরণে একটি সিঙ্গল অকুপেন্সি বান্ডেল সহ উত্তরকে সংজ্ঞায়িত করা হয়েছে। ব্যবহারকারী অকুপেন্সি পিকার থেকে 1 বেছে নিলে, Google অকুপেন্সি নির্বিশেষে সবচেয়ে কম উপযুক্ত দাম দেখায়।

একজনের থাকার জন্য রুমের ভাড়া উপলভ্য না থাকলে, Google দু'জনের থাকার জন্য রুমের সবচেয়ে কম ভাড়া দেখাবে। মনে রাখবেন, কোনও ভ্রমণসূচীর জন্য ডবল-অকুপেন্সি বা তার বেশি দাম ক্যাশে করা থাকলে, সিঙ্গেল অকুপেন্সির দাম লাইভ কোয়েরি করা হয় না।

এই উদাহরণে <RoomID> এবং <PackageID> এলিমেন্টের সাথে আগে থেকে নির্ধারিত রুম এবং প্যাকেজ মেটাডেটা রেফারেন্স করা হয়েছে। সেই তথ্য সংজ্ঞায়িত করতে <RoomData> এবং <PackageData> এলিমেন্ট ব্যবহার করুন।

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

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

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


দুই বা তার বেশি সংখ্যক অকুপেন্সি

নিম্নলিখিত উদাহরণে দুই বা তার বেশি অকুপেন্সি সহ রেসপন্স দেখানো হয়েছে।

এই উদাহরণে <RoomID> এবং <PackageID> এলিমেন্টের সাথে আগে থেকে নির্ধারিত রুম এবং প্যাকেজ মেটাডেটা রেফারেন্স করা হয়েছে। সেই তথ্য সংজ্ঞায়িত করতে <RoomData> এবং <PackageData> এলিমেন্ট ব্যবহার করুন।

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

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

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


একাধিক রুম বান্ডেল

নিম্নলিখিত উদাহরণে হোস্টেল রুমের সম্ভাব্য দাম দেখানোর জন্য একাধিক রুম বান্ডেলে অকুপেন্সি সেট করা হয়েছে।

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

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

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

একাধিক শর্তসাপেক্ষে প্রযোজ্য রেট

নিম্নলিখিত উদাহরণে <RoomBundle>-এর মধ্যে বেস রেট ও একাধিক শর্তসাপেক্ষে প্রযোজ্য রেট সংজ্ঞায়িত করা হয়েছে:

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

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

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

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

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

<OccupancyDetails>

ট্রানজ্যাকশন মেসেজে <Occupancy> কোনও রুম বা প্যাকেজের জন্য সর্বাধিক কতজন অতিথি থাকতে পারবেন তা উল্লেখ করে। <OccupancyDetails>-এ অতিরিক্ত তথ্য থাকতে পারে যেমন অতিথির সংখ্যা এবং ধরন (প্রাপ্তবয়স্ক বা শিশু)।

<Result> বা <RoomBundle>-এর <Rates> এলিমেন্টের মধ্যে <Occupancy> এবং <OccupancyDetails> দেখা গেলে, তার অর্থ হল, রেটটি অকুপেন্সি সংক্রান্ত বিবরণের দ্বারা সীমাবদ্ধ।

আপনি যদি <RoomBundle>-এ <OccupancyDetails> অন্তর্ভুক্ত করেন, তার সাথে নেস্ট করা <Rate> এলিমেন্ট থাকলে, আপনি <Rate>-এর মধ্যে বেসিক <Occupancy> পাঠাতে পারবেন না; পরিবর্তে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করার সাজেশন দেওয়া হয়:

  • <Rate> থেকে অকুপেন্সি বাদ দিন: এই ক্ষেত্রে, <Rate> সরাসরি <RoomBundle> থেকে <OccupancyDetails> ইনহেরিট করে

অথবা,

  • ডুপ্লিকেট <OccupancyDetails>: এই ক্ষেত্রে, <RoomBundle> এবং নেস্টেড <Rate> এলিমেন্ট, দুটিতেই অতিরিক্ত একই ধরনের <OccupancyDetails> পাঠান

সিন্ট্যাক্স

<OccupancyDetails> দেখা গেলে, তার আগে সবসময় <Occupancy> থাকে। নিম্নলিখিত সিনট্যাক্সটি লক্ষ্য করুন:

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

চাইল্ড এলিমেন্ট

<OccupancyDetails> এলিমেন্টে নিম্নলিখিত চাইল্ড এলিমেন্ট আছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? ধরন বিবরণ
<NumAdults> Required integer প্রাপ্তবয়স্ক অতিথির সংখ্যা। সর্বনিম্ন:১, সর্বাধিক:২০।
<Children> Optional Object এক বা একাধিক <Child> এলিমেন্টের কন্টেনার।
<Child age> Optional integer এই বাচ্চার সর্বাধিক বয়স—যেমন, <Child age="17">।

উদাহরণ

নিম্নলিখিত উদাহরণগুলি দেখায় যে কীভাবে <OccupancyDetails>, <Results>, <RoomBundle> বা <Rates> চাইল্ড এলিমেন্টের মধ্যে দেখা যেতে পারে।

ফলাফল সংক্রান্ত উত্তর

নিম্নলিখিত উদাহরণে একটি সফরসূচি এবং একটি প্রপার্টির জন্য তার মূল্য নির্ধারণ করা হয়েছে। এটি রিয়েল-টাইম দাম সংক্রান্ত কোয়েরির উত্তরে করা হয়েছে যেখানে ব্যবহারকারী অতিথির সংখ্যা এবং ধরন উল্লেখ করেছেন। এখানে, <OccupancyDetails> -- ২ জন প্রাপ্তবয়স্ক এবং একজন বাচ্চা -- <Result>-এ রিটার্ন করা হয়েছে।

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

উত্তর রেট করে

নিম্নলিখিত উদাহরণে ১ জন প্রাপ্তবয়স্ক ও ১ জন বাচ্চার জন্য একটি ভ্রমণসূচী ও তার দাম সংজ্ঞায়িত করা হয়েছে। এখানে, <OccupancyDetails> <Result>-এর <Rates> এলিমেন্টে ফেরত দেওয়া হয়।

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

রুম বান্ডেল

নিচের উদাহরণে দুই রাতের জন্য ২ জন প্রাপ্তবয়স্ক ও ১ জন বাচ্চার থাকার জন্য রিফান্ডযোগ্য রেট দেখানো হয়েছে। এখানে, <RoomBundle>-এর মধ্যে <OccupancyDetails> দেখা যায়

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

একাধিক রুম বান্ডেল

নিম্নলিখিত উদাহরণে একাধিক <RoomBundle> রেট উল্লেখ করা হয়েছে যা ২ জন প্রাপ্তবয়স্ক ও ২ জন বাচ্চার জন্য প্রযোজ্য। এখানে, <OccupancyDetails> <RoomBundle>-এর <Rates> এলিমেন্টে দেখা যায়।

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