Genel Bakış
Bu API, koşullar karşılandığında fiyatı ayarlama veya geri ödeme özelliğini etkinleştirme gibi işlemleri bir ücrete dinamik olarak uygulamanın yollarını tanımlamanıza olanak tanır. Yalnızca en yüksek indirimleri içeren uygun promosyonları uygulayabilen Promosyonlar API'sinin aksine bu API, belirli koşullar karşılandığında fiyat ayarlamaları da dahil olmak üzere tüm işlemleri uygular. Bu ayarlamalar, nihai fiyatı artırabilir.
İ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 | Bir ücret değişikliği mesajının kök öğesidir. |
| RateModifications / @partner | 1 | string | Bu mesajın iş ortağı hesabı. 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 genelinde |
| 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 fiyat değişiklikleri. Her fiyat 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 garanti edilmez. |
| RateModifications / HotelRateModifications / @hotel_id | 1 | string | Tesisin benzersiz tanımlayıcısı. 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 |
|
| RateModifications / HotelRateModifications / ItineraryRateModification | 0..200 | ItineraryRateModification | Bir tesise ait tek bir fiyat değişikliği. Not: Oran değişikliklerinde hata ayıklamak zordur ve bu değişiklikleri tutumlu bir şekilde kullanmanı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 | Fiyat 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) şeklindedir. |
| RateModifications / HotelRateModifications / ItineraryRateModification / @action | 0..1 | enum | Belirtilmezse ve aynı Belirtilirse değer |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates | 0..1 | BookingDates | Fiyat 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 uygulanması için rezervasyonun ne zaman gerçekleşmesi 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 ilgili 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 ilgili 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ünlerdir. 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çindeki günlere izin verildiğini belirtir. Geçerli karakterler şunlardır:
Karakter kombinasyonu uygulanabilir. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow | 0..1 | BookingWindow | Check-in 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 erken 7 gün önce olarak ayarlanabilir ancak 180 günü aşamaz. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min | 0..1 | integer | Fiyat 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 | Fiyat 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 | Fiyat değişikliğinin uygulanabilmesi için check-in 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 fiyat 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 ilgili 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 ilgili 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ünlerdir. 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çindeki günlere izin verildiğini belirtir. Geçerli karakterler şunlardır:
Karakter kombinasyonu uygulanabilir. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates | 0..1 | CheckoutDates | Fiyat 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 fiyat 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 ilgili 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 ilgili 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ünlerdir. 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çindeki günlere izin verildiğini belirtir. Geçerli karakterler şunlardır:
Karakter kombinasyonu uygulanabilir. |
| 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 fiyat değişikliği yalnızca kullanıcının listelenen cihazlardan biriyle eşleşmesi durumunda uygulanır. Belirtilmezse bu, oran 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üdür. Değer desktop, tablet veya mobile olmalıdır. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions | 1 | ModificationActions | Belirtilen tüm koşullar karşılanırsa ücrete uygulanan işlemler. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | Hem AmountBeforeTax hem de AmountAfterTax değerini belirtilen çarpanla çarparak oranı 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:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | Ücretin iade edilebilirliğini belirtilen değerle değiştirir.
Özellikleri ayarlarken şunlara dikkat edin:
|
| 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ınacağı, 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 kabul edileceğ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 | Ücretin kullanılabilirliğini belirtilen değerle değiştirir.
Yalnızca unavailable olarak ayarlanan oran desteklenir. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status | 1 | enum | status="unavailable" ise geçerli bir fiyatı olup olmadığına bakılmaksızın oran 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 uygulanabilmesi 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 uygulanabilmesi 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çerlidir. |
| RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan | 1..n | RatePlan | Ücret planını belirtir. Ücret planı; Transaction (Tesis Verileri), OA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ mesajlarında belirtilen ve PackageID tarafından tanımlanan paket, ücret ve stok durumunun birleşimiyle 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 geçerli olduğu oda türleri listesinin kapsayıcısıdır.
Ücret değişikliği, belirtilen her bir <RoomType> için geçerlidir. <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 bir <RoomData> öğesinde tanımlanır ve <RoomID> değeri kullanılarak belirtilir. (<RoomID> değeri, OTA_HotelRateAmountNotifRQ mesajlarındaki InvTypeCode özelliği tarafından da belirtilir.) |
| 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 | Sezonluk fiyatlandırmanın karşılanması gibi amaçlarla ücret değişikliğinin nasıl uygulanacağını 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. Geçerli değerler şunlardır:
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 ilgili 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 ilgili 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ünlerdir. 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çindeki günlere izin verildiğini belirtir. Geçerli karakterler şunlardır:
Karakter kombinasyonu uygulanabilir. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | Belirtilirse fiyat değişikliği yalnızca kullanıcının belirtilen ülkelerden birinde bulunması durumunda uygulanır. Belirtilmezse oran 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 UserCountries UserCountries UserCountries |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country | 1..300 | Country | Ücret değişikliği için izin verilen bir 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 silme
Aşağıdaki örnekte bir tesise ait bir fiyat 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 fiyat değişikliklerini silme
Aşağıdaki örnekte bir tesise ait tüm fiyat 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 üste yerleştirme
Aşağıdaki örnekte, bir veya daha fazla yeni fiyat değişikliğiyle bir tesise ait <HotelRateModifications> değerinin nasıl üstüne yazılacağı gösterilmektedir. action="overlay" olduğunda, geçerli mesajda belirtilen fiyat değişiklikleri depolanmadan önce, depolanan tüm fiyat 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 fazla değişiklik işlemi
Aşağıdaki örnekte, birden fazla değişiklik işleminin aynı anda nasıl yapı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">
<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 bir fiyat planını devre dışı bırakma
Aşağıdaki örnekte, bir ü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ıdır. |
| RateModificationsResponse / @partner | 1 | string | Bu mesajın iş ortağı hesabı. |
| RateModificationsResponse / Success | 0..1 | Success | RateModifications mesajının uyarı, hata veya sorun olmadan başarıyla işlendiğini belirtir.
Her mesajda |
| 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 |
| 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ıdır. |
| RateModificationsResponse / Issues / Issue / @status | 1 | enum | Karşılaşılan sorunun türü. Geçerli değerler |
Ö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>