Ücret Modifikasyonları

Genel bakış

Bu API, koşullar karşılandığında fiyatı ayarlama veya geri ödenebilirliği etkinleştirme gibi işlemleri bir ücrete dinamik olarak uygulamanın yollarını tanımlamanızı sağlar. Yalnızca en büyük indirimlere sahip uygun promosyonları uygulayabilen Promotions API'nin aksine bu API, belirli koşullar karşılandığında tüm işlemleri (son fiyatı sonuç olarak artırabilecek fiyat düzenlemeleri dahil) uygular.

İstekler

Söz dizimi

RateModifications mesajında şu söz dizimi kullanılır:

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

Öğeler ve özellikler

RateModifications mesajında aşağıdaki öğeler ve özellikler bulunur:

Öğe / @Özellik Yineleme sayısı Tür Açıklama
RateModifications 1 Complex element Ücret değişiklikleri mesajının kök öğesidir.
RateModifications / @partner 1 string Bu mesajın iş ortağı hesabıdır. Bu dize değeri, Hotel Center'ın Hesap ayarları sayfasında listelenen "İş ortağı anahtarı" değeridir.

Not: Birden fazla hesap için feed sağlayan bir arka ucunuz varsa bu değerin aynı hesap için <OTA_HotelRateAmountNotifRQ> ve <OTA_HotelAvailNotifRQ> mesajlarınızın <RequestorID> öğesinde belirtilen ID özellik değeriyle eşleşmesi gerekir.

RateModifications / @id 1 string Bu istek mesajının benzersiz tanımlayıcısıdır. Bu değer, yanıt mesajında döndürülür. İzin verilen karakterler a-z, A-Z, 0-9, _ (alt çizgi) ve - (kısa çizgi) şeklindedir.
RateModifications / @timestamp 1 DateTime Bu mesajın oluşturulma tarihi ve saatidir.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Bir tesise ait ücret değişiklikleri. Her ücret değişikliği tek bir tesis için geçerlidir.

Not: Aynı ücrete birden fazla ücret değişikliği uygulanabiliyorsa tüm değişiklikler uygulanır. Belirli bir sıra garantisi yoktur.

RateModifications / HotelRateModifications / @hotel_id 1 string Tesisin benzersiz tanımlayıcısıdır. Bu değer, Otel Listesi Feed'indeki <listing> öğesinde <id> kullanılarak belirtilen Otel Kimliği ile eşleşmelidir. Otel Kimliği, Hotel Center'da da listelenir.
RateModifications / HotelRateModifications / @action 0..1 enum

action belirtilmezse bu öğede yapılan değişiklikler bu otel için eklenir veya güncellenir. action="overlay" belirtilirse bu otel için önceden tanımlanmış tüm değişiklikler önce silinir. Ardından, burada belirtilen değişiklikler yazılır. action="overlay" kullanılıyorsa ve bu öğede herhangi bir değişiklik belirtilmezse bu otelle ilgili tüm değişiklikler silinir.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Bir tesis için tek bir ücret değişikliği.

Not: Ücret değişiklikleriyle ilgili hata ayıklamak zordur. Bu değişiklikleri yaparken dikkatli olmanızı öneririz. 200'den fazla ücret değişikliği gerektiren kullanım alanları için Teknik Hesap Yöneticinizle (THY) iletişime geçin.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Ücret değişikliğinin benzersiz tanımlayıcısı. İzin verilen maksimum karakter sayısı 40'tır. İzin verilen karakterler a-z, A-Z, 0-9, _ (alt çizgi), - (kısa çizgi) ve . (nokta) tuşlarına da basabilirsiniz.
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Belirtilmezse ve aynı id ile ücret değişikliği depolanmazsa bu ücret değişikliği depolanır. Aksi takdirde, belirtilmezse ve aynı id ile bir ücret değişikliği depolanırsa mevcut ücret değişikliği güncellenir.

