תוכן מקודם

סקירה כללית

ה-API הזה מאפשר לציין הנחות אפשריות. מתוך המבצעים שצוינו, Google מחילה את המבצע או קבוצת המבצעים שעומדים בדרישות שמובילים אל המחיר הנמוך ביותר. אם אתם מחפשים API שתומך בשיעור שרירותי התאמות שיכולות להעלות או להוריד את המחיר כאשר מתקיימים ומרוצה להסתכל על Rate Changes API. הערה: אם שני ממשקי ה-API קיימים, השינויים בתעריפים יחולו לפני קידומי מכירות.

בקשות

תחביר

ההודעה Promotions מבוססת על התחביר הבא:

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

רכיבים ומאפיינים

הודעת המבצעים כוללת את הרכיבים והמאפיינים הבאים:

רכיב / @Attribute מופעים סוג תיאור
Promotions 1 Complex element רכיב הבסיס של הודעת קידום מכירות.
Promotions / @partner 1 string חשבון השותף שאליו שייכת ההודעה הזו. ערך המחרוזת הזה הוא מפתח שותף הערך שרשום ב ה דף הגדרות החשבון ב-Hotel Center.

אם יש לכם קצה עורפי שמספק פידים מספר חשבונות, הערך הזה צריך להתאים לערך בשדה ID ערך המאפיין שמצוין ברכיב <RequestorID> של <OTA_HotelRateAmountNotifRQ> ו <OTA_HotelAvailNotifRQ> הודעות לאותה ההודעה חשבון.

Promotions / @id 1 string מזהה ייחודי להודעת הבקשה הזו. הערך הזה מוחזר בהודעת התשובה. התווים המותרים הם a-z, A-Z, 0-9, _ (קו תחתון) וגם - (מקף).
Promotions / @timestamp 1 DateTime התאריך והשעה של יצירת ההודעה הזו.
Promotions / HotelPromotions 0..n HotelPromotions

מבצעים על נכס. כל מבצע חל על לנכס.

אלא אם נעשה שימוש ב-<Stacking>, המבצע עם ההנחה הגדולה ביותר יחול על ההזמנה. עומדים בדרישות מספר מבצעים.

Promotions / HotelPromotions / @hotel_id 1 string המזהה הייחודי של הנכס. הערך הזה חייב להתאים לערך מזהה המלון צוין באמצעות <id> ברכיב <listing> בפיד של רשימת המלונות. מזהה המלון מופיע גם ב-Hotel Center.
Promotions / HotelPromotions / @action 0..1 enum

אם צוין, הערך צריך להיות "overlay" כשהערך הוא "overlay", כל האפשרויות מבצעים מאוחסנים נמחקים לפני אחסון המבצעים שצוינו בהודעה הנוכחית.

