Genel Bakış
Bu API, olası indirimleri belirtmenize olanak tanır. Google, belirtilen promosyonlar arasından en düşük fiyatı sağlayan uygun promosyonu veya promosyon grubunu uygular. Koşullar karşılandığında fiyatı artırıp azaltabilecek keyfi fiyat ayarlamalarını destekleyen bir API arıyorsanız Rate Modifications API'mizi kullanabilirsiniz. Her iki API de mevcutsa ücret değişikliklerinin promosyonlardan önce uygulandığını unutmayın.
İstekler
Söz dizimi
Promotions
mesajında şu söz dizimi kullanılır:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
id="message_ID"
timestamp="timestamp">
<HotelPromotions hotel_id="HotelID" action="[overlay]">
<Promotion id="PromotionID" action="[delete]">
<BookingDates>
<DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
days_of_week="MTWHFSU_or_subset"/>
<DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
days_of_week="MTWHFSU_or_subset"/>
</BookingDates>
<BookingWindow min="integer_or_duration" max="integer_or_duration"/>
<Ceiling amount_per_night="float"/>
<Floor amount_per_night="float"/>
<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>
<!-- Specify only one of percentage, percentage_of_base, fixed_amount,
fixed_amount_per_night, fixed_price, or fixed_price_per_night;
applied_nights is only used with percentage, fixed_amount_per_night,
and fixed_price_per_night. -->
<Discount percentage="float" percentage_of_base="float"
fixed_amount="float" fixed_amount_per_night="float"
fixed_price="float" fixed_price_per_night="float"
applied_nights="integer_1_to_99" rank="integer_1_to_99">
<!-- FreeNights may not be used in conjunction with attributes on Discount -->
<FreeNights stay_nights="integer" discount_nights="integer"
discount_percentage="float" night_selection="[cheapest|last]"
repeats="boolean"/>
</Discount>
<!-- Exactly one of Discount or BestDailyDiscount must be specified.
Specify only one of percentage, fixed_amount, or fixed_price. -->
<BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
<Devices>
<Device type="[desktop|tablet|mobile]"/>
</Devices>
<InventoryCount min="integer" max="integer"/>
<LengthOfStay min="integer" max="integer"/>
<MembershipRateRule id="RateRuleID"/>
<MinimumAmount before_discount="integer"/>
<Occupancy min="integer" max="integer"/>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<Stacking type="[any|base|none|second]"/>
<StayDates application="[all|any|overlap]">
<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>
</Promotion>
</HotelPromotions>
</Promotions>
Öğeler ve Özellikler
Promosyonlar mesajında aşağıdaki öğeler ve özellikler bulunur:
Öğe / @Özellik | Yineleme sayısı | Tür | Açıklama |
---|---|---|---|
Promotions | 1 | Complex element | Bir promosyon mesajının kök öğesidir. |
Promotions / @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.
Birden fazla hesap için feed sağlayan bir arka ucunuz varsa bu değerin aynı hesap genelinde |
Promotions / @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. |
Promotions / @timestamp | 1 | DateTime | Bu mesajın oluşturulma tarihi ve saatidir. |
Promotions / HotelPromotions | 0..n | HotelPromotions | Bir tesise ait promosyonlardır. Her promosyon tek bir tesis için geçerlidir.
|
Promotions / HotelPromotions / @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. |
Promotions / HotelPromotions / @action | 0..1 | enum | Belirtilirse değer Belirtilmezse geçerli mesajda belirtilen her promosyona şu işlemlerden biri yapılır:
|
Promotions / HotelPromotions / Promotion | 0..99 | Promotion | Bir tesise ait tek bir promosyondur. 99'dan fazla promosyon kullanmanız gerekiyorsa Teknik Hesap Yöneticinizle (THY) iletişime geçin. |
Promotions / HotelPromotions / Promotion / @id | 1 | string | Promosyonun benzersiz tanımlayıcısıdır. İ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. |
Promotions /HotelPromotions / Promotion / @action | 0..1 | enum | Belirtilirse değer
|
Promotions / HotelPromotions / Promotion / BookingDates | 0..1 | BookingDates | Promosyonun uygulanabilmesi için rezervasyonun ne zaman yapılması gerektiğini tanımlayan bir veya daha fazla aralığın kapsayıcısıdır. |
Promotions / HotelPromotions / Promotion / BookingDates / DateRange | 1..99 | DateRange | Promosyonun uygulanması için rezervasyonun ne zaman gerçekleşmesi gerektiğini belirten aralık. |
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start | 0..1 | Date veya DateTime | Aralığın başlangıç tarihi veya saati (tesisin bulunduğu saat dilimine göre)
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end | 0..1 | Date veya DateTime | Aralığın bitiş tarihi veya saati (tesisin bulunduğu saat dilimine göre).
|
Promotions / HotelPromotions / Promotion / 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:
Herhangi bir karakter kombinasyonu geçerlidir. |
Promotions / HotelPromotions / Promotion / 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. |
Promotions / HotelPromotions / Promotion / BookingWindow / @min | 0..1 | integer or duration | Promosyonun uygulanabilmesi için rezervasyonun check-in işleminden minimum kaç gün önce yapılması gerektiğini belirtir. Bu ayar belirtilmezse veya değeri 0 ise minimum değer yoktur.
Geçerli değer türleri şunlardır:
|
Promotions / HotelPromotions / Promotion / BookingWindow / @max | 0..1 | integer or duration | Promosyonun uygulanabilmesi için rezervasyonun check-in işleminden maksimum kaç gün önce yapılması gerektiğini belirtir. Bu ayar belirtilmezse veya değeri 0 ise maksimum değer yoktur.
Geçerli değer türleri şunlardır:
|
Promotions / HotelPromotions / Promotion / Ceiling | 0..1 | Ceiling |
Promosyonlar uygulandıktan sonra bir ücretin ayarlanabileceği maksimum değerle ilgili kısıtlamaları tanımlar. Promosyonlarda her zaman bir Yığınlama yapılandırılmışsa Örnek:
Hesaplama sırası aşağıda verilmiştir:
60'ın daha katı bir genel tavan olması, yalnızca kendi promosyonu için geçerli olduğundan ve promosyon yığınının tamamını kapsayan tek bir tavan olamayacağından alakasızdır. |
Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night | 1 | float |
İndirim uygulandıktan sonra gecelik ücretin ayarlanabileceği maksimum tutardır. Bir
|
Promotions / HotelPromotions / Promotion / Floor | 0..1 | Floor |
Promosyonlar uygulandıktan sonra bir ücretin ayarlanabileceği minimum değerle ilgili kısıtlamaları tanımlar. Promosyonlarda her zaman bir Ücretsiz geceye Yığınlama yapılandırılmışsa Örnek:
Hesaplama sırası aşağıda verilmiştir:
90'ın daha katı bir genel taban olması, yalnızca kendi promosyonu için geçerli olduğundan ve promosyon yığınının tamamını kapsayan tek bir taban olamayacağından alakasızdır. |
Promotions / HotelPromotions / Promotion / Floor / @amount_per_night | 1 | float |
İndirim uygulandıktan sonra gecelik ücretin ayarlanabileceği minimum tutardır.
|
Promotions / HotelPromotions / Promotion / CheckinDates | 0..1 | CheckinDates | Promosyonun 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. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange | 1..20 | DateRange | Promosyonun uygulanabilmesi için check-in işleminin ne zaman yapılması gerektiğini belirten tarih aralığıdır. Bir veya daha fazla promosyonu siliyorsanız bu öğe gerekli değildir. YearlessDate biçimi de desteklenir.
|
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start | 0..1 | Date or YearlessDate | 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. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end | 0..1 | Date or YearlessDate | 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. |
Promotions / HotelPromotions / Promotion / 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:
Herhangi bir karakter kombinasyonu geçerlidir. |
Promotions / HotelPromotions / Promotion / CheckoutDates | 0..1 | CheckoutDates | Promosyonun 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. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange | 1..20 | DateRange | Promosyonun uygulanabilmesi için ne zaman çıkış yapılması gerektiğini belirten tarih aralığıdır. Bir veya daha fazla promosyonu siliyorsanız bu öğe gerekli değildir. YearlessDate biçimi de desteklenir.
|
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start | 0..1 | Date or YearlessDate | 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. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end | 0..1 | Date or YearlessDate | 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. |
Promotions / HotelPromotions / Promotion / 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:
Herhangi bir karakter kombinasyonu geçerlidir. |
Promotions / HotelPromotions / Promotion / Devices | 0..1 | Devices | Promosyon için uygun olan kullanıcı cihazlarını listeleyen kapsayıcıdır. Belirtilirse yalnızca listelenen cihazlardaki uygun kullanıcılara indirimli fiyat sunulur. Belirtilmezse tüm cihazlardaki uygun kullanıcılara indirimli fiyat sunulur. |
Promotions / HotelPromotions / Promotion / Devices / Device | 1..3 | Device | Promosyon için uygun olan bir kullanıcı cihazı türünü tanımlar. |
Promotions / HotelPromotions / Promotion / Devices / Device / @type | 1 | enum | Bir cihaz türüdür. Değer desktop , tablet veya mobile olmalıdır. |
Promotions / HotelPromotions / Promotion / Discount | 1 | Discount |
Bu promosyon için uygulanacak indirimi belirtir. |
Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float |
0 ile 100 arasında yüzdelik indirimi belirten ondalık değerdir.
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @percentage_of_base | 0..1 | float |
0 ile 100 arasında taban indirim yüzdesini belirten ondalık değerdir.
Örnek:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float |
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float |
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float |
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float |
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | Yalnızca En uygun fiyatlardan başlayarak indirimin uygulandığı gece sayısıdır. 1 ile 99 arasında bir tam sayı olmalıdır. Belirtilmezse indirim tüm gecelere uygulanır. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights | 0..1 | FreeNights | Minimum konaklama süresi karşılandığında konaklamanın belirli gecelerinde uygulanacak indirimi belirtir. Bu öğe kullanılıyorsa üst Discount öğesindeki özelliklere izin verilmez. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights | 1 | integer | İndirimin uygulanması için gereken gece sayısı. Her indirim, ayrı bir konaklama gecesi segmentine uygulanır. Örneğin, |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights | 1 | integer | Her konaklama gecesi segmentindeki indirimli gece sayısı. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage | 1 | float | İndirimli gecelere uygulanan indirim. Bu değer 50 ise seçilen her gece için% 50 indirim uygulanır. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection | 1 | string | cheapest veya last olmalıdır. last ise konaklama geceleri segmentinin sonundaki gecelere indirim uygulanır. cheapest ise konaklama geceleri segmentindeki en ucuz geceler için indirim uygulanır. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats | 1 | boolean | İndirimin birden fazla konaklama gecesi segmentine uygulanıp uygulanamayacağını belirtir. Örneğin, |
Promotions / HotelPromotions / Promotion / Discount / @rank | 0..1 | integer | Bu promosyona bir sıra atar ve yalnızca en düşük sıraya sahip promosyonun uygulanacağı sıralı seçime dahil eder. Değerler 1 ile 99 arasında (1 ve 99 dahil) olmalıdır. Aynı sıralamaya sahip birden fazla promosyon varsa bunlardan biri rastgele seçilir ve uygulanır. |
Promotions / HotelPromotions / Promotion / BestDailyDiscount | 1 | Discount |
Konaklama gecesine uygulanabilecek bir günlük indirimi belirtir. Bu, konaklamaların tamamına indirim uygulayan Her mülkte "en iyi günlük" olarak kabul edilen tek bir promosyon grubu olabilir. Bu, konaklamanın her gecesi için uygun olan ve o gece için en yüksek indirimi sağlayan tek "en iyi günlük" promosyonun seçildiği ve uygulanabileceği anlamına gelir.
|
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float |
0 ile 100 arasında yüzdelik indirimi belirten ondalık değerdir.
Örnekler:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float |
Tek bir Örnekler:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float |
Örnekler:
|
Promotions / HotelPromotions / Promotion / InventoryCount | 0..1 | InventoryCount | Bu promosyonun uygulanabilmesi için müsait olması gereken oda sayısıyla ilgili kısıtlamaları tanımlar. İndirim, yalnızca kısıtlamaya uyan gecelere uygulanır. fixed_amount indirimiyle birlikte kullanılmasına izin verilmez. Müsait oda sayısının OTA_HotelInvCountNotifRQ (InvCount ) veya OTA_HotelAvailNotifRQ (BookingLimit ) ile belirtildiğini unutmayın. |
Promotions / HotelPromotions / Promotion / InventoryCount / @min | 0..1 | integer | Promosyonun gecelik ücrete uygulanabilmesi için müsait olması gereken minimum oda sayısıdır. Belirtilmezse minimum değer yoktur. |
Promotions / HotelPromotions / Promotion / InventoryCount / @max | 0..1 | integer | Promosyonun gecelik ücrete uygulanabilmesi için müsait olması gereken maksimum oda sayısıdır. Belirtilmezse maksimum değer yoktur. |
Promotions / HotelPromotions / Promotion / LengthOfStay | 0..1 | LengthOfStay | Bu promosyonun uygulanabileceği konaklama süresi sınırlarını belirler. Konaklama süresi minimum ve maksimum sınırların dışında olduğunda promosyon uygulanmaz. |
Promotions / HotelPromotions / Promotion / LengthOfStay / @min | 0..1 | integer | Promosyonun uygulanabilmesi için konaklama süresinde izin verilen minimum gece sayısıdır. Belirtilmezse minimum değer yoktur. |
Promotions / HotelPromotions / Promotion / LengthOfStay / @max | 0..1 | integer | Promosyonun uygulanabilmesi için konaklama süresinde izin verilen maksimum gece sayısıdır. Belirtilmezse maksimum değer yoktur. |
Promotions / HotelPromotions / Promotion / MembershipRateRule | 0..1 | MembershipRateRule |
İlişkili indirim için belirli bir kullanıcı arayüzü işlemini tetikleyen üyelik fiyatı kuralının kapsayıcısı.
|
Promotions / HotelPromotions / Promotion / MembershipRateRule / @id | 1 | string |
Üyelik programıyla ilişkili ücret kuralının kimliği. |
Promotions / HotelPromotions / Promotion / MinimumAmount | 0..1 | MinimumAmount | Promosyonun 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. |
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount | 1 | integer | Promosyonun uygulanabilmesi için aşılması gereken değerdir. |
Promotions / HotelPromotions / Promotion / Occupancy | 0..1 | Occupancy | Bu promosyonun uygulandığı doluluklarla ilgili kısıtlamaları tanımlar. Doluluk minimum ve maksimum sınırların dışında olduğunda promosyon uygulanmaz. |
Promotions / HotelPromotions / Promotion / Occupancy / @min | 0..1 | integer | İndirimin uygulanması için kullanıcı tarafından belirtilen doluluk oranı en az bu değer olmalıdır. |
Promotions / HotelPromotions / Promotion / Occupancy / @max | 0..1 | integer | İndirimin uygulanması için kullanıcı tarafından belirtilen doluluk en fazla bu değer olmalıdır. |
Promotions / HotelPromotions / Promotion / RatePlans | 0..1 | RatePlans | Promosyonun uygulandığı ücret planları listesinin kapsayıcısıdır.
<RatePlans> belirtilmezse promosyon tüm ücret planları için geçerlidir. |
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan | 1..n | RatePlan | Ücret planını belirtir. Ücret planı; Transaction (Tesis Verileri), OTA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ mesajlarında belirtilen ve PackageID tarafından tanımlanan paket, ücret ve stok durumunun birleşimiyle tanımlanır. |
Promotions / HotelPromotions / Promotion / 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. |
Promotions / HotelPromotions / Promotion / RoomTypes | 0..1 | RoomTypes | Promosyonun geçerli olduğu oda türleri listesinin kapsayıcısıdır.
Promosyon, belirtilen her bir <RoomType> için geçerlidir. <RoomTypes> belirtilmezse promosyon tüm odalar için geçerli olur. |
Promotions / HotelPromotions / Promotion / 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.) |
Promotions / HotelPromotions / Promotion / 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. |
Promotions / HotelPromotions / Promotion / Stacking | 0..1 | Stacking | Promosyonların nasıl birleştirilebileceğini belirtir. Belirtilmediği takdirde "type" base olarak kabul edilir. |
Promotions / HotelPromotions / Promotion / Stacking / @type | 1 | enum | Bu ayara bağlı olarak tek bir ücrete birden fazla promosyon uygulanabilir:
İzin verilen kombinasyonlar arasında en yüksek indirimi sağlayan promosyon grubu ücrete uygulanır. |
Promotions / HotelPromotions / Promotion / StayDates | 0..1 | StayDates | Sezonluk indirimlerin karşılanması gibi amaçlarla promosyonun nasıl uygulanacağını belirleyen bir veya daha fazla tarih aralığının kapsayıcısıdır. |
Promotions / HotelPromotions / Promotion / StayDates / @application | 1 | enum | Promosyonun nasıl uygulanması gerektiğini açıklar. Geçerli değerler şunlardır:
Bu özellik her zaman belirtilmelidir.
|
Promotions / HotelPromotions / Promotion / StayDates / DateRange | 1..99 | DateRange | Promosyonun uygulanacağı tarihleri belirten tarih aralığıdır. YearlessDate biçimi de desteklenir.
|
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start | 0..1 | Date or YearlessDate | 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.
|
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end | 0..1 | Date or YearlessDate | 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ığı, start tarihinden itibaren etkin bir şekilde sınırlandırılmaz.
|
Promotions / HotelPromotions / Promotion / 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:
Herhangi bir karakter kombinasyonu geçerlidir. |
Promotions / HotelPromotions / Promotion / UserCountries | 0..1 | UserCountries | Promosyon için uygun olan kullanıcı konumlarını (ülkeleri) listeleyen kapsayıcıdır. Belirtilirse yalnızca listelenen ülkelerdeki uygun kullanıcılara indirimli fiyat sunulur. Belirtilmezse tüm ülkelerdeki uygun kullanıcılara indirimli fiyat sunulur. |
Promotions / HotelPromotions / Promotion / UserCountries / @type | 0..1 | enum | UserCountries spesifikasyonunun türü.
Geçerli değerler UserCountries UserCountries UserCountries |
Promotions / HotelPromotions / Promotion / UserCountries / Country | 1..300 | Country | Promosyon için uygun olan kullanıcıların bulunduğu bir ülkeyi belirtir. |
Promotions / HotelPromotions / Promotion / 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
Tesis başına 500 promosyon sınırı vardır. Bir tesisteki promosyonları kaldırmak için "Bir promosyonu silme" örneğine bakın.
Temel mesaj
Aşağıdaki örnekte temel bir Promotions
mesajı gösterilmektedir:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
<DateRange start="2020-09-01" end="2020-09-30"/>
</BookingDates>
<BookingWindow min="7" max="330"/>
<CheckinDates>
<DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
</CheckoutDates>
<Devices>
<Device type="mobile"/>
<Device type="tablet"/>
</Devices>
<Discount percentage="20" applied_nights="2"/>
<LengthOfStay min="2" max="14"/>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<Stacking type="base"/>
<UserCountries>
<Country code="US"/>
<Country code="GB"/>
</UserCountries>
</Promotion>
</HotelPromotions>
</Promotions>
Envanter durumu
Aşağıdaki örnekte, varış tarihine yaklaşıldığında envanter fazlası varsa nasıl indirim oluşturulacağı gösterilmektedir:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingWindow max="7"/>
<Discount percentage="10"/>
<InventoryCount min="3"/>
</Promotion>
</HotelPromotions>
</Promotions>
Bir promosyonu silme
Aşağıdaki örnekte bir tesise ait bir promosyonun nasıl silineceği gösterilmektedir:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1" action="delete"/>
</HotelPromotions>
</Promotions>
Tüm promosyonları silme
Aşağıdaki örnekte bir tesise ait tüm promosyonların nasıl silineceği gösterilmektedir:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>
Tüm promosyonların üstüne yazma
Aşağıdaki örnekte, bir veya daha fazla yeni promosyonla bir tesise ait <HotelPromotions>
değerinin nasıl üstüne yazılacağı gösterilmektedir. action="overlay"
olduğunda geçerli mesajda belirtilen promosyonlar depolanmadan önce, depolanan tüm promosyonlar silinir:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1" action="overlay">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-09-01" end="2020-09-30"/>
</BookingDates>
<Discount percentage="10"/>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<Stacking type="base"/>
</Promotion>
</HotelPromotions>
</Promotions>
3 Farklı Gruplandırma Türü
Aşağıdaki örnekte, üç farklı promosyonun (base
, second
, any
) uygulanacağı bir durum gösterilmektedir. Diğer promosyonlar daha iyi indirim sağladığından none
promosyonunun uygulanmayacağını unutmayın. Orijinal fiyat 100 TL ise indirimli fiyat 72, 90 TL olur.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="10"/>
<Stacking type="base"/>
</Promotion>
<Promotion id="2">
<Discount percentage="10"/>
<Stacking type="second"/>
</Promotion>
<Promotion id="3">
<Discount percentage="10"/>
<Stacking type="any"/>
</Promotion>
<Promotion id="4">
<Discount percentage="25"/>
<Stacking type="none"/>
</Promotion>
</HotelPromotions>
</Promotions>
Hiçbiri Gruplandırma Türü
Aşağıdaki örnekte, diğer promosyonların kombinasyonu daha düşük bir indirim sağladığı için none
promosyonunun kullanıldığı bir durum gösterilmektedir. Orijinal fiyat 100 TL ise indirimli fiyat 75 TL olur.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="10"/>
<Stacking type="base"/>
</Promotion>
<Promotion id="2">
<Discount percentage="10"/>
<Stacking type="any"/>
</Promotion>
<Promotion id="3">
<Discount percentage="25"/>
<Stacking type="none"/>
</Promotion>
</HotelPromotions>
</Promotions>
Rezervasyon Aralığı Süresi Sınırları
Aşağıdaki örnekte, BookingWindow
öğesinin başlangıç ve bitiş sınırları ISO 8601 Süre türü olarak tanımlanmış şekilde kullanıldığı bir durum gösterilmektedir. Bu rezervasyon aralığı kısıtlaması, rezervasyonun varıştan önceki gün saat 18:00'a kadar ve varıştan 2 gün önce saat 12:00'den sonra yapılmasını gerektirir.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingWindow min="P1DT6H" max="P2DT12H"/>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
Rezervasyon Tarihleri Zaman Aralığı
Aşağıdaki örnekte, BookingDates
öğesinin DateTime türleri olarak start
ve end
özellikleriyle birlikte kullanıldığı bir durum gösterilmektedir. Bu rezervasyon tarihi kısıtlaması, rezervasyonun 01.07.2020'de 06:30 ile 02.07.2020'de 18:45 arasında yapılmasını gerektiriyor.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
</BookingDates>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
Yıl içermeyen tarih aralıkları
Aşağıdaki örnekte, CheckInDates
öğesinin, yıl içermeyen start
ve end
alanlarına sahip DateRanges
içerdiği bir durum gösterilmektedir. Bu örnekte promosyon, yıldan bağımsız olarak 29.12 ile 2.1 tarihleri arasındaki giriş tarihleri için geçerlidir. Yeni yıl sınırını aşan yıl içermeyen tarih aralıkları geçersizdir. Bu nedenle, DateRange iki bitişik tarih aralığı olarak ifade edilir.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<CheckInDates>
<DateRange start="12-29" end="12-31"/>
<DateRange start="01-01" end="01-02"/>
</CheckInDates>
<Discount percentage="20"/>
</Promotion>
</HotelPromotions>
</Promotions>
FreeNights indirimi
Aşağıdaki örnekte, belirtilen rezervasyon tarihleri aralığında her dört gecelik konaklama için iki gecelik indirim% 50 olarak gösterilmektedir. On gecelik bir seyahat planında toplam dört gece için %50 indirim uygulanır.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<BookingDates>
<DateRange start="2022-01-01" end="2022-05-31"/>
</BookingDates>
<Discount>
<FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
</Discount>
</Promotion>
</HotelPromotions>
</Promotions>
Aşağıdaki örnekte, belirtilen konaklama tarihleri aralıkları için her üç gecelik konaklamada bir gecelik konaklama için% 50 indirim uygulanmaktadır. İndirim için yalnızca çakışan konaklama geceleri sayılır. 01.01.2022'de giriş ve 07.01.2022'de çıkış yapılan aşağıdaki seyahat planında, uygun konaklama geceleri ve indirimler aşağıdaki gibi uygulanır.
- 2022-01-01 (konaklama)
- 2022-01-02 (konaklama)
- 2022-01-03
- 04.01.2022 (indirimli)
- 2022-01-05 (konaklama)
- 2022-01-06 (stay)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<StayDates application="overlap">
<DateRange start="2022-01-01" end="2022-01-02"/>
<DateRange start="2022-01-04" end="2022-01-06"/>
</StayDates>
<Discount>
<FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
</Discount>
</Promotion>
</HotelPromotions>
</Promotions>
Sıralı seçim
Aşağıdaki örnekte, biri% 20, diğeri% 15 indirim olmak üzere iki indirim sunulmaktadır. Değerlendirme sırasında, daha düşük bir sıralamaya sahip olduğu için yalnızca% 15 indirim uygulanır.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="Property_1">
<Promotion id="1">
<Discount percentage="15" rank="25"/>
</Promotion>
<Promotion id="2">
<Discount percentage="20" rank="50"/>
</Promotion>
</HotelPromotions>
</Promotions>
BestDailyDiscount
Aşağıdaki örnekte, BestDailyDiscount
ile birlikte Discount
uygulanarak iki gecelik konaklamada indirim yapılmaktadır.
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
id="123_abc"
timestamp="2020-05-18T16:20:00-04:00">
<HotelPromotions hotel_id="HotelID" action="overlay">
<Promotion id="general">
<BestDailyDiscount fixed_amount="20"/>
</Promotion>
<Promotion id="may">
<BestDailyDiscount fixed_amount="50"/>
<StayDates application="overlap">
<DateRange start="2023-05-01" end="2023-05-31"/>
</StayDates>
</Promotion>
<Promotion id="fiesta">
<Discount fixed_amount_per_night="5"/>
<Stacking type="any"/>
</Promotion>
</HotelPromotions>
</Promotions>
30 Nisan - 2 Mayıs 2023 tarihleri arasında iki gecelik konaklama düşünelim. Hesaplamada, en yüksek indirimi sağlayan en iyi günlük indirimlerin kombinasyonu önce bulunur.
İlk gece için 20 sabit indirim içeren tek uygun tutar "genel" promosyondur.
İkinci gece için "Mayıs" promosyonu, "Genel" promosyondan daha fazla indirim sunuyor. Dolayısıyla, "may" seçildiğinde sabit indirim tutarı 50 olur.
Ardından, konaklama için "fiesta" promosyonundan yararlanarak gecelik 5 TL veya toplam 10 TL indirim kazanırsınız. "Fiesta"nın yığın oluşturma türü any
olarak ayarlandığından en iyi günlük indirimlerin kombinasyonuyla birlikte yığın oluşturabilir. base
olarak ayarlanmışsa yalnızca en iyi günlük indirimlerin kombinasyonu veya "fiesta" indirimi uygulanır. Daha fazla bilgi için Stacking
açıklamasına bakın.
Genel olarak, konaklama fiyatına 20 + 50 + 10 = 80 sabit tutarda indirim uygulanır.
Yanıtlar
Söz dizimi
PromotionsResponse
mesajında şu söz dizimi kullanılır:
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues are populated. -->
<Success/>
<Issues>
<Issue code="issue_code"
status="issue_type">
issue_description
</Issue>
</Issues>
</PromotionsResponse>
Öğeler ve Özellikler
PromotionsResponse
mesajında aşağıdaki öğeler ve özellikler bulunur:
Öğe / @Özellik | Yineleme sayısı | Tür | Açıklama |
---|---|---|---|
PromotionsResponse | 1 | Complex element | Alınan Promotions istek mesajının başarısını veya sorunlarını gösteren kök öğedir. |
PromotionsResponse / @timestamp | 1 | DateTime | Bu mesajın oluşturulma tarihi ve saatidir. |
PromotionsResponse / @id | 1 | string | İlişkilendirilmiş Promotions mesajındaki benzersiz tanımlayıcıdır. |
PromotionsResponse / @partner | 1 | string | Bu mesajın iş ortağı hesabıdır. |
PromotionsResponse / Success | 0..1 | Success | Promotions mesajının uyarı, hata veya sorun olmadan başarıyla işlendiğini belirtir.
Her mesajda |
PromotionsResponse / Issues | 0..1 | Issues | Promotions mesajı işlenirken karşılaşılan bir veya daha fazla sorun için kullanılan bir kapsayıcıdır.
Her mesajda |
PromotionsResponse / Issues / Issue | 1..n | Issue | Promotions 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. |
PromotionsResponse / Issues / Issue / @code | 1 | integer | Sorunun tanımlayıcısıdır. |
PromotionsResponse / Issues / Issue / @status | 1 | enum | Karşılaşılan sorunun türüdür. Geçerli değerler |
Örnekler
Başarılı
Aşağıda, başarıyla işlenmiş bir Promotions mesajına yanıt yer almaktadır.
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</PromotionsResponse>
Sorunlar
Aşağıda, hatalar nedeniyle işlenmemiş bir Promotions mesajına yanıt yer almaktadır.
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</PromotionsResponse>