Referensi XML Harga & Inventaris Kamar (Transaksi)

Halaman ini menyediakan referensi untuk pesan Transaksi berbasis XML.

<Transaction>

Elemen root pesan Transaksi adalah <Transaction>. Ini adalah kontainer untuk informasi deskriptif tentang kamar dan paket dan/atau harga dan ketersediaan kamar dan paket.

Elemen <Transaction> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Pesan yang menggunakan <Transaction> sebagai elemen root memerlukan setidaknya satu elemen turunan. Pesan transaksi dapat memiliki sejumlah elemen turunan, selama ukuran total pesan tidak melebihi 100 MB.

Sintaksis

Elemen <Transaction> menggunakan sintaksis berikut:

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

Atribut

Elemen <Transaction> memiliki atribut berikut:

Atribut Wajib diisi? Jenis Deskripsi
id Required string ID unik untuk setiap pesan Transaksi.
partner Optional string Akun partner yang menjadi tujuan pesan Transaksi. Anda biasanya menggunakan ini jika backend Anda menyediakan feed harga untuk beberapa akun partner. Nilai string ini adalah nilai "Kunci partner" yang tercantum di halaman Setelan akun di Pusat Pengelolaan Hotel.
timestamp Required DateTime

Waktu saat pesan Transaksi dikirim.

Setiap pesan yang dikirim dengan stempel waktu dalam 24 jam sebelumnya akan diproses, dan pesan yang belum dihapus akan dihapus.

Pesan diproses dalam urutan timestamp dan bukan dalam urutan penerimaan. Misalnya, pembaruan harga dengan stempel waktu 2019-05-03 14:09:00 yang diterima setelah pesan dengan stempel waktu 2019-05-03 14:10:00 akan tetap diproses secara berurutan, dan harga dari pesan dengan stempel waktu 2019-05-03 14:10:00 akan digunakan.

Elemen turunan

Elemen <Transaction> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<PropertyDataSet> Optional* <PropertyDataSet>

Menjelaskan kamar dan Paket Kamar tertentu. Anda biasanya menggunakan elemen ini dalam pesan Transaksi terpisah untuk menentukan nilai bersama Paket Kamar dan mengurangi ukuran pesan Transaksi.

<Result> Optional* <Result>

Data harga untuk itinerari kamar atau elemen <RoomBundle> yang menentukan Paket Kamar dan jenis kamar tambahan untuk properti. Elemen <Result> juga dapat digunakan untuk menghapus itinerari dari inventaris.

* Setidaknya salah satu dari <PropertyDataSet> atau <Result> harus ada.

Contoh

Data kamar

Contoh berikut menentukan data kamar dalam pesan Transaksi sederhana:

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

Data harga

Contoh berikut menentukan data harga dalam pesan Transaksi sederhana:

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

Tarif per malam

Contoh berikut menentukan data harga untuk 1 hingga 7 malam mulai 7 Juni 2023:

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


Tarif dasar & bersyarat

Contoh berikut menunjukkan pesan Transaksi yang berisi tarif dasar dan tarif bersyarat:

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

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

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

Hapus inventaris

Contoh berikut menghapus beberapa inventaris (menginap 1 malam untuk beberapa tanggal yang berbeda) untuk hotel dari inventaris:

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

Container untuk informasi kamar dan paket (atau Paket Kamar) dalam pesan <Transaction>. Nilai yang ditetapkan untuk hotel menggantikan nilai yang ditetapkan untuk partner. Google menyimpan informasi ini sehingga Anda tidak perlu menentukannya setiap kali mengirim pembaruan harga.

Elemen <PropertyDataSet> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.

Sintaksis

Elemen <PropertyDataSet> menggunakan sintaksis berikut:

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

Atribut

Elemen <PropertyDataSet> tidak memiliki atribut.

Elemen turunan

Elemen <PropertyDataSet> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<PackageData> Optional* <PackageData> Menjelaskan Paket Kamar. Data ini dikaitkan dengan partner dan hotel, tetapi tidak dengan itinerari. Elemen ini mirip dengan <RoomData>, tetapi menjelaskan fasilitas dan istilah yang bukan bagian dari deskripsi kamar fisik.

Anda mereferensikan ID paket dalam pembaruan harga.

Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.

<Property> Required string ID hotel tempat data terkait diterapkan. Nilai elemen ini harus berupa string yang cocok dengan listingan <id> di Feed Daftar Hotel Anda.
<RoomData> Optional* <RoomData> Mendeskripsikan kamar. Data ini dikaitkan dengan partner dan hotel, tetapi tidak dengan itinerari.

Anda mereferensikan ID kamar dalam pembaruan harga.

* Setidaknya salah satu dari <PackageData> atau <RoomData> harus ada.

Contoh

Data kamar dan paket

Contoh berikut menunjukkan data kamar dan paket dalam <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>

Saat mengirimkan harga dan ketersediaan untuk kamar dan/atau Paket Kamar ini, Anda mereferensikan ID paket dan kamar di pesan harga. Hasilnya adalah Anda mengurangi ukuran pesan Anda secara signifikan, dan juga mengurangi jumlah error yang mungkin Anda alami akibat data duplikat. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.

<RoomData>

Menentukan metadata yang tidak bergantung pada itinerari tentang kamar, dan dengan demikian, Paket Kamar (karena Paket Kamar adalah kamar plus fasilitas tambahan). Gunakan <RoomData> untuk mengurangi pengulangan data deskriptif di Feed Harga Anda.

Elemen <RoomData> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Elemen <RoomData> berisi informasi yang terkait dengan partner dan hotel, tetapi tidak dengan itinerari. Tujuan yang dimaksudkan adalah untuk semua data non-itinerari.

Elemen <RoomData> mirip dengan <PackageData>, tetapi mendeskripsikan kamar fisik, bukan fasilitas dan persyaratan paket. Anda menggunakan kombinasi <RoomData> dan <PackageData> untuk memberikan detail tentang Paket Kamar. Untuk setiap kamar yang bukan bagian dari paket, cukup gunakan <RoomData>.

Anda dapat menentukan elemen <RoomData> dan <PackageData> untuk kamar atau Paket Kamar yang sama. Saat menampilkan kamar atau paket tersebut dalam hasil penelusuran, Google akan menyertakan deskripsi keduanya, yang dipisahkan dengan tanda hubung.

Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.

Sintaksis

Elemen <RoomData> menggunakan sintaksis berikut:

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

Atribut

Elemen <RoomData> tidak memiliki atribut.

Elemen turunan

Elemen <RoomData> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<Capacity> Optional integer Jumlah maksimum tamu yang dapat diakomodasi kamar secara fisik. Untuk kamar, kapasitasnya lebih dari atau sama dengan jumlah tamu.

Jika ditentukan, nilai ini harus sama dengan atau lebih besar dari nilai elemen <Occupancy>, yang merupakan jumlah tamu yang ditujukan untuk kamar tertentu. Misalnya, <Capacity> suite besar mungkin 6, tetapi <Occupancy> untuk suite tersebut adalah 4.

Nilai <Capacity> harus berupa bilangan bulat positif antara 1 dan 20, inklusif.

<Description> Optional Object Deskripsi mendetail tentang kamar. Elemen ini harus berisi informasi yang tidak dijelaskan oleh elemen lain atau elemen <Name>. Anda tidak boleh menggunakan huruf besar semua saat menentukan deskripsi kamar.

Elemen <Description> menggunakan satu elemen turunan, <Text>, yang memiliki dua atribut wajib berikut:

  • text: Deskripsi mendetail tentang kamar.
  • language: Kode bahasa dua huruf; misalnya, fr.

Gunakan elemen <Text> terpisah untuk setiap bahasa yang digunakan dalam iklan atau link pemesanan gratis yang mungkin muncul (dengan nilai yang berbeda untuk atribut language).

Contoh berikut menunjukkan deskripsi kamar versi bahasa Prancis dan Inggris:

<Description>
  <Text text="Two queen-sized beds" language="en"/>
  <Text text="Deux lits de la reine" language="fr"/>
