Transaksi (Data Properti)

Permintaan

Sintaksis

Pesan Transaction (Property Data) menggunakan sintaksis berikut:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
             id="message_ID"
             partner="partner_key">
  <PropertyDataSet action="[overlay|delta]">
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>HotelID</Property>
    <RoomData>
      <!-- (Required) One room ID per RoomData element -->
      <RoomID>RoomID</RoomID>
      <Name>
        <Text text="room_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="room_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the rate plans allowed for this room type to
        those listed here. If specified, don't specify AllowableRoomIDs. -->
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID</AllowablePackageID>
      </AllowablePackageIDs>
      <Capacity>max_number_of_occupants</Capacity>
      <AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
      <ChildCapacity>max_number_of_child_occupants</ChildCapacity>
      <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>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="bed_width"/>
             <Length unit="cm" number="bed_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>
    <PackageData>
      <!-- (Required) One package ID per PackageData element -->
      <PackageID>PackageID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the room types allowed for this rate plan to
        those listed here. If specified, don't specify AllowablePackageIDs. -->
      <AllowableRoomIDs>
        <AllowableRoomID>RoomID</AllowableRoomID>
      </AllowableRoomIDs>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- 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>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Elemen dan Atribut

Pesan Transaksi (Data Properti) memiliki elemen dan atribut berikut:

Elemen / @Atribut Kejadian Type Deskripsi
Transaction 1 Complex element Dalam implementasi ARI, ini adalah elemen root untuk pesan yang menentukan jenis dan paket kamar untuk satu properti.
Transaction / @timestamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
Transaction / @id 1 string ID unik untuk pesan permintaan ini. Nilai ini ditampilkan dalam pesan respons. Karakter yang diizinkan adalah a-z, A-Z, 0-9, _ (garis bawah), dan - (tanda hubung).
Transaction / @partner 1 string Akun partner untuk pesan ini. Nilai string ini adalah nilai "Kunci partner" yang tercantum di halaman Setelan akun di Pusat Pengelolaan Hotel.

Catatan: Jika Anda memiliki backend yang menyediakan feed untuk beberapa akun, nilai ini harus cocok dengan nilai atribut ID yang ditentukan di elemen <RequestorID> dari pesan <OTA_HotelRateAmountNotifRQ> dan <OTA_HotelAvailNotifRQ> untuk akun yang sama.

Transaction / PropertyDataSet 1.. PropertyDataSet Container untuk menentukan jenis dan paket kamar untuk satu properti.
Transaction / PropertyDataSet / @action 0..1 enum

Jenis pembaruan yang akan diterapkan pada definisi tarif kamar.

Nilai yang valid adalah:

  • overlay : Mengganti semua <RoomData> dan <PackageData> yang ditentukan sebelumnya untuk properti. Hanya <RoomData> dan <PackageData> dalam pesan saat ini yang valid.
  • delta : Menambahkan <RoomData> dan <PackageData> yang sebelumnya tidak ditentukan atau mengubah yang sudah ada.

Atribut ini bersifat opsional dan ditetapkan secara default ke delta jika tidak ditentukan.

Transaction / PropertyDataSet / Property 1 string ID unik untuk properti. Nilai ini harus cocok dengan ID Hotel yang ditentukan menggunakan <id> di elemen <listing> di Feed Daftar Hotel. ID Hotel juga tercantum di Pusat Pengelolaan Hotel.
Transaction / PropertyDataSet / RoomData 0..n RoomData

Mendeskripsikan kamar.

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

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID ID unik untuk jenis kamar. Nilai ini direferensikan menggunakan atribut InvTypeCode di elemen <StatusApplicationControl> di pesan <OTA_HotelAvailNotifRQ> dan <OTA_HotelRateAmountNotifRQ>.
Transaction / PropertyDataSet / RoomData / Name 1 Name Container untuk nama kategori kamar dalam satu atau beberapa bahasa.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Menentukan nama kategori kamar dalam satu bahasa.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string Nama kategori kamar dalam bahasa yang ditentukan oleh atribut language.
Transaction / PropertyDataSet / RoomData / Description 1 Name Container untuk deskripsi kategori kamar dalam satu atau beberapa bahasa.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Menentukan deskripsi kategori kamar dalam satu bahasa.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string Deskripsi kategori kamar dalam bahasa yang ditentukan oleh atribut language.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string Kode bahasa dua huruf.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Penampung untuk elemen <AllowablePackageID>.