אם לא מציינים זאת, כל מבצע שצוין ההודעה היא אחת מהאפשרויות הבאות:

  • Added (אם אף אחד מהמבצעים המאוחסנים לא כולל את אותו id)
  • Updated (אם מבצע ששמור בו זהה id)
  • Deleted (אם מבצע ששמור בו זהה id והערך של המאפיין action למבצע שצוין בהודעה הנוכחית הוא "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

מבצע יחיד של נכס. שימו לב שאם action="overlay" ו-<Promotion> הם לא צוין, כל קידומי המכירות של הנכס יימחקו.

אם אתם צריכים להשתמש ביותר מ-99 מבצעים, אתם יכולים ליצור קשר מנהל החשבונות הטכני (TAM).

Promotions / HotelPromotions / Promotion / @id 1 string מזהה ייחודי של המבצע. המספר המקסימלי של מספר התווים המקסימלי הוא 40. התווים המותרים הם a-z, A-Z, 0-9, _ (קו תחתון), - (מקף) ו- . (נקודה).
Promotions /HotelPromotions / Promotion / @action 0..1 enum

אם צוין, הערך חייב להיות delete. אחרת מוגדר, מבצע עם אותו id לא נשמר, ואז המבצע הזה המבצע נשמר. אחרת, אם הוא לא צוין ומבצע עם אותו id יישמר, והמבצע הקיים הוא עודכן.

אם מציינים delete, המבצע המאוחסן עם המאפיין הזה אותו id נמחק. כשמשתמשים ב-delete, אין לכלול רכיבי צאצא ב- <Promotion>. בנוסף, delete אינו מותר בשילוב עם <HotelPromotions action="overlay"/>.

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates מכלה לטווח אחד או יותר שמגדירים מתי צריכה להתבצע ההזמנה כדי שהמבצע יחול.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange טווח שמציין מתי צריכה להתבצע ההזמנה כדי שהמבצע יהיה תקף הוחלו.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 Date או DateTime

תאריך ההתחלה או התאריך והשעה (על סמך אזור הזמן של הנכס), כולל את הטווח.

  • התאריך או התאריך והשעה שצוינו על ידי start חייבים להיות מוקדם מתאריך (או זהה ל) התאריך או התאריך והשעה שצוינו על ידי end.
  • אם לא מציינים את start, הטווח יעיל אין הגבלה על שעת ההתחלה.
  • אם start מאוכלס כתאריך 'YYYY-MM-DD', המשמעות היא מתפרש כתאריך ושעה "YYYY-MM-DDT00:00:00".
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date או DateTime

תאריך הסיום או התאריך והשעה (על סמך אזור הזמן של הנכס) כולל את הטווח.

  • התאריך או התאריך והשעה שמצוינים על ידי end חייבים לחול מאוחר יותר התאריך או התאריך והשעה שצוינו על ידי (או זהים ל-) start.
  • אם לא מציינים את end, הטווח יעיל אין הגבלה על זמן הסיום.
  • אם צוין end כתאריך 'YYYY-MM-DD', המשמעות היא מתפרש כתאריך ושעה "YYYY-MM-DDT23:59:59".
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

הימים בשבוע שמותרים בטווח התאריכים. אחרת שצוין, כל הימים מותרים בטווח התאריכים. כל אחד במחרוזת מציין יום. לדוגמה, "MTWHF" מציין שימי חול מותרים בטווח התאריכים.

התווים החוקיים הם:

  • M ליום שני
  • T ביום שלישי
  • W ליום רביעי
  • H ליום חמישי
  • F ליום שישי
  • S ליום שבת
  • U ביום ראשון

כל שילוב תווים חוקי.

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow מציינת את התקופה שבה צריך לבצע הזמנה ביחס תאריך הצ'ק אין (על סמך אזור הזמן של הנכס). לדוגמה, אפשר להגדיר חלון הזמנות של 7 ימים לפחות, אבל לא יותר מ-180 ימים. לפני ביצוע הצ'ק-אין.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration משך הזמן המינימלי לפני הצ'ק-אין, בזמן ביצוע ההזמנה כדי להחיל את המבצע. אם לא צוין ערך, או אם צוין ערך אחר הוא 0, אין מינימום.

סוגי הערכים החוקיים הם:

  • מספר שלם: מספר הימים לפני ביצוע הצ'ק-אין תאריך. לדוגמה, ערך של 30 מציין את המבצע חל רק על הזמנות 30 יום לפחות לפני תאריך הצ'ק אין.
  • משך זמן לפי תקן ISO 8601 (ימים, שעות ודקות): מספר ימים (ואופציונלית גם שעות/דקות) לפני תאריך הצ'ק-אין. עבור לדוגמה, הערך P30D מציין את המבצע בלבד רלוונטי להזמנות 30 יום לפחות לפני תאריך הצ'ק אין. א' בערך של P30DT6H, נדרשת הזמנה בשעה 18:00 או לפני כן יום 30 לפני ההגעה.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration מספר הימים המקסימלי לפני הצ'ק-אין שבו ההזמנה חייבת להתבצע כדי להחיל את המבצע. אם לא צוין ערך, או אם צוין ערך אחר הוא 0, אין הגבלה.

סוגי הערכים החוקיים הם:

  • מספר שלם: מספר הימים לפני ביצוע הצ'ק-אין תאריך. לדוגמה, ערך של 30 מציין את המבצע חל רק על הזמנות 30 ימים לכל היותר לפני תאריך הצ'ק אין.
  • משך זמן לפי תקן ISO 8601 (ימים, שעות ודקות): מספר ימים (ואופציונלית גם שעות/דקות) לפני תאריך הצ'ק-אין. עבור לדוגמה, הערך P30D מציין את המבצע בלבד חל על הזמנות לכל היותר 30 יום לפני תאריך הצ'ק אין. א' בערך של P30DT6H נדרשת הזמנה בשעה 18:00 או לאחר מכן יום 30 לפני ההגעה.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

הגדרת הגבלות על הערך המקסימלי שאפשר להגדיר לתעריף אחרי מימוש המבצעים.

במבצעים תמיד צריך לציין <Discount> או <BestDailyDiscount>, ולכן כדי ליצור מבצע חלה רק <Ceiling>, אפשרות אחת היא להגדיר <Discount> עם percentage של 0

אם מוגדר ערימה, אז יש כמה מבצעים עם <Ceiling> יכול לחול על שהייה אחת. כל קידום מכירות המערכת תחיל את ההנחה ומיד אחריה את התקרה. הדוגמה הבאה ממחישה איך כל תקרה תורמת חישובי קידום במקבץ.

דוגמה:

המחירים של שהייה של לילה אחד במקום של AmountBeforeTax 100 וקיים מקבץ של שני קידומי מכירות:

  1. קידום מכירות עם ערימה מסוג base, A fixed_amount מתוך 25, ותקר amount_per_night מתוך 60
  2. קידום מכירות עם ערימה מסוג second, fixed_amount מתוך 25, ותקר amount_per_night מתוך 90

זהו סדר החישוב:

  1. מבצע base מופעל ראשון והנחות AmountBeforeTax עד 75, אבל התקרה נמוכה יותר ל-60.
  2. המבצע של second הנחות AmountBeforeTax מ-60 עד 35. זו מתחת לתקרה של 90 כך שהתקרה השנייה לא תוחל. התעריף הסופי הוא 35.

העובדה ש-60 היא תקרה כוללת מחמירה יותר אינה רלוונטית, מאחר היא תקפה רק עבור הקידום שלה, ולא יכולה להתקיים גם תקרה שמתפרשת על פני כל מקבץ המבצעים.

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

הסכום המקסימלי שאפשר להגדיר לתעריף ללילה אחרי תחול הנחה.

אם צוין גם רכיב <Floor>, חייב להיות מוגדר לערך שגדול מהערך או שווה לו מאפיין amount_per_night ב- <Floor>

הסכום amount_per_night יחול על מיסים ועמלות כאשר הם כלולים בתעריף ללילה ב-AmountAfterTax, אבל לא אלה שצוינו באמצעות TaxFeeInfo.

Promotions / HotelPromotions / Promotion / Floor 0..1 Floor

הגדרת הגבלות על הערך המינימלי שאפשר להגדיר לתעריף אחרי מימוש המבצעים.

במבצעים תמיד צריך לציין <Discount> או <BestDailyDiscount>, ולכן כדי ליצור מבצע חלה רק <Floor>, אפשרות אחת היא להגדיר <Discount> עם percentage של 0

הלוגיקה של <Floor> עדיין חלה על הנחות של <FreeNights>, גם אם הלילה בחינם הוחלה עליו הנחה של 100%.

אם מוגדר ערימה, אז יש כמה מבצעים עם <Floor> יכול לחול על שהייה אחת. כל קידום מכירות המערכת תחיל את ההנחה ומיד אחריה מגיעה הצעת המחיר המינימלית. הדוגמה הבאה ממחישה איך כל קומה תרמה חישובי קידום במקבץ.

דוגמה:

המחירים של שהייה של לילה אחד במקום של AmountBeforeTax 100 וקיים מקבץ של שני קידומי מכירות:

  1. קידום מכירות עם ערימה מסוג base, A fixed_amount מתוך 25, וקומה amount_per_night מתוך 90
  2. קידום מכירות עם ערימה מסוג second, fixed_amount מתוך 25, וקומה amount_per_night מתוך 60

זהו סדר החישוב:

  1. מבצע base מופעל ראשון והנחות AmountBeforeTax עד 75, אבל אז הרצפה מעלה אותו עד 90.
  2. המבצע של second הנחות AmountBeforeTax מ-90 עד 65. המיקום הזה מעל לקומה של 60, כך שהקומה השנייה לא מוחלת. התעריף הסופי הוא 65.

העובדה ש-90 היא סף כולל מחמיר יותר אינה רלוונטית, מאחר היא תקפה רק עבור הקידום שלה, ולא יכולה להתקיים גם על פני כל מקבץ המבצעים.

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

הסכום המינימלי שאפשר להגדיר לתעריף ללילה אחרי תחול הנחה.

אם צוין גם רכיב <Ceiling>, חייב להיות מוגדר לערך שקטן מהערך או שווה לו מאפיין amount_per_night ב- <Ceiling>

הסכום amount_per_night יחול על מיסים ועמלות כאשר הם כלולים בתעריף ללילה ב-AmountAfterTax, אבל לא אלה שצוינו באמצעות TaxFeeInfo.

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates מאגר לטווח תאריכים אחד או יותר שמגדירים מתי לבצע צ'ק-אין. כדי להחיל את המבצע.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

טווח תאריכים שמציין מתי צריך לבצע צ'ק-אין כדי לממש את המבצע להיות מיושם. אין צורך ברכיב הזה אם מוחקים פריט אחד או יותר קידומי מכירות.

יש תמיכה גם בפורמט YearlessDate.

  • אם אחד מהתאריכים start או end הוא חסר שנה צריך לאכלס את שניהם כתאריכים ללא שנה.
  • טווחי תאריכים ללא שנים לא יכולים לכלול את השנה החדשה. במקום זאת, שמייצגים את הטווח כשני טווחי תאריכים סמוכים. לדוגמה, אפשר לייצג את {"12-29", "01-05"} בתור {"12-29", "12-31"} וגם {"01-01", "01-05"}.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate תאריך ההתחלה (לפי אזור הזמן של הנכס), כולל טווח התאריכים. התאריך הזה חייב להיות לפני, או זהה לתאריך תאריך: end. אם לא צוין start, התאריך בפועל אינו מוגבל מבחינת תאריך ההתחלה.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0..1 Date or YearlessDate תאריך הסיום (על סמך אזור הזמן של הנכס), כולל טווח תאריכים. התאריך הזה חייב להיות זהה לתאריך start או אחריו תאריך. אם לא צוין end, התאריך בפועל הוא בלתי מוגבל במונחים של תאריך סיום.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week 0..1 string

הימים בשבוע שמותרים בטווח התאריכים. אחרת שצוין, כל הימים מותרים בטווח התאריכים. כל אחד במחרוזת מציין יום. לדוגמה, "MTWHF" מציין שימי חול מותרים בטווח התאריכים.

התווים החוקיים הם:

  • M ליום שני
  • T ביום שלישי
  • W ליום רביעי
  • H ליום חמישי
  • F ליום שישי
  • S ליום שבת
  • U ביום ראשון

כל שילוב תווים חוקי.

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates מאגר לטווח תאריכים אחד או יותר שמוגדר בזמן התשלום בקופה חייב להתרחש כדי שהמבצע יחול.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

טווח תאריכים שמציין מתי צריך להתבצע צ'ק-אאוט כדי לממש את המבצע להיות מיושם. הרכיב הזה לא נדרש אם מתבצעת מחיקה של קידום מכירות אחד או יותר.

יש תמיכה גם בפורמט YearlessDate.

  • אם אחד מהתאריכים start או end הוא ללא שנה צריך לאכלס את שניהם כתאריכים ללא שנה.
  • טווחי תאריכים ללא שנים לא יכולים לכלול את השנה החדשה. במקום זאת, שמייצגים את הטווח כשני טווחי תאריכים סמוכים. לדוגמה, אפשר לייצג את {"12-29", "01-05"} בתור {"12-29", "12-31"} והקבוצה {"01-01", "01-05"}.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate תאריך ההתחלה (לפי אזור הזמן של הנכס), כולל טווח התאריכים. התאריך הזה חייב להיות לפני, או זהה לתאריך תאריך: end. אם לא צוין start, התאריך בפועל אינו מוגבל מבחינת תאריך ההתחלה.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate תאריך הסיום (על סמך אזור הזמן של הנכס), כולל טווח תאריכים. התאריך הזה חייב להיות זהה לתאריך start או אחריו תאריך. אם לא צוין end, התאריך בפועל הוא בלתי מוגבל במונחים של תאריך סיום.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week 0..1 string

הימים בשבוע שמותרים בטווח התאריכים. אחרת שצוין, כל הימים מותרים בטווח התאריכים. כל אחד במחרוזת מציין יום. לדוגמה, "MTWHF" מציין שימי חול מותרים בטווח התאריכים.

התווים החוקיים הם:

  • M ליום שני
  • T ביום שלישי
  • W ליום רביעי
  • H ליום חמישי
  • F ליום שישי
  • S ליום שבת
  • U ביום ראשון

כל שילוב תווים חוקי.

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices קונטיינר שבו אפשר לראות רשימה של מכשירי המשתמשים שעומדים בדרישות של במבצע. אם צוין, רק משתמשים שעומדים בדרישות במכשירים שצוינו מקבלים את התעריף המוזל. אם לא צוין, משתמשים שעומדים בדרישות בכל מקבלים את התעריף המוזל.
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device מגדיר סוג אחד של מכשיר משתמש שזכאי למבצע.
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum סוג המכשיר. הערך חייב להיות desktop, tablet או mobile.
Promotions / HotelPromotions / Promotion / Discount 1 Discount

בדיוק אחד מתוך Discount או צריך לציין את BestDailyDiscount.

הנתון הזה מציין את ההנחה שתחול על המבצע.

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

בדיוק אחד מתוך percentage, fixed_amount, fixed_amount_per_night fixed_price, או fixed_price_per_night הוא נדרש.

ערך עשרוני מ-0 עד 100 שמציין את אחוז ההנחה. הוא חל על AmountAfterTax (או AmountBeforeTax אם AmountAfterTax לא שצוין).

דוגמאות:

  • אם הערך של AmountAfterTax הוא 100 וגם percentage הוא 20, ואז

    שיעור המבצע = AmountAfterTax * (1 - אחוז) הנחה)

    80.00 = 100 * (0.2 - 1)

  • אם הערך של AmountBeforeTax הוא 100, הערך percentage הוא 20 ו-TaxFeeInfo מציין מס של 10, לאחר מכן

    שיעור המבצע = AmountBeforeTax * (1 - אחוז) הנחה) + מס

    90.00 = 100 * (1 - 0.2) + 10

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

