PerubahanTarif

Ringkasan

API ini memungkinkan Anda menentukan cara menerapkan tindakan secara dinamis pada tarif kapan pun kondisi terpenuhi, seperti menyesuaikan harga atau mengaktifkan pengembalian dana. Tidak seperti Promotions API, yang hanya dapat berlaku promosi yang memenuhi syarat dengan diskon terdalam, API ini menerapkan tindakan apa pun saat kondisi tertentu terpenuhi, termasuk penyesuaian harga yang mungkin pada akhirnya 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:

Element / @Attribute 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 "Kunci partner" nilai yang tercantum di Halaman setelan akun di Pusat Pengelolaan Hotel.

Catatan: Jika Anda memiliki backend yang menyediakan feed untuk beberapa akun, nilai ini harus sesuai dengan ID yang ditentukan dalam <RequestorID> dari <OTA_HotelRateAmountNotifRQ> dan <OTA_HotelAvailNotifRQ> pesan untuk pesan yang sama menggunakan akun layanan.

RateModifications / @id 1 string ID unik untuk pesan permintaan ini. Nilai ini ditampilkan dalam pesan respons. Karakter yang diizinkan adalah a-z, A-Z, 0-9, _ (garis bawah), dan - (tanda hubung).
RateModifications / @timestamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Perubahan tarif untuk properti. Setiap perubahan tarif berlaku ke satu properti.

Catatan: Jika beberapa perubahan tarif dapat diterapkan dengan rasio yang sama, semua modifikasi akan diterapkan. Tidak ada urutan tertentu dijamin efektif.

RateModifications / HotelRateModifications / @hotel_id 1 string ID unik untuk properti. Nilai ini harus cocok dengan ID hotel yang ditentukan menggunakan <id> di elemen <listing> dalam Feed Daftar Hotel. ID Hotel juga tercantum di Pusat Pengelolaan Hotel.
RateModifications / HotelRateModifications / @action 0..1 enum

Jika action tidak ditentukan, modifikasi di dalam elemen ini akan ditambahkan atau diperbarui. Jika action="overlay" ditentukan, lalu semua yang ditentukan sebelumnya perubahan untuk hotel ini akan dihapus terlebih dahulu. Kemudian, modifikasi yang ditentukan di sini ditulis. Jika action="overlay" digunakan dan tidak ada modifikasi yang ditentukan dalam elemen ini, maka modifikasi untuk hotel ini akan dihapus.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Perubahan tarif tunggal untuk properti.

Catatan:Perubahan tarif sulit di-debug dan kami sarankan untuk menggunakannya dengan hemat. Hubungi Manajer Akun Teknis (TAM) Anda untuk kasus penggunaan yang memerlukan lebih dari 200 perubahan tarif.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string ID unik untuk perubahan tarif. Jumlah maksimum karakter yang diizinkan adalah 40. Karakter yang diizinkan adalah a-z, A-Z, 0-9, _ (garis bawah), - (tanda hubung), dan . (titik).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Jika tidak ditentukan dan perubahan tarif dengan id tidak disimpan, maka perubahan tarif ini akan disimpan. Sebaliknya, jika tidak ditentukan dan perubahan tarif dengan id disimpan, lalu perubahan tarif yang ada akan diperbarui.

