סקירה כללית
ה-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.
אם יש לכם קצה עורפי שמספק פידים
מספר חשבונות, הערך הזה צריך להתאים לערך בשדה |
Promotions / @id | 1 | string | מזהה ייחודי להודעת הבקשה הזו. הערך הזה מוחזר בהודעת התשובה. התווים המותרים הם a-z, A-Z, 0-9, _ (קו תחתון) וגם - (מקף). |
Promotions / @timestamp | 1 | DateTime | התאריך והשעה של יצירת ההודעה הזו. |
Promotions / HotelPromotions | 0..n | HotelPromotions | מבצעים על נכס. כל מבצע חל על לנכס. אלא אם נעשה שימוש ב- |
Promotions / HotelPromotions / @hotel_id | 1 | string | המזהה הייחודי של הנכס. הערך הזה חייב להתאים לערך
מזהה המלון צוין באמצעות
<id> ברכיב <listing>
בפיד של רשימת המלונות. מזהה המלון מופיע גם ב-Hotel Center. |
Promotions / HotelPromotions / @action | 0..1 | enum | אם צוין, הערך צריך להיות
אם לא מציינים זאת, כל מבצע שצוין ההודעה היא אחת מהאפשרויות הבאות:
|
Promotions / HotelPromotions / Promotion | 0..99 | Promotion | מבצע יחיד של נכס. שימו לב שאם
אם אתם צריכים להשתמש ביותר מ-99 מבצעים, אתם יכולים ליצור קשר מנהל החשבונות הטכני (TAM). |
Promotions / HotelPromotions / Promotion / @id | 1 | string | מזהה ייחודי של המבצע. המספר המקסימלי של מספר התווים המקסימלי הוא 40. התווים המותרים הם a-z, A-Z, 0-9, _ (קו תחתון), - (מקף) ו- . (נקודה). |
Promotions /HotelPromotions / Promotion / @action | 0..1 | enum | אם צוין, הערך חייב להיות אם מציינים |
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 | תאריך ההתחלה או התאריך והשעה (על סמך אזור הזמן של הנכס), כולל את הטווח.
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end | 0..1 | Date או DateTime | תאריך הסיום או התאריך והשעה (על סמך אזור הזמן של הנכס) כולל את הטווח.
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week | 0..1 | string | הימים בשבוע שמותרים בטווח התאריכים. אחרת שצוין, כל הימים מותרים בטווח התאריכים. כל אחד במחרוזת מציין יום. לדוגמה, "MTWHF" מציין שימי חול מותרים בטווח התאריכים. התווים החוקיים הם:
כל שילוב תווים חוקי. |
Promotions / HotelPromotions / Promotion / BookingWindow | 0..1 | BookingWindow | מציינת את התקופה שבה צריך לבצע הזמנה ביחס תאריך הצ'ק אין (על סמך אזור הזמן של הנכס). לדוגמה, אפשר להגדיר חלון הזמנות של 7 ימים לפחות, אבל לא יותר מ-180 ימים. לפני ביצוע הצ'ק-אין. |
Promotions / HotelPromotions / Promotion / BookingWindow / @min | 0..1 | integer or duration | משך הזמן המינימלי לפני הצ'ק-אין, בזמן ביצוע ההזמנה
כדי להחיל את המבצע. אם לא צוין ערך, או אם צוין ערך אחר
הוא 0 , אין מינימום.
סוגי הערכים החוקיים הם:
|
Promotions / HotelPromotions / Promotion / BookingWindow / @max | 0..1 | integer or duration | מספר הימים המקסימלי לפני הצ'ק-אין שבו ההזמנה חייבת להתבצע
כדי להחיל את המבצע. אם לא צוין ערך, או אם צוין ערך אחר
הוא 0 , אין הגבלה.
סוגי הערכים החוקיים הם:
|
Promotions / HotelPromotions / Promotion / Ceiling | 0..1 | Ceiling |
הגדרת הגבלות על הערך המקסימלי שאפשר להגדיר לתעריף אחרי מימוש המבצעים. במבצעים תמיד צריך לציין אם מוגדר ערימה, אז יש כמה מבצעים עם
דוגמה: המחירים של שהייה של לילה אחד במקום של
זהו סדר החישוב:
העובדה ש-60 היא תקרה כוללת מחמירה יותר אינה רלוונטית, מאחר היא תקפה רק עבור הקידום שלה, ולא יכולה להתקיים גם תקרה שמתפרשת על פני כל מקבץ המבצעים. |
Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night | 1 | float |
הסכום המקסימלי שאפשר להגדיר לתעריף ללילה אחרי תחול הנחה. אם צוין גם רכיב הסכום |
Promotions / HotelPromotions / Promotion / Floor | 0..1 | Floor |
הגדרת הגבלות על הערך המינימלי שאפשר להגדיר לתעריף אחרי מימוש המבצעים. במבצעים תמיד צריך לציין הלוגיקה של אם מוגדר ערימה, אז יש כמה מבצעים עם
דוגמה: המחירים של שהייה של לילה אחד במקום של
זהו סדר החישוב:
העובדה ש-90 היא סף כולל מחמיר יותר אינה רלוונטית, מאחר היא תקפה רק עבור הקידום שלה, ולא יכולה להתקיים גם על פני כל מקבץ המבצעים. |
Promotions / HotelPromotions / Promotion / Floor / @amount_per_night | 1 | float |
הסכום המינימלי שאפשר להגדיר לתעריף ללילה אחרי תחול הנחה. אם צוין גם רכיב הסכום |
Promotions / HotelPromotions / Promotion / CheckinDates | 0..1 | CheckinDates | מאגר לטווח תאריכים אחד או יותר שמגדירים מתי לבצע צ'ק-אין. כדי להחיל את המבצע. |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange | 1..20 | DateRange | טווח תאריכים שמציין מתי צריך לבצע צ'ק-אין כדי לממש את המבצע להיות מיושם. אין צורך ברכיב הזה אם מוחקים פריט אחד או יותר קידומי מכירות. יש תמיכה גם בפורמט YearlessDate.
|
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" מציין שימי חול מותרים בטווח התאריכים. התווים החוקיים הם:
כל שילוב תווים חוקי. |
Promotions / HotelPromotions / Promotion / CheckoutDates | 0..1 | CheckoutDates | מאגר לטווח תאריכים אחד או יותר שמוגדר בזמן התשלום בקופה חייב להתרחש כדי שהמבצע יחול. |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange | 1..20 | DateRange | טווח תאריכים שמציין מתי צריך להתבצע צ'ק-אאוט כדי לממש את המבצע להיות מיושם. הרכיב הזה לא נדרש אם מתבצעת מחיקה של קידום מכירות אחד או יותר. יש תמיכה גם בפורמט YearlessDate.
|
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" מציין שימי חול מותרים בטווח התאריכים. התווים החוקיים הם:
כל שילוב תווים חוקי. |
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 | בדיוק אחד מתוך הנתון הזה מציין את ההנחה שתחול על המבצע. |
Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float | בדיוק אחד מתוך ערך עשרוני מ-0 עד 100 שמציין את אחוז ההנחה.
הוא חל על דוגמאות:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float | בדיוק אחד מתוך סכום קבוע שינוכה מהסכום של
דוגמאות:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float | בדיוק אחד מתוך הנחה קבועה שתחול על כל אחד מהנכסים מסוג דוגמאות:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float | בדיוק אחד מתוך אם מציינים אם דוגמאות:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float | בדיוק אחד מתוך אם מציינים אם אם מציינים דוגמאות:
|
Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | יש להשתמש באפשרות הזו רק עם
מספר הלילות שעליהם חלה ההנחה, החל מ- הזולה ביותר. צריך להיות מספר שלם בין 1 ל-99. אם לא מציינים זאת, ההנחה חלה על כל הלילות. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights | 0..1 | FreeNights | מציינת הנחה על לילות מסוימים של שהייה בזמן שהייה מינימלית
הגעת לאורך המקסימלי. מאפיינים ברכיב ההורה Discount
אין הרשאה אם נעשה שימוש ברכיב הזה. |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights | 1 | integer | מספר הלילות הנדרשים כדי שההנחה תחול. כל אחד ההנחה תחול על פלח נפרד של לילות שהייה. לדוגמה, לשהייה של 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 | אם אפשר להחיל את ההנחה על כמה לילות שהייה
פלחים. אם הערך שלו הוא לדוגמה, אם הערך של |
Promotions / HotelPromotions / Promotion / Discount / @rank | 0..1 | integer | מקצה לקידום הזה דירוג ומשלבת אותו בבחירת דירוג, כאשר רק המבצע עם הדירוג הנמוך ביותר ייבחר. ערכים חייב להיות בין 1 ל-99, כולל. אם כמה מבצעים חולקים את אותו הדבר דירוג אחד, נבחר והוחל באופן שרירותי. |
Promotions / HotelPromotions / Promotion / BestDailyDiscount | 1 | Discount | בדיוק אחד מתוך מציין הנחה יומית שעשויה לחול על לילה
להישאר. זאת בניגוד להסבר בכל מלון יכולה להיות קבוצה אחת של מבצעים נחשב 'הכי טוב מדי יום'. כלומר, עבור כל לילה של שהייה, יחיד 'הכי טוב יומי' שעומד בקריטריונים ושמפיק את התוצאות העמוקות ביותר נבחרה הנחה לאותו לילה, ואפשר להחיל אותה. אי אפשר לציין אפשר לציין |
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float | בדיוק אחד מתוך ערך עשרוני מ-0 עד 100 שמציין את אחוז ההנחה.
הוא חל על דוגמאות:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float | בדיוק אחד מתוך סכום קבוע לניכוי מסכום בודד
תעריף ללילה של דוגמאות:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float | בדיוק אחד מתוך אם מציינים דוגמאות:
|
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 |
מאגר של כלל מחיר המינוי שמפעיל ממשק משתמש ספציפי מבצע להנחה המשויכת. אין לציין את הרכיב הזה, אלא אם
צוין גם |
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 | אפשר להחיל כמה מבצעים על תעריף אחד, בהתאם למספר ההגדרה הזו:
מתוך השילובים המותרים, קבוצת המבצעים שמניבות את ההנחה הגדולה ביותר תחול על התעריף. |
Promotions / HotelPromotions / Promotion / StayDates | 0..1 | StayDates | מאגר לטווח תאריכים אחד או יותר שקובע את אופן הפעולה של החלת מבצע, למשל כדי לאפשר הנחות עונתיות. |
Promotions / HotelPromotions / Promotion / StayDates / @application | 1 | enum | תיאור של אופן ההפעלה של המבצע. הערכים החוקיים כוללים:
תמיד צריך לציין את המאפיין הזה.
|
Promotions / HotelPromotions / Promotion / StayDates / DateRange | 1..99 | DateRange | טווח תאריכים שמציין את התאריכים שבהם יחול המבצע. יש תמיכה גם בפורמט YearlessDate.
|
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" מציין שימי חול מותרים בטווח התאריכים. התווים החוקיים הם:
כל שילוב תווים חוקי. |
Promotions / HotelPromotions / Promotion / UserCountries | 0..1 | UserCountries | מאגר שבו מפורטים מיקומי המשתמשים (מדינות) שבהם אפשר להשתמש לצורך קידום המכירות. אם צוין, רק משתמשים שעומדים בדרישות ברשימה המדינות שבהן מוצע התעריף המוזל. אם לא צוין, כשיר משתמשים בכל מדינה יקבלו את התעריף המוזל. |
Promotions / HotelPromotions / Promotion / UserCountries / @type | 0..1 | enum | סוג המפרט UserCountries (ארצות הברית).
הערכים החוקיים הם אם המדיניות UserCountries מוגדרת בתור אם מדינות המשתמש אם המדיניות User countries |
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 | מציין שההודעה בנושא מבצעים עובדה בהצלחה
ללא אזהרות, שגיאות או כשלים.
|
PromotionsResponse / Issues | 0..1 | Issues | מאגר שמתאר בעיה אחת או יותר במהלך העיבוד של
הודעת קידום מכירות.
|
PromotionsResponse / Issues / Issue | 1..n | Issue | תיאור של אזהרה, שגיאה או כשל במהלך עיבוד ההודעה 'קידומי מכירות'. ניתן למצוא פרטים על הבעיות האלה באזור הודעות שגיאה של סטטוס הפיד. |
PromotionsResponse / Issues / Issue / @code | 1 | integer | המזהה של הבעיה. |
PromotionsResponse / Issues / Issue / @status | 1 | enum | סוג הבעיה. הערכים החוקיים הם |
דוגמאות
הפעולה הצליחה
התשובה הבאה היא תשובה להודעה 'קידומי מכירות' שעובדה בהצלחה.
<?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>