</Description>
<Name> Required string Nama kategori kamar. Nilai ini harus cocok dengan yang muncul di halaman landing hotel (sebelumnya tempat penjualan). Jangan setel nilai elemen ini ke huruf besar semua.

Elemen ini menggunakan satu elemen turunan, <Text>, yang memiliki dua atribut wajib berikut:

  • text: Nama ruang.
  • language: Kode bahasa dua huruf; misalnya, fr.

Gunakan elemen <Text> terpisah untuk setiap bahasa yang digunakan dalam iklan atau link pemesanan gratis yang mungkin muncul (dengan nilai yang berbeda untuk atribut language).

Contoh berikut menunjukkan nama kamar versi bahasa Prancis dan Inggris:

<Name>
  <Text text="Standard Double Room" language="en"/>
  <Text text="Le chambre double" language="fr"/>
</Name>
<Occupancy> Optional integer Jumlah maksimum tamu yang ditujukan untuk kamar. Misalnya, suite besar mungkin secara fisik dapat menampung 6 tamu (kapasitas = 6), tetapi hanya ditujukan untuk maksimal 4 tamu.

Nilai ini harus kurang dari atau sama dengan elemen <Capacity>, yang merupakan jumlah orang yang dapat diakomodasi oleh kamar secara fisik.

Nilai <Occupancy> harus berupa bilangan bulat positif antara 1 dan 99, inklusif.

<Occupancy> dapat disertai dengan <OccupancyDetails>, yang menentukan jenis tamu (dewasa atau anak-anak). Lihat <OccupancyDetails> untuk mengetahui sintaksis dan deskripsi elemen turunan.

<OccupancySettings> Optional Object Setelan yang dapat membatasi atau mengubah persyaratan jumlah tamu di kamar.

Elemen <OccupancySettings> menggunakan elemen turunan berikut:

  • <MinOccupancy>: Jumlah minimum tamu yang bisa menginap di kamar. Misalnya, jika disetel ke 2, ruang ini tidak dapat dipesan untuk satu tamu.

    Nilai <MinOccupancy> harus berupa bilangan bulat positif antara 1 dan 99, inklusif.

  • <MinAge>: Usia minimum untuk semua tamu yang menginap di kamar. Misalnya, jika disetel ke 18, ruang ini hanya dapat dipesan untuk grup yang semua tamunya berusia 18 tahun ke atas.

    Nilai <MinAge> harus berupa bilangan bulat positif antara 0 dan 99, inklusif.

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

Tidak semua elemen turunan harus disertakan.

<PhotoURL> Optional Object URL dan teks opsional untuk foto kamar atau Paket Kamar tertentu. Anda dapat menentukan lebih dari satu <PhotoURL> untuk kamar atau Paket Kamar. Setiap URL foto harus berada di <PhotoURL>-nya sendiri.

Elemen ini menggunakan elemen turunan berikut:

  • <URL>: Menentukan lokasi foto. Lokasi harus bersifat publik (bukan di belakang firewall) dan harus menyertakan protokol (misalnya, https://). Hanya gunakan satu <URL> per <PhotoURL>.
  • <Caption>: Menentukan teks untuk foto. Elemen ini menggunakan satu elemen turunan, <Text>, yang memiliki dua atribut yang diperlukan: text dan language. Atribut text adalah teks, dan atribut language menentukan kode bahasa dua huruf seperti en.

Contoh:

<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> Berisi informasi tentang fitur kamar.
<RoomID> Required string ID unik untuk kamar. Gunakan ID ini untuk mencocokkan data kamar dengan blok <Result> dalam pembaruan harga. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar. (Anda juga dapat menggunakan ID ini untuk mereferensikan definisi kamar umum dalam satu pesan Transaksi saat menentukan data kamar secara inline.)

Contoh

Data kamar

Contoh berikut menentukan data kamar:

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

Metadata kamar & paket

Contoh berikut menentukan metadata kamar dan paket:

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

Beberapa paket kamar

Contoh berikut menentukan metadata paket dan kamar untuk beberapa Paket Room:

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

Menentukan perlengkapan yang ditemukan di ruangan.

Elemen <RoomFeatures> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Sintaksis

Elemen <RoomFeatures> menggunakan sintaksis berikut:

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

Atribut

Elemen <RoomFeatures> tidak memiliki atribut.

Elemen turunan

Elemen <RoomFeatures> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<JapaneseHotelRoomStyle> Optional enum

Menunjukkan gaya kamar hotel bergaya Jepang.

Nilai yang valid adalah:

  • western: Kamar bergaya barat dengan tempat tidur.
  • japanese: Kamar bergaya Jepang dengan tempat tidur futon.
  • japanese_western: Kamar bergaya barat Jepang dengan tempat tidur ala Barat dan futon ala Jepang.
<Beds> Optional Object Berisi <Bed> sebanyak yang dimiliki ruang. Perlu diperhatikan bahwa futon Jepang tidak seharusnya dihitung di sini.

Setiap <Bed> memiliki atribut berikut:

  • size (opsional): Nilai yang valid adalah single, semi_double, double, queen, dan king.
Setiap <Bed> memiliki elemen turunan berikut:
  • <Width> (opsional): Menentukan lebar tempat tidur. Harus memiliki atribut unit dengan nilai cm dan atribut number dengan lebar tempat tidur dalam sentimeter bilangan bulat.
  • <Length> (opsional): Menentukan panjang tempat tidur. Harus memiliki atribut unit dengan nilai cm dan atribut number dengan panjang tempat tidur dalam sentimeter bilangan bulat.
Contoh:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
<Suite> Optional empty Berikan elemen ini jika kamar ini merupakan suite.
<Capsule> Optional empty Berikan elemen ini jika ruangan ini merupakan ruangan kapsul.
<Roomsharing> Optional enum Apakah ruang ini digunakan bersama oleh tamu lain seperti pemilik atau tamu lainnya. Nilai yang valid adalah shared dan private.
<Outdoor> Optional empty Berikan elemen ini saat kamar ini merupakan penginapan outdoor yang tidak memiliki dinding tetap, sistem pipa, dan pengontrol kondisi udara. Misalnya, kamar hotel bukanlah penginapan outdoor, sedangkan bumi perkemahan tempat tamu menginap di tenda dan taman RV tempat tamu membawa RV sendiri adalah penginapan outdoor.
<MobilityAccessible> Optional empty Berikan elemen ini saat kamar ini dapat diakses oleh mobilitas.
<Smoking> Optional enum Apakah kamar ini adalah kamar bebas rokok atau kamar merokok. Nilai yang valid adalah non_smoking dan smoking.
<BathAndToilet> Optional Object Berisi informasi tentang kamar mandi dan toilet di dalam kamar.

Atribut tersebut adalah:

  • relation (opsional): Menunjukkan cara bak mandi dan toilet ditempatkan satu sama lain. Nilai yang valid adalah together (baik kamar mandi dan toilet terletak bersamaan di ruangan yang sama (misalnya kamar mandi) tepat bersebelahan) dan separate (kamar mandi dan toilet masing-masing memiliki ruang khusus). Atribut ini tidak boleh ditetapkan jika kamar tidak memiliki kamar mandi dan toilet.

Secara opsional, elemen ini menggunakan elemen turunan berikut:

  • <Bath> (opsional): Keberadaan elemen ini menunjukkan bahwa kamar ini memiliki kamar mandi.

    Atribut tersebut adalah:

    • bathtub (opsional): Menunjukkan bahwa kamar mandi memiliki bak mandi di kamar mandi. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).
    • shower (opsional): Menunjukkan bahwa bak mandi memiliki shower. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).
  • <Toilet> (opsional): Keberadaan elemen ini menunjukkan bahwa kamar ini memiliki toilet.

    Atribut tersebut adalah:

    • electronic_bidet (opsional): Menunjukkan bahwa toilet memiliki bidet elektronik. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).
    • mobility_accessible (opsional): Menunjukkan bahwa toilet dapat diakses oleh mobilitas. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).