בדיוק אחד מתוך percentage, fixed_amount, fixed_amount_per_night fixed_price, או fixed_price_per_night הוא נדרש.

סכום קבוע שינוכה מהסכום של AmountAfterTax תעריפים ללילה (או סכום של AmountBeforeTax מחירים ללילה אם AmountAfterTax לא צוין). מניחים שהוא באותו מטבע כמו השערים ללילה. אם הוא גדול מ- סכום התעריפים ללילה, הערך שמתקבל הוא אפס.

דוגמאות:

  • אם אנחנו מתמחרים שהייה של לילה אחד במקום AmountBeforeTax הוא 90, AmountAfterTax הוא 100, ו-fixed_amount הוא 20, ואז

    שיעור המבצע = AmountAfterTax – קבוע הנחה

    80.00 = 100 - 20

  • אם אנחנו מתמחרים שהייה של לילה אחד במקום AmountBeforeTax הוא 100, fixed_amount הוא 20, ו-TaxFeeInfo מציין מס של 8%, אז

    שיעור המבצע = (AmountBeforeTax – קבוע) הנחה) * (1 + מס באחוזים)

    86.40 = (100 - 20) * 1.08

  • אם אנחנו מתמחרים שהייה של לילה אחד במקום AmountBeforeTax הוא 50, fixed_amount הוא 60, ו-TaxFeeInfo מציין מס של 10, ולאחר מכן

    שיעור המבצע = (AmountBeforeTax – קבוע) הנחה) * מס

    10.00 = 0 + 10

  • אם אנחנו מתמחרים שהייה של 3 לילות, הערכים של AmountAfterTax הם 100, 110 ו-120. וגם fixed_amount הוא 150, ואז

    שיעור המבצע = סכום(AmountAfterTax) - (קבוע הנחה)

    180.00 = (100 + 110 + 120) - 150

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