Belirtilmişse değer "delete" olmalıdır. "delete" belirtilirse aynı id ile depolanan ücret değişikliği silinir. "delete" kullanırken <ItineraryRateModification> öğesine alt öğe eklemeyin. Ayrıca <HotelRateModifications action="overlay"/> ile birlikte "delete" kullanılmasına da izin verilmez.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Ücret değişikliğinin uygulanabilmesi için rezervasyonun ne zaman gerçekleşmesi gerektiğini tanımlayan bir veya daha fazla tarih aralığının kapsayıcısıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Ücret değişikliğinin uygulanabilmesi için rezervasyonun ne zaman yapılması gerektiğini belirten tarih aralığıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Tarih aralığının (girilen tarihler dahil) başlangıç tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, end tarihinden önce veya bu tarihle aynı olmalıdır. start belirtilmezse tarih aralığı, başlangıç tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Tarih aralığının (girilen tarihler dahil) bitiş tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, start tarihiyle aynı veya bu tarihten sonra olmalıdır. end belirtilmezse tarih aralığı, bitiş tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Tarih aralığında izin verilen günler. Belirtilmezse tarih aralığında tüm günlere izin verilir. Dizedeki her karakter bir gün belirtir. Örneğin, "MTWHF", tarih aralığında hafta içi günlerine izin verildiğini belirtir.

Geçerli karakterler şunlardır:

  • Pazartesi için M
  • Salı için T
  • Çarşamba için W
  • Perşembe için H
  • Cuma için F
  • Cumartesi için S
  • Pazar için U

Tüm karakter kombinasyonları geçerlidir.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Giriş tarihine göre rezervasyonun gerçekleşmesi gereken dönemi belirtir (tesisin saat dilimine göre). Örneğin, rezervasyon dönemi, check-in işleminden en az 7 gün önce olacak şekilde ayarlanabilir ancak en fazla 180 gün önce ayarlanabilir.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Ücret değişikliğinin uygulanabilmesi için rezervasyonun check-in işleminden minimum kaç gün önce yapılması gerektiğini belirtir. Belirtilmezse minimum değer yoktur.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Ücret değişikliğinin uygulanabilmesi için rezervasyonun check-in işleminden maksimum kaç gün önce yapılması gerektiğini belirtir. Belirtilmezse maksimum değer yoktur.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Ücret değişikliğinin uygulanabilmesi için giriş işleminin ne zaman yapılması gerektiğini tanımlayan bir veya daha fazla tarih aralığının kapsayıcısıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Ücret değişikliğinin uygulanabilmesi için check-in işleminin ne zaman yapılması gerektiğini belirten tarih aralığıdır. Bir veya daha fazla ücret değişikliğini siliyorsanız bu öğe gerekli değildir.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Tarih aralığının (girilen tarihler dahil) başlangıç tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, end tarihinden önce veya bu tarihle aynı olmalıdır. start belirtilmezse tarih aralığı, başlangıç tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Tarih aralığının (girilen tarihler dahil) bitiş tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, start tarihiyle aynı veya bu tarihten sonra olmalıdır. end belirtilmezse tarih aralığı, bitiş tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Tarih aralığında izin verilen günler. Belirtilmezse tarih aralığında tüm günlere izin verilir. Dizedeki her karakter bir gün belirtir. Örneğin, "MTWHF", tarih aralığında hafta içi günlerine izin verildiğini belirtir.

Geçerli karakterler şunlardır:

  • Pazartesi için M
  • Salı için T
  • Çarşamba için W
  • Perşembe için H
  • Cuma için F
  • Cumartesi için S
  • Pazar için U

Tüm karakter kombinasyonları geçerlidir.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Ücret değişikliğinin uygulanabilmesi için ne zaman çıkış yapılması gerektiğini tanımlayan bir veya daha fazla tarih aralığının kapsayıcısıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Ücret değişikliğinin uygulanabilmesi için ne zaman çıkış yapılması gerektiğini belirten tarih aralığıdır. Bir veya daha fazla ücret değişikliğini siliyorsanız bu öğe gerekli değildir.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Tarih aralığının (girilen tarihler dahil) başlangıç tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, end tarihinden önce veya bu tarihle aynı olmalıdır. start belirtilmezse tarih aralığı, başlangıç tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Tarih aralığının (girilen tarihler dahil) bitiş tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, start tarihiyle aynı veya bu tarihten sonra olmalıdır. end belirtilmezse tarih aralığı, bitiş tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Tarih aralığında izin verilen günler. Belirtilmezse tarih aralığında tüm günlere izin verilir. Dizedeki her karakter bir gün belirtir. Örneğin, "MTWHF", tarih aralığında hafta içi günlerine izin verildiğini belirtir.