Contoh:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath> Optional empty Berikan elemen ini saat kamar ini memiliki pemandian pribadi terbuka.
<AirConditioning> Optional empty Berikan elemen ini saat kamar ini dilengkapi AC.
<Balcony> Optional empty Berikan elemen ini saat kamar ini memiliki balkon atau lanai.
<Views> Optional Object Opsi yang valid mencakup:

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

Contoh

JapaneseHotelRoomStyle tidak memiliki nilai default. Menghapus nilai tidak akan mengakibatkan error XML, tetapi listingan Anda tidak akan ditampilkan di hasil penelusuran, ketika pengguna memfilter berdasarkan gaya kamar atau tempat tidur.

Dua tempat tidur single

Contoh berikut menunjukkan cara menggunakan <RoomFeatures>:

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

Dua tempat tidur double

Berikut adalah contoh kamar Jepang bergaya western dengan dua tempat tidur double.

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


Gaya Jepang tanpa tempat tidur

Berikut adalah contoh kamar bergaya Jepang tanpa tempat tidur. Informasi tempat tidur tidak diperlukan untuk kamar bergaya japanese.

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

Barat bergaya Jepang dengan tempat tidur

Berikut adalah contoh kamar gaya japanese_western dengan tempat tidur ukuran king.

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

Jika partner tidak memiliki informasi jumlah tempat tidur di kamar japanese_western, ikuti contoh di bawah:

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

<PackageData>

Menentukan metadata yang tidak bergantung pada itinerari tentang Paket Kamar untuk suatu properti. Elemen ini berisi informasi yang terkait dengan partner dan hotel, tetapi tidak dengan itinerari. Tujuannya adalah menentukan semua data non-itinerari sekali dan mereferensikannya dari data itinerari.

Elemen <PackageData> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Elemen <PackageData> mirip dengan <RoomData>, tetapi menjelaskan persyaratan dan fitur tarif yang bukan bagian dari deskripsi kamar fisik. Anda menggunakan kombinasi <RoomData> dan <PackageData> untuk memberikan detail tentang Paket Kamar dan fitur tarif. Untuk masing-masing kamar yang bukan bagian dari paket, cukup gunakan <RoomData>.

Anda dapat menentukan elemen <RoomData> dan <PackageData> untuk kamar atau Paket Kamar yang sama. Saat menampilkan kamar atau paket tersebut dalam hasil penelusuran, Google akan menyertakan deskripsi keduanya, yang dipisahkan dengan tanda hubung.

Jika memperbarui satu elemen <PackageData> untuk sebuah properti, Anda harus memperbarui semua elemen <PackageData> dan <RoomData> untuk properti tersebut. Setiap <PropertyDataSet> dianggap semua data tentang properti, dan menimpa semua data yang ada.

Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.

Sintaksis

Elemen <PackageData> menggunakan sintaksis berikut:

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

Atribut

Elemen <PackageData> tidak memiliki atribut.

Elemen turunan

Elemen <PackageData> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<BreakfastIncluded> Optional boolean Menentukan apakah paket ini mencakup sarapan dengan tarif. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).

Sebaiknya Anda menggunakan <Meals>, bukan <BreakfastIncluded>.

<ChargeCurrency> Optional enum Waktu dan tempat pengguna membayar pemesanan. Elemen ini menggunakan sintaksis yang sama dengan <ChargeCurrency> dalam <Result>.

Nilai default-nya adalah web.

<CheckinTime> Optional Time Waktu check in paling awal. Waktu harus kurang dari 24:00 dalam waktu lokal hotel.
<CheckoutTime> Optional Time Kemungkinan waktu check-out terbaru dalam waktu lokal hotel.
<Description> Optional Object Deskripsi terperinci tentang paket. Elemen ini harus berisi informasi yang tidak dijelaskan oleh elemen lain atau elemen <Name>. Anda tidak boleh menggunakan huruf besar semua saat menentukan deskripsi kamar.

Elemen <Description> menggunakan satu elemen turunan, <Text>, yang memiliki dua atribut yang diperlukan, text dan language. Atribut text adalah deskripsi, dan atribut language menentukan kode bahasa dua huruf, seperti yang ditunjukkan dalam contoh berikut:

<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 Jika satu paket menyertakan akses internet tanpa biaya, sedangkan paket lain tidak akan menyertakan fasilitas tersebut. Jangan tetapkan elemen ini untuk Paket Kamar di hotel yang menyediakan internet gratis untuk semua kamar. Elemen ini tidak berlaku untuk internet kabel dalam kamar atau internet nirkabel yang tidak tersedia di kamar tamu. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).
<Meals> Optional Object Berisi informasi tentang makanan dalam paket ini.

Elemen <Meals> menggunakan dua elemen turunan opsional, <Breakfast> dan <Dinner>, yang memiliki atribut berikut:

  • included (wajib): Tetapkan ke 1 (atau true) jika tarif mencakup sarapan/makan malam; jika tidak, tetapkan ke 0 atau false.
  • in_room (opsional): Tetapkan ke 1 (atau true) jika tamu memiliki opsi untuk sarapan/makan malam di kamar tempat mereka menginap; jika tidak, tetapkan ke 0 (atau false).
  • in_private_space (opsional): Tetapkan ke 1 (atau true) jika tamu memiliki opsi untuk sarapan/makan malam di ruang (kecuali kamar tempat mereka menginap) yang dapat menghindari kontak dengan tamu lain; jika tidak, tetapkan ke 0 (atau false).
  • buffet (opsional): Tetapkan ke 1 (atau true) jika sarapan/makan malam disajikan sebagai prasmanan; jika tidak, tetapkan ke 0 (atau false).

Atribut opsional hanya digunakan jika included bernilai benar (true).

Agar filter makanan (no meals, breakfast only, dinner only, dan breakfast and dinner) berfungsi, <Breakfast> dan <Dinner> harus diberi atribut included.

<Name> Required string Nama paket. Nilai ini harus cocok dengan yang muncul di halaman landing hotel. Jangan setel nilai elemen ini ke huruf besar semua.

Elemen ini menggunakan satu elemen turunan, <Text>, yang memiliki dua atribut, text dan language. Atribut text adalah deskripsi, dan atribut language menentukan kode bahasa dua huruf, seperti yang ditunjukkan contoh berikut:

<Name>
  <Text text="Bed and Breakfast" language="en"/>
  <Text text="Lit et petit déjeuné" language="fr"/>
</Name>
<Occupancy> Optional integer Jumlah maksimum tamu yang ditujukan untuk Paket Kamar. Misalnya, suite besar mungkin secara fisik dapat menampung 6 tamu, tetapi hanya ditujukan untuk hingga 4 tamu.

Nilai ini harus kurang dari atau sama dengan elemen <Capacity>, yang merupakan jumlah orang yang dapat diakomodasi oleh kamar secara fisik.

Nilai <Occupancy> harus berupa bilangan bulat positif antara 1 dan 99, inklusif.

Jika Anda menentukan elemen ini dalam <RoomBundle> dan <PackageData>, nilai dalam <RoomBundle> akan diprioritaskan.

Catatan:

<Occupancy> dapat disertai dengan <OccupancyDetails>,yang menentukan jenis tamu (dewasa atau anak-anak). Lihat <OccupancyDetails> untuk mengetahui sintaksis dan deskripsi elemen turunan.

<PackageID> Required string ID unik paket. Gunakan ID ini untuk mencocokkan data Paket Kamar dengan blok <Result> dalam pembaruan harga Anda. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.

(Anda juga dapat menggunakan ID ini untuk mereferensikan definisi Paket Kamar umum yang digunakan dalam satu pesan Transaksi saat menentukan data Paket Kamar secara inline.)

<ParkingIncluded> Optional boolean Apakah Paket Kamar mencakup parkir gratis, saat tempat parkir akan menjadi layanan berbayar di hotel ini. Jangan tentukan nilai untuk elemen ini untuk hotel yang menawarkan parkir gratis.

Nilai yang valid adalah 0 (atau false) dan 1 (atau true). Nilai defaultnya adalah false.