Jika <AllowablePackageIDs> ditentukan, jenis kamar yang diidentifikasi oleh <RoomID> di elemen <RoomData> induk hanya dapat digabungkan dengan paket tarif yang ditentukan oleh elemen <AllowablePackageID>.

Jika <AllowablePackageIDs> tidak ditentukan, jenis kamar yang diidentifikasi oleh <RoomID> di elemen <RoomData> induk dapat digabungkan dengan paket tarif apa pun.

Gunakan salah satu dari <AllowablePackageIDs> atau <AllowableRoomIDs>, tetapi jangan keduanya.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Menentukan PackageID dari paket tarif yang dapat digabungkan dengan jenis kamar ini. Paket tarif ditentukan oleh kombinasi paket, tarif, dan ketersediaan. PackageID sesuai dengan RatePlanCode di pesan OTA_HotelRateAmountNotifRQ dan OTA_HotelAvailabilityNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer Jumlah maksimum orang dewasa dan anak-anak yang dapat diakomodasi secara fisik oleh kamar. Nilai ini harus lebih besar dari atau sama dengan nilai NumberOfGuests apa pun yang Anda kirim dengan tarif.

Nilai <Capacity> harus berupa bilangan bulat positif antara 1 dan 99, inklusif. Lihat di sini untuk mengetahui contohnya.

Catatan: Jika <Capacity> tidak ditetapkan, jumlah penghuni yang diizinkan dianggap tidak terbatas. Jika kolom ini tidak ditetapkan dan ExtraGuestCharges atau AdditionalGuestAmounts ditentukan, harga dapat dibuat untuk berapa pun jumlah tamu. Sebaiknya Anda menetapkan <Capacity> jika ExtraGuestCharges atau AdditionalGuestAmounts ditentukan guna memastikan bahwa harga tidak ditampilkan untuk opsi jumlah tamu yang tidak valid.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer Jumlah maksimum orang dewasa yang dapat diakomodasi secara fisik oleh kamar. Nilai ini harus lebih besar dari atau sama dengan nilai NumberOfGuests apa pun yang Anda kirim dengan tarif.

Nilai <AdultCapacity> harus berupa bilangan bulat positif antara 1 dan 99, inklusif. Lihat di sini untuk mengetahui contohnya.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer Jumlah maksimum anak yang dapat diakomodasi secara fisik oleh kamar.

Nilai <ChildCapacity> harus berupa bilangan bulat positif antara 1 dan 99, inklusif. Lihat di sini untuk mengetahui contohnya.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings Setelan yang dapat membatasi atau mengubah persyaratan jumlah tamu di kamar.

Elemen <OccupancySettings> menggunakan elemen turunan berikut:

  • <MinOccupancy>: Jumlah minimum tamu yang dapat 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 perlu disertakan.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL URL dan teks opsional untuk foto kamar atau Paket Kamar tertentu. Anda dapat menentukan lebih dari satu <PhotoURL> untuk kamar atau Paket Kamar.

Elemen ini menggunakan elemen turunan berikut:

  • <URL>: Menentukan lokasi foto. Lokasi harus bersifat publik (bukan di belakang firewall) dan harus menyertakan protokol (http://).
  • <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.
<PhotoURL>
 <URL>http://www.example.com/image1.jpg</URL>
 <Caption>
  <Text text="A bright way to enjoy your
   mornin' cuppa tea." language="en"/>
  <Text text="Une façon lumineuse pour profiter
   de votre tasse de thé." language="fr"/>
 </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / RoomFeatures 0..1 <RoomFeatures> Berisi informasi tentang perlengkapan kamar.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 enum

Menunjukkan gaya kamar hotel 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.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Berisi <Bed> sebanyak yang dimiliki kamar. Harap diperhatikan bahwa futon Jepang tidak termasuk 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>
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite 0.. enum Berikan elemen ini jika ruangan ini adalah suite.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Berikan elemen ini jika ruangan ini adalah kamar kapsul.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Apakah ruang ini dibagikan kepada penghuni lain seperti pemilik atau tamu lain. Nilai yang valid adalah shared dan private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Berikan elemen ini saat ruangan ini merupakan penginapan outdoor yang tidak memiliki dinding permanen, saluran air, dan pengontrol kondisi udara. Misalnya, kamar hotel bukan penginapan outdoor, sedangkan bumi perkemahan tempat tamu menginap di tenda dan taman RV tempat tamu membawa RV sendiri adalah penginapan outdoor.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Berikan elemen ini saat kamar ini dapat diakses oleh mobilitas.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Apakah kamar ini merupakan kamar bebas rokok atau ruang merokok. Nilai yang valid adalah non_smoking dan smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Berisi informasi tentang kamar mandi dan toilet di dalam kamar.

Atribut tersebut adalah:

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

Elemen ini secara opsional mengambil 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 pemandian memiliki shower. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).
  • <Toilet> (opsional): Keberadaan elemen ini menunjukkan bahwa ruangan 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 melalui 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>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum Berikan elemen ini jika kamar ini memiliki pemandian outdoor pribadi.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Berikan elemen ini saat kamar ini dilengkapi AC.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Berikan elemen ini jika kamar ini memiliki balkon atau beranda.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object Opsi yang valid meliputi:

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

