Promosyonlar

Genel Bakış

Bu API, olası indirimleri belirtmenizi sağlar. Belirtilen promosyonlar arasından, Google, en düşük fiyata. İsteğe bağlı oranı destekleyen bir API arıyorsanız koşullar geçerli olduğunda fiyatı yükseltebilecek veya düşürebilecek ayarlamalar değerlendirdikten sonra Rate Modifications API. Her iki API de mevcutsa ücret değişikliklerinin promosyonlar.

İ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, 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 "İş ortağı anahtarı" değeri şurada listelenir: Hotel Center'daki hesap ayarları sayfası.

Feed'ler için feed sağlayan bir arka ucunuz birden fazla hesapta oturum açtıysanız, bu değerin ID ile eşleşmesi gerekir <RequestorID> özelliğinde belirtilen özellik değeri <OTA_HotelRateAmountNotifRQ> ve Aynı için <OTA_HotelAvailNotifRQ> ileti hesap.

Promotions / @id 1 string Bu istek mesajının benzersiz tanımlayıcısıdır. Bu değer döndürülür bu mesajdan yararlanabilirsiniz. İ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

<Stacking> kullanılmadığı sürece En büyük indirime sahip promosyon, rezervasyona şu koşulda uygulanır: birden fazla promosyon uygun.

Promotions / HotelPromotions / @hotel_id 1 string Tesisin benzersiz tanımlayıcısıdır. Bu değer, Otel kimliği, kullanılarak belirtildi <listing> öğesinde <id> otel listesi feed'inde görünür. Otel Kimliği, Hotel Center'da da listelenir.
Promotions / HotelPromotions / @action 0..1 enum

Belirtilirse değer şu şekilde olmalıdır: "overlay" Değer "overlay" olduğunda tüm depolanan promosyonlar, belirtilen promosyonlar depolanmadan önce silinir. öğesine dokunun.