בדיוק אחד מתוך percentage, fixed_amount, fixed_amount_per_night fixed_price, או fixed_price_per_night הוא נדרש.

הנחה קבועה שתחול על כל אחד מהנכסים מסוג AmountAfterTax המחירים ללילה (או הזול ביותר אם צוין applied_nights). אם המיקום השדה AmountAfterTax לא צוין, הוא חל על AmountBeforeTax. מניחים שהוא באותו מטבע כמו השערים ללילה. אם המיקום fixed_amount_per_night גדול מ- התעריף ללילה הזה מוקטן לאפס – ההנחה לא יכולה לגרום לתעריף ללילה להיות שלילי.

דוגמאות:

  • אם אנחנו מתמחרים שהייה של 3 לילות, הערכים של AmountAfterTax הם 100, 110 ו-120. את הרצף fixed_amount_per_night הוא 10, ואז

    שיעור המבצע = סכום(AmountBeforeTax - סכום קבוע) הנחה)

    300.00 = (100-10) + (110-10) + (120-10))

  • אם אנחנו מתמחרים שהייה של 3 לילות, הערכים של AmountAfterTax הם 10, 50 ו-100. את הרצף fixed_amount_per_night הוא 20, ואז

    שיעור המבצע = סכום(AmountAfterTax - סכום קבוע) הנחה)

    110.00 = (0 + (50 - 20) + (20 - 100))

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

בדיוק אחד מתוך percentage, fixed_amount, fixed_amount_per_night fixed_price, או fixed_price_per_night הוא נדרש.

אם מציינים AmountAfterTax תעריפים ללילה, אין קובעת את מחיר השהייה, כולל מיסים ועמלות, בערך שצוין. אם צוין AmountBeforeTax, אז גם אם AmountAfterTax מצוין או לא, הפעולה הזו קובעת המחיר לפני מס עבור השהייה בערך שצוין. מניחים שהוא באותו מטבע כמו השערים ללילה.

אם AmountAfterTax נועד לשקף אחוז מס, ולאחר מכן הגדרת מחיר קבוע עבור AmountBeforeTax עלול לגרום לאי-דיוקים במיסים ובעמלות. באופן כללי, מומלץ מאוד להשתמש ב-TaxFeeInfo כדי לציין את המיסים והעמלות של נכס.

דוגמאות:

  • אם אנחנו מתמחרים שהייה של לילה אחד במקום AmountBeforeTax הוא 90, AmountAfterTax הוא 100, ו-fixed_price הוא 80, שיעור המבצע הוא 80.
  • אם אנחנו מתמחרים שהייה של לילה אחד במקום AmountBeforeTax הוא 100, fixed_amount הוא 80, ו-TaxFeeInfo מציין מס של 8%, אז

    שיעור המבצע = מחיר קבוע * (1 + מס באחוזים)

    86.40 = 80 * 1.08

  • אם אנחנו מתמחרים שהייה של 3 לילות, הערכים של AmountAfterTax הם 100, 110 ו-120. וגם fixed_amount הוא 300, ואז

    שיעור המבצע = 300

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

בדיוק אחד מתוך percentage, fixed_amount, fixed_amount_per_night fixed_price, או fixed_price_per_night הוא נדרש.

אם מציינים AmountAfterTax תעריפים ללילה, אין קובע את המחיר לכל לילה של שהייה, כולל מיסים ועמלות, בערך שצוין. אם צוין AmountBeforeTax, אז גם אם AmountAfterTax מצוין או לא, הפעולה הזו קובעת המחיר לפני מס לכל לילה שהייה לפי הערך שצוין. זה כן מניחים שהם באותו מטבע כמו שערי חליפין ללילה.

אם AmountAfterTax נועד לשקף אחוז מס, ולאחר מכן הגדרת מחיר קבוע עבור AmountBeforeTax עלול לגרום לאי-דיוקים במיסים ובעמלות. באופן כללי, מומלץ מאוד להשתמש ב-TaxFeeInfo כדי לציין את המיסים והעמלות של נכס.

אם מציינים applied_nights, המחיר החדש הוא תקף ל-N הלילות הזולים ביותר.

