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:

Element / @Attribute Kejadian Jenis Deskripsi
Transaction 1 Complex element Dalam implementasi ARI, ini adalah elemen root untuk pesan menentukan jenis kamar dan paket 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 "Kunci partner" nilai yang tercantum di Halaman setelan akun di Pusat Pengelolaan Hotel.

Catatan: Jika Anda memiliki backend yang menyediakan feed untuk beberapa akun, nilai ini harus sesuai dengan ID yang ditentukan dalam <RequestorID> dari <OTA_HotelRateAmountNotifRQ> dan <OTA_HotelAvailNotifRQ> pesan 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 ke definisi tarif kamar.

Nilai yang valid adalah:

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

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

Transaction / PropertyDataSet / Property 1 string ID unik untuk properti. Nilai ini harus cocok dengan ID hotel yang ditentukan menggunakan <id> di elemen <listing> dalam 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> wajib diisi.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID ID unik untuk jenis kamar. Nilai ini dirujuk menggunakan atribut InvTypeCode di kolom Elemen <StatusApplicationControl> di <OTA_HotelAvailNotifRQ> dan <OTA_HotelRateAmountNotifRQ> pesan.
Transaction / PropertyDataSet / RoomData / Name 1 Name Container untuk nama kategori kamar di 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 di 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 Dua huruf kode bahasa.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Penampung untuk elemen <AllowablePackageID>.

Jika <AllowablePackageIDs> ditentukan, ruangan jenis yang diidentifikasi oleh <RoomID> dalam elemen <RoomData> induk hanya bisa dikombinasikan dengan paket tarif yang ditentukan oleh <AllowablePackageID>.

Jika <AllowablePackageIDs> tidak ditentukan, ruang akan jenis yang diidentifikasi oleh <RoomID> di induk Elemen <RoomData> dapat dikombinasikan dengan paket tarif.

Gunakan <AllowablePackageIDs> atau <AllowableRoomIDs>, tetapi tidak keduanya.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Menentukan PackageID paket tarif yang dapat digabungkan dengan ID ini tipe kamar. Paket tarif ditentukan oleh kombinasi paket, tarif, dan ketersediaan. PackageID sesuai dengan RatePlanCode dalam Pesan OTA_HotelRateAmountNotifRQ dan OTA_HotelAvailabilityNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer Jumlah maksimum orang dewasa dan anak-anak yang dapat dimiliki kamar mengakomodasi fisik. 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 sebagai contoh.

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 penghuninya. Saran dari kami Anda menyetel <Capacity> jika ExtraGuestCharges atau AdditionalGuestAmounts ditentukan untuk 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 secara fisik dapat diakses oleh suatu kamar mengakomodasi. Nilai ini harus lebih besar dari atau sama dengan NumberOfGuests nilai yang Anda kirim dengan tarif.

Nilai <AdultCapacity> harus positif bilangan bulat antara 1 dan 99, inklusif. Lihat di sini sebagai contoh.

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

Nilai <ChildCapacity> harus positif bilangan bulat antara 1 dan 99, inklusif. Lihat di sini sebagai contoh.

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

Elemen <OccupancySettings> menggunakan elemen turunan berikut:

  • <MinOccupancy>: Jumlah minimum tamu yang bisa tetap berada di sebuah ruangan. Misalnya, jika ini diatur ke 2, ruang ini tidak dapat dipesan untuk satu tamu.

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

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

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

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

Tidak semua elemen turunan perlu disertakan.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL URL dan {i>caption<i} opsional untuk foto ruangan atau Paket Kamar. Anda dapat menentukan lebih dari satu <PhotoURL> untuk kamar atau Paket Kamar.