Jika ditentukan, nilainya harus "delete". Jika "delete" ditentukan, perubahan tarif yang disimpan dengan id yang sama akan dihapus. Saat menggunakan "delete", jangan sertakan elemen turunan apa pun di <ItineraryRateModification>. Selain itu, "delete" tidak diizinkan bersama dengan <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Penampung untuk satu atau beberapa rentang tanggal yang menentukan kapan pemesanan harus dilakukan agar perubahan tarif dapat diterapkan.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Rentang tanggal yang menentukan kapan pemesanan harus dilakukan untuk tarif modifikasi yang akan 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 rentang tanggal mulai tidak terbatas secara efektif.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal tertentu. Tanggal ini harus sama dengan, atau setelah, Tanggal start. Jika end tidak ditentukan, maka tanggal rentang tanggal akhir sebenarnya tidak terbatas.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditetapkan, semua hari diizinkan dalam rentang tanggal tersebut. Masing-masing karakter tertentu pada {i>string <i}menentukan hari. Misalnya, "MTWHF" menentukan hari kerja itu diizinkan dalam rentang tanggal tersebut.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Menentukan jangka 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 hari minimum sebelum check in saat pemesanan harus dilakukan untuk perubahan tarif yang akan diterapkan. Jika hal ini tidak ditentukan, maka tidak ada batas minimum.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Jumlah hari maksimum sebelum check in saat pemesanan harus dilakukan untuk perubahan tarif yang akan diterapkan. Jika hal ini tidak ditentukan, maka tidak ada batas maksimum.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Penampung untuk satu atau beberapa rentang tanggal yang menentukan kapan check in harus sebelum perubahan tarif diterapkan.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Rentang tanggal yang menentukan kapan check in harus dilakukan untuk mendapatkan tarif modifikasi yang akan 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 rentang tanggal mulai tidak terbatas secara efektif.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal tertentu. Tanggal ini harus sama dengan, atau setelah, Tanggal start. Jika end tidak ditentukan, maka tanggal rentang tanggal akhir sebenarnya tidak terbatas.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditetapkan, semua hari diizinkan dalam rentang tanggal tersebut. Masing-masing karakter tertentu pada {i>string <i}menentukan hari. Misalnya, "MTWHF" menentukan hari kerja itu diizinkan dalam rentang tanggal tersebut.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Penampung untuk satu atau beberapa rentang tanggal yang menentukan saat 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 untuk tarif tersebut modifikasi yang akan 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 rentang tanggal mulai tidak terbatas secara efektif.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal tertentu. Tanggal ini harus sama dengan, atau setelah, Tanggal start. Jika end tidak ditentukan, maka tanggal rentang tanggal akhir sebenarnya tidak terbatas.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditetapkan, semua hari diizinkan dalam rentang tanggal tersebut. Masing-masing karakter tertentu pada {i>string <i}menentukan hari. Misalnya, "MTWHF" menentukan hari kerja itu diizinkan dalam rentang tanggal tersebut.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Container untuk mencantumkan perangkat pengguna yang memenuhi syarat untuk perubahan tarif. Jika ditentukan, perubahan 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 tarif tersebut modifikasi.
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 Memodifikasi tarif 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 Definisi Aturan Tarif. Catatan:
  • Batas karakter untuk kolom ini adalah 40 karakter.
  • Setiap tarif hanya dapat dikaitkan dengan satu aturan tarif.
  • Jika ada beberapa modifikasi yang menerapkan ID aturan tarif, ID aturan tarif yang terkecil secara leksikografis ditetapkan untuk tarif tersebut.
  • Jika ID ini tidak cocok dengan aturan tarif di definisi aturan tarif Anda ini, dianggap tidak memenuhi syarat.
Lihat artikel ini untuk mengetahui informasi tentang berbagai UI tarif khusus perlakuan.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Menimpa pengembalian dana tarif ke nilai yang ditentukan.