דוגמאות:

  • אם אנחנו מתמחרים שהייה של 2 לילות, הערכים של AmountBeforeTax הם 90, 90. ערכי AmountAfterTax הם 100, 100. וגם הערך של fixed_price הוא 80, ואז שיעור המבצע הוא 80 + 80 = 160.
  • אם אנחנו מתמחרים שהייה של 2 לילות, AmountBeforeTax הוא 100, 100; fixed_amount הוא 80, וב-TaxFeeInfo מצוין מס של 8%, ואז שיעור המבצע הוא (80 + 80) * 1.08 = 172.8.
  • אם אנחנו מתמחרים שהייה של 3 לילות, הערכים של AmountAfterTax הם 100, 110 ו-120. וגם הערך של fixed_amount הוא 110, ואז שיעור המבצע הוא 110 * 3 = 330.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

יש להשתמש באפשרות הזו רק עם percentage או fixed_amount_per_night.

מספר הלילות שעליהם חלה ההנחה, החל מ- הזולה ביותר. צריך להיות מספר שלם בין 1 ל-99. אם לא מציינים זאת, ההנחה חלה על כל הלילות.

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights מציינת הנחה על לילות מסוימים של שהייה בזמן שהייה מינימלית הגעת לאורך המקסימלי. מאפיינים ברכיב ההורה Discount אין הרשאה אם נעשה שימוש ברכיב הזה.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

מספר הלילות הנדרשים כדי שההנחה תחול. כל אחד ההנחה תחול על פלח נפרד של לילות שהייה.

לדוגמה, לשהייה של 10 לילות במקום stay_nights 4 (והערך repeats נכון), ואחר כך יש שני לילות לשהייה קטעים: הלילות הראשון עד הרביעי והלילות החמישיים עד השמיניים. ה לילות 9 ו-10 לא נכללים בפלח של שהייה בלילה.

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer מספר הלילות בהנחה בכל פלח של לילות השהייה.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float ההנחה שתחול על לילות ההנחה. אם הערך הזה המחיר הוא 50, ואז הנחה של 50% לכל לילה שנבחר.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string התו חייב להיות cheapest או last. אם המיקום last, ולאחר מכן לילות בסוף קטע השהייה לילות בהנחה. אם המחיר הוא cheapest, המחיר יהיה הזול ביותר לילות שנכללים בפלח לילות השהייה מקבלים הנחה.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

אם אפשר להחיל את ההנחה על כמה לילות שהייה פלחים. אם הערך שלו הוא false, רק הפלח של לילות השהייה הוא בתחילת מסלול הנסיעה תהיה הנחה. אם true, אז מקבלים הנחה על כל חלק של לילות השהייה.

לדוגמה, אם הערך של stay_nights הוא 4 ומסלול הנסיעה הוא 10 לילות, אז אם repeats הוא true, אז 2 קטעים בהנחה (לילות 1-4 ולילות 5-8); אבל, אם repeats הוא false, ואז רק פלח אחד בהנחה (לילות 1 עד 4).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer מקצה לקידום הזה דירוג ומשלבת אותו בבחירת דירוג, כאשר רק המבצע עם הדירוג הנמוך ביותר ייבחר. ערכים חייב להיות בין 1 ל-99, כולל. אם כמה מבצעים חולקים את אותו הדבר דירוג אחד, נבחר והוחל באופן שרירותי.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

בדיוק אחד מתוך Discount או צריך לציין את BestDailyDiscount.

מציין הנחה יומית שעשויה לחול על לילה להישאר. זאת בניגוד להסבר Discount, שחל הנחות על כל שהיות.

בכל מלון יכולה להיות קבוצה אחת של מבצעים נחשב 'הכי טוב מדי יום'. כלומר, עבור כל לילה של שהייה, יחיד 'הכי טוב יומי' שעומד בקריטריונים ושמפיק את התוצאות העמוקות ביותר נבחרה הנחה לאותו לילה, ואפשר להחיל אותה.

אי אפשר לציין Stacking עם BestDailyDiscount. הדוח 'הכי טוב יומי' שמניבות ההנחה העמוקה ביותר לכל לילה משולבת ומטופלת כיחיד הנחת שהייה (למשל: Discount) עם סוג הערימה שמוגדר base. המערכת משווה בין ההנחה המשולבת, ויכולה להיות מוערם עם, אחר כשיר <Discount> במבצעים כדי למצוא אחד או שילוב מסוימים שמספקים את ההנחה העמוקה ביותר. אחת מהאפשרויות שילוב של BestDailyDiscount או שילוב אחד Discount, בהתאם למחיר הנמוך ביותר, ייבחר וגם הוחל על סוג הערימה base.

אפשר לציין StayDates עם הנחה מהסוג הזה, אבל application צריך להיות overlap

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

בדיוק אחד מתוך percentage, השדה fixed_amount או fixed_price הוא שדה חובה.

ערך עשרוני מ-0 עד 100 שמציין את אחוז ההנחה. הוא חל על AmountAfterTax (או AmountBeforeTax אם AmountAfterTax לא שצוין).

דוגמאות:

  • אם הערך של AmountAfterTax ללילה שהייה הוא 100 ו percentage הוא 20, ואז

    שיעור המבצע = AmountAfterTax * (1 - אחוז) הנחה)

    80.00 = 100 * (0.2 - 1)

  • אם הערך של AmountBeforeTax למדד שהייה הוא 100, הערך percentage הוא 20 ו-TaxFeeInfo מציין מס של 10, לאחר מכן

    שיעור המבצע = AmountBeforeTax * (1 - אחוז) הנחה) + מס

    90.00 = 100 * (1 - 0.2) + 10

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

בדיוק אחד מתוך percentage, השדה fixed_amount או fixed_price הוא שדה חובה.

סכום קבוע לניכוי מסכום בודד תעריף ללילה של AmountAfterTax (או תעריף ללילה בסך AmountBeforeTax אם AmountAfterTax לא צוין). מניחים שהוא באותו מטבע כמו השערים ללילה. אם הוא גדול מ- סכום התעריפים ללילה, הערך שמתקבל הוא אפס.

