OTA_HotelRateAmountNotifRQ

Permintaan

Sintaksis

Pesan OTA_HotelRateAmountNotifRQ menggunakan sintaksis berikut:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="message_ID"
                            TimeStamp="timestamp"
                            Version="3.0"
                            NotifType="[Overlay|Delta|Remove]"
                            NotifScopeType="[ProductRate]">
  <POS>
    <Source>
      <RequestorID ID="partner_key"/>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"
                                RatePlanType="[26]" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="float"
                            AmountAfterTax="float"
                            CurrencyCode="currency"
                            NumberOfGuests="integer"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="float"
                                   AgeQualifyingCode="[10|8]"
                                   MaxAge="integer"/>
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Elemen dan atribut

Pesan OTA_HotelRateAmountNotifRQ memiliki elemen dan atribut berikut:

Elemen / @Atribut Kejadian Jenis Deskripsi
OTA_HotelRateAmountNotifRQ 1 Complex element Elemen root untuk pesan tarif.
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 string (URI) Namespace XML.
OTA_HotelRateAmountNotifRQ / @EchoToken 1 string ID unik untuk pesan permintaan ini. Nilai ini ditampilkan di pesan respons. Karakter yang diizinkan adalah a-z, A-Z, 0-9, _ (underscore), dan - (dash).
OTA_HotelRateAmountNotifRQ / @TimeStamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
OTA_HotelRateAmountNotifRQ / @Version 1 decimal Versi pesan OpenTravel.
OTA_HotelRateAmountNotifRQ / @NotifType 0..1 enum

Jenis notifikasi yang akan diterapkan ke setiap <RateAmountMessage>.

Nilai yang valid adalah:

Untuk memahami cara kerja atribut ini, lihat contoh.

  • Overlay: Menghapus semua tarif per tamu untuk jenis kamar, paket tarif, dan tanggal yang ditentukan di <StatusApplicationControl>, lalu menggantinya dengan tarif baru.
  • Remove: Menghapus semua tarif per tamu yang ada untuk jenis kamar, paket tarif, dan tanggal yang ditentukan di <StatusApplicationControl>.
  • Delta: (nilai default jika NotifType tidak ditentukan) Menambahkan atau memperbarui tarif per tamu yang ada untuk jenis kamar, paket tarif, dan tanggal yang ditentukan di <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Cakupan NotifType yang akan diterapkan ke setiap <RateAmountMessage>.

Nilai yang valid adalah:

  • ProductRate: (nilai default jika NotifScopeType tidak ditentukan) NotifType berlaku untuk produk, yaitu kombinasi jenis kamar (InvTypeCode) dan paket tarif (RatePlanCode).
OTA_HotelRateAmountNotifRQ / POS 0..1 POS Container untuk menentukan akun partner untuk pesan ini (biasanya digunakan jika backend Anda menyediakan feed harga untuk beberapa akun partner).
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Wajib jika <POS> ada. Container untuk <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Wajib jika <POS> ada. Menentukan akun partner.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 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 partner pesan Transaksi (Data Properti) dan nilai atribut ID di elemen <RequestorID> pesan <OTA_HotelAvailNotifRQ> untuk akun yang sama.

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages Kumpulan elemen <RateAmountMessage> yang menentukan tarif.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 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.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage Container untuk menetapkan harga untuk tarif kamar (kombinasi jenis kamar dan paket tarif di seluruh rentang tanggal).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl 1 StatusApplicationControl Menentukan rentang tanggal, serta ID untuk jenis kamar (InvTypeCode) dan paket tarif (RatePlanCode).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start 1 Date Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Harus sama atau lebih besar dari nilai start. Jika start dan end sama, maka pembaruan berlaku untuk tanggal tersebut. Perhatikan bahwa Google mendukung data hingga tiga tahun.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 boolean Tetapkan ke true atau 1 untuk menyertakan hari Senin secara eksplisit.