Saat menetapkan atribut, perhatikan hal-hal berikut:

  • Tindakan modifikasi ini sepenuhnya menulis ulang refundable tarif yang memenuhi syarat bukan hanya kolom yang telah diisi.
  • Jika available atau refundable_until_days adalah tidak ditetapkan, tarif tidak ditampilkan sebagai dapat dikembalikan dananya.
  • Jika available adalah 0 atau false, atribut lainnya diabaikan. Tarif tidak ditampilkan sebagai dapat dikembalikan meskipun salah satu atau kedua atribut lainnya ditetapkan.
  • Direkomendasikan untuk menyetel refundable_until_time; jika tidak disetel, waktu paling awal (tengah malam) akan digunakan.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Wajib) Tetapkan ke 1 atau true untuk menunjukkan apakah tarif memungkinkan refund; jika tidak, tetapkan ke 0 atau false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Diperlukan jika available adalah true) Menentukan jumlah hari sebelum check-in agar pengembalian dana penuh dapat diminta. Nilai refundable_until_days harus berupa bilangan bulat antara 0 dan 330, inklusif.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Direkomendasikan jika available adalah true) Menentukan waktu terakhir dalam sehari, pada waktu lokal hotel, yang permintaan pengembalian dana akan dipenuhi. Hal ini dapat digabungkan dengan refundable_until_days untuk ditentukan, untuk contoh, bahwa "pengembalian dana tersedia hingga pukul 16.00 dua hari sebelum check in". Jika refundable_until_time tidak ditetapkan, nilai ini secara default ke tengah malam.
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 tersebut diperlakukan seolah-olah tidak tersedia, terlepas dari apakah ada harga yang valid untuk anotasi.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Menentukan batas lama menginap yang dapat ditetapkan oleh perubahan tarif ini diterapkan. Perubahan tarif tidak diterapkan jika lama menginap di luar batas minimum dan maksimum.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Jumlah malam minimum menginap yang diizinkan agar perubahan tarif menjadi diterapkan. Jika tidak ditentukan, tidak ada batas minimum.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Jumlah malam maksimum menginap yang diizinkan agar perubahan tarif menjadi diterapkan. Jika tidak ditentukan, tidak ada batas maksimum.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Menentukan jumlah minimum tarif kamar harian (menggunakan ukuran yang lebih besar AmountBeforeTax atau AmountAfterTax) yang harus dilampaui agar perubahan tarif yang akan diterapkan.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Nilai yang harus dilampaui agar perubahan tarif dapat dilakukan diterapkan.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Penampung untuk daftar paket tarif yang diubah tarifnya berlaku. Jika <RatePlans> tidak ditentukan, maka tarifnya perubahan 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, sebagaimana didefinisikan dalam Transaksi (Data Properti), OTA_HotelRateAmountNotifRQ, dan OTA_HotelAvailabilityNotifRQ pesan, dan 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 keduanya <OTA_HotelRateAmountNotifRQ> dan <OTA_HotelAvailNotifRQ> pesan. Jumlah karakter maksimal yang diizinkan adalah 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Penampung untuk daftar jenis kamar yang menerapkan perubahan tarif. Perubahan tarif diterapkan ke setiap <RoomType> yang ditentukan. Jika <RoomTypes> tidak ditentukan, elemen perubahan tarif berlaku untuk semua kamar.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Menentukan jenis kamar. Jenis kamar didefinisikan dalam Elemen <RoomData> di Pesan Transaksi (Data Properti) dan saat ini direferensikan menggunakan nilai <RoomID>-nya. ( Nilai <RoomID> juga direferensikan oleh Atribut InvTypeCode di OTA_HotelRateAmountNotifRQ messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string ID unik untuk inventaris (jenis kamar). Nilai ini memetakan ke <RoomID> di pesan Transaksi (Data Properti). Jumlah karakter maksimal yang diizinkan adalah 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Penampung untuk satu atau beberapa rentang tanggal yang menentukan cara perubahan tarif diterapkan, misalnya untuk mengakomodasi harga musiman.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Menjelaskan cara penerapan perubahan tarif.

Nilai yang valid adalah:

  • all: Menerapkan perubahan tarif ke setiap malam pada itinerari jika semua tanggal di itinerari tumpang-tindih dengan tanggal menginap.
  • any: Menerapkan perubahan tarif ke semua malam pada itinerari jika ada tanggal dalam itinerari yang tumpang tindih dengan tanggal di rentang tanggal menginap.

Atribut ini harus selalu ditentukan.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Rentang tanggal yang menentukan tanggal 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 rentang tanggal mulai tidak terbatas secara efektif.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal tertentu. Tanggal ini harus sama dengan, atau setelah, start tanggal. Jika end tidak ditentukan, maka tanggal rentang tanggal akhir sebenarnya tidak terbatas.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditetapkan, semua hari diizinkan dalam rentang tanggal tersebut. Masing-masing karakter tertentu pada {i>string <i}menentukan hari. Misalnya, "MTWHF" menentukan hari kerja itu diizinkan dalam rentang tanggal tersebut.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Jika ditentukan, perubahan tarif hanya diterapkan jika pengguna yang berlokasi di salah satu negara yang ditentukan. Jika tidak ditentukan, tarif modifikasi diterapkan di mana pun lokasi pengguna.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Jenis spesifikasi UserCountries.

Nilai yang valid adalah include dan exclude.

Jika type UserCountry ditetapkan sebagai include, perubahan tarif akan berlaku untuk pengguna dari negara yang tercantum.

Jika type UserCountries adalah exclude, perubahan tarif berlaku untuk pengguna di luar negara yang tercantum.

Jika type UserCountries tidak disetel, statusnya akan diperlakukan sebagai include dan perubahan tarif berlaku untuk pengguna dari negara yang tercantum.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Menentukan negara pengguna yang diizinkan untuk perubahan 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 ISO 2 huruf kode negara. Selain itu, kode wilayah CLDR 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 perubahan tarif

Contoh berikut menunjukkan cara menghapus satu perubahan 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>

Hapus semua perubahan tarif

Contoh berikut menunjukkan cara menghapus semua perubahan 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>


Overlay semua perubahan tarif

Contoh berikut menunjukkan cara menempatkan <HotelRateModifications> untuk dengan satu atau beberapa perubahan tarif baru. Kapan action="overlay", semua perubahan tarif yang disimpan akan dihapus sebelum menyimpan perubahan 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 modifikasi

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

Element / @Attribute Kejadian Jenis Deskripsi
RateModifications 1 Complex element Elemen {i>root<i} yang menunjukkan keberhasilan atau masalah Pesan permintaan RateModifieds.
RateModificationsResponse / @timestamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
RateModificationsResponse / @id 1 string ID unik dari pesan RateModifieds terkait.
RateModificationsResponse / @partner 1 string Akun partner untuk pesan ini.
RateModificationsResponse / Success 0..1 Success Menunjukkan bahwa pesan RateModifieds berhasil diproses tanpa peringatan, error, atau kegagalan.

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

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

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

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

Jenis masalah yang dialami.

Nilai yang valid adalah warning, error, dan failure.

Contoh

Berhasil

Berikut adalah respons terhadap RateModifieds yang berhasil diproses untuk membuat pesan email baru.

<?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 RateModifieds yang tidak diproses karena terjadi 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>