Ringkasan
API ini memungkinkan Anda menentukan cara untuk menerapkan tindakan secara dinamis ke tarif setiap kali kondisi terpenuhi, seperti menyesuaikan harga atau mengaktifkan pengembalian dana. Tidak seperti Promotions API, yang hanya dapat menerapkan promosi yang memenuhi syarat dengan diskon terbesar, API ini menerapkan tindakan apa pun saat kondisi tertentu terpenuhi, termasuk penyesuaian harga yang pada akhirnya dapat menaikkan harga akhir.
Permintaan
Sintaksis
Pesan RateModifications menggunakan sintaksis berikut:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
id="message_ID"
timestamp="timestamp">
<HotelRateModifications hotel_id="HotelID" action="[overlay]">
<ItineraryRateModification id="ModificationID" action="[delete]">
<BookingDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</BookingDates>
<BookingWindow min="integer" max="integer"/>
<CheckinDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</CheckinDates>
<CheckoutDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</CheckoutDates>
<Devices>
<Device type="[desktop|tablet|mobile]"/>
</Devices>
<LengthOfStay min="integer" max="integer"/>
<MinimumAmount before_discount="integer"/>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<StayDates application="[all|any]">
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</StayDates>
<UserCountries type="[include|exclude]">
<Country code="country_code"/>
</UserCountries>
<ModificationActions>
<PriceAdjustment multiplier="float"/>
<RateRule id="RateRuleID"/>
<Refundable available="[false|true]"
refundable_until_days="number_of_days"
refundable_until_time="time"/>
<Availability status="[unavailable]"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Elemen dan atribut
Pesan RateModifications memiliki elemen dan
atribut berikut:
| Elemen / @Atribut | Kejadian | Jenis | Deskripsi |
|---|---|---|---|
| RateModifications | 1 | Complex element | Elemen root pesan perubahan tarif. |
| RateModifications / @partner | 1 | string | Akun partner untuk pesan ini. Nilai string ini adalah nilai "Kunci partner" yang tercantum di
halaman Setelan akun di Pusat Pengelolaan Hotel.
Catatan: Jika Anda memiliki backend yang menyediakan feed untuk beberapa akun, nilai ini harus cocok dengan nilai atribut |
| RateModifications / @id | 1 | string | ID unik untuk pesan permintaan ini. Nilai ini ditampilkan di pesan respons. Karakter yang diizinkan adalah a-z, A-Z, 0-9, _ (garis bawah), dan - (tanda hubung). |
| RateModifications / @timestamp | 1 | DateTime | Tanggal dan waktu pembuatan pesan ini. |
| RateModifications / HotelRateModifications | 0..n | HotelRateModifications | Perubahan tarif untuk properti. Setiap modifikasi tarif berlaku untuk satu properti. Catatan: Jika beberapa modifikasi tarif dapat diterapkan ke tarif yang sama, semua modifikasi akan diterapkan. Tidak ada urutan tertentu yang dijamin. |
| RateModifications / HotelRateModifications / @hotel_id | 1 | string | ID unik untuk properti. Nilai ini harus cocok dengan ID Hotel yang ditentukan menggunakan
<id> di elemen <listing> di Feed Daftar Hotel. ID Hotel juga tercantum di Pusat Pengelolaan Hotel. |
| RateModifications / HotelRateModifications / @action | 0..1 | enum | Jika |
| RateModifications / HotelRateModifications / ItineraryRateModification | 0..200 | ItineraryRateModification | Satu perubahan tarif untuk properti. Catatan:Modifikasi kecepatan sulit di-debug dan kami merekomendasikan agar Anda menggunakannya secara efektif. Hubungi Manajer Akun Teknis (TAM) Anda untuk mengetahui kasus penggunaan yang memerlukan lebih dari 200 modifikasi tarif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / @id | 1 | string | ID unik untuk modifikasi tarif. Jumlah karakter maksimum yang diizinkan adalah 40. Karakter yang diizinkan adalah a-z, A-Z, 0-9, _ (garis bawah), - (tanda hubung), dan . (titik). (titik). |
| RateModifications / HotelRateModifications / ItineraryRateModification / @action | 0..1 | enum | Jika tidak ditentukan dan modifikasi tarif dengan Jika ditentukan, nilainya harus |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates | 0..1 | BookingDates | Container untuk satu atau beberapa rentang tanggal yang menentukan kapan pemesanan harus dilakukan agar perubahan tarif diterapkan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange | 1..99 | DateRange | Rentang tanggal yang menentukan kapan pemesanan harus dilakukan agar perubahan tarif diterapkan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start | 0..1 | Date | Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end | 0..1 | Date | Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week | 0..1 | string | Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, maka semua hari diizinkan dalam rentang tanggal. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal. Karakter yang valid adalah:
Kombinasi karakter apa pun valid. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow | 0..1 | BookingWindow | Menentukan periode waktu saat pemesanan harus dilakukan sesuai dengan tanggal check in (berdasarkan zona waktu properti). Misalnya, periode pemesanan dapat ditetapkan ke minimal 7 hari, tetapi tidak lebih dari 180 hari, sebelum check in. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min | 0..1 | integer | Jumlah minimum hari sebelum check in saat pemesanan harus dilakukan agar modifikasi tarif dapat diterapkan. Jika tidak ditentukan, maka tidak ada batas minimum. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max | 0..1 | integer | Jumlah maksimum hari sebelum check in saat pemesanan harus dilakukan agar modifikasi tarif dapat diterapkan. Jika tidak ditentukan, maka tidak ada batas maksimum. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | Container untuk satu atau beberapa rentang tanggal yang menentukan kapan check in harus dilakukan agar perubahan tarif diterapkan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange | 1..99 | DateRange | Rentang tanggal yang menentukan kapan check in harus dilakukan agar modifikasi tarif diterapkan. Elemen ini tidak diperlukan jika Anda menghapus satu atau beberapa perubahan tarif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start | 0..1 | Date | Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end | 0..1 | Date | Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week | 0..1 | string | Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, maka semua hari diizinkan dalam rentang tanggal. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal. Karakter yang valid adalah:
Kombinasi karakter apa pun valid. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates | 0..1 | CheckoutDates | Container untuk satu atau beberapa rentang tanggal yang menentukan kapan check out harus dilakukan agar perubahan tarif diterapkan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange | 1..99 | DateRange | Rentang tanggal yang menentukan kapan check out harus dilakukan agar modifikasi tarif diterapkan. Elemen ini tidak diperlukan jika Anda menghapus satu atau beberapa perubahan tarif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start | 0..1 | Date | Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end | 0..1 | Date | Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week | 0..1 | string | Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, maka semua hari diizinkan dalam rentang tanggal. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal. Karakter yang valid adalah:
Kombinasi karakter apa pun valid. |
| RateModifications / HotelRateModifications / ItineraryRateModification / Devices | 0..1 | Devices | Container untuk mencantumkan perangkat pengguna yang memenuhi syarat untuk modifikasi tarif. Jika ditentukan, modifikasi tarif hanya diterapkan jika pengguna cocok dengan salah satu perangkat yang tercantum. Jika tidak ditentukan, maka hal ini tidak membatasi penerapan modifikasi tarif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device | 1..3 | Device | Menentukan satu jenis perangkat pengguna yang memenuhi syarat untuk modifikasi tarif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type | 1 | enum | Jenis perangkat. Nilainya harus desktop, tablet, atau mobile. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions | 1 | ModificationActions | Tindakan yang diterapkan pada tarif jika semua kondisi yang ditentukan terpenuhi. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | Mengubah kecepatan dengan mengalikan AmountBeforeTax dan
AmountAfterTax dengan pengganda yang ditentukan |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | AmountBeforeTax dan AmountAfterTax dikalikan dengan nilai ini. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule | 0..1 | RateRule | Mengubah tarif dengan menerapkan ID aturan tarif yang ditentukan ke tarif tersebut. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id | 1 | string | ID ini mencocokkan tarif dengan definisi di file
Definisi Aturan Tarif Anda.
Catatan:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | Menimpa kemampuan pengembalian dana tarif ke nilai yang ditentukan.
Saat menetapkan atribut, perhatikan hal berikut:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available | 1 | boolean | (Wajib) Tetapkan ke 1 atau
true untuk menunjukkan apakah tarif memungkinkan pengembalian dana penuh; jika tidak, tetapkan ke 0 atau false. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Wajib jika
available adalah true) Menentukan
jumlah hari sebelum check in saat pengembalian dana penuh dapat diminta. Nilai refundable_until_days
harus berupa bilangan bulat antara 0 dan 330, inklusif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time | 0..1 | Time | (Direkomendasikan jika available adalah true) Menentukan waktu terakhir pada hari tertentu, dalam waktu lokal hotel, saat permintaan pengembalian dana penuh akan dipenuhi. Penentuan atribut ini dapat dikombinasikan dengan
refundable_until_days untuk menentukan, misalnya, "pengembalian dana tersedia hingga pukul 16.00 dua hari sebelum check-in". Jika refundable_until_time tidak ditetapkan, nilai akan ditetapkan secara default ke tengah malam. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability | 0..1 | Availability | Menimpa ketersediaan tarif ke nilai yang ditentukan.
Kami hanya mendukung penetapan tarif ke unavailable. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status | 1 | enum | Jika status="unavailable", tarif akan diperlakukan
seolah-olah tidak tersedia, terlepas dari apakah ada harga yang valid untuk
tarif tersebut. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | Menentukan batas lama menginap saat perubahan tarif ini dapat diterapkan. Perubahan tarif tidak berlaku jika lama menginap berada di luar batas minimum dan maksimum. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min | 0..1 | integer | Jumlah malam minimum menginap yang diizinkan agar perubahan tarif dapat diterapkan. Jika tidak ditentukan, maka tidak ada batas minimum. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max | 0..1 | integer | Jumlah malam maksimum menginap yang diizinkan agar perubahan tarif dapat diterapkan. Jika tidak ditentukan, maka tidak ada batas maksimum. |
| RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount | 0..1 | MinimumAmount | Menentukan total minimum tarif kamar harian (menggunakan AmountBeforeTax atau AmountAfterTax yang lebih besar) yang harus dilampaui agar modifikasi tarif dapat diterapkan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount | 1 | integer | Nilai yang harus dilampaui agar modifikasi tarif dapat diterapkan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans | 0..1 | RatePlans | Container untuk daftar paket tarif yang menerapkan modifikasi tarif. Jika <RatePlans> tidak ditentukan, modifikasi tarif akan berlaku untuk semua paket tarif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan | 1..n | RatePlan | Menentukan paket tarif. Paket tarif ditentukan oleh kombinasi paket, tarif, dan ketersediaan, seperti yang didefinisikan di pesan Transaksi (Data Properti), OTA_HotelRateAmountNotifRQ, dan OTA_HotelAvailNotifRQ, serta seperti yang diidentifikasi oleh PackageID. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id | 1 | string | ID unik untuk paket tarif. Nilai ini dipetakan ke nilai PackageID di <PackageData> di pesan Transaksi (Data Properti), dan di atribut RatePlanCode di <StatusApplicationControl> di pesan <OTA_HotelRateAmountNotifRQ> serta <OTA_HotelAvailNotifRQ>.
Jumlah karakter maksimum yang diizinkan adalah 50. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes | 0..1 | RoomTypes | Container untuk daftar jenis kamar yang menerapkan perubahan tarif.
Perubahan tarif diterapkan ke setiap <RoomType> yang ditentukan. Jika <RoomTypes> tidak ditentukan, maka modifikasi tarif akan berlaku untuk semua kamar. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType | 1..n | RoomType | Menentukan jenis kamar. Jenis kamar ditentukan di elemen <RoomData> dalam pesan Transaksi (Data Properti) dan direferensikan menggunakan nilai <RoomID>-nya. (Nilai <RoomID>-nya juga direferensikan oleh atribut InvTypeCode di pesan OTA_HotelRateAmountNotifRQ.) |
| RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id | 1 | string | ID unik untuk inventaris (jenis kamar). Nilai ini dipetakan ke <RoomID> di pesan Transaksi (Data Properti).
Jumlah karakter maksimum yang diizinkan adalah 50. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates | 0..1 | StayDates | Container untuk satu atau beberapa rentang tanggal yang menentukan cara penerapan perubahan tarif, seperti untuk mengakomodasi harga musiman. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application | 1 | enum | Menjelaskan cara perubahan tarif diterapkan. Nilai yang valid adalah:
Atribut ini harus selalu ditentukan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange | 1..99 | DateRange | Rentang tanggal yang menentukan tanggal saat perubahan tarif akan diterapkan. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start | 0..1 | Date | Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end | 0..1 | Date | Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week | 0..1 | string | Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, maka semua hari diizinkan dalam rentang tanggal. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal. Karakter yang valid adalah:
Kombinasi karakter apa pun valid. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | Jika ditentukan, modifikasi tarif hanya diterapkan jika pengguna berada di salah satu negara yang ditentukan. Jika tidak ditentukan, modifikasi tarif akan diterapkan terlepas dari lokasi pengguna. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | Jenis spesifikasi UserCountries.
Nilai yang valid adalah Jika UserCountries Jika UserCountries Jika UserCountries |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country | 1..300 | Country | Menentukan negara pengguna yang diizinkan untuk modifikasi tarif. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code | 1 | string | Kode negara CLDR,
seperti DE atau FR. Perhatikan bahwa, untuk beberapa negara, kode negara CLDR tidak sama dengan kode negara ISO 2 huruf. Selain itu, kode wilayah CLDR juga tidak didukung. |
Contoh
Pesan dasar
Contoh berikut menunjukkan pesan RateModifications` dasar:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
<DateRange start="2023-09-01" end="2023-09-30"/>
</BookingDates>
<BookingWindow min="7" max="330"/>
<CheckinDates>
<DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
</CheckoutDates>
<Devices>
<Device type="mobile"/>
<Device type="tablet"/>
</Devices>
<LengthOfStay min="2" max="14"/>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<UserCountries>
<Country code="US"/>
<Country code="GB"/>
</UserCountries>
<ModificationActions>
<PriceAdjustment multiplier="1.2"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Menghapus satu modifikasi tarif
Contoh berikut menunjukkan cara menghapus satu modifikasi tarif untuk properti:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1" action="delete"/>
</HotelRateModifications>
</RateModifications>
Menghapus semua perubahan tarif
Contoh berikut menunjukkan cara menghapus semua modifikasi tarif untuk properti:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>
Menempatkan semua perubahan tarif
Contoh berikut menunjukkan cara menempatkan <HotelRateModifications> untuk properti dengan satu atau beberapa modifikasi tarif baru. Saat
action="overlay", semua modifikasi tarif yang disimpan akan dihapus sebelum
menyimpan modifikasi tarif yang ditentukan dalam pesan saat ini:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1" action="overlay"/>
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-09-01" end="2023-09-30"/>
</BookingDates>
<ModificationActions>
<PriceAdjustment multiplier="1.2"/>
</ModificationActions>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Beberapa tindakan perubahan
Contoh berikut menunjukkan cara melakukan beberapa tindakan modifikasi sekaligus:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-01-01" end="2023-02-28"/>
</BookingDates>
<ModificationActions>
<PriceAdjustment multiplier=".95"/>
<Refundable available="true"
refundable_until_days="1"
refundable_until_time="12:00:00"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Menonaktifkan paket tarif untuk negara pengguna
Contoh berikut menunjukkan cara membatasi paket tarif hanya untuk pengguna Jepang (JP):
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<RatePlans>
<RatePlan id="jp_only"/>
</RatePlans>
<UserCountries type="exclude">
<Country code="JP"/>
</UserCountries>
<ModificationActions>
<Availability status="unavailable"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Respons
Sintaksis
Pesan RateModificationsResponse menggunakan sintaksis berikut:
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
</Issues>
</RateModificationsResponse>
Elemen dan atribut
Pesan RateModificationsResponse memiliki elemen dan atribut berikut:
| Elemen / @Atribut | Kejadian | Jenis | Deskripsi |
|---|---|---|---|
| RateModifications | 1 | Complex element | Elemen root yang menunjukkan keberhasilan atau masalah untuk pesan permintaan RateModifications yang diterima. |
| RateModificationsResponse / @timestamp | 1 | DateTime | Tanggal dan waktu pembuatan pesan ini. |
| RateModificationsResponse / @id | 1 | string | ID unik dari pesan RateModifications terkait. |
| RateModificationsResponse / @partner | 1 | string | Akun partner untuk pesan ini. |
| RateModificationsResponse / Success | 0..1 | Success | Menunjukkan bahwa pesan RateModifications berhasil diproses tanpa peringatan, error, atau kegagalan.
|
| RateModificationsResponse / Issues | 0..1 | Issues | Container untuk satu atau beberapa masalah yang dialami saat memproses pesan RateModifications.
|
| RateModificationsResponse / Issues / Issue | 1..n | Issue | Deskripsi dari peringatan, error, atau kegagalan yang dialami saat memproses pesan RateModifications. Detail tentang masalah ini dapat ditemukan di Pesan Error Status Feed. |
| RateModificationsResponse / Issues / Issue / @code | 1 | integer | ID untuk masalah. |
| RateModificationsResponse / Issues / Issue / @status | 1 | enum | Jenis masalah yang dialami. Nilai yang valid adalah |
Contoh
Berhasil
Berikut adalah respons terhadap pesan RateModifications yang berhasil diproses.
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</RateModificationsResponse>
Masalah
Berikut adalah respons terhadap pesan RateModifications yang tidak diproses karena error.
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</RateModificationsResponse>