Geçerli karakterler şunlardır:

  • Pazartesi için M
  • Salı için T
  • Çarşamba için W
  • Perşembe için H
  • Cuma için F
  • Cumartesi için S
  • Pazar için U

Tüm karakter kombinasyonları geçerlidir.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Ücret değişikliği için uygun olan kullanıcı cihazlarını listeleyen kapsayıcıdır. Belirtilirse ücret değişikliği yalnızca kullanıcı, listelenen cihazlardan biriyle eşleşirse uygulanır. Belirtilmemesi, ücret değişikliğinin uygulanmasını kısıtlamaz.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Ücret değişikliği için uygun olan bir kullanıcı cihazı türünü tanımlar.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Bir cihaz türü. Değer desktop, tablet veya mobile olmalıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

Belirtilen tüm koşulların karşılanması durumunda ücrete uygulanacak işlemler.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment AmountBeforeTax ve AmountAfterTax değerlerini belirtilen çarpanla çarparak hızı değiştirir
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Hem AmountBeforeTax hem de AmountAfterTax, bu değerle çarpılır.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Belirtilen ücret kuralı kimliğini uygulayarak ücreti değiştirir.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Bu kimlik, ücreti Ücret Kuralı Tanımlama dosyanızdaki bir tanımla eşleştirir. Not:
  • Bu alan için karakter sınırlaması 40 karakterdir.
  • Her ücret yalnızca tek bir ücret kuralıyla ilişkilendirilebilir.
  • Bir ücret kuralı kimliğini uygulayan birden fazla değişiklik varsa ücrete sözlüksel açıdan en küçük olan ücret kuralı kimliği atanır.
  • Bu kimlik, ücret kuralı tanım dosyanızdaki bir ücret kuralıyla eşleşmiyorsa uygun olarak kabul edilmez.
Farklı özel indirim kullanıcı arayüzü işlemleri hakkında bilgi edinmek için bu makaleyi inceleyin.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Belirtilen değere ücretin geri ödenebilirliğinin üzerine yazar.