Belirtilmemişse geçerli mesaj şunlardan biridir:

  • Added (depolanan promosyonların hiçbirinde aynı id)
  • Updated (depolanan bir promosyon aynı id)
  • Deleted (depolanan bir promosyon aynı id ve action özelliğinin değeri geçerli mesajda belirtilen promosyonun değeri: "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

Bir tesis için tek bir promosyondur. Lütfen action="overlay" ve <Promotion> belirtilmezse tesise ait tüm promosyonlar silinir.

99'dan fazla promosyon kullanmanız gerekiyorsa Teknik Hesap Yöneticiniz (THY) ile görüşün.

Promotions / HotelPromotions / Promotion / @id 1 string Promosyon için benzersiz bir tanımlayıcı. Maksimum karaktere 40 izin verilir. İzin verilen karakterler şunlardır: a-z, A-Z, 0-9, _ (alt çizgi), - (kısa çizgi) ve . (nokta) şeklindedir.
Promotions /HotelPromotions / Promotion / @action 0..1 enum

Belirtilirse değer delete olmalıdır. Değilse belirtilmiş ve bir aynı id değerine sahip promosyonlar depolanmaz. Bu durumda emin olun. Aksi takdirde, belirtilmezse ve aynı id depolanıyorsa mevcut promosyon güncellendi.

delete belirtilirse aynı id silindi. delete öğesini kullanırken <Promotion> satırına alt öğe eklemeyin. Ayrıca, delete değil <HotelPromotions action="overlay"/> ile bağlantılı olarak izin verilir.

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates 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 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

Başlangıç tarihi veya tarih ve saat (mülkün saat dilimine göre), değer aralığı.

  • start tarafından belirtilen tarih veya tarih ve saat olmalıdır tarafından belirtilen tarihten veya tarih/saatten önce (veya aynı) end.
  • start belirtilmezse aralık, bir başlangıç zamanı açısından sınırsızdır.
  • start, "YYYY-AA-GG" tarihi olarak doldurulursa bu tarih/saat "YYYY-AA-GGT00:00:00" olarak yorumlanır.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date veya DateTime

Bitiş tarihi veya tarih ve saat (mülkün saat dilimine göre), değer aralığı.

  • end tarafından belirtilen tarih veya tarih ve saat daha sonra olmalıdır tarafından belirtilen tarih veya tarih ile aynı (veya aynı) start.
  • end belirtilmezse aralık, bir bitiş tarihi açısından sınırsız olabilir.
  • "YYYY-AA-GG" tarihi olarak end sağlanırsa bu tarih/saat "YYYY-AA-GGT23:59:59" olarak yorumlanır.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

Tarih aralığında izin verilen günleri ifade eder. Değilse belirtilen tarih aralığında tüm günlere izin verilir. Her biri karakteri bir günü belirtir. Örneğin, "MTWHF" belirtir belirtilen tarih aralığında hafta içi günlerine izin verilir.

Geçerli karakterler şunlardır:

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

Karakter kombinasyonları geçerlidir.

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow giriş tarihi (tesisin saat dilimine göre). Örneğin, rezervasyon aralığı 180 günden uzun olmayacak şekilde en az 7 güne ayarlanabilir. kontrol etmelisiniz.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration Girişten önce, rezervasyonun gerçekleşmesi gereken minimum süre . Belirtilmezse veya değeri 0 ise minimum değer yoktur.

Geçerli değer türleri şunlardır:

  • Tam sayı: Check-in'den önceki gün sayısı tarihi. Örneğin, 30 değeri promosyon yalnızca giriş tarihi yazın.
  • ISO 8601 Süresi (gün, saat ve dakika): Yayınlanacak gün (ve isteğe bağlı olarak saat/dakika cinsinden). Örneğin, Örneğin, P30D değeri yalnızca promosyonu belirtir giriş tarihinden en az 30 gün önceki rezervasyonlar için geçerlidir. P30DT6H değeri, rezervasyonun varış tarihinden 30 gün önce saat 18:00'da veya öncesinde yapılmasını gerektirir.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration Rezervasyonun check-in işleminden maksimum kaç gün önce yapılması gerektiğini belirtir . Belirtilmezse veya değeri 0 ise maksimum değer yoktur.

Geçerli değer türleri şunlardır:

  • Tam sayı: Check-in'den önceki gün sayısı tarihi. Örneğin, 30 değeri, promosyonun yalnızca check-in tarihinden en fazla 30 gün önce yapılan rezervasyonlar için geçerli olduğunu belirtir.
  • ISO 8601 uyumlu süre (gün, saat ve dakika): Giriş tarihinden önceki gün sayısını (ve isteğe bağlı olarak saat/dakika sayısını) belirtir. Örneğin, P30D değeri, promosyonun yalnızca check-in tarihinden en fazla 30 gün önce yapılan rezervasyonlar için geçerli olduğunu belirtir. CEVAP P30DT6H değeri için 18:00 veya sonrasında rezervasyon yapılması gerekir varıştan 30. gün önce olmalıdır.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

Bir ücretin ayarlanabileceği maksimum değerle ilgili kısıtlamaları tanımlar .

Promosyonlarda her zaman bir <Discount> veya <BestDailyDiscount>; bu nedenle, yalnızca <Ceiling> geçerlidir. Seçeneklerden biri, percentage değerindeki <Discount> 0.

Yığınlama yapılandırılmışsa <Ceiling> tek bir konaklama için geçerli olabilir. Her promosyon, indirimini ve hemen ardından da tavan fiyatını uygular. İlgili içeriği oluşturmak için kullanılan aşağıdaki örnekte her bir tavanın sonraki projeye nasıl katkıda bulunduğu gösterilmektedir promosyon hesaplamasına eklenir.

Örnek:

AmountBeforeTax adlı yerde 1 gecelik konaklamanın fiyatlandırması 100 ve iki promosyon yığını vardır:

  1. Yığın türü base olan promosyon: fixed_amount/25 ve tavan amount_per_night/60
  2. Yığın türü second olan promosyon, fixed_amount/25 ve tavan amount_per_night / 90

Hesaplama sırası şöyledir:

  1. Önce base promosyonu uygulanır ve AmountBeforeTax'un fiyatı 75'e indirilir. Ardından tavan, fiyatı 60'a düşürür.
  2. second promosyonu, 60'tan 35'e AmountBeforeTax. Bu tavan tavanın altında ikinci tavan uygulanmaz. Son oran ise 35.

60'ın daha katı bir üst sınır olduğu düşünüldüğünde, yalnızca kendi promosyonu için geçerlidir ve tek bir anahtar kelime bir üst sınır oluşturun.

Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night 1 float

İndirim uygulandıktan sonra gecelik ücretin ayarlanabileceği maksimum tutardır.

Bir <Floor> öğesi de belirtilirse değerine eşit veya şundan büyük bir değere ayarlanmalıdır: Şu ürünlerde amount_per_night özelliği var: <Floor>

Şu durumlarda vergi ve ücretlere amount_per_night uygulanır: AmountAfterTax kullanılarak gecelik fiyata dahildir ancak TaxFeeInfo kullanılarak belirtilenler değil.

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 <Discount> veya <BestDailyDiscount>; bu nedenle, yalnızca <Floor> geçerlidir. Seçeneklerden biri, percentage değerindeki <Discount> 0.

<Floor> mantığı, Ücretsiz gece imkanı için <FreeNights> indirim Reklama 100% indirim uygulandı.

Yığınlama yapılandırılmışsa <Floor> tek bir konaklama için geçerli olabilir. Her tanıtım indirimi uygular ve hemen ardından taban fiyatı uygular. İlgili içeriği oluşturmak için kullanılan Aşağıdaki örnekte, her bir katın bir sonraki tabana nasıl katkıda bulunduğu gösterilmektedir promosyon hesaplamasına eklenir.

Örnek:

AmountBeforeTax değerinin 100 olduğu ve iki promosyon grubu bulunduğu 1 gecelik konaklama için fiyatlandırma:

  1. Yığın türü base olan promosyon: fixed_amount/25 ve bir taban amount_per_night / 90
  2. Yığınlama türü second, fixed_amount değeri 25 ve taban amount_per_night değeri 60 olan promosyon

Hesaplama sırası şöyledir:

  1. Önce base promosyonu ve indirimler uygulanır AmountBeforeTax 75'e çıktıktan sonra taban yükseliyor. 90'a kadar.
  2. second promosyonu, AmountBeforeTax için indirimi 90'dan 65'e düşürüyor. Bu zemin katın üzerinde taban fiyat 60 olarak hesaplanır. Bu nedenle, ikinci kat uygulanmaz. Son oran ise 65.

90'ın daha katı bir genel taban olması önemli değildir; yalnızca kendi promosyonu için geçerlidir ve tek bir anahtar kelime bir taban fiyat ekleyin.

Promotions / HotelPromotions / Promotion / Floor / @amount_per_night 1 float

Gecelik ücretin belirlenebilecek minimum tutar: indirim uygulanır.

Bir <Ceiling> öğesi de belirtilirse değerine eşit veya şundan küçük bir değere ayarlanmalıdır: Şu ürünlerde amount_per_night özelliği var: <Ceiling>

Şu durumlarda vergi ve ücretlere amount_per_night uygulanır: AmountAfterTax kullanılarak gecelik fiyata dahildir ancak TaxFeeInfo kullanılarak belirtilenler değil.

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates Giriş yapma işleminin ne zaman yapılması gerektiğini tanımlayan bir veya daha fazla tarih aralığının kapsayıcısıdır. geçerli olması gerektiğini unutmayın.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

Promosyonda promosyonun ne zaman check-in yapılması gerektiğini tarafından uygulanır. Bir veya daha fazla öğeyi siliyorsanız bu öğe gerekli değildir promosyonlar.

YearlessDate biçimi de desteklenir.

  • start veya end özelliklerinden biri yıl değeri belirtilmemişse tarihi, her ikisi de yılsız tarih olarak doldurulmalıdır.
  • Yılsız tarih aralıkları yeni yılı kapsamamalıdır. Bunun yerine aralığı, bitişik iki tarih aralığı olarak temsil eder. Örneğin, {"12-29", "01-05"}, {"12-29", "12-31"} ve {"01-01", "01-05"}.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate Başlangıç tarihi (tesisin bulunduğu saat dilimine göre), seçin. Bu tarih, end tarihi. 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 Tesisin bulunduğu saat dilimine göre, bitiş tarihi seçin. Bu tarih, start tarihiyle aynı veya bu tarihten sonra olmalıdır tarihi. 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ünlerdir. Değilse belirtilen tarih aralığında tüm günlere izin verilir. Her biri karakteri bir günü belirtir. Örneğin, "MTWHF" belirtir belirtilen tarih aralığında hafta içi günlerine izin verilir.

Geçerli karakterler şunlardır:

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

Karakter kombinasyonları geçerlidir.

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates Ödeme zamanını tanımlayan bir veya daha fazla tarih aralığının kapsayıcısıdır. promosyonun uygulanabilmesi için gerçekleşmelidir.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

Promosyonun ne zaman çıkış yapılması gerektiğini belirten tarih aralığı tarafından uygulanır. Bir veya daha fazla promosyonu siliyorsanız bu öğe gerekli değildir.

YearlessDate biçimi de desteklenir.

  • start veya end özelliklerinden biri yıl değeri belirtilmemişse tarihinin her ikisi de yıl içermeyen tarihler olarak doldurulmalıdır.
  • Yılsız tarih aralıkları yeni yılı kapsamamalıdır. Bunun yerine aralığı, bitişik iki tarih aralığı olarak temsil eder. Örneğin, {"12-29", "01-05"} şu şekilde temsil edilebilir: {"12-29", "12-31"} ve {"01-01", "01-05"}.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate Başlangıç tarihi (tesisin bulunduğu saat dilimine göre), seçin. 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ırsızdır.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate Tesisin bulunduğu saat dilimine göre, bitiş tarihi seçin. Bu tarih, start tarihiyle aynı veya bu tarihten sonra olmalıdır tarihi. 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ünlerdir. Değilse belirtilen tarih aralığında tüm günlere izin verilir. Her biri karakteri bir günü belirtir. Örneğin, "MTWHF" belirtir belirtilen tarih aralığında hafta içi günlerine izin verilir.

Geçerli karakterler şunlardır:

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

Karakter kombinasyonları geçerlidir.

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices Şu uygulama için uygun kullanıcı cihazlarının listelendiği kapsayıcı: promosyon'a dokunun. Belirtilirse yalnızca listelenen cihazlardaki uygun kullanıcılara indirimli fiyat sunulur. Belirtilmezse herhangi bir 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 olmalıdır. tablet veya mobile.
Promotions / HotelPromotions / Promotion / Discount 1 Discount

Tam olarak bir Discount veya BestDailyDiscount belirtilmelidir.

Bu promosyon için uygulanacak indirimi belirtir.

Promotions / HotelPromotions / Promotion / Discount / @percentage 0..1 float

Tam olarak bir percentage, fixed_amount fixed_amount_per_night, fixed_price veya fixed_price_per_night gereklidir.

0 ile 100 arasında yüzdelik indirimi belirten ondalık değerdir. AmountAfterTax (veya AmountAfterTax değilse AmountBeforeTax belirtilir).

Örnekler:

  • AmountAfterTax 100 ve percentage ise 20 ise

    promosyon ücreti = AmountAfterTax * (1 - yüzde indirim)

    80,00 = 100 * (1 - 0,2)

  • AmountBeforeTax 100 ise, percentage 20'dir ve TaxFeeInfo'da 10 değerinde vergi belirtilmektedir. ardından

    promosyon ücreti = AmountBeforeTax * (1 - yüzdelik indirim) + vergi

    90,00 = 100 * (1 - 0,2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

Tam olarak bir percentage, fixed_amount fixed_amount_per_night, fixed_price veya fixed_price_per_night gereklidir.

Toplamdan çıkarılacak sabit tutar AmountAfterTax gecelik ücret (veya toplam AmountBeforeTax gecelik ücret AmountAfterTax belirtilmemiş). Öngörülen gecelik ücretlerle aynı para biriminde olduğundan emin olun. Bu değer gecelik ücretleri topladıysa sonuç sıfır olur.

Örnekler:

  • 1 gecelik konaklama fiyatlandırdığımızda AmountBeforeTax 90, AmountAfterTax 100 ve fixed_amount 20 ise

    promosyon ücreti = AmountAfterTax - sabit indirim

    80,00 = 100 - 20

  • 1 gecelik konaklama fiyatlandırdığımızda AmountBeforeTax 100, fixed_amount 20'dir ve TaxFeeInfo'da %8'lik bir vergi belirtiliyorsa

    promosyon ücreti = (AmountBeforeTax - sabit indirim) * (1 + yüzdelik vergi)

    86,40 = (100 - 20) * 1,08

  • 1 gecelik konaklama fiyatlandırdığımızda AmountBeforeTax 50, fixed_amount 50 60 ve TaxFeeInfo'da 10 değerinde vergi belirtiliyorsa

    promosyon ücreti = (AmountBeforeTax - sabit indirim) * vergi

    10,00 = 0 + 10

  • 3 gecelik konaklamayı fiyatlandırırsak AmountAfterTax değerleri 100, 110 ve 120'dir; ve fixed_amount 150'dir, sonra

    promosyon ücreti = toplam(AmountAfterTax) - (sabit) indirim)

    180,00 = (100 + 110 + 120) - 150

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night 0..1 float

Tam olarak bir percentage, fixed_amount fixed_amount_per_night, fixed_price veya fixed_price_per_night gereklidir.

Her bir AmountAfterTax öğesine sabit indirim uygulanır. gecelik ücretler (veya applied_nights belirtilirse en ucuz N). AmountAfterTax belirtilmezse AmountBeforeTax için geçerlidir. Öngörülen gecelik ücretlerle aynı para biriminde olduğundan emin olun. Eğer fixed_amount_per_night, şundan daha büyük: o gecelik ücret sıfıra düşürülür. İndirim, gecelik fiyatın negatif olmasına neden olamaz.

Örnekler:

  • 3 gecelik konaklamayı AmountAfterTax değerleri 100, 110 ve 120, fixed_amount_per_night değeri ise 10 olacak şekilde fiyatlandırırsak

    promosyon ücreti = toplam(AmountBeforeTax - sabit tutar indirim)

    300,00 = ((100 - 10) + (110 - 10) + (120 - 10))

  • 3 gecelik konaklamayı AmountAfterTax değerleri 10, 50 ve 100, fixed_amount_per_night değeri ise 20 olacak şekilde fiyatlandırırsak

    promosyon ücreti = toplam(AmountAfterTax - sabit tutar indirim)

    110,00 = (0 + (50 - 20) + (100 - 20))

Promotions / HotelPromotions / Promotion / Discount / @fixed_price 0..1 float

Tam olarak bir percentage, fixed_amount fixed_amount_per_night, fixed_price veya fixed_price_per_night gereklidir.

AmountAfterTax gecelik ücretleri belirtilirse bu, vergiler ve ücretler dahil konaklama fiyatını belirtilen değere ayarlar. AmountBeforeTax belirtilmişse AmountAfterTax belirtilse de olmasa da, bu işlem belirtilen değer kadar konaklama için vergi öncesi fiyat. Öngörülen gecelik ücretlerle aynı para biriminde olduğundan emin olun.

AmountAfterTax, yüzdelik bir vergiyi yansıtmak için kullanılıyorsa AmountBeforeTax için sabit bir fiyat ayarlamak yanlış vergi ve ücretlere neden olabilir. Genel olarak TaxFeeInfo kullanmanız kesinlikle önerilir seçeneğini tıklayarak tesisin vergi ve ücretlerini belirtebilirsiniz.

Örnekler:

  • 1 gecelik konaklama fiyatlandırdığımızda AmountBeforeTax 90, AmountAfterTax 100 ve fixed_price 80 ise promosyon ücreti 80 olur.
  • 1 gecelik konaklama fiyatlandırdığımızda AmountBeforeTax 100, fixed_amount 80'dir ve TaxFeeInfo'da %8'lik bir vergi belirtiliyorsa

    promosyon ücreti = sabit fiyat * (1 + yüzdelik vergi)

    86,40 = 80 * 1,08

  • 3 gecelik konaklamayı fiyatlandırırsak AmountAfterTax değerleri 100, 110 ve 120'dir; ve fixed_amount 300'dür, ardından

    promosyon ücreti = 300

Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night 0..1 float

Tam olarak bir percentage, fixed_amount fixed_amount_per_night, fixed_price veya fixed_price_per_night gereklidir.

AmountAfterTax gecelik ücret belirtilirse bu konaklamanın vergi ve ücretler dahil olmak üzere her gecesine ait fiyatı belirtilen değer. AmountBeforeTax belirtilmişse AmountAfterTax belirtilse de olmasa da, bu işlem belirtilen değerde konaklama her gece için vergi öncesi fiyat. Evet gecelik ücretlerle aynı para biriminde olduğu varsayılır.

AmountAfterTax, bir yüzdelik vergi hesaplayıp AmountBeforeTax, vergi ve ücretlerde hataya neden olabilir. Genel olarak TaxFeeInfo kullanmanız kesinlikle önerilir seçeneğini tıklayarak tesisin vergi ve ücretlerini belirtebilirsiniz.

applied_nights belirtilirse yeni fiyat üç gecelik bir ücret uygulanmıştır.

Örnekler:

  • 2 gecelik konaklama için fiyat veriyorsak AmountBeforeTax değerleri 90, 90; AmountAfterTax değerleri 100, 100'dür; ve fixed_price 80 ise promosyon ücreti 80 + 80 = 160.
  • 2 gecelik konaklama için fiyat veriyorsak AmountBeforeTax 100, 100'dür; fixed_amount 80'dir ve TaxFeeInfo %8'lik bir vergi belirtir ve ardından promosyon oranı eşittir (80 + 80) * 1,08 = 172,8.
  • 3 gecelik konaklamayı AmountAfterTax değerleri 100, 110 ve 120, fixed_amount değeri ise 110 olacak şekilde fiyatlandırırsak promosyon oranı 110 * 3 = 330 olur.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

Bu yalnızca percentage veya fixed_amount_per_night.

İndirimin uygulandığı gece sayısı. Bu değer: en uygunudur. 1 ile 99 arasında bir tam sayı olmalıdır. Belirtilmemişse İndirim 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. Üst Discount öğesindeki özellikler bu öğe kullanılırsa izin verilmez.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

İndirimin uygulanması için gereken gece sayısı. Her biri İndirim, konaklama gecelerinin ayrı bir segmentine uygulanır.

Örneğin, stay_nights adlı 10 gecelik konaklama için 4 (ve repeats doğru) ise iki konaklama gecesi yapılıyor Segmentler: 1. ila 4. geceler ve 5. ila 8. geceler; "the" 9. ve 10. geceler, gece konaklama segmentine dahil değildir.

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 indirimdir. Bu değer 50 ise seçilen her gece% 50 indirimli.
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 en ucuz konaklama geceleri segmentindeki geceler için indirim uygulanır.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

İndirimin birden fazla konaklama için uygulanıp uygulanmayacağı segment'e göz atın. false ise yalnızca konaklama geceleri segmenti seyahat planının başlangıcına indirim uygulanır. true ise, Konaklama gecelerinin tüm segmentlerinde indirim yapılır.

Örneğin, stay_nights 4 ve seyahat planı 10 ise geceleri, repeats true ise 2 Segmentler indirimli (1-4. gece ve 5-8. geceler) ancak repeats false, bu durumda yalnızca 1 segment geçerli indirimli (1-4 gece).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer Bu promosyona bir rütbe atar ve sıralamayı seçime dahil eder. yalnızca en düşük sıralamaya sahip promosyon uygulanır. Değerler 1 ile 99 arasında (bu değerler 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

Tam olarak bir Discount veya BestDailyDiscount belirtilmelidir.

Bir konaklama gecesine uygulanabilecek günlük indirim. Bu Discount ile kıyaslandığında, tüm ürünlere indirim uygulanır. kalır.

Her tesis, aşağıdaki koşulları karşılayan tek bir promosyon grubuna sahip olabilir: "günlük en iyi" olarak kabul edilir. Yani her gece konaklamanın süresi, single "en iyi günlük" en yüksek getiriyi sağlayan ve en yüksek dönüşüm oranını o gece için indirim seçilmiştir ve uygulanabilir.

Stacking değeri şununla belirtilebilir: BestDailyDiscount. Şu ikisinden birine ayarlanmalıdır: base veya none. "En iyi günlük" indirimler her gece için en yüksek indirimi sağlayan siteler birleştirilerek tek konaklama indirimi (ör. Discount) yapılandırmanın üç yolu vardır. Bu birleşik indirim, birçok uygun <İndirim> en derin arama getiren reklamı veya kombinasyonu bulmak için indirim. BestDailyDiscount veya daha düşük fiyatı veren tek bir Discount, base yığın türü için seçildi ve uygulandı.

StayDates bu indirim türüyle belirtilebilir. ancak application şuna ayarlanmalıdır: overlap

.
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage 0..1 float

percentage, fixed_amount veya fixed_price öğelerinden tam olarak biri gereklidir.

0 ile 100 arasında yüzdelik indirimi belirten ondalık değerdir. AmountAfterTax (veya AmountAfterTax değilse AmountBeforeTax belirtilir).

Örnekler:

  • Bir gecelik konaklama için AmountAfterTax değeri 100 ve percentage değeri 20 ise bu durumda

    promosyon ücreti = AmountAfterTax * (1 - yüzde indirim)

    80,00 = 100 * (1 - 0,2)

  • Konaklama süresi AmountBeforeTax 100 ise percentage 20'dir ve TaxFeeInfo'da 10 değerinde vergi belirtilmektedir. ardından

    promosyon ücreti = AmountBeforeTax * (1 - yüzde indirim) + vergi

    90,00 = 100 * (1 - 0,2) + 10

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount 0..1 float

Tam olarak bir percentage, fixed_amount veya fixed_price gereklidir.

Tek bir AmountAfterTax gecelik ücretinden (veya AmountAfterTax belirtilmezse AmountBeforeTax gecelik ücretinden) çıkarılacak sabit tutardır. Öngörülen gecelik ücretlerle aynı para biriminde olduğundan emin olun. Bu değer gecelik ücretleri topladıysa sonuç sıfır olur.

Örnekler:

  • Tek gecelik AmountBeforeTax değeri 90, AmountAfterTax değeri 100 ve fixed_amount değeri 20 ise bu durumda

    promosyon ücreti = AmountAfterTax - sabit indirim

    80,00 = 100 - 20

  • Tek bir gece için AmountBeforeTax değeri 100 ise, fixed_amount 20'dir ve TaxFeeInfo, şu tutarda bir vergi belirtir: %8, ardından

    promosyon ücreti = (AmountBeforeTax - sabit indirim) * (1 + yüzdelik vergi)

    86,40 = (100 - 20) * 1,08

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price 0..1 float

Tam olarak bir percentage, fixed_amount veya fixed_price gereklidir.

AmountAfterTax gecelik ücret belirtilirse bu konaklama gecesinin fiyatını, vergiler ve ücretler dahil olmak üzere belirtilen değer. AmountBeforeTax belirtilmişse AmountAfterTax belirtilse de olmasa da, bu işlem belirtilen değer kadar konaklama için vergi öncesi fiyat. Gecelik ücretlerle aynı para biriminde olduğu varsayılır.

Örnekler:

  • Tek bir gece için AmountBeforeTax değeri 90 ise: AmountAfterTax 100 ve fixed_price 80 ise promosyon ücreti 80 olur.
  • Tek gecelik AmountBeforeTax değeri 100, fixed_amount değeri 80 ve TaxFeeInfo'da %8 değerinde vergi belirtiliyorsa bu durumda

    promosyon ücreti = sabit fiyat * (1 + yüzdelik vergi)

    86,40 = 80 * 1,08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount İçinde müsait olması gereken oda sayısına ilişkin kısıtlamaları tanımlar bu promosyonun uygulanması için sipariş verin. İndirim yalnızca gece sayısını karşılaştırabilirsiniz. fixed_amount indirim. Mevcut projeniz için odalar için OTA_HotelInvCountNotifRQ (InvCount) veya OTA_HotelAvailNotifRQ (BookingLimit).
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer Promosyon için kullanılabilir olması gereken minimum oda sayısı uygulanacak. Bu belirtilmemişse minimumdur.
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer Promosyon için kullanılabilir olması gereken maksimum oda sayısı uygulanacak. Bu belirtilmemişse daha fazla bilgi edineceksiniz.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay Bu promosyonun uygulanabileceği konaklama süresi sınırlarını belirler. geçerlidir. Konaklama süresi şunun dışında olduğunda promosyon uygulanmaz: min. ve maksimum sınırları belirleyin.
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer Promosyonun belirlenebilmesi için konaklamada izin verilen minimum gece sayısı geçerlidir. Belirtilmezse minimum değer yoktur.
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer Promosyonun kullanılabilmesi için konaklamada izin verilen maksimum gece sayısı geçerlidir. Belirtilmezse maksimum değer yoktur.
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

Belirli bir kullanıcı arayüzünü tetikleyen üyelik ücreti kuralının kapsayıcısıdır. değerlendirilmesi gerekir.

Bu öğe, belirli bir süre için geçerli olmadıkça <Discount> öğesi de belirtilmiş.

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 Günlük oda fiyatlarının minimum toplamını belirtir ( AmountBeforeTax veya AmountAfterTax) sınırı aşılmamalıdır.
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 geçerli olduğu kişi sayısıyla ilgili kısıtlamaları tanımlar. geçerlidir. Şu değerlerin dışında olanlarda promosyon uygulanmaz: min. ve maks. sınırlar.
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer Bu özelliğin kullanılabilir hale gelmesi için kullanıcı tarafından belirtilen doluluk değerinin en az bu uygulanacak indirimdir.
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer Aşağıdaki özelliğin dönüşüm geçirebilmesi için, kullanıcı tarafından belirtilen doluluk değerinin en fazla bu değer olması gerekir. uygulanacak indirimdir.
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ı, (İşlem'de tanımlandığı şekilde paket, ücretler ve stok durumu) (Tesis Verileri), OTA_HotelRateAmountNotifRQ ve OTA_HotelAvailNotifRQ iletilerinin yer aldığı ve PackageID tarafından tanımlandığı şekilde yapılı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 her <RoomType> için geçerlidir belirtiliyor. <RoomTypes> belirtilmezse promosyon tüm odalar için geçerlidir.
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType Oda türünü belirtir. Oda türü <RoomData> öğesi Transaction (Tesis Verileri) mesajı ve (<RoomID> değeri kullanılarak) referans verildi. ( <RoomID> değerine, OTA_HotelRateAmountNotifRQ öğesinde InvTypeCode özelliği messages.)
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) mesajında <RoomID> adresine. İzin verilen maksimum karakter sayısı 50'dir.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking Promosyonların nasıl birleştirilebileceğini belirtir. Belirtilmemişse "type" base olduğu varsayılır.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

Şuna bağlı olarak tek bir ücrete birden fazla promosyon uygulanabilir: bu ayar:

  • any: Diğer promosyonlarla birleştirilebilir ( none), ancak promosyonların olması gereken sırada garanti edilmez.
  • base: Uygun en iyi base promosyonu: önce seçilip uygulanır. Bu parametrenin eski adı base_only idi.
  • second: Uygun en iyi second promosyonu base promosyondan sonra seçilip uygulanır (geçerliyse) ve any promosyondan önce.
  • none: Diğer promosyonlar.

İzin verilen kombinasyonlar arasından en yüksek indirim fiyata uygulanır.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates Bir veya daha fazla tarih aralığının yer aldığı kapsayıcı mevsimsel indirimlere uymak gibi amaçlarla promosyon uygulanır.
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

Promosyonun nasıl uygulanması gerektiğini açıklar.

Geçerli değerler şunlardır:

  • all: Promosyonu seyahat planındaki tüm tarihler çakışıyorsa seyahat planı tercih edebilirsiniz.
  • any: Promosyonu şu gündeki tüm gecelere uygular: üzerindeki herhangi bir tarihin konaklama tarihleri aralığı.
  • overlap: Promosyonu yalnızca şunlara uygular: konaklama tarihlerindeki bir tarihle çakışan seyahat planındaki gece sayısı aralığı.

Bu özellik her zaman belirtilmelidir.

  • <Discount> öğesinde percentage değeri belirtilirse ve application, all veya any olarak ayarlanırsa indirim, tam konaklama yüzdesi olarak uygulanır.
  • <Discount>, percentage değerini belirtiyorsa ve application overlap olarak ayarlanırsa İndirim, çakışan fiyatlar için gecelik ücretlerin yüzdesi olarak uygulanır geceleri.
  • <Discount>, fixed_amount değerini belirtiyor overlap olarak ayarlanmış application ise geçersiz kombinasyon.
  • <FreeNights> tüm kampanyaları destekliyor application değerleri. overlap için, Yalnızca çakışan geceler indirim için dikkate alınır gereksinimlerini karşılayın.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

Promosyonun uygulanacağı tarihleri belirten tarih aralığıdır.

YearlessDate biçimi de desteklenir.

  • start veya end özelliklerinden biri yıl değeri belirtilmemişse tarihi, her ikisi de yılsız tarih olarak doldurulmalıdır.
  • Yılsız tarih aralıkları yeni yılı kapsamamalıdır. Bunun yerine aralığı, bitişik iki tarih aralığı olarak temsil eder. Örneğin, {"12-29", "01-05"} şu şekilde temsil edilebilir: {"12-29", "12-31"} ve {"01-01", "01-05"}.

StayDates aralığını, haftanın belirli günlerinde promosyona izin verecek şekilde ayarlamak istiyorsanız promosyonun süresinin dolmaması için start tarihini end olmadan geçerli tarih olarak ayarlamanız gerekir.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate Başlangıç tarihi (tesisin bulunduğu saat dilimine göre), seçin. Bu tarih, end tarihi. start belirtilmezse tarih aralığı, başlangıç tarihi açısından etkin bir şekilde sınırsızdır.

Şu durumda start değerini belirtmeniz gerekir: end değeri sağlanmamış.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate Tesisin bulunduğu saat dilimine göre, bitiş tarihi seçin. Bu tarih, start tarihi. end belirtilmezse tarih aralık, start tarihinden itibaren etkin şekilde sınırsızdır.

Şu durumda end değerini belirtmeniz gerekir: start değeri sağlanmamış.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 string

Tarih aralığında izin verilen günleri ifade eder. Değilse belirtilen tarih aralığında tüm günlere izin verilir. Her biri karakteri bir günü belirtir. Örneğin, "MTWHF" belirtir belirtilen tarih aralığında hafta içi günlerine izin verilir.

Geçerli karakterler şunlardır:

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

Karakter kombinasyonları geçerlidir.

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries Uygun olan kullanıcı konumlarını (ülkeleri) listeleyen kapsayıcı teşvik edebilirsiniz. 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: include ve exclude.

Kullanıcı ülkeleri type değeri şu şekilde ayarlanırsa: include, promosyon şu ülkelerdeki kullanıcılar için geçerlidir: listelenen ülkeler.

Kullanıcı ülkeleri type değeri exclude ise promosyon listelenenlerin dışındaki kullanıcılar için geçerlidir ülkeler.

UserÜlkeler type ayarlanmazsa şu şekilde kabul edilir: include ve promosyon şu ülkelerdeki kullanıcılara uygulanır: listelenen ülkeler.

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 CLDR ülkesi kod'u, DE veya FR gibi. Bazılarının CLDR ülke kodu, 2 harfli ISO ile aynı değildir ülke kodu. Ayrıca, CLDR bölge kodları desteklenmez.

Örnekler

Tesis başına 500 promosyon sınırı vardır. Daha fazla bilgi için promosyon" Örnek olarak bir tesisteki promosyonları kaldırabilirsiniz.

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 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 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ın üstüne yazma

Aşağıdaki örnekte bir mülk için <HotelPromotions> yer paylaşımının nasıl yapılacağı gösterilmektedir bir veya daha fazla yeni promosyonla ekleyebilirsiniz. action="overlay" olduğunda tümü depolanır Promosyonlar geçerli mesaj:

<?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 kullanılabileceği bir durum gösterilmektedir uygulandı (base, second, any). none promosyonu Diğer promosyonlar daha iyi indirim sağladığı için uygulanır. Asıl 100 TL olsaydı indirimli fiyat 72, 90 TL 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, none promosyonunun Diğer promosyonların kombinasyonu daha düşük bir indirim sağlar. Öğe 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üre Sınırları

Aşağıdaki örnekte BookingWindow öğesinin öğesi, başlangıç ve bitiş sınırları ISO 8601 Süresi olarak tanımlanmış şekilde kullanılır türü. Bu rezervasyon aralığı kısıtlaması için en geç 18:00'de rezervasyon yapmanız gerekiyor Varıştan önceki gün ve 2. günde saat 12:00'de veya sonrasında gösterir.

<?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 öğesi, aşağıdaki durumlarda start ve end özellikleriyle kullanılır: DateTime türlerine bağlıdır. Bu rezervasyon tarihi kısıtlaması nedeniyle rezervasyonun gerçekleşmesi gerekiyor 01.07.2020 06:30 ve 02.07.2020 18:45 arasında.

<?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 öğesi, start içeren DateRanges ve Yıl içermeyen end alan. 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çersiz olduğundan 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, iki gecelik konaklamalar için her dört gece için% 50 indirim belirtilen rezervasyon tarihi aralığı. 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>

Bir sonraki örnek gecelik indirim, konaklama süresi boyunca her üç gece için% 50 oranında belirtilen konaklama tarihleri aralığı Yalnızca çakışan gece sayısı (konaklama sayısı) indirime hak kazanmayı hedefler. Check-in yapılan aşağıdaki seyahat planı için 01.01.2022'de çıkış yapacak ve 07.01.2022'de çıkış yapacak ve konaklamaya ve indirimler aşağıdaki şekilde uygulanır.

  • 2022-01-01 (konaklama)
  • 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, 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 örnek, BestDailyDiscount, bir Discount ile birlikte gösteriliyor.

<?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 - 2 Mayıs 2023 tarihleri arasında iki gecelik konaklamayı düşünebilirsiniz Hesaplama için, en iyi günlük indirim oranını sağlayan bulunur.

İlk gece, "genel" tek uygun tutardır, 20 sabit indirimle.

İkinci gece için “may” daha yüksek bir indirim olanağı sunar. "genel" indirim. “ sabit indirim seçiliyken tutar 50.

Konaklama için de "şenlik" gecelik 5 adete promosyon indirimi veya Toplam 10. En iyi günlük indirimlerin kombinasyonuyla birlikte kullanılabilir. çünkü "fiesta" yığma türü any olarak ayarlanmış. Ayarlanmışsa base, yalnızca en iyi günlük indirimlerin veya "fiesta" indirim uygulanır. Şu açıklamaya bakın: Daha fazla bilgi için Stacking.

Genel olarak konaklamanın fiyatına 20 + 50 + 10 = 80 sabit tutar verilir. indirim.

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 bir öğenin başarısını veya sorunlarını gösteren kök öğe Promosyon istek mesajı.
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 başarıyla işlendiğini belirtir. uyarı, hata veya sorun yok.

Her mesajda <Success> veya <Issues> bulunur.

PromotionsResponse / Issues 0..1 Issues işlenirken karşılaşılan bir veya daha fazla sorun için bir kapsayıcı Promosyonlar mesajı.

<Success> veya <Issues> her iletide yer alır.

PromotionsResponse / Issues / Issue 1..n Issue Güncelleme sırasında karşılaşılan uyarı, hata veya sorunun Promosyonlar mesajını işliyoruz. Bu sorunlarla ilgili ayrıntılar şurada bulunabilir: bir listesini oluştur: Feed Durumu Hata Mesajları.
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 warning, error, ve failure.

Ö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.

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