Elemen ini menggunakan elemen turunan berikut:

  • <URL>: Menentukan lokasi foto. Tujuan lokasi harus publik (tidak berada di balik {i>firewall<i}) dan harus menyertakan protokol (http://).
  • <Caption>: Menentukan teks untuk foto. Elemen ini menggunakan satu elemen turunan, <Text>, yang memiliki dua atribut wajib, Text dan language. Atribut Text adalah teks, dan atribut language menentukan huruf kode bahasa 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 fitur 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 sebanyak <Bed> yang dimiliki ruang. Perlu diketahui 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 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 kamar 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 lainnya. Nilai yang valid adalah shared dan private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Berikan elemen ini jika kamar ini adalah penginapan outdoor yang tidak memiliki dinding tetap, pipa saluran air, dan kontrol iklim. Misalnya, kamar hotel bukan penginapan outdoor sedangkan perkemahan tempat tamu menginap di tenda dan Tempat parkir RV tempat tamu membawa RV sendiri merupakan penginapan outdoor.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Sediakan elemen ini saat ruangan ini dapat diakses dengan mobilitas tinggi.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Apakah kamar ini merupakan kamar bebas rokok atau ruang merokok. Berlaku nilainya adalah non_smoking dan smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Berisi informasi tentang kamar mandi dan toilet di dalam kamar.

Atributnya adalah:

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

Elemen ini secara opsional menggunakan elemen turunan berikut:

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

    Atribut tersebut adalah:

    • bathtub (opsional): Menunjukkan bahwa bak mandi memiliki di kamar mandi. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).
    • shower (opsional): Menunjukkan bahwa bak mandi memiliki kamar mandi. 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 elemen toilet memiliki bidet elektronik. Nilai yang valid adalah 0 (atau false) dan 1 (atau true).
    • mobility_accessible (opsional): Menunjukkan bahwa elemen toilet mudah diakses. 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 saat kamar ini memiliki pemandian pribadi di ruang terbuka.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Berikan elemen ini saat ruangan ini dilengkapi AC.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Sediakan elemen ini saat ruangan ini memiliki balkon atau lanai.
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 menjelaskan fitur dan persyaratan tarif yang bukan bagian dari deskripsi ruangan fisik.

Catatan: Setidaknya salah satu dari <RoomData> atau <PackageData> wajib diisi.

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID dalam pesan ini sesuai dengan RatePlanCode di kolom OTA_HotelRateAmountNotifRQ dan Pesan 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 Dua huruf kode bahasa.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Penampung untuk elemen <AllowableRoomID>.

Jika <AllowableRoomIDs> ditentukan, paket tarif yang diidentifikasi oleh <PackageID> dalam elemen <PackageData> induk hanya bisa dikombinasikan dengan tipe kamar yang ditentukan oleh <AllowableRoomID>.

Jika <AllowableRoomIDs> tidak ditentukan, maka tarifnya rencana yang diidentifikasi oleh <PackageID> di induk Elemen <PackageData> dapat dikombinasikan dengan tipe kamar.

Gunakan <AllowablePackageIDs> atau <AllowableRoomIDs>, tetapi tidak keduanya.

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

Catatan: Sebaiknya tetapkan semua atribut. Feed pesan peringatan status dibuat ketika satu atau beberapa atribut belum disetel.

Jika Anda tidak menetapkan atribut apa pun, tarif tidak akan ditampilkan sebagai dapat dikembalikan dananya.

Saat menetapkan atribut, perhatikan hal-hal berikut:

  • Jika available atau refundable_until_days tidak ditetapkan, tarif tidak ditampilkan sebagai dapat dikembalikan dananya.
  • Jika available adalah 0 atau false, atribut lainnya diabaikan. Tarif 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 refund; jika tidak, tetapkan ke 0 atau false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Diperlukan jika available adalah true) Menentukan jumlah hari sebelum check-in agar 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, pada waktu lokal hotel, yang permintaan pengembalian dana akan dipenuhi. Hal ini dapat digabungkan dengan refundable_until_days untuk ditentukan, untuk contoh, bahwa "pengembalian dana tersedia hingga pukul 16.00 dua hari sebelum check in". Jika refundable_until_time tidak ditetapkan, nilai ini secara default ke tengah malam.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Menentukan apakah jenis kamar ini menyertakan 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 pada waktu lokal hotel. Waktu harus kurang dari 24.00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Waktu check-out paling lambat yang memungkinkan pada waktu lokal hotel.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Menentukan apakah kamar menyertakan akses internet bebas biaya sementara kamar lain tidak memiliki 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> mengambil dua turunan opsional elemen, <Breakfast> dan <Dinner>, yang memiliki atribut berikut:

  • included (wajib diisi): Tetapkan ke 1 (atau true) jika tarif termasuk sarapan/makan malam; sebaliknya ditetapkan ke 0 atau false.
  • in_room (opsional): Tetapkan ke 1 (atau true) jika tamu dapat memilih untuk sarapan/makan malam di ruangan tempat mereka tinggal; jika tidak ditetapkan ke 0 (atau false).
  • in_private_space (opsional): Setel ke 1 (atau true) jika tamu dapat memilih untuk sarapan/ makan malam di suatu tempat (kecuali kamar tempat mereka tinggal) yang dapat menghindari kontak dengan tamu lain; jika tidak ditetapkan 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 benar.