דוגמאות:

  • אם הערך של AmountBeforeTax ללילה אחד הוא 90, AmountAfterTax הוא 100, ו-fixed_amount הוא 20, ואז

    שיעור המבצע = AmountAfterTax – קבוע הנחה

    80.00 = 100 - 20

  • אם הערך של AmountBeforeTax ללילה אחד הוא 100, הערך של fixed_amount הוא 20, והערך TaxFeeInfo מציין מס של 8% ואז

    שיעור המבצע = (AmountBeforeTax – קבוע) הנחה) * (1 + מס באחוזים)

    86.40 = (100 - 20) * 1.08

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

בדיוק אחד מתוך percentage, השדה fixed_amount או fixed_price הוא שדה חובה.

אם מציינים AmountAfterTax תעריפים ללילה, אין קובע את המחיר ללילה השהייה, כולל מיסים ועמלות, בערך שצוין. אם צוין AmountBeforeTax, אז גם אם AmountAfterTax מצוין או לא, הפעולה הזו קובעת המחיר לפני מס עבור השהייה בערך שצוין. מניחים שהוא באותו מטבע כמו השערים ללילה.

דוגמאות:

  • אם הערך של AmountBeforeTax ללילה אחד הוא 90, AmountAfterTax הוא 100, ו-fixed_price הוא 80, שיעור המבצע הוא 80.
  • אם הערך של AmountBeforeTax ללילה אחד הוא 100, הערך של fixed_amount הוא 80, והערך TaxFeeInfo מציין מס של 8% ואז

    שיעור המבצע = מחיר קבוע * (1 + מס באחוזים)

    86.40 = 80 * 1.08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount המדיניות הזו מגדירה הגבלות על מספר החדרים שחייבים להיות זמינים בהם. כדי שהמבצע הזה יחול. ההנחה חלה רק על לילות שעומדים באילוץ. אין הרשאה עם הנחה של fixed_amount. חשוב לזכור שמספר החדרים מצוין עם OTA_HotelInvCountNotifRQ (InvCount) או OTA_HotelAvailNotifRQ (BookingLimit).
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer מספר החדרים המינימלי שחייבים להיות זמינים במבצע לחול על התעריף ללילה. אם לא מציינים זאת, אין למינימום.
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer מספר החדרים המקסימלי שחייבים להיות זמינים במבצע לחול על התעריף ללילה. אם לא מציינים זאת, אין מקסימום.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay הגדרת מגבלות על משך השהייה שבמהלכן המבצע יכול להיות הוחלו. המבצע לא יחול כשמשך השהייה הוא מחוץ לטווח של מגבלות המינימום והמקסימום.
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer מספר הלילות המינימלי המותר לשהייה במסגרת המבצע הוחלו. אם לא צוין ערך, אין מינימום.
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer מספר הלילות המקסימלי המותר לשהייה במבצע הוחלו. אם אין ערך מקסימלי, אין הגבלה.
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

מאגר של כלל מחיר המינוי שמפעיל ממשק משתמש ספציפי מבצע להנחה המשויכת.

אין לציין את הרכיב הזה, אלא אם צוין גם <Discount>.

Promotions / HotelPromotions / Promotion / MembershipRateRule / @id 1 string