<PhotoURL> Optional Object (Sama seperti <PhotoURL> di <RoomData>, tetapi untuk paket (misalnya foto makanan).)
<Refundable> Optional Object Memungkinkan pencantuman tarif sebagai dapat dikembalikan sepenuhnya atau memberikan bebas biaya pembatalan. Jika tidak diberikan, tidak ada informasi tentang pengembalian dana yang ditampilkan. Kebijakan pengembalian dana di tingkat <PackageData> menggantikan kebijakan pengembalian dana di tingkat <Result>. Kebijakan pengembalian dana di tingkat <Rates> menggantikan kebijakan pengembalian dana di tingkat <PackageData>. Harga dengan dana yang dapat dikembalikan juga dapat disoroti kepada pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi Anda secara langsung. Pelajari opsi ini lebih lanjut di sini.

Contoh berikut menunjukkan elemen <Refundable> dengan semua kumpulan atributnya:

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

Catatan: Sebaiknya tetapkan semua atribut. Pesan peringatan status feed dibuat saat satu atau beberapa atribut tidak ditetapkan.

Jika Anda tidak menetapkan atribut apa pun, tarif tersebut tidak akan ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:

  • available: (Wajib) Tetapkan ke 1 atau true untuk menunjukkan apakah tarif memungkinkan pengembalian dana penuh; jika tidak, tetapkan ke 0 atau false.
  • refundable_until_days: (Wajib jika available adalah true) Menentukan jumlah hari sebelum check in saat pengembalian dana penuh dapat diminta. Nilai refundable_until_days harus berupa bilangan bulat antara 0 dan 330, inklusif.
  • refundable_until_time: (Sangat direkomendasikan jika available adalah true) Menentukan waktu terakhir dalam sehari, dalam waktu lokal hotel, saat permintaan pengembalian dana penuh akan dipenuhi. Nilai ini dapat digabungkan dengan refundable_until_days untuk menentukan, misalnya, "pengembalian dana tersedia hingga pukul 16.00 dua hari sebelum check in". Jika refundable_until_time tidak ditetapkan, nilai akan ditetapkan secara default ke tengah malam.

    Nilai atribut ini menggunakan format Waktu.

Saat menetapkan atribut, perhatikan hal-hal berikut:

  • Jika available atau refundable_until_days tidak ditetapkan, tarif tidak akan ditampilkan sebagai dapat dikembalikan.
  • Jika available adalah 0 atau false, atribut lainnya akan diabaikan. Tarif tersebut tidak ditampilkan sebagai dapat dikembalikan, meskipun salah satu atau kedua atribut lain telah ditetapkan.
<MembershipBenefits Included> Optional boolean Tarif mencakup manfaat status elite selama menginap. Mencakup parameter berikut:
  • ProgramName: Nama program status elite
  • ProgramLevel: Level program, misalnya, "Emas".
  • NightlyValue (optional): Nilai per malam dari manfaat.
<CarRentalIncluded> Optional boolean Tarif mencakup rental mobil gratis selama menginap.
<MilesIncluded>> Optional boolean Tarif mencakup mil frequent flyer. Parameter mencakup:
  • NumberofMiles: Jumlah mil per itinerari.
  • Provider: Mil frequent flyer yang disediakan.
<OnPropertyCredit> Optional boolean Tarif mencakup kredit properti (F&B, resor, spa, dll). Parameter:
  • Amount: Nilai kredit per itinerari, dalam mata uang lokal.
<AirportTransportationIncluded> Optional Object Tarif mencakup transportasi gratis ke/dari bandara terdekat. Atribut direction opsional menentukan arah transportasi. Nilai yang valid mencakup:
    from: Transportasi disediakan dari bandara ke properti. Ini adalah nilai default jika tidak ada arah yang ditentukan. to: Transportasi disediakan ke bandara dari properti. round_trip: Transportasi disediakan ke dan dari bandara.

Contoh

Paket satu kamar

Contoh berikut menentukan satu Paket Kamar, dengan jumlah tamu 2 (satu dewasa dan satu anak) dan mencakup sarapan:

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

Metadata kamar dan paket

Contoh berikut menentukan metadata kamar dan paket:

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

Beberapa paket kamar

Contoh berikut menentukan metadata paket dan kamar untuk beberapa Paket Room:

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


Paket kamar dengan tarif

Contoh berikut menentukan metadata paket dan kamar untuk paket Kamar dengan fitur tarif:

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

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

Makanan & foto

Contoh berikut menentukan metadata paket dan kamar untuk makanan, foto, serta waktu check-in dan check-out:

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

Sarapan

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

<Result>

Penampung untuk pembaruan harga dan ketersediaan dalam pesan <Transaction>.

Elemen <Result> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Gunakan <Result> untuk menetapkan atau memperbarui harga kamar dan menentukan inventaris yang tersedia. Item yang ditentukan dalam elemen ini biasanya mereferensikan metadata yang tidak bergantung pada itinerari tentang kamar atau paket (seperti deskripsi atau kumpulan fasilitas) yang ditentukan dalam <PackageData> dan <RoomData>.

Anda biasanya sangat sering mengirim pesan Transaksi dengan pembaruan harga. Seberapa sering dan seberapa sering Anda melakukannya bergantung pada mode pengiriman Anda.

Anda dapat menggunakan <Result> dalam pesan Transaksi untuk menghapus itinerari, seperti yang dijelaskan dalam Menghapus Inventaris. Untuk mengetahui informasi selengkapnya tentang penggunaan pesan Transaksi guna memperbarui harga dan ketersediaan, baca artikel Menambahkan dan Memperbarui Inventaris.

Satu pesan Transaksi dapat menyertakan sejumlah elemen <Result> di dalamnya, selama ukuran pesan tidak melebihi 100 MB.

Sintaksis

Elemen <Result> menggunakan sintaksis berikut:

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

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

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

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

    <Rates>...</Rates>

    <RoomBundle>...</RoomBundle>

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

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

Atribut

Elemen <Result> memiliki atribut berikut:

Atribut Wajib diisi? Jenis Deskripsi
mergeable Optional boolean Secara default, harga baru untuk pasangan hotel dan itinerari tertentu akan menimpa harga sebelumnya (yang masih berlaku) yang ada di cache Google. Atribut yang dapat digabungkan memungkinkan Anda menyimpan harga tambahan ke cache Google tanpa menghapus informasi harga sebelumnya. Kueri Harga Real Time dengan respons Konteks akan selalu menetapkan atribut ini ke true (terlepas dari respons pesan transaksi Anda).

Elemen turunan

Elemen <Result> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<AllowablePointsOfSale> Optional Object Satu atau beberapa halaman landing yang memenuhi syarat untuk hotel. Halaman landing adalah situs yang dapat menangani proses pemesanan untuk pengguna akhir. Untuk menyertakan halaman landing tertentu secara eksplisit (dan mengecualikan yang lainnya), tambahkan satu atau beberapa elemen <AllowablePointsOfSale> yang cocok dengan atribut id elemen <PointOfSale> di file halaman landing.

Jika Anda tidak menyertakan elemen ini, semua halaman landing yang ditentukan dalam file halaman landing dianggap memenuhi syarat untuk digunakan untuk memesan kamar. Untuk informasi selengkapnya, lihat Sintaksis File Halaman Landing.

<Baserate> Optional float Harga kamar untuk menginap. Nilai elemen ini harus mencerminkan hal berikut:

  • Untuk kamar pribadi, tetapkan tarif paling murah untuk jumlah tamu dua orang yang Anda tawarkan.
  • Untuk kamar bersama, biarkan kosong dan gunakan <RoomBundle>.
  • Total lama menginap, bukan rata-rata tarif per malam.

Jika ruang tidak tersedia untuk itinerari, <Baserate> harus dihapus atau ditetapkan ke -1, dan <Unavailable> harus ditentukan, beserta alasan yang diketahui untuk ketidaktersediaan tersebut.

Untuk menghapus Paket Kamar, gunakan petunjuk dalam Menghapus Paket Kamar.

<Baserate> tidak boleh berisi simbol pengelompokan digit, seperti koma (,) atau titik (.). Selalu pisahkan pecahan menggunakan titik (.) sebagai tanda desimal. Misalnya, tampilkan $1.200,40 sebagai:

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

