Halaman ini menyediakan referensi untuk pesan Transaksi berbasis XML.
<Transaction>
Elemen root pesan Transaksi
adalah <Transaction>. Merupakan container untuk informasi deskriptif tentang kamar dan paket serta 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 akar memerlukan setidaknya satu elemen anak. Pesan transaksi dapat memiliki sejumlah elemen anak, 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? | 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. Pesan apa pun yang dikirim dengan stempel waktu dalam 24 jam sebelumnya akan diproses, dan pesan yang tidak akan dibuang. Pesan diproses dalam urutan |
Elemen turunan
Elemen <Transaction> memiliki elemen anak berikut:
| Elemen Anak | Wajib? | 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 rencana perjalanan kamar atau elemen |
* Setidaknya salah satu dari <PropertyDataSet> atau <Result> harus ada. |
|||
Contoh
Data kamar
Contoh berikut menentukan data kamar dalam pesan Transaksi:
<?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:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
<MilesIncluded>
<NumberOfMiles>1200</NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines"/>
</Provider>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
</Result>
</Transaction>
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>
</Rate>
</Rates>
</Result>
</Transaction>
Hapus inventaris
Contoh berikut menghapus beberapa inventaris (menginap 1 malam untuk beberapa tanggal berbeda) untuk sebuah 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 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 Anak | Wajib? | 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 menampilkan 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 Anda mengirimkan harga dan ketersediaan untuk kamar dan Paket Kamar ini, referensikan kamar dan ID paket di pesan harga Anda. Hasilnya adalah Anda mengurangi ukuran pesan secara signifikan, serta mengurangi jumlah error yang mungkin dialami karena data duplikat. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar.
<RoomData>
Menentukan metadata yang tidak bergantung pada itinerari tentang kamar dan 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 bukan 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 merupakan bagian dari paket, cukup gunakan
<RoomData>.
Anda dapat menentukan elemen <RoomData> dan <PackageData> untuk kamar atau Paket Kamar yang sama. Saat Google menampilkan kamar atau paket tersebut dalam hasil penelusuran, deskripsi keduanya akan disertakan dan dipisahkan dengan tanda hubung.
Untuk 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? | 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 Nilai |
| <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
Gunakan elemen Contoh berikut menunjukkan versi bahasa Prancis dan Inggris dari deskripsi ruangan: <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 mengambil satu elemen anak,
Gunakan elemen Contoh berikut menunjukkan versi bahasa Prancis dan Inggris dari nama ruangan: <Name> <Text text="Standard Double Room" language="en"/> <Text text="Le chambre double" language="fr"/> </Name> |
| <Occupancy> | Optional | integer | Jumlah tamu maksimum yang dimaksudkan untuk satu kamar.
Misalnya, suite besar mungkin secara fisik mampu menampung 6 tamu (kapasitas = 6), tetapi ditujukan untuk maksimal 4 tamu saja.
Nilai ini harus kurang dari atau sama dengan elemen Nilai
|
| <OccupancySettings> | Optional | Object | Setelan yang dapat membatasi atau mengubah persyaratan hunian
ruangan.
Elemen
<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 yang dimaksud. Anda dapat menentukan lebih dari satu <PhotoURL> untuk suatu kamar atau Paket Kamar. Setiap URL foto harus berada di
<PhotoURL>-nya masing-masing.
Elemen ini menggunakan elemen turunan berikut:
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 ruangan. |
| <RoomID> | Required | string | ID unik untuk kamar. Gunakan ID ini untuk mencocokkan data 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 kamar umum dalam satu pesan Transaksi saat menentukan data kamar secara inline.) |
Contoh
Data kamar
Contoh berikut mendefinisikan data ruangan:
<?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 paket dan kamar:
<?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>
Paket beberapa kamar
Contoh berikut mendefinisikan metadata kamar dan paket untuk beberapa Paket Kamar:
<?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>
Mendefinisikan fitur yang ditemukan dalam 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 anak berikut:
| Elemen Anak | Wajib? | Jenis | Deskripsi |
|---|---|---|---|
| <JapaneseHotelRoomStyle> | Optional | enum | Menunjukkan gaya kamar hotel Jepang. Nilai yang valid adalah:
|
| <Beds> | Optional | Object | Berisi sebanyak <Bed> yang dimiliki ruangan. Perhatikan
bahwa futon Jepang tidak boleh dihitung di sini.
Setiap
<Bed> memiliki elemen turunan berikut:
<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 adalah suite. |
| <Capsule> | Optional | empty | Berikan elemen ini jika kamar ini adalah kamar kapsul. |
| <Roomsharing> | Optional | enum | Apakah kamar ini dibagikan dengan penghuni lain seperti pemilik atau tamu
lain. Nilai yang valid adalah shared dan private. |
| <Outdoor> | Optional | empty | Berikan elemen ini jika kamar ini adalah akomodasi luar ruangan yang tidak memiliki dinding tetap, saluran air, dan pengatur suhu. Misalnya, kamar hotel bukan penginapan outdoor, sedangkan bumi perkemahan tempat tamu menginap di tenda dan area parkir mobil karavan tempat tamu membawa mobil karavan masing-masing adalah penginapan outdoor. |
| <MobilityAccessible> | Optional | empty | Berikan elemen ini jika ruangan ini dapat diakses oleh mobilitas. |
| <Smoking> | Optional | enum | Apakah kamar ini adalah kamar bebas rokok atau kamar untuk perokok. Nilai yang valid adalah non_smoking dan smoking. |
| <BathAndToilet> | Optional | Object | Berisi informasi tentang kamar mandi dan toilet di dalam kamar.
Atributnya adalah:
Elemen secara opsional mengambil elemen anak berikut:
Contoh: <BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet
electronic_bidet="1"
mobility_accessible="1"/>
</BathAndToilet> |
| <OpenAirBath> | Optional | empty | Sediakan elemen ini jika ruangan ini memiliki kamar mandi pribadi terbuka. |
| <AirConditioning> | Optional | empty | Berikan elemen ini jika kamar ini memiliki AC. |
| <Balcony> | Optional | empty | Berikan elemen ini jika kamar memiliki balkon atau beranda. |
| <Views> | Optional | Object | Pilihan yang valid meliputi:
|
Contoh
JapaneseHotelRoomStyle tidak memiliki nilai default. Menghilangkan
nilai tidak akan menyebabkan error XML, tetapi listingan Anda tidak akan ditampilkan di
hasil penelusuran, saat 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>
<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 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>
<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 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>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
Jepang barat dengan tempat tidur
Berikut adalah contoh kamar bergaya japanese_western dengan tempat tidur berukuran king.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
<Beds>
<Bed size="king"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
Jika partner tidak memiliki informasi jumlah tempat tidur di japanese_western
kamar, ikuti 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>
<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 bukan itinerari sekaligus 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 Google menampilkan kamar atau paket tersebut dalam hasil penelusuran, deskripsi keduanya akan disertakan dan dipisahkan dengan tanda hubung.
Jika memperbarui elemen <PackageData> tunggal untuk suatu properti, Anda harus memperbarui semua elemen <PackageData> dan <RoomData> untuk properti tersebut.
Setiap <PropertyDataSet> dianggap sebagai 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>integer</NumberOfMiles>
<Provider>
<Text language="en" text="provider-name">
</Provider>
<!-- Add Loyalty point information -->
<LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID>
</MilesIncluded>
</PackageData>
...
...
</PropertyDataSet>
...
</Transaction>Atribut
Elemen <PackageData> tidak memiliki atribut.
Elemen turunan
Elemen <PackageData> memiliki elemen anak berikut:
| Elemen Turunan | Wajib? | Jenis | Deskripsi |
|---|---|---|---|
| <BreakfastIncluded> | Optional | boolean | Menentukan apakah paket ini menyertakan sarapan dengan tarif.
Nilai yang valid adalah 0 (atau false) dan 1
(atau true).
Sebaiknya Anda menggunakan |
| <ChargeCurrency> | Optional | enum | Waktu dan tempat pengguna membayar pemesanan. Elemen ini menggunakan sintaksis yang sama dengan <ChargeCurrency> dalam <Result>.
Nilai default-nya adalah |
| <CheckinTime> | Optional | Time | Waktu check-in paling awal yang memungkinkan. Waktu harus kurang dari 24:00 dalam waktu setempat hotel. |
| <CheckoutTime> | Optional | Time | Waktu check-out paling lambat dalam waktu lokal hotel. |
| <Description> | Optional | Object | Deskripsi mendetail 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>
<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 suatu paket mencakup akses internet tanpa biaya, sementara paket lainnya tidak menyertakan fasilitas itu. Jangan setel 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
Atribut opsional hanya digunakan jika Agar filter makanan ( |
| <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, <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 secara fisik mungkin dapat mengakomodasi 6 tamu, tetapi hanya ditujukan untuk maksimal 4 tamu.
Nilai ini harus kurang dari atau sama dengan elemen Nilai Jika Anda menentukan elemen ini di 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 untuk paket. Gunakan ID ini untuk mencocokkan data Paket Kamar dengan blok (Anda juga dapat menggunakan ID ini untuk merujuk definisi Paket Kamar umum yang digunakan dalam pesan Transaksi tunggal saat mendefinisikan data Paket Kamar sebaris.) |
| <ParkingIncluded> | Optional | boolean | Apakah Paket Kamar mencakup parkir tanpa biaya, padahal jika tidak, parkir merupakan layanan berbayar di hotel ini. Jangan tentukan nilai untuk elemen ini untuk hotel yang menawarkan parkir gratis.
Nilai yang valid adalah |
| <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 pembatalan tanpa biaya. Jika tidak disediakan, 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 akan disorot untuk pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi secara langsung. Pelajari lebih lanjut opsi ini
Kebijakan tarif yang dapat dikembalikan dananya.
Contoh berikut menunjukkan elemen <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Catatan: Sebaiknya tetapkan semua atribut. Pesan peringatan status umpan dihasilkan ketika satu atau lebih atribut tidak ditetapkan. Jika Anda tidak menetapkan atribut apa pun, tarif tidak ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:
Saat menetapkan atribut, perhatikan hal berikut:
|
| <MembershipBenefits |
Optional | boolean | Tarif mencakup manfaat status elite selama menginap. Termasuk parameter berikut:
|
| <CarRentalIncluded> | Optional | boolean | Tarif mencakup rental mobil gratis selama menginap. |
| <MilesIncluded> | Optional | boolean | Tarif mencakup mil frequent flyer. Parameter mencakup:
Catatan: |
| <OnPropertyCredit> | Optional | boolean | Tarif mencakup kredit properti (F&B, resor, spa, dll). Parameter:
|
| <AirportTransportationIncluded> | Optional | Object | Tarif mencakup transportasi gratis ke/dari bandara terdekat. Atribut
direction opsional menentukan arah
transportasi. Nilai yang valid meliputi:
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 baik ke maupun dari
bandara.
|
Contoh
Paket kamar tunggal
Contoh berikut menentukan satu Paket Kamar, dengan jumlah tamu 2 orang (satu dewasa dan satu anak) dan termasuk 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 paket dan kamar:
<?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>
Paket beberapa kamar
Contoh berikut menentukan metadata paket dan kamar untuk beberapa Paket Kamar:
<?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 mendefinisikan metadata kamar dan paket untuk bundel 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>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</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>
<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>
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>
<Result>
Container untuk informasi terbaru mengenai 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 sekumpulan fasilitas) yang ditentukan dalam <PackageData> dan <RoomData>.
Umumnya, Anda akan sangat sering mengirimkan pesan Transaksi dengan pembaruan harga. Seberapa banyak dan sering Anda melakukannya bergantung pada mode pengiriman Anda.
Anda dapat menggunakan <Result> dalam pesan Transaksi untuk menghapus itinerari, seperti yang dijelaskan di Menghapus Inventaris.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan pesan Transaksi guna memperbarui harga dan ketersediaan, lihat Menambahkan dan Memperbarui Inventaris.
Pesan Transaksi tunggal dapat menyertakan sejumlah elemen <Result>, 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. --> <!-- Child occupancy rates should only be sent through Live pricing with context and not through Pull or Changed pricing --> <OccupancyDetails>occupancy_info</OccupancyDetails> <Rates>...</Rates> <RoomBundle>...</RoomBundle> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> ... </AllowablePointsOfSale> <MilesIncluded> <NumberOfMiles>integer</NumberOfMiles> <Provider> <Text language="en" text="provider-name"> </Provider> <!-- Add Loyalty point information --> <LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID> </MilesIncluded> </Result> ... </Transaction>
Atribut
Elemen <Result> memiliki atribut berikut:
| Atribut | Wajib? | Jenis | Deskripsi |
|---|---|---|---|
| mergeable | Optional | boolean | Secara default, harga baru untuk pasangan hotel dan rencana perjalanan tertentu akan menimpa semua harga sebelumnya (yang belum kedaluwarsa) yang ada dalam cache Google. Atribut yang dapat digabungkan memungkinkan Anda menyimpan harga tambahan ke cache Google tanpa menghapus informasi harga sebelumnya. Respons Kueri Harga Real Time dengan Konteks akan selalu menetapkan atribut ini ke true (terlepas dari respons pesan transaksi Anda). |
Elemen turunan
Elemen <Result> memiliki elemen turunan berikut:
| Elemen Anak | Wajib? | Jenis | Deskripsi |
|---|---|---|---|
| <AllowablePointsOfSale> | Optional | Object | Satu atau beberapa halaman landing yang memenuhi syarat untuk hotel. Halaman landing adalah situs web yang dapat menangani proses pemesanan untuk pengguna akhir. Untuk menyertakan halaman landing tertentu secara eksplisit (dan mengecualikan yang lain), tambahkan satu atau beberapa elemen <AllowablePointsOfSale> yang cocok dengan atribut id elemen <PointOfSale> dalam 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:
Jika kamar tidak tersedia untuk itinerari,
Untuk menghapus Paket Kamar, gunakan petunjuk dalam Menghapus Paket Kamar.
<Baserate currency="USD">1200.40</Baserate> Elemen
|
| <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:
Nilai default-nya adalah |
| <Checkin> | Required | Date | Tanggal check-in untuk itinerari menggunakan format Date. Kombinasi elemen <Nights> dan elemen <Checkin> menghasilkan itinerari. |
| Optional | string | Tidak digunakan lagi: 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:
Elemen Penting: Hubungi Manajer Akun Teknis (TAM) Anda jika Anda ingin menggunakan variabel |
|
| <ExpirationTime> | Optional | DateTime | Tanggal dan waktu saat harga dianggap kedaluwarsa (minimal 3 jam).
Sebaiknya Anda tidak memberikan stempel waktu berakhirnya harga jika tidak begitu penting bagi struktur harga Anda. Google tidak menayangkan harga yang sudah habis masa berlakunya, dan itinerari apa pun yang memiliki harga yang sudah habis masa berlakunya akan memenuhi syarat untuk Kueri Harga Real Time. |
| <MilesIncluded> | Optional | boolean | Tarif mencakup mil frequent flyer. Parameter mencakup:
Catatan: |
| <Nights> | Required | integer | Jumlah malam untuk suatu rencana perjalanan. Nilai elemen <Nights> harus berupa bilangan bulat positif.
Kombinasi <Nights> dan <Checkin> membentuk suatu rencana perjalanan. |
| <OtherFees> | Optional | float | Biaya selain tarif dasar dan pajak yang memengaruhi harga akhir kamar. Elemen <OtherFees> mengambil satu atribut wajib, currency, yang menentukan kode mata uang tiga huruf untuk biaya. Contoh, USD.
Elemen |
| <Occupancy> | Optional | integer | Menentukan jumlah maksimum tamu yang diizinkan untuk tarif ini.
Saat <Occupancy> muncul langsung di bawah <Result>,
jumlah tamu harus ditentukan ke 2 atau lebih. <Occupancy> dapat disertai dengan <OccupancyDetails>, yang menentukan jenis tamu (dewasa atau anak-anak). Jika jenis tamu tidak ditentukan,
tamu dianggap sebagai orang dewasa. Lihat <OccupancyDetails> untuk mengetahui sintaksis dan deskripsi elemen turunan. Jika elemen <Occupancy> tidak disediakan, jumlah tamu akan ditentukan ke 2.
Poin Utama: Tingkat hunian anak hanya boleh dikirim melalui harga Langsung dengan konteks dan bukan melalui harga Tarik atau Harga yang Diubah. Catatan: Hubungi tim dukungan Anda untuk mengaktifkan fitur guna mengirimkan 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.
Wajib menyertakan |
| <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> |
Sebuah wadah untuk satu atau lebih blok <Rate>. Setiap <Rate> dalam <Rates> menentukan harga yang berbeda untuk kombinasi kamar/rencana perjalanan.
Gunakan elemen Catatan: Dalam |
| <Refundable> | Optional | Object | Memungkinkan pencantuman tarif sebagai dapat dikembalikan sepenuhnya atau memberikan pembatalan tanpa biaya. Jika tidak disediakan, 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 akan disorot untuk pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi secara langsung. Pelajari lebih lanjut
Kebijakan tarif yang dapat dikembalikan dananya.
Contoh berikut menunjukkan elemen <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 tidak ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:
Saat mengatur atribut, perhatikan hal berikut:
|
| <RoomBundle> | Optional | <RoomBundle> |
Wadah untuk informasi mengenai deskripsi fisik harga sebuah kamar, setiap kemasan fasilitas, dan beberapa detail kebijakan pembelian untuk hotel dan rencana perjalanan tertentu.
Secara umum, gunakan elemen ini untuk menentukan harga kamar reguler dan berbagai jenis kamar dalam properti yang sama. Meskipun Anda dapat menentukan deskripsi Paket Kamar secara inline, sebaiknya gunakan 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.
Wajib menyertakan |
| <Tax> | Optional | float | Pajak yang dihitung untuk harga akhir kamar.
Elemen <Tax> menggunakan satu atribut wajib, currency, yang menentukan kode mata uang tiga huruf untuk pajak. Contoh, USD. Elemen
<Tax> diperlukan jika
<Baserate> lebih besar dari nol.
Jika atribut "all_inclusive" elemen |
| <Unavailable> | Optional | Object | Menunjukkan bahwa itinerari tidak tersedia untuk dipesan. Berfungsi sebagai
penampung alasan yang lebih mendetail mengapa itinerari tidak tersedia. Satu
atau beberapa alasan tidak tersedia berikut dapat disarangkan di bawah
tag <Unavailable>:
|
Contoh
Contoh multi-properti
Contoh berikut mendefinisikan satu rencana perjalanan 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>
<MilesIncluded>
<NumberOfMiles>1200</NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines"/>
</Provider>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
</Result>
</Transaction>
Tidak diperlihatkan dalam contoh ini rincian tentang ruangan, seperti deskripsi, gambar dan keterangan, nama ruangan, dan kapasitasnya.
Anda dapat menentukan informasi tersebut satu kali dalam pesan Transaksi terpisah yang disimpan Google. Anda kemudian dapat merujuknya dalam semua pembaruan harga dan inventaris berikutnya. Untuk informasi selengkapnya, lihat Metadata Paket Kamar.
Contoh multi-tarif
Contoh berikut mendefinisikan rencana perjalanan dan properti tunggal dengan beberapa tarif untuk berbagai hunian. Elemen <Rates> dapat digunakan untuk menyediakan harga multi-tarif untuk properti tertentu. Contoh berikut juga berguna untuk properti Sewa Liburan (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 mendefinisikan satu rencana perjalanan yang ketersediaannya tidak dapat diambil dari saluran hilir, rencana perjalanan kedua yang berada di bawah masa menginap minimum dan sudah dipesan untuk tanggal yang ditentukan, dan rencana perjalanan ketiga yang propertinya tutup pada tanggal kedatangan, tetapi buka selama masa 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 atau itinerari.
Gunakan elemen <Rates> hanya bila ada beberapa tarif untuk kamar atau kombinasi rencana perjalanan yang sama. Misalnya, Anda menentukan beberapa tarif untuk tarif bersyarat, tarif pribadi, 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 ditetapkan di <Rate>, nilai tersebut akan mewarisi nilai dari elemen induk. Hanya
<AllowablePointsofSale> yang diwarisi 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> ... <MilesIncluded> <NumberOfMiles>integer</NumberOfMiles> <Provider> <Text language="en" text="provider-name"> </Provider> <LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID> </MilesIncluded> ... </Rate> ... </Rates> </Result> ... </Transaction>
Atribut
Elemen <Rates> memiliki atribut berikut:
| Atribut | Wajib? | Deskripsi |
|---|---|---|
| rate_rule_id | Optional | Untuk tarif bersyarat, ID ini mencocokkan tarif dengan definisi di file Definisi Aturan Tarif Anda. Batas karakter untuk kolom ini adalah 40 karakter. ID ini tidak boleh berupa string kosong. |
Elemen turunan
Elemen <Rates> memiliki elemen turunan berikut:
| Elemen Turunan | Wajib? | Jenis | Deskripsi |
|---|---|---|---|
| <AllowablePointsOfSale> | Optional | Object | Satu atau lebih halaman arahan 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 anak |
| <ChargeCurrency> | Optional | enum | Waktu dan tempat pengguna membayar pemesanan. Elemen ini menggunakan sintaksis yang sama seperti <ChargeCurrency> dalam <Result>. |
| Optional | string | Tidak digunakan lagi: 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.
Penting: Hubungi Manajer Akun Teknis (TAM) Anda jika Anda ingin menggunakan variabel |
|
| <ExpirationTime> | Optional | DateTime | Tanggal dan waktu tarif dianggap berakhir. Elemen ini menggunakan sintaksis yang sama dengan <ExpirationTime> dalam <Result>. |
| <MilesIncluded> | Optional | boolean | Tarif mencakup mil frequent flyer. Parameter mencakup:
Catatan: |
| <Occupancy> | Optional | integer | Menentukan jumlah maksimum tamu yang diizinkan untuk tarif ini. Jika tidak
ditentukan, tarif ini diasumsikan sama dengan tarif induk.
|
| <OtherFees> | Required | float | Biaya selain tarif dasar dan pajak yang memengaruhi harga akhir kamar. Elemen ini menggunakan sintaksis yang sama dengan
<OtherFees> dalam <Result>.
Jika atribut "all_inclusive" elemen |
| <Refundable> | Optional | Object | Memungkinkan pencantuman tarif sebagai dapat dikembalikan sepenuhnya atau memberikan pembatalan tanpa biaya. Jika tidak disediakan, 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 akan disorot untuk pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi secara langsung. Pelajari lebih lanjut opsi ini
Kebijakan tarif yang dapat dikembalikan dananya.
Contoh berikut menunjukkan elemen <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Catatan: Sebaiknya tetapkan semua atribut. Pesan peringatan status umpan dihasilkan ketika satu atau lebih atribut tidak ditetapkan. Jika Anda tidak menetapkan atribut apa pun, tarif tersebut tidak akan ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:
Saat mengatur atribut, perhatikan hal berikut:
|
| <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>
</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 and it should be within 50 characters in length for optimal
performance. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<RoomBundle>
Menentukan harga dan ketersediaan Paket Kamar sebagai turunan dari
<Result> dalam pesan <Transaction>. Tentukan elemen terpisah untuk setiap kombinasi paket atau itinerari. Untuk menentukan paket dan ketentuan 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 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> <!-- Add Loyalty point information --> <MilesIncluded> <NumberOfMiles>integer</NumberOfMiles> <Provider> <Text language="en" text="provider-name"> </Provider> <LoyaltyCampaignID>campaign_ID</LoyaltyCampaignID>> </MilesIncluded> <!-- Required --> <Baserate currency="currency_code">price</Baserate> <!-- Required --> <Tax currency="currency_code">taxes</Tax> <!-- Required --> <OtherFees currency="currency_code">other_fees</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <!-- Required --> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> <BreakfastIncluded>boolean_value</BreakfastIncluded> <InternetIncluded>boolean_value</InternetIncluded> <ParkingIncluded>boolean_value</ParkingIncluded> <RatePlanID>rate_plan_ID</RatePlanID> <Rates>...</Rates> </RoomBundle> ... </Result> </Transaction>
Atribut
Elemen <RoomBundle> tidak memiliki atribut.
Elemen turunan
Elemen <RoomBundle> memiliki elemen anak berikut:
| Elemen Turunan | Wajib? | Jenis | Deskripsi |
|---|---|---|---|
| <Baserate> | Required | float | Menentukan harga Paket Kamar untuk menginap. Elemen ini menggunakan sintaksis yang sama seperti <Baserate> di <Result>, dengan pengecualian berikut:
|
| <BreakfastIncluded> | Optional | boolean | Menentukan apakah Paket Kamar ini termasuk sarapan dalam tarif. |
| <ChargeCurrency> | Optional | enum | Waktu dan tempat pengguna membayar pemesanan. Elemen ini menggunakan sintaksis yang sama seperti <ChargeCurrency> dalam <Result>.
Nilai default-nya adalah |
| Optional | string | Tidak digunakan lagi: 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.
Variabel kustom hanya dicantumkan saat Anda mengirimkan harga
dalam pesan Transaksi. 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.
Penting: Hubungi Manajer Akun Teknis (TAM) Anda jika Anda ingin menggunakan variabel |
|
| <InternetIncluded> | Optional | boolean | Jika Paket Kamar mencakup akses internet tanpa biaya, sedangkan paket lainnya tidak mencakup fasilitas tersebut. Jangan tetapkan elemen ini untuk Paket Kamar di hotel yang menyediakan internet gratis di semua kamar. Elemen ini tidak berlaku untuk internet kabel di dalam kamar atau internet nirkabel yang tidak tersedia di kamar tamu. |
| <MilesIncluded> | Optional | boolean | Tarif sudah termasuk miles frequent flyer. Parameternya meliputi:
Catatan: |
| <Occupancy> | Required | integer | Menentukan jumlah maksimum tamu yang diizinkan untuk tarif ini. Misalnya, suite besar mungkin secara fisik mampu menampung 6 tamu, tetapi "Paket Bulan Madu" hanya memperbolehkan 2 tamu saja.
Nilai ini harus kurang dari atau sama dengan Saat menentukan hunian di URL halaman landing Anda, gunakan variabel Nilai Catatan:
|
| <OtherFees> | Required | float | Biaya selain tarif dasar dan pajak yang memengaruhi harga akhir kamar. Elemen <OtherFees> menggunakan satu atribut wajib, 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 yang dikirim dalam <PackageData>. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar. (Anda juga dapat menggunakan ID ini untuk merujuk definisi Paket Kamar umum yang digunakan dalam pesan Transaksi tunggal saat mendefinisikan data Paket Kamar sebaris.) |
| <ParkingIncluded> | Optional | boolean | Apakah Paket Kamar mencakup parkir tanpa biaya, padahal jika tidak, parkir merupakan layanan berbayar di hotel ini. Jangan tentukan nilai untuk elemen ini untuk hotel yang menawarkan parkir gratis.
Nilai yang valid adalah |
| <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>. Sebaiknya gunakan
RatePlanID sebagai variabel untuk membuat URL halaman landing dinamis
(sebelumnya disebut Tempat Penjualan).
Catatan: RatePlanID harus memiliki panjang 50 karakter untuk kinerja optimal. Untuk mengetahui 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 seperti <Rates> dalam <Result>. |
| <Refundable> | Optional | Object | Memungkinkan pencantuman tarif sebagai dapat dikembalikan sepenuhnya atau memberikan pembatalan tanpa biaya. Jika tidak disediakan, 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 akan disorot untuk pengguna melalui opsi alternatif tanpa mengubah skema pesan transaksi secara langsung. Pelajari lebih lanjut opsi ini
Kebijakan tarif yang dapat dikembalikan dananya.
Contoh berikut menunjukkan elemen <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 tidak ditampilkan sebagai dapat dikembalikan. Atribut tersebut adalah:
Saat menetapkan atribut, perhatikan hal berikut:
|
| <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 wajib, currency, yang menentukan kode mata uang tiga huruf untuk pajak. Misalnya, gunakan USD untuk dolar AS. |
Contoh
Paket hunian tunggal
Contoh berikut menentukan respons dengan paket jumlah tamu satu orang.
Saat pengguna memilih 1 pada alat pilih Jumlah tamu, Google menampilkan harga terendah yang memenuhi syarat tanpa memandang jumlah tamu.
Jika harga untuk jumlah tamu satu orang tidak tersedia, Google akan menampilkan harga terendah untuk jumlah tamu dua orang. Perhatikan bahwa harga jumlah tamu satu orang tidak dikueri secara langsung jika harga jumlah tamu dua orang atau lebih disimpan dalam cache untuk itinerari.
Contoh ini mereferensikan metadata paket dan kamar yang telah ditetapkan 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 hunian atau lebih
Contoh berikut menentukan respons yang berisi dua atau lebih jumlah tamu.
Contoh ini mereferensikan metadata paket dan kamar yang telah ditetapkan 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>
Paket multi-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 bersyarat
Contoh berikut mendefinisikan 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 and it should be within 50 characters in length for optimal
performance. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<OccupancyDetails>
<Occupancy> 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 hunian.
Jika Anda menyertakan <OccupancyDetails> dalam <RoomBundle>, bersama dengan elemen
<Rate> bertingkat, Anda tidak dapat mengirim <Occupancy> dasar dalam <Rate>;
sebaliknya, salah satu opsi berikut direkomendasikan:
- Menghilangkan jumlah tamu dari
<Rate>: Dalam hal ini,<Rate>mewarisi<OccupancyDetails>langsung dari<RoomBundle>
atau,
- Duplikat
<OccupancyDetails>: Dalam hal ini, kirim<OccupancyDetails>identik tambahan di elemen<RoomBundle>dan<Rate>bertingkat
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 anak berikut:
| Elemen Turunan | Wajib? | Jenis | Deskripsi |
|---|---|---|---|
| <NumAdults> | Required | integer | Jumlah tamu dewasa. Min:1, Maks:20. |
| <Children> | Optional | Object | Wadah untuk satu atau lebih 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>.
Respon 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 orang dewasa dan
satu anak-anak -- 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>
Respons tarif
Contoh berikut menentukan satu itinerari dan penetapan 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>
<AllowablePointsOfSale>
<PointOfSale id="yourhotelpartnersite.com"/>
</AllowablePointsOfSale>
</Rate>
</Rates>
</Result>
</Transaction>
Paket kamar
Contoh berikut mendefinisikan hunian 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>
Paket multi-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>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<ChargeCurrency>hotel</ChargeCurrency>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>