סקירה כללית
ה-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> בהודעה Transaction (Property Data), ובמאפיין 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 , התאריך
בפועל, הטווח הזה אינו מוגבל מהתאריך start ואילך.
צריך לציין ערך של |
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 מוגדרת בתור אם מדינות המשתמש אם המדיניות UserCountries |
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"
הוא 1, כל קידומי המכירות השמורים נמחקים לפני שמאוחסנים קידומי המכירות שצוינו בהודעה הנוכחית:
<?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
לא יהיה
מאחר שמבצעים אחרים מעניקים הנחה טובה יותר. אם המחיר המקורי היה 400 ש"ח, המחיר המוזל יהיה 300 ש"ח.
<?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 (בהנחה)
- 2022-01-05 (שהייה)
- 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>