Elemen <Baserate> menggunakan atribut opsional berikut:

  • all_inclusive: Boolean yang menunjukkan apakah tarif ini sudah termasuk pajak dan biaya. Secara umum, tetapkan nilai ini ke false untuk pengguna akhir AS dan Kanada serta berikan nilai untuk elemen <Tax> dan <OtherFees>. Jika menggunakan harga paket lengkap, Anda mungkin tidak memenuhi syarat untuk muncul di listingan jika harga Anda tidak memisahkan pajak dan biaya untuk pengguna di AS dan Kanada.

    Untuk semua pengguna akhir lainnya, biasanya Anda menyertakan pajak dan biaya dalam tarif dasar dan menetapkan nilai atribut all_inclusive ke true. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Pajak dan Biaya.

    Nilai default-nya adalah false.

  • currency: Kode mata uang tiga huruf. Misalnya, USD untuk dolar AS.
<ChargeCurrency> Optional enum Waktu dan tempat pengguna membayar pemesanan. Elemen ini dapat digunakan dalam pesan Transaksi pada elemen <Result> untuk Harga Hotel atau blok <PackageData> untuk Paket Kamar.

Nilai yang valid adalah:

  • web: Pengguna dikenai biaya secara online pada saat pemesanan. Nilai ini merupakan default. Halaman landing yang sebenarnya ditentukan oleh file halaman landing, dan dapat dipengaruhi oleh mata uang, lokasi, bahasa pengguna, atau faktor lainnya.
  • hotel: Pengguna dikenai biaya saat check in di hotel. Jika pembayaran harus selalu dilakukan dalam mata uang hotel, tetapkan nilai <ChargeCurrency> ke hotel. Halaman landing yang sebenarnya tidak terpengaruh oleh mata uang pengguna.
  • deposit: Pengguna akan langsung ditagih sebagian dan sisanya akan ditagih di lain waktu, biasanya saat pengguna check out dari hotel.
  • installments: Pengguna akan ditagih berupa pecahan awal dari jumlah total terutang dan diharapkan untuk membayar saldo yang ditetapkan secara rutin selama jangka waktu tetap.

Nilai default-nya adalah web.

<Checkin> Required Date Tanggal check-in untuk itinerari menggunakan format Tanggal. Kombinasi elemen <Nights> dan elemen <Checkin> menghasilkan itinerari.
<Custom[1‑5]> Optional string Menentukan kolom kustom yang dapat Anda gunakan untuk meneruskan data tambahan yang terkait dengan hotel. Anda dapat meneruskan hingga lima nilai kustom dengan nama elemen berikut:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

Elemen <Custom> memungkinkan Anda meneruskan data arbitrer. Misalnya, Anda dapat menentukan nilai dalam kolom ini yang kemudian akan digunakan oleh file halaman landing untuk membuat URL kustom untuk halaman landing. Ada batas 200 karakter per kolom kustom. Untuk mengetahui informasi selengkapnya, lihat file halaman landing.

Elemen <Custom> yang disediakan dalam elemen <Rate> tidak diwariskan ke elemen <RoomBundle>. Anda harus mendefinisikan atribut <Custom> secara terpisah dalam setiap <RoomBundle>.

<ExpirationTime> Optional DateTime Tanggal dan waktu harga dianggap berakhir (minimum 3 jam).

Sebaiknya Anda tidak memberikan stempel waktu habis masa berlaku jika tidak terlalu penting untuk struktur harga Anda.

Google tidak akan menampilkan harga apa pun yang sudah tidak berlaku, dan itinerari apa pun yang memiliki harga habis masa berlakunya akan memenuhi syarat untuk Kueri Harga Real Time.

<Nights> Required integer Jumlah malam untuk itinerari. Nilai elemen <Nights> harus berupa bilangan bulat positif. Kombinasi <Nights> dan <Checkin> menghasilkan itinerari.
<OtherFees> Optional float Biaya selain tarif dasar dan pajak yang memengaruhi harga akhir kamar. Elemen <OtherFees> menggunakan satu atribut yang diperlukan, currency, yang menentukan kode mata uang tiga huruf untuk biaya. Contohnya, USD

Elemen <OtherFees> diperlukan jika <Baserate> lebih besar dari nol.

<Occupancy> Optional integer Menentukan jumlah maksimum tamu. Ketika <Occupancy> muncul pada <Result>, parameter harus menentukan 2 atau lebih. <Occupancy> dapat disertai dengan <OccupancyDetails>, yang menentukan jenis tamu (dewasa atau anak-anak). Lihat <OccupancyDetails> untuk sintaksis dan deskripsi elemen turunan. Jika elemen <Occupancy> tidak diberikan, jumlah tamu akan ditetapkan secara default sebagai 2.

Catatan: Hubungi tim dukungan Anda untuk mengaktifkan fitur pengiriman harga untuk jumlah tamu bukan dua orang.

<PackageID> Optional string ID unik paket untuk dipetakan ke data paket yang telah ditentukan. Juga digunakan untuk mengisi variabel halaman landing PACKAGE-ID. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.
<Property> Required string ID hotel yang terpengaruh oleh data terkait (harga, itinerari, Paket Kamar, atau metadata). Nilai elemen ini harus berupa string. Nilai elemen ini harus cocok dengan <id> listingan yang Anda tentukan di Feed Daftar Hotel.
<Rates> Optional <Rates> Container untuk satu atau beberapa blok <Rate>. Setiap <Rate> di <Rates> menentukan harga yang berbeda untuk kombinasi kamar/itinerari.

Gunakan elemen <Rates> hanya jika terdapat beberapa tarif untuk kombinasi kamar/itinerari yang sama. Misalnya, Anda menentukan beberapa tarif untuk tarif bersyarat, tarif khusus, atau tarif bersyarat dalam Paket Kamar).

<Refundable> Optional Object Memungkinkan pencantuman tarif sebagai dapat dikembalikan sepenuhnya atau memberikan bebas biaya pembatalan. Jika tidak diberikan, tidak ada informasi tentang pengembalian dana yang ditampilkan. Kebijakan pengembalian dana di tingkat <PackageData> menggantikan kebijakan pengembalian dana di tingkat <Result>. Kebijakan pengembalian dana di tingkat <Rates> menggantikan kebijakan pengembalian dana di tingkat <PackageData>. Harga dengan dana yang dapat dikembalikan juga dapat disoroti kepada pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi Anda secara langsung. Pelajari opsi ini lebih lanjut di sini.

Contoh berikut menunjukkan elemen <Refundable> dengan semua kumpulan atributnya:

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

Catatan: Sebaiknya tetapkan semua atribut. Pesan peringatan status feed dibuat saat satu atau beberapa atribut tidak ditetapkan.

Jika Anda tidak menetapkan atribut apa pun, tarif tersebut tidak akan ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:

  • available: (Wajib) Tetapkan ke 1 (atau true) untuk menunjukkan apakah tarif memungkinkan pengembalian dana penuh; jika tidak, tetapkan ke 0 (atau false).
  • refundable_until_days: (Wajib jika available adalah true) Menentukan jumlah hari sebelum check in saat pengembalian dana penuh dapat diminta. Nilai refundable_until_days harus berupa bilangan bulat antara 0 dan 330, inklusif.
  • refundable_until_time: (Sangat direkomendasikan jika available adalah true) Menentukan waktu terakhir dalam sehari, dalam waktu lokal hotel, saat permintaan pengembalian dana penuh akan dipenuhi. Nilai ini dapat digabungkan dengan refundable_until_days untuk menentukan, misalnya, "pengembalian dana tersedia hingga pukul 16.00 dua hari sebelum check in". Jika refundable_until_time tidak ditetapkan, nilai akan ditetapkan secara default ke tengah malam.

    Nilai atribut ini menggunakan format Waktu.

Saat menetapkan atribut, perhatikan hal-hal berikut:

  • Jika available atau refundable_until_days tidak ditetapkan, tarif tidak akan ditampilkan sebagai dapat dikembalikan.
  • Jika available adalah 0 (atau false), atribut lainnya akan diabaikan. Tarif tersebut tidak ditampilkan sebagai dapat dikembalikan, meskipun salah satu atau kedua atribut lain telah ditetapkan.