Jika ditetapkan ke true, hari lain dalam seminggu yang tidak ditetapkan secara eksplisit ke true akan dikecualikan (sebenarnya, hari tersebut difilter dari tanggal dalam Start dan End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Tetapkan ke true atau 1 untuk menyertakan hari Selasa secara eksplisit.

Jika ditetapkan ke true, hari lain dalam seminggu yang tidak ditetapkan secara eksplisit ke true akan dikecualikan (sebenarnya, hari tersebut difilter dari tanggal dalam Start dan End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Tetapkan ke true atau 1 untuk menyertakan hari Rabu secara eksplisit.

Jika ditetapkan ke true, hari lain dalam seminggu yang tidak ditetapkan secara eksplisit ke true akan dikecualikan (sebenarnya, hari tersebut difilter dari tanggal dalam Start dan End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Tetapkan ke true atau 1 untuk menyertakan hari Kamis secara eksplisit.

Jika ditetapkan ke true, hari lain dalam seminggu yang tidak ditetapkan secara eksplisit ke true akan dikecualikan (sebenarnya, hari tersebut difilter dari tanggal dalam Start dan End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean Tetapkan ke true atau 1 untuk menyertakan hari Jumat secara eksplisit.

Jika ditetapkan ke true, hari lain dalam seminggu yang tidak ditetapkan secara eksplisit ke true akan dikecualikan (sebenarnya, hari tersebut difilter dari tanggal dalam Start dan End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 boolean Tetapkan ke true atau 1 untuk menyertakan hari Sabtu secara eksplisit.

Jika ditetapkan ke true, hari lain dalam seminggu yang tidak ditetapkan secara eksplisit ke true akan dikecualikan (sebenarnya, hari tersebut difilter dari tanggal dalam Start dan End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean Tetapkan ke true atau 1 untuk menyertakan hari Minggu secara eksplisit.

Jika ditetapkan ke true, hari lain dalam seminggu yang tidak ditetapkan secara eksplisit ke true akan dikecualikan (sebenarnya, hari tersebut difilter dari tanggal dalam Start dan End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 1 string ID unik untuk inventaris (jenis kamar). Nilai ini dipetakan ke <RoomID> di pesan Transaksi (Data Properti).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string ID unik untuk paket tarif. ID ini dipetakan ke <PackageID> di pesan Transaksi (Data Properti). Paket tarif ditentukan lebih lanjut dan direferensikan di <StatusApplicationControl> di pesan <OTA_HotelRateAmountNotifRQ> dan <OTA_HotelAvailNotifRQ>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType 0..1 string ID yang menunjukkan jenis model penetapan harga ARI yang berlaku untuk pembaruan harga ini. Ini hanya boleh ditentukan, menggunakan nilai 26, saat menggunakan model penetapan harga berbasis LOS. Pengecualian atribut ini menunjukkan bahwa ini adalah update harga per tanggal.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Container untuk kumpulan elemen <Rate>. Jika NotifType adalah "Remove", elemen ini tidak boleh ditentukan. Jika tidak, elemen ini harus ditentukan hanya sekali.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Container untuk kumpulan elemen <BaseByGuestAmts>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit 0..1 String Satuan yang digunakan untuk menentukan lama menginap. Satu-satunya nilai yang didukung adalah "Day", yang berarti durasi menginap akan ditentukan dalam hari.

Untuk menggunakan harga berbasis LOS, RateTimeUnit dan UnitMultiplier harus ditentukan. Jika tidak, keduanya tidak boleh ditentukan.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier 0..1 Integer Jumlah RateTimeUnits yang membentuk durasi menginap untuk tarif ini.

Misalnya, jika nilai RateTimeUnits adalah "Day", UnitMultiplier bernilai 5 menunjukkan bahwa tarif yang ditentukan dalam objek Rate ini berlaku untuk setiap malam dari masa inap 5 malam.

Tarif hunian yang ditentukan dalam objek Rate ini akan dikalikan dengan UnitMultiplier (lama menginap) untuk mendapatkan total harga menginap.

Untuk menggunakan harga berbasis LOS, RateTimeUnit dan UnitMultiplier harus ditentukan. Jika tidak, keduanya tidak boleh ditentukan.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts Container untuk kumpulan biaya dasar.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt 1..n BaseByGuestAmt Menentukan harga kamar dalam mata uang yang ditentukan. Harga dapat ditentukan per tamu dengan menggunakan beberapa elemen <BaseByGuestAmt>, masing-masing dengan nilai yang berbeda untuk NumberOfGuests. Jika tidak, harga berlaku untuk jumlah maksimum tamu yang ditentukan oleh NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

Harga harian tarif kamar sebelum pajak dan biaya.

AmountBeforeTax dan AmountAfterTax dapat ditentukan. Jika AmountBeforeTax tidak ditentukan, maka AmountAfterTax harus ditentukan. Jika AmountBeforeTax ditentukan dan AmountAfterTax tidak ditentukan, maka pajak dan biaya harus ditentukan di pesan <TaxFeeInfo>.

Jika Anda menggunakan promosi, diskon akan diterapkan ke AmountBeforeTax; persentase diskon juga diterapkan pada AmountAfterTax. Karena cara ini tidak cocok dengan beberapa struktur pajak, kami sangat menyarankan agar Anda hanya menentukan AmountBeforeTax di sini serta menggunakan <TaxFeeInfo> untuk menentukan pajak dan biaya.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float Harga harian tarif kamar setelah pajak dan biaya yang berlaku disertakan. Jika AmountAfterTax ditentukan, maka pesan <TaxFeeInfo> per properti yang terpisah tidak perlu dikirim. Atribut ini dapat digunakan bersama dengan AmountBeforeTax untuk memberikan tarif dasar dan total yang dapat ditampilkan kepada pengguna di wilayah tertentu.

Peringatan: Jika Anda menggunakan promosi, kami sangat menyarankan agar Anda tidak menggunakan jumlah AmountAfterTax. Jika ingin menggunakan diskon, tentukan pajak dan biaya dengan menggunakan pesan <TaxFeeInfo>. Diskon Anda kemudian akan diterapkan ke jumlah AmountBeforeTax.

Catatan: Jika AmountBeforeTax tidak ditentukan, maka AmountAfterTax harus ditentukan.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode 1 enum Kode karakter alfa ISO 4217 (3) untuk unit uang tertentu.

Lihat daftar mata uang yang didukung.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 integer Jumlah maksimum tamu yang dapat diakomodasi oleh tarif ini. Setelan defaultnya adalah 2 tamu jika tidak disediakan.

Perhatikan bahwa jika <AdditionalGuestAmounts> berisi biaya untuk anak-anak, NumberOfGuests hanya merujuk pada orang dewasa. Jika <AdditionalGuestAmounts> tidak ditentukan, atau tidak berisi biaya untuk anak-anak, NumberOfGuests mengacu pada jumlah total tamu termasuk orang dewasa dan anak-anak.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts Container untuk kumpulan biaya bagi tamu tambahan.

Sintaksis ini berguna jika tarif tambahan tamu atau anak berubah berdasarkan tanggal. Pertimbangkan untuk menggunakan pesan ExtraGuestCharges yang lebih efisien jika jumlah ini dapat ditentukan secara statis di tingkat properti.

Jumlah tamu tambahan diterapkan sebagai berikut:
  • Tarif ini diterapkan di atas tarif hunian dasar. Tingkat hunian dasar adalah tingkat hunian tertinggi, yang ditentukan dalam <BaseByGuestAmts>, yang kurang dari atau sama dengan jumlah orang dewasa dalam penelusuran pengguna.
  • Aturan ini diterapkan selama jumlah tamu dalam penelusuran pengguna berada dalam kapasitas ruangan.
  • <AdditionalGuestAmounts> selalu mengganti jumlah tambahan yang ditentukan sebelumnya dengan jumlah baru saat NotifType adalah Delta atau Overlay.
  • <AdditionalGuestAmounts> dapat dikirim secara terpisah dari tarif dasar hanya jika NotifType adalah Delta. <BaseByGuestAmts>harus ditentukan jika NotifType adalah Overlay.
  • Elemen <AdditionalGuestAmounts> kosong dengan NotifType yang ditetapkan ke Delta akan menghapus jumlah tambahan yang ada tanpa memengaruhi tarif dasar.
  • Harga diterapkan menggunakan mata uang yang ditentukan dalam <BaseByGuestAmt>.

Misalnya, anggap tarif dasar ditentukan untuk 1 dan 2 orang dewasa.

  • Jika pengguna menelusuri 3 orang dewasa, tarif untuk jumlah tamu dua orang akan dipilih sebagai tarif dasar, dan jumlah tamu tambahan untuk 1 orang dewasa akan diterapkan di atasnya.
  • Jika pengguna menelusuri 1 dewasa dan 2 anak, tarif hunian tunggal akan dipilih sebagai tarif dasar, dan jumlah tambahan akan diterapkan di atasnya, untuk dua anak.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount Menentukan harga berdasarkan jenis tamu, yang ditentukan melalui AgeQualifyingCode dan, jika berlaku, usia tamu yang ditentukan melalui MaxAge.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum Menentukan jenis tamu tambahan, baik dewasa maupun anak-anak. Opsi yang valid adalah:
  • 10: Dewasa.
  • 8: Anak.

AgeQualifyingCode dapat ditetapkan ke 10 untuk paling banyak satu elemen AdditionalGuestAmount.

MaxAge harus ditentukan jika AgeQualifyingCode adalah 8.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer MaxAge harus ditentukan jika AgeQualifyingCode adalah 8. Tidak boleh ditentukan jika AgeQualifyingCode adalah 10.

MaxAge harus berupa bilangan bulat antara 0 dan 17.

Menentukan nilai 0 akan menonaktifkan penghuni turunan.

Nilai yang lebih besar dari 17 akan diperlakukan sebagai nilai maksimum yang diterima, yaitu 17.

Beberapa rentang usia anak dapat ditentukan melalui elemen AdditionalGuestAmount yang terpisah. Rentang usia harus berdekatan dan tidak tumpang-tindih.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float Jumlah sebelum pajak dan biaya ditambahkan ke tarif dasar untuk setiap tamu tambahan.

Pajak dan biaya yang bergantung pada usia penghuni harus ditentukan melalui elemen <AgeBrackets> dalam pesan <TaxFeeInfo>.

Contoh

Bagian ini memberikan contoh kode yang menjelaskan cara:

Saat Anda menetapkan nilai add, overlay, atau remove, rentang tanggal dapat sama atau berbeda, bergantung pada sasaran Anda. Misalnya, Anda dapat menggunakan overlay untuk menetapkan hanya beberapa minggu untuk liburan bulan Desember, bukan seluruh rentang yang ditetapkan untuk pesan "Tambahkan tarif". Tindakan ini akan menggantikan tingkat hunian untuk periode ini saja.

Harga per tanggal

Untuk kamar dan paket tarif tertentu, dapat ada maksimum 50 tingkat hunian per properti. Jika tarif sama untuk semua jumlah tamu, Anda cukup mengirimkan jumlah tamu maksimum dengan harga yang diperlukan. Dengan melakukannya, Google menyimpulkan bahwa hunian yang lebih rendah juga menerima tarif dasar yang sama.

Menyiapkan tarif dasar dan tarif total

Contoh 1

Tarif dasar (tanpa pajak atau biaya) untuk jumlah tamu default (dua). Dalam model ini, pajak dan biaya untuk properti harus ditentukan menggunakan pesan <TaxFeeInfo>. Tarif dasar akan terlihat lebih jelas bagi pengguna yang menelusuri dari wilayah tertentu.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Contoh 2

Tarif dasar dan total untuk jumlah tamu default (dua). Dalam model ini, pajak dan biaya tidak boleh ditentukan secara terpisah menggunakan pesan <TaxFeeInfo>. Tarif dasar akan terlihat lebih jelas bagi pengguna yang menelusuri dari wilayah tertentu.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Contoh 3

Tarif total (dengan pajak dan biaya) untuk beberapa jumlah tamu. Dalam model ini, pajak dan biaya tidak boleh ditentukan secara terpisah menggunakan pesan <TaxFeeInfo>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Contoh 4

Tarif dasar dan total untuk beberapa jenis kamar dan paket tarif di seluruh rentang tanggal yang berbeda.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-01"
                                End="2020-05-31"
                                InvTypeCode="RoomID_2"
                                RatePlanCode="PackageID_2"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            AmountAfterTax="220.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Menambahkan, menempatkan, dan menghapus tarif

Ada batas 5.000 produk—kombinasi jenis kamar dan paket—per properti. Gunakan jenis notifikasi Overlay atau Remove untuk menghapus produk yang ditentukan sebelumnya.

Menambahkan tarif

Tetapkan NotifType ke Delta untuk menambahkan tarif per jumlah tamu untuk RoomID_1 dan PackageID_1 antara 20-10-2021 dan 31-12-2021. Perhatikan bahwa Google mendukung data hingga tiga tahun.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountBeforeTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Tarif overlay

Tetapkan NotifType ke Overlay untuk menghapus semua tarif per jumlah tamu untuk RoomID_1 dan PackageID_1 antara 20-10-2021 dan 31-12-2021 dan menggantinya dengan tarif per jumlah tamu yang baru ditentukan.

Misalnya, jika pesan ini dikirim setelah pesan "Tambahkan tarif", tarif jumlah tamu 1, 2, dan 3 akan dihapus, dan hanya tarif jumlah tamu 1 baru yang akan disimpan. Anda juga dapat menetapkan rentang tanggal yang lebih singkat (misalnya: 2021-12-20 dan 2021-12-31) untuk mengganti hanya sebagian tarif hunian pada tanggal tertentu, seperti untuk hari libur.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Menghapus tarif

Tetapkan NotifType ke Remove untuk menghapus semua tarif per jumlah tamu untuk RoomID_1 dan PackageID_1 antara 20-10-2021 dan 31-12-2021.

Misalnya, jika pesan ini dikirim setelah salah satu pesan contoh lainnya, tidak ada tarif per jumlah tamu yang akan disimpan.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Menambahkan, menempatkan, dan menghapus jumlah tamu tambahan

Menambahkan jumlah

Tetapkan NotifType ke Delta untuk menambahkan tarif dasar untuk jumlah tamu 1 dan 2, dan jumlah tamu tambahan, untuk RoomID_1 dan PackageID_1 antara 20-10-2021 dan 31-12-2021.

Jumlah tamu tambahan akan diterapkan di atas tarif dasar yang akan ditentukan oleh jumlah tamu dalam penelusuran pengguna. Jumlah pengguna yang ditentukan harus berada dalam kapasitas RoomID_1.

Dalam contoh ini, jumlah tamu tambahan akan diterapkan sebagai:

  • Rp50.000 untuk anak-anak dalam rentang usia 0 hingga 10 tahun (inklusif).
  • Rp100.000 untuk anak-anak dalam rentang usia 11 hingga 17 tahun (inklusif).
  • $20 untuk orang dewasa.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
            <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
            <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Jumlah overlay

Tetapkan NotifType ke Overlay untuk menghapus semua tarif per jumlah tamu dan semua jumlah tamu tambahan untuk RoomID_1 dan PackageID_1 antara 20-10-2021 dan 31-12-2021, lalu menggantinya dengan tarif per jumlah tamu dan jumlah tambahan yang baru ditentukan.

Misalnya, jika pesan ini dikirim setelah pesan "Tambahkan tarif", tarif jumlah tamu dasar 1 dan 2 akan dihapus, dan hanya tarif jumlah tamu dasar 1 baru yang akan disimpan. Set sebelumnya dari jumlah tamu tambahan akan dihapus, dan hanya set jumlah baru yang akan disimpan. Jumlah tamu tambahan kini akan menggunakan tarif hunian 1 baru sebagai tarif dasar. Perhatikan bahwa setelah update ini, tidak ada biaya tamu tambahan yang ditentukan untuk anak-anak.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Menghapus jumlah

Tetapkan NotifType ke Delete untuk menghapus semua tarif dasar per jumlah tamu, dan semua jumlah tamu tambahan untuk RoomID_1 dan PackageID_1 antara 20-10-2021 dan 31-12-2021.

Misalnya, jika pesan ini dikirim setelah salah satu pesan contoh lainnya, tidak ada tarif dasar per jumlah tamu, atau jumlah tamu tambahan yang akan disimpan.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Menghapus hanya jumlah tamu tambahan

Tetapkan NotifType ke Delta dengan elemen <AdditionalGuestAmounts> kosong untuk menghapus semua jumlah tamu tambahan untuk RoomID_1 dan PackageID_1 tanpa memengaruhi tarif dasar antara 20-10-2021 dan 31-12-2021.

Misalnya, jika pesan ini dikirim setelah salah satu pesan contoh lainnya, hanya jumlah dasar yang akan disimpan.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <AdditionalGuestAmounts/>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Harga berbasis LOS

Menyiapkan tarif berbasis LOS

Contoh 1

Tetapkan tarif untuk masa inap 1, 2, dan 3 malam mulai 18-05-2020. Total tarif untuk menginap 1, 2, dan 3 malam dalam contoh ini adalah $100, $180, dan $240.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="1" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="2" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="90.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Menambahkan, menempatkan, dan menghapus tarif berbasis LOS

Tambahkan lama menginap

Dengan harga berbasis LOS, operasi Delta memungkinkan tarif diperbarui secara bertahap untuk rentang tanggal check-in yang ditunjukkan dalam <StatusApplicationControl> dan untuk semua durasi menginap yang ditunjukkan oleh UnitMultiplier setiap elemen turunan Rate.

Untuk setiap tanggal check-in dan lama menginap yang berlaku, semua tarif hunian harus ditentukan.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Menempatkan lama menginap

Dengan harga berbasis LOS, operasi Overlay menggantikan tarif untuk semua durasi menginap produk dan rentang tanggal check-in yang ditunjukkan dalam <StatusApplicationControl>.

Dengan pesan ini, tarif per tamu untuk semua lama menginap pada tanggal kedatangan yang ditentukan akan dihapus dan diganti dengan tarif dua tamu yang hanya ditentukan untuk lama menginap 3.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Menghapus lama menginap

Dengan harga berbasis LOS, operasi Remove menghapus tarif untuk semua lama menginap produk dan rentang tanggal check in yang ditunjukkan dalam <StatusApplicationControl>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Respons

Sintaksis

Pesan OTA_HotelRateAmountNotifRS menggunakan sintaksis berikut:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                            TimeStamp="timestamp"
                            EchoToken="echo_token"
                            Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>

Elemen dan atribut

Pesan OTA_HotelRateAmountNotifRS memiliki elemen dan atribut berikut:

Elemen / @Atribut Kejadian Jenis Deskripsi
OTA_HotelRateAmountNotifRS 1 Complex element Elemen root untuk respons terhadap pesan ketersediaan.
OTA_HotelRateAmountNotifRS / @TimeStamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
OTA_HotelRateAmountNotifRS / @EchoToken 1 string ID unik dari pesan OTA_HotelRateAmountNotifRQ yang terkait.
OTA_HotelRateAmountNotifRS / Success 0..1 Success Menunjukkan bahwa pesan OTA_HotelRateAmountNotifRQ berhasil diproses.

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

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors Container untuk satu atau beberapa masalah yang ditemukan saat memproses pesan OTA_HotelRateAmountNotifRQ.

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

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error Deskripsi error yang dialami saat memproses pesan OTA_HotelRateAmountNotifRQ. Detail tentang error ini dapat ditemukan di Pesan Error Status Feed.
OTA_HotelRateAmountNotifRS / Errors / Error / @Type 1 integer OpenTravel Alliance EWT (Jenis Peringatan Error) yang terkait dengan error. Hanya nilai 12 (Processing exception) yang digunakan.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer OpenTravel Alliance ERR (Kode Error) yang terkait dengan error. Hanya nilai 450 (Unable to process) yang digunakan.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 enum Status permintaan asli. Hanya nilai NotProcessed yang digunakan.
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText 1 string ID Google untuk masalah. Detail tentang error ini dapat ditemukan di Pesan Error Status Feed.

Contoh

Berhasil

Berikut adalah respons terhadap pesan OTA_HotelRateAmountNotifRQ yang berhasil diproses.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelRateAmountNotifRS>

Error

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

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>