Untuk filter makanan (no meals, breakfast only, dinner only dan breakfast and dinner) untuk bekerja, <Breakfast> dan <Dinner> membutuhkan harus disediakan dengan atribut included.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Apakah kamar mencakup parkir gratis, di mana tempat parkir akan menjadi layanan berbayar di hotel ini. Jangan tentukan nilai 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 paketnya (misalnya foto makanan).)

Contoh

Data kamar dan paket

Berikut adalah contoh dasar cara menentukan kamar dan properti paket data dalam pesan Transaksi (Data Properti). overlay digunakan untuk memastikan bahwa, jika sudah ada data yang tidak terduga 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 kamar yang ada dan paket. Dalam skenario ini, jika pesan di "Room and package data" dan "Tambahkan jenis kamar" telah dikirim ke Google sebelumnya, King dan Double jenis kamar tidak akan ada lagi setelah Google menerima pesan ditampilkan. Perlu diingat bahwa menghapus data paket akan memengaruhi keseluruhan paket tarif seperti yang ditentukan di seluruh Transaksi (Data Properti), OTA_HotelRateAmountNotifRQ, dan OTA_HotelAvailNotifRQ pesan (dengan mereferensikan PackageID yang sama nilai tertentu), dan karenanya, pembaruan terkait yang menggunakan jenis pesan lainnya mungkin diperlukan untuk mencerminkan bahwa PackageID_2 dan PackageID_3 tidak lagi didefinisikan 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 <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 <Capacity>, <AdultCapacity>, <ChildCapacity> elemen untuk menetapkan batasan kapasitas ruangan.

<?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 memiliki total hingga 4 tamu. Selain itu, dapat memiliki hingga 4 orang dewasa dan hingga 3 anak. Ketiga kapasitas persyaratan harus dipenuhi agar ruang ini dapat dipesan. Ini konfigurasi mewakili kamar biasa dengan dua tempat tidur yang masing-masing muat dua orang. Kapasitas turunan satu kurang dari total kapasitas karena ruangan harus memiliki setidaknya satu orang dewasa.

Contoh lengkap dengan <RoomFeatures> dan makanan

JapaneseHotelRoomStyle tidak memiliki nilai default. Menghilangkan nilai tidak mengakibatkan error XML, tetapi listingan Anda tidak yang ditampilkan di hasil penelusuran, saat 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>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two single beds -->
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>private</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>non_smoking</Smoking>
        <BathAndToilet relation="separate">
          <Bath bathtub="1" shower="1"/>
          <Toilet electronic_bidet="1" mobility_accessible="1"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <LakeView/>
          <MarinaView/>
          <BeachView/>
          <ForestView/>
          <MountainView/>
          <NatureView/>
        </Views>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Dua tempat tidur double

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

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

Gaya Jepang tanpa tempat tidur

Berikut contoh kamar bergaya Jepang tanpa tempat tidur. Tidur informasi tidak diperlukan untuk ruangan 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>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Gaya barat Jepang dengan tempat tidur

Berikut adalah contoh ruang bergaya japanese_western dengan king tempat tidur ukuran besar.

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

Jika partner tidak memiliki informasi jumlah tempat tidur di japanese_western ruang, lihat contoh berikut:

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


Hidangan

Contoh berikut menentukan metadata kamar dan paket 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>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

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>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <Breakfast included="true"/>
        <!-- Dinner not included needs to be explicitly specified -->
        <Dinner included="false"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

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 hal berikut elemen dan atribut:

Element / @Attribute Kejadian Jenis Deskripsi
TransactionResponse 1 Complex element Elemen {i>root<i} yang menunjukkan keberhasilan atau masalah Pesan permintaan transaksi.
TransactionResponse / @timestamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
TransactionResponse / @id 1 string ID unik dari pesan Transaksi 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> adalah yang ada di setiap pesan.

TransactionResponse / Issues 0..1 Issues Container untuk satu atau beberapa masalah yang dialami saat memproses Pesan transaksi.

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

TransactionResponse / Issues / Issue 1..n Issue Deskripsi peringatan, kesalahan, atau kegagalan yang dialami 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 dialami.

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 yang sama.

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