המזהה של כלל תמחור שמשויך לתוכנית מועדון החברים.

Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount מציין את הסכום המינימלי של מחירי החדר היומיים (באמצעות הסכום הגדול מ- AmountBeforeTax או AmountAfterTax) שחייבים כדי שהמבצע יחול.
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 integer הערך שצריך לחרוג ממנו כדי שהמבצע יחול.
Promotions / HotelPromotions / Promotion / Occupancy 0..1 Occupancy במדיניות הזו מגדירים הגבלות על האורחים שרוצים לפרסם בהם את המבצע הזה הוחלו. המבצע לא יחול אם תפוסת החדר לא בקבוצה מגבלות מינימום ומקסימום.
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer מספר התפוסה שצוין על ידי המשתמש חייב להיות לפחות הערך הזה כדי ההנחה שצריך להחיל.
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer הערך של מספר האורחים שצוין על ידי המשתמש חייב להיות לכל היותר כדי ההנחה שצריך להחיל.
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans מאגר לרשימת תעריפים שהמבצע חל עליהם. אם לא מציינים את <RatePlans>, המבצע חלה על כל תוכניות התעריפים.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan 1..n RatePlan מציין תוכנית תעריפים. תוכנית תעריפים מוגדרת לפי שילוב של החבילה, המחירים והזמינות, כפי שמוגדר בעסקה (נתוני נכס), OTA_HotelRateAmountNotifRQ ו-OTA_HotelAvailNotifRQ הודעות וכפי שמזוהה על ידי PackageID.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 string המזהה הייחודי של תוכנית התעריפים. ערך זה ממופה אל הערך PackageID ב-<PackageData> בהודעה עסקה (נתוני נכס), ובקובץ מאפיין RatePlanCode ב- <StatusApplicationControl> בשני הסוגים <OTA_HotelRateAmountNotifRQ> והקבוצה הודעות <OTA_HotelAvailNotifRQ>. אפשר להזין עד 50 תווים.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes מאגר לרשימת סוגי החדרים שעליהם חל המבצע. המבצע יחול על כל <RoomType> שצוין. אם לא צוין <RoomTypes>, המבצע חל על כל החדרים.
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType מציין את סוג החדר. סוג חדר מוגדר רכיב <RoomData> בתוך ההודעה עסקה (נתוני נכס) והיא מפנה באמצעות הערך <RoomID> שלו. ( גם לערך <RoomID> יש הפניה באמצעות המאפיין מאפיין InvTypeCode ב-OTA_HotelRateAmountNotifRQ messages.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string המזהה הייחודי של המלאי (סוג החדר). הערך הזה ממפה אל <RoomID> בהודעה לגבי עסקה (נתוני נכס). אפשר להזין עד 50 תווים.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking מציינת איך אפשר לשלב מבצעים. אם לא צוין סוג, ההנחה היא שהוא base.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

אפשר להחיל כמה מבצעים על תעריף אחד, בהתאם למספר ההגדרה הזו:

  • any: ניתן לשלב עם כל מבצע אחר (מלבד none), אבל הסדר שבו המבצעים צריכים להיות לא מובטח.
  • base: המבצע הטוב ביותר של base שעומד בתנאים הוא נבחרו והוחלו קודם, לפני מבצעים אחרים. זה היה שנקרא בעבר base_only.
  • second: המבצע הטוב ביותר של second שעומד בדרישות נבחר והוחל אחרי מבצע של base (אם רלוונטי) ולפני any מבצעים.
  • none: לא ניתן לשלב עם קידומי מכירות.

מתוך השילובים המותרים, קבוצת המבצעים שמניבות את ההנחה הגדולה ביותר תחול על התעריף.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates מאגר לטווח תאריכים אחד או יותר שקובע את אופן הפעולה של החלת מבצע, למשל כדי לאפשר הנחות עונתיות.
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

תיאור של אופן ההפעלה של המבצע.

הערכים החוקיים כוללים:

  • all: החלת המבצע לכל לילה מסלול הנסיעה אם כל התאריכים במסלול הנסיעה חופפים כולל תאריכי השהייה.
  • any: המבצע חל על כל הלילות מסלול הנסיעה אם תאריך כלשהו במסלול הנסיעה חופף לתאריך טווח תאריכי שהייה.
  • overlap: חל את המבצע רק על אלה לילות במסלול הנסיעה שחופפים לתאריך שבתאריכי השהייה טווח.

תמיד צריך לציין את המאפיין הזה.

  • אם <Discount> מציין percentage ו-application מוגדר ל-all או any, ההנחה חלה כאחוז שהייה מלאה.
  • אם <Discount> מציין percentage ו-application מוגדר ל-overlap, ההנחה חלה כאחוז מהתעריפים ללילה בתאריכים לילות שונים.
  • <Discount> שמציין את fixed_amount ו-application שמוגדר ל-overlap הוא שילוב לא חוקי.
  • כל התכונות של <FreeNights> נתמכות application ערכים. חשוב לשים לב שבשביל overlap, ההנחה משוקללת רק בלילות שהייה חופפים בדרישות שלנו.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

טווח תאריכים שמציין את התאריכים שבהם יחול המבצע.

יש תמיכה גם בפורמט YearlessDate.

  • אם אחד מהתאריכים start או end הוא ללא שנה צריך לאכלס את שניהם כתאריכים ללא שנה.
  • טווחי תאריכים ללא שנים לא יכולים לכלול את השנה החדשה. במקום זאת, שמייצגים את הטווח כשני טווחי תאריכים סמוכים. לדוגמה, אפשר לייצג את {"12-29", "01-05"} בתור {"12-29", "12-31"} והקבוצה {"01-01", "01-05"}.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate תאריך ההתחלה (לפי אזור הזמן של הנכס), כולל טווח התאריכים. התאריך הזה חייב להיות לפני, או זהה לתאריך תאריך: end. אם לא צוין start, התאריך בפועל אינו מוגבל מבחינת תאריך ההתחלה.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate תאריך הסיום (על סמך אזור הזמן של הנכס), כולל טווח תאריכים. התאריך הזה חייב להיות זהה לתאריך start או אחריו תאריך. אם לא צוין end, התאריך בפועל הוא בלתי מוגבל במונחים של תאריך סיום.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 string

הימים בשבוע שמותרים בטווח התאריכים. אחרת שצוין, כל הימים מותרים בטווח התאריכים. כל אחד במחרוזת מציין יום. לדוגמה, "MTWHF" מציין שימי חול מותרים בטווח התאריכים.

התווים החוקיים הם:

  • M ליום שני
  • T ביום שלישי
  • W ליום רביעי
  • H ליום חמישי
  • F ליום שישי
  • S ליום שבת
  • U ביום ראשון

כל שילוב תווים חוקי.

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries מאגר שבו מפורטים מיקומי המשתמשים (מדינות) שבהם אפשר להשתמש לצורך קידום המכירות. אם צוין, רק משתמשים שעומדים בדרישות ברשימה המדינות שבהן מוצע התעריף המוזל. אם לא צוין, כשיר משתמשים בכל מדינה יקבלו את התעריף המוזל.
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum סוג המפרט UserCountries (ארצות הברית).

הערכים החוקיים הם include ו exclude.

אם המדיניות UserCountries מוגדרת בתור type include, המבצע חל על משתמשים מ: במדינות הרשומות.

אם מדינות המשתמש type הן exclude, המבצע תקף למשתמשים שלא נכללים ברשימה מדינות.

אם המדיניות User countries type לא מוגדרת, המערכת תתייחס אליה בתור include והמבצע יחול על משתמשים מ- במדינות הרשומות.

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country מגדיר מדינה אחת שבה המשתמשים זכאים למבצע.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string מדינה במאגר CLDR code, כמו DE או FR. שימו לב שלחלק מדינות, קוד המדינה של ה-CLDR שונה מקוד ה-ISO בן 2 האותיות . בנוסף, אין תמיכה בקודי אזורים במאגר CLDR.

דוגמאות

לכל נכס אפשר ליצור עד 500 מבצעים. מידע נוסף על "מחיקת פריט אחד" מבצע" דוגמה להסרת מבצעים מנכס מסוים.

הודעה בסיסית

בדוגמה הבאה מוצגת הודעת Promotions בסיסית:

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


מצב מלאי

בדוגמה הבאה אפשר לראות איך ליצור הנחה אם יש הנחה מלאי קרוב לתאריך ההגעה:

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


מחיקת קידום מכירות אחד

בדוגמה הבאה תוכלו לראות איך למחוק קידום מכירות אחד לנכס:

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

מחיקת כל קידומי המכירות

בדוגמה הבאה תוכלו לראות איך למחוק את כל קידומי המכירות של נכס מסוים:

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



הצגת כל המבצעים בשכבת-על

הדוגמה הבאה מראה איך ליצור שכבת-על של <HotelPromotions> בנכס מסוים עם קידום מכירות חדש אחד או יותר. כאשר action="overlay", כל הפריטים מאוחסנים המבצעים נמחקים לפני שמירת המבצעים שצוינו ההודעה הנוכחית:

<?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 סוגי מקבצים שונים

הדוגמה הבאה מציגה מקרה שבו שלושה קידומי מכירות שונים הוחלו (base, second, any). לתשומת ליבך, המבצע none לא יהיה מאחר שמבצעים אחרים מעניקים הנחה טובה יותר. אם ההגדרה המקורית המחיר היה 100$, והמחיר המוזל היה 72.90$.

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


ללא סידור בערימה

הדוגמה הבאה מציגה מקרה שבו נעשה שימוש במבצע none כי השילוב של מבצעים אחרים מעניק הנחה קטנה יותר. אם המחיר המקורי היה 100$, והמחיר המוזל היה 75$.

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



גבולות משך הזמן של חלון ההזמנה

הדוגמה הבאה מציגה מקרה שבו BookingWindow נעשה שימוש ברכיב עם גבולות ההתחלה והסיום שהוגדרו כמשך זמן ISO 8601 מהסוג הזה. ההגבלה הזו על חלון ההזמנה מחייבת לבצע הזמנה בשעה 18:00 או לפני כן יום לפני ההגעה, ובשעה 12:00 או לאחר מכן ביום השני שלפני ההגעה .

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


גבולות תאריך ושעת הזמנות

הדוגמה הבאה מציגה מקרה שבו BookingDates נעשה שימוש ברכיב עם מאפייני start ו-end בתור DateTime. כדי להגביל את תאריך ההזמנה הזה, צריך לבצע הזמנה בין 06:30 ב-1 ביולי 2020 ל-18:45 ב-2 ביולי 2020.

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


טווחי תאריכים ללא שנים

הדוגמה הבאה מציגה מקרה שבו CheckInDates הרכיב DateRanges מכיל את start ו- end שדות ללא שנים. בדוגמה הזו, המבצע תקף כדי לעשות צ'ק-אין בתאריכי הצ'ק-אין בין 29 בנובמבר ל-2, ללא קשר לשנה. ללא שנה טווחי התאריכים שחוצים את גבול השנה החדשה אינם חוקיים, לכן הערך DateRange מבוטאת כשני טווחי תאריכים קרובים.

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

בדוגמה הבאה הנחות של שני לילות – 50% לכל ארבעה לילות לשהייה טווח תאריכי ההזמנה שצוין. למסלול של עשרה לילות, סה"כ הנחה של 50% לארבעה לילות.

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

בדוגמה הבאה הנחות של 50% ללילה אחד לכל שלושה לילות לשהייה טווחים ספציפיים של תאריכי שהייה. מספר הלילות החופפים של השהייה זכאות להנחה. למסלול הנסיעה הבא עם צ'ק-אין ב-1 בינואר 2022 ובצ'ק אאוט ב-7 בינואר 2022, לילות השהייה ההנחות יחולו באופן הבא.

  • 01.01-2022 (שהייה)
  • 02-01-2022 (שהייה)
  • 2022-01-03
  • 04.01.2022 (בהנחה)
  • 05.01.2022 (שהייה)
  • 06.01.2022 (שהייה)
<?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>


מבחר מדורג

בדוגמה הבאה מוצעות שתי הנחות, אחת בהנחה של 20% והשנייה בהנחה של 15%. במהלך ההערכה, תינתן רק הנחה של 15% כי הדירוג שלו נמוך יותר.

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

בדוגמה הבאה ניתן הנחה לשהייה של שני לילות באמצעות החלת BestDailyDiscount מוערם עם Discount.

<?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 באפריל 2023 עד 2 במאי 2023 לצורך החישוב, השילוב של ההנחות היומיות הטובות ביותר שמוביל ההנחה העמוקה ביותר נמצאה ראשונה.

ללילה הראשון, מילת המפתח "הכללי" המבצע הוא הסכום היחיד שעומד בקריטריונים הנחה קבועה בסך 20.

בלילה השני, "יכול להיות" מציע הנחה משמעותית יותר את כללי בהנחה. אז כש"יכול להיות" נבחר בהנחה הקבועה הסכום הוא 50.

לאחר מכן, ה"חגיגה" עד 5 הנחות ללילה, או 10 סה"כ. אפשר לשלב אותו עם ההנחות היומיות הכי טובות כי "חגיגה" סוג הערימה מוגדר ל-any. אם היא הוגדרה עד base, ואז רק השילוב של ההנחות היומיות הטובות ביותר או ה'חגיגה' תחול הנחה. הצגת תיאור של מידע נוסף זמין בStacking.

'סה"כ, מחיר השהייה מקבל סכום קבוע של 20 + 50 + 10 = 80 בהנחה.

תשובות

תחביר

ההודעה PromotionsResponse מבוססת על התחביר הבא:

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

רכיבים ומאפיינים

הודעת PromotionsResponse כוללת את הרכיבים והמאפיינים הבאים:

רכיב / @Attribute מופעים סוג תיאור
PromotionsResponse 1 Complex element רכיב השורש שמציין את ההצלחה או הבעיות עבור קבלה הודעה עם בקשת קידום מכירות.
PromotionsResponse / @timestamp 1 DateTime התאריך והשעה של יצירת ההודעה הזו.
PromotionsResponse / @id 1 string המזהה הייחודי של הודעת המבצעים המשויכת.
PromotionsResponse / @partner 1 string חשבון השותף שאליו שייכת ההודעה הזו.
PromotionsResponse / Success 0..1 Success מציין שההודעה בנושא מבצעים עובדה בהצלחה ללא אזהרות, שגיאות או כשלים.

<Success> או <Issues> הם שנמצא בכל הודעה.

PromotionsResponse / Issues 0..1 Issues מאגר שמתאר בעיה אחת או יותר במהלך העיבוד של הודעת קידום מכירות.

<Success> או <Issues> הם שנמצא בכל הודעה.

PromotionsResponse / Issues / Issue 1..n Issue תיאור של אזהרה, שגיאה או כשל במהלך עיבוד ההודעה 'קידומי מכירות'. ניתן למצוא פרטים על הבעיות האלה באזור הודעות שגיאה של סטטוס הפיד.
PromotionsResponse / Issues / Issue / @code 1 integer המזהה של הבעיה.
PromotionsResponse / Issues / Issue / @status 1 enum

סוג הבעיה.

הערכים החוקיים הם warning, error, ו-failure.

דוגמאות

הפעולה הצליחה

התשובה הבאה היא תשובה להודעה 'קידומי מכירות' שעובדה בהצלחה.

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

בעיות

התשובה הבאה היא תשובה להודעה 'קידומי מכירות' שלא עובדה עקב שגיאות.

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