Transaction / PropertyDataSet / PackageData 0..n PackageData

Penampung untuk elemen yang mendeskripsikan fitur dan persyaratan tarif yang bukan bagian dari deskripsi kamar fisik.

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

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID dalam pesan ini sesuai dengan RatePlanCode di pesan OTA_HotelRateAmountNotifRQ dan OTA_HotelAvailabilityNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name Container untuk nama paket dalam satu atau beberapa bahasa.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text Menentukan nama paket dalam satu bahasa.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string Nama paket dalam bahasa yang ditentukan oleh atribut language.
Transaction / PropertyDataSet / PackageData / Description 1 Description Container untuk deskripsi paket dalam satu atau beberapa bahasa.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text Menentukan deskripsi paket dalam satu bahasa.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string Deskripsi paket dalam bahasa yang ditentukan oleh atribut language.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string Kode bahasa dua huruf.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Penampung untuk elemen <AllowableRoomID>.

Jika <AllowableRoomIDs> ditentukan, paket tarif yang diidentifikasi oleh <PackageID> di elemen <PackageData> induk hanya dapat digabungkan dengan jenis kamar yang ditentukan oleh elemen <AllowableRoomID>.

Jika <AllowableRoomIDs> tidak ditentukan, paket tarif yang diidentifikasi oleh <PackageID> di elemen <PackageData> induk dapat digabungkan dengan jenis kamar apa pun.

Gunakan salah satu dari <AllowablePackageIDs> atau <AllowableRoomIDs>, tetapi jangan keduanya.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Menentukan RoomID jenis kamar yang dapat digabungkan dengan paket tarif ini. Jenis kamar ditentukan di elemen <RoomData>.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Memungkinkan pencantuman tarif sebagai dapat dikembalikan dananya atau dibatalkan sepenuhnya. Jika tidak diberikan, informasi tentang pengembalian dana tidak akan ditampilkan.

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.