Özellikleri ayarlarken aşağıdakileri göz önünde bulundurun:

  • Bu değiştirme işlemi, yalnızca doldurulan alanları değil, uygun bir ücretin Geri Ödenebilir ayarını da tamamen yeniden yazar.
  • available veya refundable_until_days ayarlanmazsa ücret geri ödenebilir olarak gösterilmez.
  • available değeri, 0 veya false ise diğer özellikler yoksayılır. Diğer özelliklerden biri veya her ikisi de ayarlanmış olsa bile ücret geri ödenebilir olarak gösterilmez.
  • refundable_until_time politikasının ayarlanması önerilir. Ayarlanmazsa en erken saat (gece yarısı) kullanılır.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Zorunlu) Ücretin eksiksiz şekilde geri ödenebildiğini belirtmek için 1 veya true olarak ayarlayın. Aksi takdirde 0 veya false olarak ayarlayın.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (available değeri true ise zorunludur) Eksiksiz geri ödeme isteğinin, check-in tarihinden kaç gün önce yapılabileceğini belirtir. refundable_until_days değeri, 0 ile 330 arasında (0 ve 330 dahil) bir tam sayı olmalıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (available değeri, true ise önerilir) Eksiksiz geri ödeme isteğinin dikkate alındığı günün son saatini (otelin yerel saatine göre) belirtir. Örneğin, "geri ödemelerin check-in'den iki gün önce saat 16:00'ya kadar alınabileceğini" belirtmek için refundable_until_days ile birleştirilebilir. refundable_until_time ayarlanmazsa değer varsayılan olarak gece yarısı olur.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Belirtilen değere ücretin müsaitlik durumunun üzerine yazar. Yalnızca ücretin unavailable olarak ayarlanmasını destekliyoruz.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum status="unavailable" ise fiyat, geçerli bir fiyatın mevcut olup olmadığına bakılmaksızın kullanılamıyormuş gibi değerlendirilir.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Bu ücret değişikliğinin uygulanabileceği konaklama süresi sınırlarını belirler. Konaklama süresi minimum ve maksimum sınırların dışında olduğunda ücret değişikliği uygulanmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Ücret değişikliğinin uygulanması için konaklama süresinde izin verilen minimum gece sayısıdır. Belirtilmezse minimum değer yoktur.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Ücret değişikliğinin uygulanması için konaklama süresinde izin verilen maksimum gece sayısıdır. Belirtilmezse maksimum değer yoktur.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Ücret değişikliğinin uygulanabilmesi için aşılması gereken günlük oda fiyatlarının (AmountBeforeTax veya AmountAfterTax değerlerinin daha büyük olanı kullanılarak) minimum toplamını belirtir.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Ücret değişikliğinin uygulanabilmesi için aşılması gereken değerdir.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Ücret değişikliğinin uygulandığı ücret planları listesinin kapsayıcısıdır. <RatePlans> belirtilmezse ücret değişikliği tüm ücret planları için geçerli olur.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Ücret planını belirtir. Ücret planı; Transaction (Tesis Verileri), OTA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ mesajlarında tanımlanan ve PackageID tarafından tanımlanan paket, ücret ve müsaitlik durumunun kombinasyonuyla tanımlanır.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Ücret planının benzersiz tanımlayıcısıdır. Bu değer, Transaction (Tesis Verileri) mesajındaki <PackageData> öğesinde ve hem <OTA_HotelRateAmountNotifRQ> hem de <OTA_HotelAvailNotifRQ> mesajlarının <StatusApplicationControl> öğesindeki RatePlanCode özelliğinde bulunan PackageID değeriyle eşlenir. İzin verilen maksimum karakter sayısı 50'dir.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Ücret değişikliğinin uygulandığı oda türleri listesinin kapsayıcısıdır. Ücret değişikliği, belirtilen her <RoomType> öğesine uygulanır. <RoomTypes> belirtilmezse ücret değişikliği tüm odalar için geçerli olur.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Oda türünü belirtir. Oda türü, Transaction (Tesis Verileri) mesajındaki <RoomData> öğesinde tanımlanır ve <RoomID> değeri kullanılarak belirtilir. (<RoomID> değerine, OTA_HotelRateAmountNotifRQ mesajlarındaki InvTypeCode özelliği tarafından da referans verilir.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string Envanterin benzersiz tanımlayıcısıdır (oda türü). Bu değer, Transaction (Tesis Verileri) mesajlarındaki <RoomID> ile eşlenir. İzin verilen maksimum karakter sayısı 50'dir.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Ücret değişikliğinin nasıl uygulanacağını (ör. sezonluk fiyatlandırmaya uyum sağlamak için) belirleyen bir veya daha fazla tarih aralığının kapsayıcısıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Ücret değişikliğinin nasıl uygulanması gerektiğini açıklar.

Valid values are:

  • all: Seyahat planındaki tüm tarihler konaklama tarihleriyle çakışıyorsa fiyat değişikliğini seyahat planındaki her geceye uygular.
  • any: Seyahat planındaki herhangi bir tarih, konaklama tarihleri aralığındaki bir tarihle çakışıyorsa fiyat değişikliğini seyahat planındaki tüm gecelere uygular.

Bu özellik her zaman belirtilmelidir.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Ücret değişikliğinin uygulanacağı tarihleri belirten tarih aralığıdır.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Tarih aralığının (girilen tarihler dahil) başlangıç tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, end tarihinden önce veya bu tarihle aynı olmalıdır. start belirtilmezse tarih aralığı, başlangıç tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Tarih aralığının (girilen tarihler dahil) bitiş tarihidir (tesisin bulunduğu saat dilimine göre). Bu tarih, start tarihiyle aynı veya bu tarihten sonra olmalıdır. end belirtilmezse tarih aralığı, bitiş tarihi açısından etkin bir şekilde sınırlandırılmaz.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Tarih aralığında izin verilen günler. Belirtilmezse tarih aralığında tüm günlere izin verilir. Dizedeki her karakter bir gün belirtir. Örneğin, "MTWHF", tarih aralığında hafta içi günlerine izin verildiğini belirtir.

Geçerli karakterler şunlardır:

  • Pazartesi için M
  • Salı için T
  • Çarşamba için W
  • Perşembe için H
  • Cuma için F
  • Cumartesi için S
  • Pazar için U

Tüm karakter kombinasyonları geçerlidir.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Belirtilirse ücret değişikliği yalnızca kullanıcı belirtilen ülkelerden birinde bulunuyorsa uygulanır. Belirtilmezse ücret değişikliği, kullanıcının konumundan bağımsız olarak uygulanır.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum UserCountries spesifikasyonunun türü.

