Genel bakış
Bu API, olası indirimleri belirtmenizi sağlar. Google, belirtilen promosyonlar arasında en düşük fiyata yol açan uygun promosyonu veya promosyon grubunu uygular. Koşullar karşılandığında fiyatı artırabilecek veya azaltabilecek rastgele ücret düzenlemelerini 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 aşağıdaki 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, 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" 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
Tanıtımlar 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 için |
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 saati. |
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ı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. |
Promotions / HotelPromotions / @action | 0..1 | enum | Belirtilmişse değer Belirtilmezse geçerli mesajda belirtilen her bir promosyon şunlardan biridir:
|
Promotions / HotelPromotions / Promotion | 0..99 | Promotion | Bir tesis için 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 | Promosyon için benzersiz bir tanımlayıcı. İ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 basın. |
Promotions /HotelPromotions / Promotion / @action | 0..1 | enum | Belirtilmişse değer
|
Promotions / HotelPromotions / Promotion / BookingDates | 0..1 | BookingDates | Promosyonun uygulanabilmesi için rezervasyonun ne zaman gerçekleşmesi gerektiğini tanımlayan bir veya daha fazla aralığın kapsayıcısıdır. |
Promotions / HotelPromotions / Promotion / BookingDates / DateRange | 1..99 | DateRange | Promosyonun uygulanabilmesi için rezervasyonun ne zaman gerçekleşmesi gerektiğini belirten aralıktır. |
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start | 0..1 | Date veya DateTime | Aralığın (tesisin saat dilimine göre) başlangıç tarihi veya tarihidir.
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end | 0..1 | Date veya DateTime | Aralığın bitiş tarihi veya tarihi (tesisin bulunduğu saat dilimine göre).
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week | 0..1 | string | Tarih aralığında izin verilen günleri ifade eder. 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:
Karakter kombinasyonları geçerlidir. |
Promotions / HotelPromotions / Promotion / BookingWindow | 0..1 | BookingWindow | Giriş tarihine göre rezervasyonun gerçekleşmesi gereken dönemi belirtir (tesisin saat dilimine göre). Örneğin, rezervasyon aralığı check-in işleminden en az 7 gün önce olarak ayarlanabilir ancak 180 günden uzun olamaz. |
Promotions / HotelPromotions / Promotion / BookingWindow / @min | 0..1 | integer or duration | Promosyonun uygulanabilmesi için rezervasyonun check-in işleminden önce gerçekleşmesi gereken minimum süredir. 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 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 ücretin ayarlanabileceği maksimum değerle ilgili kısıtlamaları tanımlar. Promosyonlar her zaman bir Yığınlama yapılandırılırsa Örnek:
Hesaplama sırası şöyledir:
60 değerinin daha katı bir genel üst sınır 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, hiçbir fark yoktur. |
Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night | 1 | float |
İndirim uygulandıktan sonra gecelik ücretin ayarlanabileceği maksimum tutardır. Ayrıca
|
Promotions / HotelPromotions / Promotion / Floor | 0..1 | Floor |
Promosyonlar uygulandıktan sonra ücretin ayarlanabileceği minimum değerle ilgili kısıtlamaları tanımlar. Promosyonlar her zaman bir Ücretsiz geceye Yığınlama yapılandırılırsa Örnek:
Hesaplama sırası şöyledir:
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 önemli değildir. |
Promotions / HotelPromotions / Promotion / Floor / @amount_per_night | 1 | float |
İndirim uygulandıktan sonra gecelik ücretin ayarlanabileceği minimum tutardır. Ayrıca bir
|
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 (tesisin bulunduğu saat dilimine göre) başlangıç tarihidir. 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ırsızdır. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end | 0..1 | Date or YearlessDate | Tarih aralığının (tesisin bulunduğu saat dilimine göre) bitiş tarihidir. 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ırsızdır. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week | 0..1 | string | Tarih aralığında izin verilen günleri ifade eder. 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:
Karakter kombinasyonları 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 (tesisin bulunduğu saat dilimine göre) başlangıç tarihidir. 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ırsızdır. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end | 0..1 | Date or YearlessDate | Tarih aralığının (tesisin bulunduğu saat dilimine göre) bitiş tarihidir. 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ırsızdır. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week | 0..1 | string | Tarih aralığında izin verilen günleri ifade eder. 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:
Karakter kombinasyonları 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ü. Değer desktop , tablet veya mobile olmalıdır. |
Promotions / HotelPromotions / Promotion / Discount | 1 | Discount | Tam olarak bir Bu promosyon için uygulanacak indirimi belirtir. |
Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float | Tam olarak 0 ile 100 arasında yüzdelik indirimi belirten ondalık değerdir.
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float | Tam olarak
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float | Tam olarak
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float | Tam olarak
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float | Tam olarak
Örnekler:
|
Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | Bu yalnızca En ucuz olandan 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 yapılacak 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 gerekli gece sayısıdır. Her indirim, konaklama gecelerinin ayrı bir segmentine uygulanır. Örneğin, |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights | 1 | integer | Konaklama gecelerinin her bir segmentindeki indirimli gecelerin sayısı. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage | 1 | float | İndirimli gecelere uygulanan indirimdir. 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 geceler için indirim uygulanır. cheapest ise konaklama geceleri segmenti dahilindeki 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ğı. Örneğin, |
Promotions / HotelPromotions / Promotion / Discount / @rank | 0..1 | integer | Bu promosyona bir sıralama atar ve yalnızca en düşük sıralamaya sahip promosyonun uygulanmak üzere seçildiği sıralı seçime dahil edilir. Değerler 1 ile 99 arasında (1 ve 99 dahil) olmalıdır. Birden fazla promosyon aynı sıralamayı paylaşıyorsa rastgele biri seçilir ve uygulanır. |
Promotions / HotelPromotions / Promotion / BestDailyDiscount | 1 | Discount | Tam olarak bir Konaklama gecesine uygulanabilecek günlük indirimi belirtir. Bu, tüm konaklamalara indirim uygulanan Her tesisin, "günlük en iyi" olarak kabul edilen tek bir promosyon grubu olabilir. Yani, konaklama yapılan her gece için uygun olan ve o gece için en kapsamlı indirimi sağlayan tek bir "günlük en iyi" promosyon seçilir ve uygulanabilir.
|
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float | Tam olarak bir 0 ile 100 arasında yüzdelik indirimi belirten ondalık değerdir.
Örnekler:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float | Tam olarak bir Tek bir Örnekler:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float | Tam olarak bir
Ö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 fiyata 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 ücreti kuralının kapsayıcısıdır.
|
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ğerinden 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ığı kişi sayısıyla 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 uygulanabilmesi için kullanıcı tarafından belirtilen doluluk değerinin en az bu değer olması gerekir. |
Promotions / HotelPromotions / Promotion / Occupancy / @max | 0..1 | integer | İndirimin uygulanabilmesi için kullanıcı tarafından belirtilen doluluk değerinin en fazla bu değer olması gerekir. |
Promotions / HotelPromotions / Promotion / RatePlans | 0..1 | RatePlans | Promosyonun geçerli olduğu ü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 tanımlanan ve PackageID tarafından tanımlanan paket, ücret ve stok durumunun kombinasyonuyla 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ında <StatusApplicationControl> içinde yer alan 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 referans verilir. (<RoomID> değerine, OTA_HotelRateAmountNotifRQ mesajlarındaki InvTypeCode özelliği tarafından da referans verilir.) |
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. Belirtilmezse "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ından 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. Valid values are:
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 (tesisin bulunduğu saat dilimine göre) başlangıç tarihidir. 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ırsızdır. |
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end | 0..1 | Date or YearlessDate | Tarih aralığının (tesisin bulunduğu saat dilimine göre) bitiş tarihidir. 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ırsızdır. |
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week | 0..1 | string | Tarih aralığında izin verilen günleri ifade eder. 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:
Karakter kombinasyonları 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 | UserCountry spesifikasyonunun türü.
Geçerli değerler UserÜlkeler Kullanıcı ülkeleri UserCountry ( |
Promotions / HotelPromotions / Promotion / UserCountries / Country | 1..300 | Country | Kullanıcıların promosyon için uygun olduğu bir ülkeyi tanımlar. |
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
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 koşulu
Aşağıdaki örnekte, varış tarihine yakın fazla envanter 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 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ı sil
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ı yer paylaşımlı olarak göster
Aşağıdaki örnekte, bir veya daha fazla yeni promosyonla bir tesis için <HotelPromotions>
değerinin nasıl üstleneceği 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ı Birleştirme Türü
Aşağıdaki örnekte, üç farklı promosyonun uygulanacağı bir durum gösterilmektedir (base
, second
, any
). Diğer promosyonlar daha iyi indirim sağladığı için none
promosyonu uygulanmaz. Orijinal fiyat 100 ABD doları olsaydı indirimli fiyat 72, 90 ABD doları olurdu.
<?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>
Yok Yığma 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 ABD doları olsaydı indirimli fiyat 75 ABD doları olurdu.
<?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üre 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ında, varıştan önceki gün 18:00 veya öncesinde, varıştan önceki 2. gün saat 12:00'de veya sonrasında rezervasyon yapılması gerekir.
<?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 Tarih ve Saat Sınırları
Aşağıdaki örnekte, BookingDates
öğesinin DateTime türü olarak start
ve end
özellikleriyle kullanıldığı bir durum gösterilmektedir. Bu rezervasyon tarihi kısıtlaması nedeniyle rezervasyonun 01.07.2020 06:30 ile 02.07.2020 18:45 arasında gerçekleşmesi gerekir.
<?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ılsız 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 01.02 arasındaki giriş tarihleri için geçerlidir. Yeni yıl sınırını geçen yılsız tarih aralıkları geçersiz olduğundan DateRange, bitişik iki 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ığı boyunca konaklanan her dört gece için iki gecelik% 50 indirim yapılmaktadır. On gecelik seyahat planında toplam dört gecelik tutara %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>
Bir sonraki örnek, belirtilen konaklama tarihleri aralığı için konaklanan her üç gece için bir gece% 50 indirim yapıyor. İndirimden yararlanmaya hak kazanmak için yalnızca çakışan konaklama geceleri hesaba katılır. 01.01.2022 check-in ve 7.01.2022 tarihinde çıkış yapılan aşağıdaki seyahat planı için uygun konaklama geceleri ve indirimler aşağıdaki şekilde uygulanır.
- 01.01.2022 (kalın)
- 02.01.2022 (kalın)
- 2022-01-03
- 04.01.2022 (indirimli)
- 05.01.2022 (kalın)
- 06.01.2022 (kalın)
<?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 ve diğeri% 15 indirim olmak üzere iki indirim sunulmaktadır. Değerlendirme sırasında daha düşük bir sıralamaya sahip olduğundan yalnızca% 15'lik 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, Discount
ile birlikte BestDailyDiscount
uygulayarak 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 2023 ile 2 Mayıs 2023 tarihleri arasında iki gecelik konaklamayı düşünebilirsiniz. Hesaplamada, en yüksek indirimi sağlayan en iyi günlük indirimler kombinasyonu bulunur.
İlk gece "genel" promosyon, 20 sabit indirimle uygun olan tek tutardır.
İkinci gece için ise “olabilir” promosyonu “genel” indirimden daha kapsamlı bir indirim sunar. Yani, "olabilir" seçildiğinde sabit indirim tutarı 50 olur.
Ardından, konaklama süresince "fiesta" promosyonu gecelik 5 ya da toplam 10 indirim uygulanır. "Fiesta"nın yığın türü any
olarak ayarlandığı için indirim, en iyi günlük indirimlerin kombinasyonuyla birleştirilebilir. Teklif base
olarak ayarlanırsa yalnızca en iyi günlük indirimler veya "fiesta" indirimi kombinasyonu uygulanır. Daha fazla bilgi için Stacking
açıklamasına bakın.
Konaklama ücretine genel olarak 20 + 50 + 10 = 80 sabit tutarda indirim uygulanır.
Yanıtlar
Söz dizimi
PromotionsResponse
mesajında aşağıdaki 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ı aşağıdaki öğelere ve özelliklere sahiptir:
Öğe / @Özellik | Yineleme sayısı | Tür | Açıklama |
---|---|---|---|
PromotionsResponse | 1 | Complex element | Alınan Tanıtımlar 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 saati. |
PromotionsResponse / @id | 1 | string | İlişkilendirilmiş Tanıtımlar mesajındaki benzersiz tanımlayıcı. |
PromotionsResponse / @partner | 1 | string | Bu mesajın iş ortağı hesabıdır. |
PromotionsResponse / Success | 0..1 | Success | Tanıtımlar mesajının uyarı, hata veya sorun olmadan başarıyla işlendiğini belirtir.
Her mesajda |
PromotionsResponse / Issues | 0..1 | Issues | Tanıtımlar mesajı işlenirken karşılaşılan bir veya daha fazla sorun için
bir kapsayıcıdır.
Her mesajda |
PromotionsResponse / Issues / Issue | 1..n | Issue | Tanıtımlar mesajı işlenirken karşılaşılan uyarı, hata veya sorunun açıklaması. Bu sorunlarla ilgili ayrıntılar Feed Durumu Hata Mesajları bölümünde 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ü. Geçerli değerler |
Örnekler
Başarılı
Aşağıda, başarıyla işlenmiş bir Tanıtımlar iletisine verilen 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 Tanıtımlar 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>