<RoomBundle> Optional <RoomBundle> Container untuk informasi tentang deskripsi fisik harga kamar, paket fasilitas, dan beberapa detail kebijakan pembelian untuk hotel dan itinerari tertentu.

Secara umum, gunakan elemen ini untuk menentukan harga kamar standar dan berbagai jenis kamar dalam properti yang sama. Meskipun dapat menentukan deskripsi Paket Kamar secara inline, Anda harus menggunakan pesan Transaksi terpisah untuk menentukan informasi tersebut. Google akan menyimpan metadata sehingga Anda dapat mereferensikannya, bukan mengulanginya, pada semua pembaruan harga di masa mendatang.

<RoomID> Optional string ID unik kamar untuk dipetakan ke data kamar yang telah ditentukan. Juga digunakan untuk mengisi variabel halaman landing PARTNER-ROOM-ID. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.
<Tax> Optional float Pajak yang dihitung untuk harga akhir kamar. Elemen <Tax> menggunakan satu atribut yang diperlukan, currency, yang menentukan kode mata uang tiga huruf untuk pajak. Contohnya, USD Elemen <Tax> diperlukan jika <Baserate> lebih besar dari nol.
<Unavailable> Optional Object Menunjukkan bahwa itinerari tidak tersedia untuk pemesanan. Berfungsi sebagai container untuk alasan yang lebih mendetail mengapa itinerari tidak tersedia. Satu atau beberapa alasan ketidaktersediaan berikut dapat ditempatkan di bawah tag <Unavailable>:
  • <NoVacancy/>: Tidak ada lagi kamar yang tersedia untuk dijual untuk satu malam atau lebih masa inap.
  • <MinNightStay value=N/>: Itinerari berada di bawah lama menginap minimum N untuk tanggal menginap.
  • <MaxNightStay value=N/>: Itinerari berada di atas masa inap malam maksimum N untuk tanggal menginap.
  • <MinAdvancePurchase value=N/>: Itinerari berada di bawah periode pemesanan di awal sebesar N untuk tanggal menginap.
  • <MaxAdvancePurchase value=N/>: Itinerari berada di atas periode pemesanan di awal maksimum sebesar N untuk tanggal menginap.
  • <ClosedToArrival/>: Properti tidak mengizinkan check-in pada tanggal kedatangan itinerari.
  • <ClosedToDeparture/>: Properti tidak mengizinkan check out pada tanggal keberangkatan itinerari.
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: Properti ditutup untuk sebagian atau seluruh masa inap. Atribut yang direkomendasikan first_open dan first_closed menentukan tanggal pertama yang lebih besar dari atau sama dengan tanggal kedatangan properti yang buka atau tutup. Untuk properti yang tutup setelah tanggal kedatangan, first_open harus sama dengan tanggal kedatangan, dan first_closed harus sama dengan tanggal penutupan properti. Untuk properti yang tutup pada tanggal kedatangan, first_closed harus sama dengan tanggal kedatangan, dan first_opened harus sama dengan tanggal buka properti berikutnya.
  • <NotFetched/>: Harga untuk itinerari tidak diberikan oleh sumber data downstream.
  • <InvalidProperty/>: ID properti yang diminta tidak dikenal.
  • <InvalidOccupancy/>: Jumlah tamu yang diminta tidak didukung oleh properti.
  • <PriceIssue/>: Masalah dengan harga yang menyebabkan produk tidak dikirim.
  • <InternalError reason=""/>: Terjadi beberapa error yang tidak terenumerasi. Atribut alasan opsional dapat melaporkan error sebagai teks.
  • <OtherRestriction restriction=""/>: Itinerari tidak tersedia karena beberapa batasan pemesanan yang tidak direncanakan. Atribut pembatasan opsional memungkinkan pelaporan pembatasan sebagai teks.

Contoh

Contoh multi-properti

Contoh berikut menentukan satu itinerari dan harganya untuk dua properti:

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

Yang tidak ditampilkan dalam contoh ini adalah detail tentang kamar, seperti deskripsi, gambar dan teks, nama kamar, dan kapasitasnya.

Anda dapat menentukan informasi tersebut sekali dalam pesan Transaksi terpisah yang disimpan Google. Selanjutnya, Anda dapat mereferensikannya dalam semua pembaruan harga dan inventaris berikutnya. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.

Contoh multi-tarif