Geçerli değerler include ve exclude değerleridir.

Usercountries type değeri include olarak ayarlanırsa ücret değişikliği, listelenen ülkelerdeki kullanıcılara uygulanır.

UserCountry type değeri exclude ise ücret değişikliği, listelenen ülkelerin dışındaki kullanıcılar için geçerli olur.

Usercountries type ayarlanmazsa include olarak değerlendirilir ve ücret değişikliği, listelenen ülkelerdeki kullanıcılara uygulanır.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Ücret değişikliği için izin verilen kullanıcı ülkesini belirtir.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string DE veya FR gibi bir CLDR ülke kodu. Bazı ülkelerde CLDR ülke kodunun 2 harfli ISO ülke koduyla aynı olmadığını unutmayın. Ayrıca, CLDR bölge kodları desteklenmez.

Örnekler

Temel mesaj

Aşağıdaki örnekte temel bir RateModifications" mesajı gösterilmektedir:

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


Bir ücret değişikliğini sil

Aşağıdaki örnekte, bir tesis için bir ücret değişikliğinin nasıl silineceği gösterilmektedir:

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

Tüm ücret değişikliklerini sil

Aşağıdaki örnekte, bir mülk için tüm ücret değişikliklerinin nasıl silineceği gösterilmektedir:

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


Tüm ücret değişikliklerini üst bilgilere yerleştir

Aşağıdaki örnekte, bir veya daha fazla yeni ücret değişikliğiyle mülk için <HotelRateModifications> değerinin nasıl yerleştirileceği gösterilmektedir. action="overlay" olduğunda geçerli mesajda belirtilen ücret değişiklikleri depolanmadan önce, depolanan tüm ücret değişiklikleri silinir:

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

Birden çok değişiklik işlemi

Aşağıdaki örnek, tek seferde birden fazla değişiklik işleminin nasıl gerçekleştirileceğini gösterir:

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


Kullanıcı ülkeleri için ücret planını devre dışı bırakma

Aşağıdaki örnekte, ücret planının yalnızca Japon (JP) kullanıcılarla nasıl sınırlandırılacağı gösterilmektedir:

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


Yanıtlar

Söz dizimi

RateModificationsResponse mesajında şu söz dizimi kullanılır:

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

Öğeler ve özellikler

RateModificationsResponse mesajında aşağıdaki öğeler ve özellikler bulunur:

Öğe / @Özellik Yineleme sayısı Tür Açıklama
RateModifications 1 Complex element Alınan RateModifications istek mesajının başarısını veya sorunlarını gösteren kök öğedir.
RateModificationsResponse / @timestamp 1 DateTime Bu mesajın oluşturulma tarihi ve saatidir.
RateModificationsResponse / @id 1 string İlişkilendirilmiş RateModifications mesajındaki benzersiz tanımlayıcı.
RateModificationsResponse / @partner 1 string Bu mesajın iş ortağı hesabıdır.
RateModificationsResponse / Success 0..1 Success RateModifications mesajının uyarı, hata veya hata olmadan başarıyla işlendiğini belirtir.

Her mesajda <Success> veya <Issues> bulunur.

RateModificationsResponse / Issues 0..1 Issues RateModifications mesajı işlenirken karşılaşılan bir veya daha fazla sorun için kullanılan bir kapsayıcıdır.

Her mesajda <Success> veya <Issues> bulunur.

RateModificationsResponse / Issues / Issue 1..n Issue RateModifications mesajı işlenirken karşılaşılan uyarı, hata veya sorunun açıklamasıdır. Bu sorunlarla ilgili ayrıntılar Feed Durumu Hata Mesajları konusunda bulunabilir.
RateModificationsResponse / Issues / Issue / @code 1 integer Sorunun tanımlayıcısı.
RateModificationsResponse / Issues / Issue / @status 1 enum

Karşılaşılan sorunun türü.

Geçerli değerler warning, error ve failure'dir.

Örnekler

Başarılı

Aşağıda, başarıyla işlenmiş bir RateModifications mesajına yanıt yer almaktadır.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</RateModificationsResponse>

Sorunlar

Aşağıda, hatalar nedeniyle işlenmemiş bir RateModifications mesajına yanıt yer almaktadır.

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