Saat menetapkan atribut, perhatikan 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 lainnya ditetapkan.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (Wajib) Tetapkan ke 1 atau true untuk menunjukkan apakah tarif memungkinkan pengembalian dana penuh ; jika tidak, tetapkan ke 0 atau false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (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.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (Sangat direkomendasikan jika available adalah true) Menentukan waktu terakhir dalam sehari, dalam waktu lokal hotel, saat permintaan pengembalian dana penuh akan dipenuhi. Hal ini dapat digabungkan dengan refundable_until_days untuk menentukan, misalnya, bahwa "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.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Menentukan apakah jenis kamar ini mencakup sarapan. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).

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

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time Waktu check-in paling awal dalam waktu lokal hotel. Waktu harus kurang dari 24.00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Waktu check-out terbaru sesuai waktu lokal hotel.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Menentukan apakah kamar memiliki akses internet bebas biaya, sementara kamar lain tidak termasuk fasilitas ini. Jangan tetapkan elemen ini di hotel yang menyediakan internet bebas biaya 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).
Transaction / PropertyDataSet / PackageData / Meals 0..1 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 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 ruangan (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 ditetapkan 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 disediakan dengan atribut included.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Apakah kamar mencakup parkir gratis, jika 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.
Transaction / PropertyDataSet / PackageData / PhotoURL 0..1 Object (Sama seperti <PhotoURL> di <RoomData>, tetapi untuk paket (mis. foto makanan).)

Contoh

Data kamar dan paket

Berikut adalah contoh dasar tentang cara menentukan data paket dan kamar properti dalam pesan Transaksi (Data Properti). Atribut overlay digunakan untuk memastikan bahwa, jika data apa pun secara tidak terduga sudah ada, semua data yang ada akan dihapus dan diganti dengan data dalam pesan ini:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Description>
        <Text text="Room with a king bed" language="en"/>
      </Description>
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a king bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <Description>
        <Text text="Free breakfast rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Tambahkan jenis kamar

Berikut adalah contoh cara menambahkan jenis kamar dan paket ke data <Transaction> yang ada:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_3</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_3</PackageID>
      <Name>
        <Text text="Non-Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="false"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Menghapus jenis kamar

Berikut adalah contoh cara menghapus jenis dan paket kamar yang ada. Dalam skenario ini, jika pesan dalam "Data kamar dan paket" serta "Tambahkan jenis kamar" telah dikirim ke Google sebelumnya, jenis kamar King dan Double tidak akan ada lagi setelah Google menerima pesan yang ditampilkan di bawah ini. Perhatikan bahwa menghapus data paket akan memengaruhi keseluruhan paket tarif seperti yang ditentukan di seluruh pesan Transaksi (Data Properti), OTA_HotelRateAmountNotifRQ, dan OTA_HotelAvailNotifRQ (dengan merujuk ke nilai PackageID yang sama), sehingga pembaruan yang sesuai menggunakan jenis pesan lainnya mungkin diperlukan untuk mencerminkan bahwa PackageID_2 dan PackageID_3 tidak lagi ditentukan di sini.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a queen bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>


Batasi paket tarif

Berikut adalah contoh cara menggunakan elemen <AllowablePackageIDs> untuk membatasi paket tarif yang diizinkan untuk jenis kamar. Dalam contoh ini, jenis kamar Queen (RoomID_2) hanya dapat digabungkan dengan paket dan paket tarif yang diidentifikasi sebagai PackageID_1.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Membatasi kapasitas ruang

Berikut adalah contoh cara menggunakan elemen <Capacity>, <AdultCapacity>, <ChildCapacity> untuk menetapkan batasan kapasitas kamar.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <Capacity>4</Capacity>
      <AdultCapacity>4</AdultCapacity>
      <ChildCapacity>3</ChildCapacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>
</Transaction>

Jenis kamar Double (RoomID_1) dapat menampung hingga 4 tamu. Selain itu, aplikasi ini mungkin memiliki hingga 4 orang dewasa dan hingga 3 anak-anak. Ketiga persyaratan kapasitas harus dipenuhi agar ruang ini dapat dipesan. Konfigurasi ini mewakili kamar standar dengan dua tempat tidur yang masing-masing dapat menampung dua orang. Kapasitas turunan kurang dari total kapasitas karena ruangan harus memiliki setidaknya satu orang dewasa.

Contoh tambahan dengan <RoomFeatures> dan makanan

JapaneseHotelRoomStyle tidak memiliki nilai default. Menghapus nilai tidak akan menyebabkan error XML, tetapi listingan Anda tidak ditampilkan di hasil penelusuran, ketika pengguna memfilter menurut 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 gaya 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 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 japanese_western ruang, 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>


Makanan

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>

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

Respons

Sintaksis

Pesan TransactionResponse (Property Data) menggunakan sintaksis berikut:

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
                     id="message_ID"
                     partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</TransactionResponse>

Elemen dan atribut

Pesan TransactionResponse (Property Data) memiliki elemen dan atribut berikut:

Elemen / @Atribut Kejadian Type Deskripsi
TransactionResponse 1 Complex element Elemen root yang menunjukkan keberhasilan atau masalah untuk pesan permintaan Transaksi yang diterima.
TransactionResponse / @timestamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
TransactionResponse / @id 1 string ID unik dari pesan Transaksi yang terkait.
TransactionResponse / @partner 1 string Akun partner untuk pesan ini.
TransactionResponse / Success 0..1 Success Menunjukkan bahwa pesan Transaksi berhasil diproses tanpa peringatan, error, atau kegagalan.

<Success> atau <Issues> ada di setiap pesan.

TransactionResponse / Issues 0..1 Issues Penampung untuk satu atau beberapa masalah yang ditemukan saat memproses pesan Transaksi.

<Success> atau <Issues> ada di setiap pesan.

TransactionResponse / Issues / Issue 1..n Issue Deskripsi peringatan, error, atau kegagalan yang ditemukan saat memproses pesan Transaksi. Detail tentang masalah ini dapat ditemukan di Pesan Error Status Feed.
TransactionResponse / Issues / Issue / @code 1 integer ID untuk masalah.
TransactionResponse / Issues / Issue / @status 1 enum

Jenis masalah yang ditemukan.

Nilai yang valid adalah warning, error, dan failure.

Contoh

Berhasil

Berikut adalah respons terhadap pesan Transaksi yang berhasil diproses.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Success/>
</TransactionResponse>

Masalah

Berikut adalah respons terhadap pesan Transaksi yang tidak diproses karena error.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TransactionResponse>