Contoh berikut menentukan satu itinerari dan properti dengan beberapa tarif untuk berbagai jumlah tamu. Elemen <Rates> dapat digunakan untuk memberikan harga multi-tarif untuk properti tertentu. Contoh di bawah ini juga berguna untuk properti Rental Akomodasi (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>

Contoh tidak tersedia

Contoh berikut menentukan satu itinerari yang ketersediaannya tidak dapat diambil dari saluran downstream, itinerari kedua yang berada di bawah masa inap malam minimum dan sudah dipesan untuk tanggal yang ditentukan, dan itinerari ketiga yang propertinya tutup pada tanggal kedatangan, tetapi buka selama menginap:

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

Container untuk satu atau beberapa blok <Rate>. Setiap <Rate> di <Rates> menentukan harga yang berbeda untuk kombinasi kamar/itinerari.

Gunakan elemen <Rates> hanya jika terdapat beberapa tarif untuk kombinasi kamar/itinerari yang sama. Misalnya, Anda menentukan beberapa tarif untuk tarif bersyarat, tarif khusus, atau tarif bersyarat dalam Paket Kamar.

Elemen <Rates> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Nilai yang ditetapkan dalam <Rate> akan menggantikan nilai terkait harga pada elemen <Result> atau <RoomBundle> induk. Jika tidak disetel di <Rate>, nilai tersebut akan mewarisi nilainya dari elemen induk. Hanya <AllowablePointsofSale> yang diwariskan ke elemen <RoomBundle>.

Sintaksis

Elemen <Rates> menggunakan sintaksis berikut:

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

Atribut

Elemen <Rates> memiliki atribut berikut:

Atribut Wajib diisi? Deskripsi
rate_rule_id Optional Untuk tarif bersyarat, ID ini mencocokkan tarif dengan definisi dalam file Definisi Aturan Tarif Anda. Batas karakter untuk kolom ini adalah 40 karakter.

Elemen turunan

Elemen <Rates> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<AllowablePointsOfSale> Optional Object Satu atau beberapa halaman landing yang memenuhi syarat untuk hotel. Elemen ini menggunakan sintaksis yang sama dengan <AllowablePointsOfSale> pada <Result>.
<Baserate> Required float Harga kamar untuk menginap. Elemen ini menggunakan sintaksis yang sama dengan <Baserate> pada <Result>.

Catatan: Elemen turunan <Baserate> pada <Rate> tidak dapat ditetapkan sebagai tidak tersedia.

<ChargeCurrency> Optional enum Waktu dan tempat pengguna membayar pemesanan. Elemen ini menggunakan sintaksis yang sama dengan <ChargeCurrency> dalam <Result>.
<Custom[1‑5]> Optional string Kolom kustom yang dapat Anda gunakan untuk meneruskan data tambahan yang terkait dengan hotel ke halaman landing. Elemen ini menggunakan sintaksis yang sama dengan <Custom[1‑5]> dalam <Result>. Ada batas 200 karakter per kolom kustom. Untuk informasi selengkapnya, lihat file halaman landing.

Jika elemen <Custom> disediakan dalam elemen <Result>, elemen tersebut tidak diwarisi dalam elemen <RoomBundle> dan harus ditentukan secara terpisah untuk setiap <RoomBundle> atau dapat disertakan dalam <PackageData> jika diperlukan.

<ExpirationTime> Optional DateTime Tanggal dan waktu tarif dianggap habis masa berlakunya. Elemen ini menggunakan sintaksis yang sama dengan <ExpirationTime> dalam <Result>.
<Occupancy> Optional integer

Menentukan jumlah maksimum tamu. <Occupancy> dapat disertai dengan <OccupancyDetails>, yang menentukan jenis tamu (dewasa atau anak-anak). Lihat <OccupancyDetails> untuk sintaksis dan deskripsi elemen turunan.

<OtherFees> Required float Biaya selain tarif dasar dan pajak yang memengaruhi harga akhir kamar. Elemen ini menggunakan sintaksis yang sama dengan <OtherFees> dalam <Result>.
<Refundable> Optional Object Memungkinkan pencantuman tarif sebagai dapat dikembalikan sepenuhnya atau memberikan bebas biaya pembatalan. Jika tidak diberikan, tidak ada informasi tentang pengembalian dana yang ditampilkan. Kebijakan pengembalian dana di tingkat <PackageData> menggantikan kebijakan pengembalian dana di tingkat <Result>. Kebijakan pengembalian dana di tingkat <Rates> menggantikan kebijakan pengembalian dana di tingkat <PackageData>. Harga dengan dana yang dapat dikembalikan juga dapat disoroti kepada pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi Anda secara langsung. Pelajari opsi ini lebih lanjut di sini.

Contoh berikut menunjukkan elemen <Refundable> dengan semua kumpulan atributnya:

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

Catatan: Sebaiknya tetapkan semua atribut. Pesan peringatan status feed dibuat saat satu atau beberapa atribut tidak ditetapkan.

Jika Anda tidak menetapkan atribut apa pun, tarif tersebut tidak akan ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:

  • available: (Wajib) Tetapkan ke 1 (atau true) untuk menunjukkan apakah tarif memungkinkan pengembalian dana penuh; jika tidak, tetapkan ke 0 (atau false).
  • refundable_until_days: (Wajib jika available adalah true) Menentukan jumlah hari sebelum check in saat pengembalian dana penuh dapat diminta. Nilai refundable_until_days harus berupa bilangan bulat antara 0 dan 330, inklusif.
  • refundable_until_time: (Sangat direkomendasikan jika available adalah true) Menentukan waktu terakhir dalam sehari, dalam waktu lokal hotel, saat permintaan pengembalian dana penuh akan dipenuhi. Nilai ini dapat digabungkan dengan refundable_until_days untuk menentukan, misalnya, "pengembalian dana tersedia hingga pukul 16.00 dua hari sebelum check in". Jika refundable_until_time tidak ditetapkan, nilai akan ditetapkan secara default ke tengah malam.

    Nilai atribut ini menggunakan format Waktu.

Saat menetapkan atribut, perhatikan hal-hal berikut:

  • Jika available atau refundable_until_days tidak ditetapkan, tarif tidak akan ditampilkan sebagai dapat dikembalikan.
  • Jika available adalah 0 (atau false), atribut lainnya akan diabaikan. Tarif tersebut tidak ditampilkan sebagai dapat dikembalikan, meskipun salah satu atau kedua atribut lain telah ditetapkan.
<Tax> Required float Pajak yang dihitung untuk harga akhir kamar. Elemen ini menggunakan sintaksis yang sama dengan <Tax> dalam <Result>.

Contoh

Tarif dasar dan tarif bersyarat

Contoh berikut menunjukkan pesan Transaksi yang berisi tarif dasar dan tarif bersyarat:

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

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

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

Beberapa tarif bersyarat

Contoh berikut menentukan tarif dasar dan beberapa tarif bersyarat dalam <RoomBundle>:

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

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

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


      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

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

<RoomBundle>

Menentukan harga dan ketersediaan Paket Kamar sebagai turunan dari <Result> dalam pesan <Transaction>. Tentukan elemen terpisah untuk setiap kombinasi paket/itinerari. Untuk menentukan paket dan persyaratan Paket Kamar, gunakan <RoomData>.

Elemen <RoomBundle> muncul di tempat berikut dalam hierarki XML pesan Transaksi:

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

Untuk mengetahui informasi selengkapnya, lihat Menggunakan Paket Kamar.

Sintaksis

Elemen <RoomBundle> menggunakan sintaksis berikut:

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

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

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

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

      <RatePlanID>rate_plan_ID</RatePlanID>

      <Rates>...</Rates>

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

Atribut

Elemen <RoomBundle> tidak memiliki atribut.

Elemen turunan

Elemen <RoomBundle> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<Baserate> Required float Menentukan harga Paket Kamar untuk menginap. Elemen ini menggunakan sintaksis yang sama seperti <Baserate> di <Result>, dengan pengecualian berikut:
  • Jika kamar tidak tersedia untuk itinerari, hapus elemen <RoomBundle> untuk menunjukkan bahwa kamar tidak lagi ada dalam inventaris. Untuk mengetahui informasi selengkapnya, lihat Menghapus Paket Kamar.
<BreakfastIncluded> Optional boolean Menentukan apakah Paket Kamar ini menyertakan sarapan dengan tarif.
<ChargeCurrency> Optional enum Waktu dan tempat pengguna membayar pemesanan. Elemen ini menggunakan sintaksis yang sama dengan <ChargeCurrency> dalam <Result>.

Nilai default-nya adalah web.

<Custom[1‑5]> Optional string Kolom kustom untuk meneruskan data tambahan ke halaman landing untuk Paket Kamar. Elemen ini menggunakan sintaksis yang sama dengan <Custom[1-5]> dalam <Result>. Ada batas 200 karakter per kolom kustom. Untuk informasi selengkapnya, lihat file halaman landing.

Jika elemen <Custom> disediakan dalam elemen <Result>, elemen tersebut tidak diwarisi dalam elemen <RoomBundle> dan harus ditentukan secara terpisah untuk setiap <RoomBundle> atau dapat disertakan dalam <PackageData> jika diperlukan.

<InternetIncluded> Optional boolean Jika Paket Kamar menyertakan akses internet tanpa biaya, sedangkan paket lain tidak akan menyertakan fasilitas tersebut. Jangan tetapkan elemen ini untuk Paket Kamar di hotel yang menyediakan internet gratis untuk semua kamar. Elemen ini tidak berlaku untuk internet kabel dalam kamar atau internet nirkabel yang tidak tersedia di kamar tamu.
<Occupancy> Required integer Jumlah maksimum tamu yang ditujukan untuk Paket Kamar. Misalnya, suite besar mungkin secara fisik dapat mengakomodasi 6 tamu, tetapi "Paket Bulan Madu" hanya ditujukan untuk 2 tamu.

Nilai ini harus kurang dari atau sama dengan <Capacity>, yang merupakan jumlah orang yang dapat diakomodasi oleh kamar secara fisik.

Saat menentukan jumlah tamu di URL halaman landing, gunakan variabel NUM-ADULTS dan NUM-CHILDREN, seperti yang dijelaskan dalam Menggunakan Variabel dan Kondisi. Nilai defaultnya adalah 2 dewasa dan 0 anak-anak.

Nilai <Occupancy> harus berupa bilangan bulat positif antara 1 dan 99, inklusif.

Catatan:

  • <Occupancy> untuk <RoomBundle> sangat direkomendasikan, sehingga ditandai sebagai wajib dan jika dihilangkan akan memunculkan error 1097.
  • <Occupancy> berasal dari objek data dalam urutan ini: <RoomBundle>, <PackageData>, lalu <RoomData>. Jika tidak ada nilai apa pun, nilainya akan ditetapkan secara default ke 2.
  • <Occupancy> dapat disertai dengan <OccupancyDetails>, yang menentukan jenis tamu (dewasa atau anak-anak). Lihat <OccupancyDetails> untuk sintaksis dan deskripsi elemen turunan.
  • Jika Anda menetapkan <Occupancy> di <RoomBundle> dan <PackageData>, nilai di <RoomBundle> akan diprioritaskan.
<OtherFees> Required float Biaya selain tarif dasar dan pajak yang memengaruhi harga akhir kamar. Elemen <OtherFees> menggunakan satu atribut yang diperlukan, currency, yang menentukan kode mata uang tiga huruf untuk biaya. Misalnya, gunakan USD untuk dolar AS.
<PackageID> Optional (recommended) string ID unik untuk data paket. Gunakan ID ini untuk mencocokkan data Paket Kamar dengan data yang dikirim di <PackageData>. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar. (Anda juga dapat menggunakan ID ini untuk mereferensikan definisi Paket Kamar umum yang digunakan dalam satu pesan Transaksi saat menentukan data Paket Kamar secara inline.)
<ParkingIncluded> Optional boolean Apakah Paket Kamar mencakup parkir gratis, saat tempat parkir akan menjadi layanan berbayar di hotel ini. Jangan tentukan nilai untuk elemen ini untuk hotel yang menawarkan parkir gratis.

Nilai yang valid adalah 0 (atau false) dan 1 (atau true). Nilai defaultnya adalah false.

<RatePlanID> Optional string ID Paket Tarif merepresentasikan ID unik untuk kombinasi paket dan kamar. Misalnya, dengan nilai <RoomID> 5 dan nilai <PackageID> ABC, Anda dapat menggunakan nilai 5-ABC untuk <RatePlanID>. Kami sangat merekomendasikan penggunaan RatePlanID sebagai variabel untuk membuat URL halaman landing dinamis (sebelumnya disebut Tempat Penjualan).

Untuk informasi selengkapnya, lihat Menggunakan Variabel dan Kondisi.

<Rates> Optional <Rates> Tarif yang menggantikan tarif default untuk Paket Kamar ini. Elemen ini menggunakan sintaksis yang sama dengan <Rates> pada <Result>.
<Refundable> Optional Object Memungkinkan pencantuman tarif sebagai dapat dikembalikan sepenuhnya atau memberikan bebas biaya pembatalan. Jika tidak diberikan, tidak ada informasi tentang pengembalian dana yang ditampilkan. Kebijakan pengembalian dana di tingkat <PackageData> menggantikan kebijakan pengembalian dana di tingkat <Result>. Kebijakan pengembalian dana di tingkat <Rates> menggantikan kebijakan pengembalian dana di tingkat <PackageData>. Harga dengan dana yang dapat dikembalikan juga dapat disoroti kepada pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi Anda secara langsung. Pelajari opsi ini lebih lanjut di sini.

Contoh berikut menunjukkan elemen <Refundable> dengan semua kumpulan atributnya:

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

Catatan: Sebaiknya tetapkan semua atribut. Pesan peringatan status feed dibuat saat satu atau beberapa atribut tidak ditetapkan.

Jika Anda tidak menetapkan atribut apa pun, tarif tersebut tidak akan ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:

  • available: (Wajib) Tetapkan ke 1 (atau true) untuk menunjukkan apakah tarif memungkinkan pengembalian dana penuh; jika tidak, tetapkan ke 0 (atau false).
  • refundable_until_days: (Wajib jika available adalah true) Menentukan jumlah hari sebelum check in saat pengembalian dana penuh dapat diminta. Nilai refundable_until_days harus berupa bilangan bulat antara 0 dan 330, inklusif.
  • refundable_until_time: (Sangat direkomendasikan jika available adalah true) Menentukan waktu terakhir dalam sehari, dalam waktu lokal hotel, saat permintaan pengembalian dana penuh akan dipenuhi. Nilai ini dapat digabungkan dengan refundable_until_days untuk menentukan, misalnya, "pengembalian dana tersedia hingga pukul 16.00 dua hari sebelum check in". Jika refundable_until_time tidak ditetapkan, nilai akan ditetapkan secara default ke tengah malam.

    Nilai atribut ini menggunakan format Waktu.

Saat menetapkan atribut, perhatikan hal-hal berikut:

  • Jika available atau refundable_until_days tidak ditetapkan, tarif tidak akan ditampilkan sebagai dapat dikembalikan.
  • Jika available adalah 0 (atau false), atribut lainnya akan diabaikan. Tarif tersebut tidak ditampilkan sebagai dapat dikembalikan, meskipun salah satu atau kedua atribut lain telah ditetapkan.
<RoomID> Required string ID unik untuk data kamar. Gunakan ID ini untuk mencocokkan data Paket Kamar dengan yang Anda kirim di <RoomData>. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar. (Anda juga dapat menggunakan ID ini untuk mereferensikan definisi kamar umum dalam satu pesan Transaksi saat menentukan data kamar secara inline.)
<Tax> Required float Pajak yang dihitung untuk harga akhir kamar. Elemen <Tax> menggunakan satu atribut yang diperlukan, currency, yang menentukan kode mata uang tiga huruf untuk pajak. Misalnya, gunakan USD untuk dolar AS.

Contoh

Paket jumlah tamu satu orang

Contoh berikut menentukan respons dengan paket jumlah tamu satu orang. Saat pengguna memilih 1 di alat pilih Jumlah tamu, Google akan menampilkan harga terendah yang memenuhi syarat, terlepas dari jumlah tamu.

Jika harga jumlah tamu satu orang tidak tersedia, Google akan menampilkan harga paling rendah untuk jumlah tamu dua orang. Perhatikan bahwa harga jumlah tamu satu orang tidak dikueri secara langsung jika harga jumlah tamu dua orang atau lebih di-cache untuk sebuah itinerari.

Contoh ini mereferensikan metadata paket dan kamar yang telah ditentukan dengan elemen <RoomID> dan <PackageID>. Gunakan elemen <RoomData> dan <PackageData> untuk menentukan informasi tersebut.

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


Dua jumlah tamu atau lebih

Contoh berikut menentukan respons yang berisi dua jumlah tamu atau lebih.

Contoh ini mereferensikan metadata paket dan kamar yang telah ditentukan dengan elemen <RoomID> dan <PackageID>. Gunakan elemen <RoomData> dan <PackageData> untuk menentukan informasi tersebut.

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


Beberapa paket kamar

Contoh berikut menetapkan Jumlah tamu di beberapa paket Kamar untuk menunjukkan kemungkinan harga kamar hostel.

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

Beberapa tarif Kondisional

Contoh berikut menentukan tarif dasar dan beberapa tarif bersyarat dalam <RoomBundle>:

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

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

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


      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

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

<OccupancyDetails>

<Occupancy> dalam pesan transaksi menentukan jumlah maksimum tamu untuk kamar atau paket. <OccupancyDetails> dapat berisi informasi tambahan seperti jumlah dan jenis tamu (dewasa atau anak-anak).

Jika <Occupancy> dan <OccupancyDetails> muncul dalam elemen <Rates> dari <Result> atau <RoomBundle>, artinya tarif dibatasi oleh detail jumlah tamu.

Sintaksis

Saat <OccupancyDetails> muncul, selalu diawali dengan <Occupancy>. Perhatikan sintaksis berikut:

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

Elemen turunan

Elemen <OccupancyDetails> memiliki elemen turunan berikut:

Elemen Turunan Wajib diisi? Jenis Deskripsi
<NumAdults> Required integer Jumlah tamu dewasa. Min:1, Maks:20.
<Children> Optional Object Penampung untuk satu atau beberapa elemen <Child>.
<Child age> Optional integer Usia maksimum untuk Anak ini—misalnya, <Child age="17">.

Contoh

Contoh berikut menunjukkan bagaimana <OccupancyDetails> dapat muncul dalam elemen turunan <Results>, <RoomBundle>, atau <Rates>.

Respons hasil

Contoh berikut menentukan satu itinerari dan harganya untuk satu properti sebagai respons terhadap Kueri Harga Real Time saat pengguna menentukan jumlah dan jenis tamu. Di sini, <OccupancyDetails> -- 2 dewasa dan satu turunan -- ditampilkan dalam <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>

Memberi rating respons

Contoh berikut menentukan satu itinerari dan harganya untuk 1 dewasa dan 1 anak. Di sini, <OccupancyDetails> ditampilkan dalam elemen <Rates> dari <Result>.

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

Paket kamar

Contoh berikut menentukan jumlah tamu 2 orang dewasa dan 1 anak selama dua malam, dengan tarif yang dapat dikembalikan. Di sini, <OccupancyDetails> muncul di dalam <RoomBundle>

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

Beberapa paket kamar

Contoh berikut menentukan beberapa tarif <RoomBundle> yang dibatasi untuk jumlah tamu 2 orang dewasa dan 2 anak-anak. Di sini, <OccupancyDetails> muncul dalam elemen <Rates> dari <RoomBundle>.

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