שינויים בתעריפים

סקירה

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

בקשות

תחביר

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <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>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <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>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

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

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

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

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

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

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

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

שינוי אחד בתעריף של נכס.

הערה: קשה לנפות באגים בשינויים בתעריפים, ומומלץ להשתמש בהם באופן מדוד. כדאי לפנות למנהל החשבונות הטכני (TAM) כדי לקבל סיוע בתרחישים לדוגמה שדורשים יותר מ-200 שינויים בתעריפים.

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates כדי להחיל את השינוי במחיר, מאגר בטווח תאריכים אחד או יותר שמוגדר מתי ההזמנה צריכה להתבצע.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange טווח תאריכים שמציין מתי ההזמנה צריכה להתרחש כדי להחיל את השינוי במחיר.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date תאריך ההתחלה (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות לפני התאריך של end, או זהה לו. אם לא מציינים את האפשרות start, למעשה טווח התאריכים בלתי מוגבל מבחינת תאריך ההתחלה.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date תאריך הסיום (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות זהה לתאריך start או אחריו. אם לא מציינים את התאריך end, בפועל טווח התאריכים לא מוגבל מבחינת תאריך סיום.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

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

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow מאפיין זה מציין את התקופה שבה צריך לבצע הזמנה ביחס לתאריך הצ'ק אין (בהתאם לאזור הזמן של הנכס). לדוגמה, אפשר להגדיר חלון הזמנה של 7 ימים לפחות, אבל לא יותר מ-180 ימים לפני הצ'ק-אין.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer כדי להחיל את השינוי במחיר, מספר הימים המינימלי לפני הצ'ק-אין צריך להיות תקף. אם לא צוין ערך, אין מינימום.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer מספר הימים המקסימלי לפני הצ'ק-אין שבו ההזמנה צריכה לחול כדי להחיל את השינוי במחיר. אם לא מציינים ערך, אין מקסימום.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates כדי להחיל את השינוי במחיר, המאגר של טווח תאריכים אחד או יותר שמוגדר מתי צריך להתבצע צ'ק-אין.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange טווח תאריכים שמציין מתי צריך לבצע צ'ק-אין כדי להחיל את השינוי במחיר. הרכיב הזה לא נדרש אם מוחקים שינוי אחד או יותר בתעריפים.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date תאריך ההתחלה (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות לפני התאריך של end, או זהה לו. אם לא מציינים את האפשרות start, למעשה טווח התאריכים בלתי מוגבל מבחינת תאריך ההתחלה.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date תאריך הסיום (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות זהה לתאריך start או אחריו. אם לא מציינים את התאריך end, בפועל טווח התאריכים לא מוגבל מבחינת תאריך סיום.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

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

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates כדי שהמערכת תחיל את השינוי בתעריף, מאגר של טווח תאריכים אחד או יותר שמגדירים מתי בסיום הקנייה צריך להתרחש.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange טווח תאריכים שמציין מתי צריך לבצע צ'ק-אאוט כדי להחיל את השינוי במחיר. הרכיב הזה לא נדרש אם מוחקים שינוי אחד או יותר בתעריפים.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date תאריך ההתחלה (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות לפני התאריך של end, או זהה לו. אם לא מציינים את האפשרות start, למעשה טווח התאריכים בלתי מוגבל מבחינת תאריך ההתחלה.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date תאריך הסיום (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות זהה לתאריך start או אחריו. אם לא מציינים את התאריך end, בפועל טווח התאריכים לא מוגבל מבחינת תאריך סיום.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

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

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

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

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment משנה את השיעור על ידי הכפלה של AmountBeforeTax ושל AmountAfterTax במכפיל שצוין
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float גם AmountBeforeTax וגם AmountAfterTax מוכפלים בערך הזה.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule שינוי של השיעור על ידי החלת המזהה של כלל התעריף שצוין.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string המזהה הזה תואם לתעריף להגדרה בקובץ הגדרת כלל הדירוג. הערה:
  • מגבלת התווים לשדה הזה היא 40 תווים.
  • אפשר לשייך כל תעריף לכלל תמחור אחד בלבד.
  • אם בוצעו כמה שינויים שמחילים מזהה של כלל תמחור, המזהה של כלל התעריפים שהוא הקטן ביותר מבחינה לקסיקוגרפית יוקצה לתעריף.
  • אם המזהה הזה לא תואם לכלל תמחור בקובץ הגדרת כלל התמחור, הוא נחשב לא כשיר.
במאמר הזה אפשר לקרוא מידע על הטיפולים השונים בממשק המשתמש לתעריפים פרטיים.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable הפונקציה מחליפה את יכולת ההחזר הכספי של התעריף לערך שצוין.

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

  • פעולת השינוי הזו משכתבת באופן מלא את ההגדרה 'ניתן להחזר כספי' של תעריף מתאים, ולא רק את השדות המאוכלסים.
  • אם לא מגדירים את available או refundable_until_days, לא ניתן לקבל החזר כספי על המחיר.
  • אם הערך של available הוא 0 או false, המערכת מתעלמת משאר המאפיינים. גם אם אחד מהמאפיינים האחרים או שניהם מוגדרים, לא יוצג מחיר כזה עם החזר כספי.
  • מומלץ להגדיר את refundable_until_time. אם היא לא מוגדרת, המערכת תשתמש בשעה המוקדמת ביותר (חצות).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (חובה) מגדירים את הערך 1 או true כדי לציין אם התעריף מאפשר החזר כספי מלא. אחרת, מוגדר לערך 0 או false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (חובה אם הערך של available הוא true) מציין את מספר הימים לפני הצ'ק-אין שבהם אפשר לבקש החזר כספי מלא. הערך של refundable_until_days חייב להיות מספר שלם בין 0 ל-330, כולל.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (מומלץ אם הערך של available הוא true) מציין את השעה המאוחרת ביותר ביום (בזמן המקומי של המלון) שבה מכבדים בקשה להחזר כספי מלא. אפשר לשלב את הסכום הזה עם refundable_until_days כדי לציין, לדוגמה, ש'החזרים כספיים זמינים עד 16:00 יומיים לפני הצ'ק-אין'. אם לא מגדירים את refundable_until_time, ברירת המחדל של הערך תהיה חצות.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability הפונקציה מחליפה את זמינות התעריף לערך שצוין. אנחנו תומכים רק בהגדרה של התעריף ל-unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum אם הערך הוא status="unavailable", המערכת תתייחס לתעריף כאילו הוא לא זמין, גם אם קיים מחיר תקין עבורו.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay הגדרת מגבלות על משך השהייה שבמהלכן אפשר להחיל את השינוי בשיעור הזה. השינוי במחיר לא חל כשמשך השהייה חורג ממגבלות המינימום והמקסימום.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer מספר הלילות המינימלי לשהייה שבו יחול שינוי במחיר. אם לא צוין ערך, אין מינימום.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer מספר הלילות המקסימלי לשהייה שבו יחול שינוי במחיר. אם אין ערך מקסימלי, אין הגבלה.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount מציינת את הסכום המינימלי של מחירים לחדרים יומיים (הסכום הגדול מ-AmountBeforeTax או AmountAfterTax) שצריך לחרוג ממנו כדי שהמערכת תחיל את השינוי במחיר.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer הערך שצריך לחרוג ממנו כדי להחיל את השינוי במחיר.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans מאגר לרשימת תעריפים שבהם חל שינוי התעריף. אם לא מציינים את הערך <RatePlans>, שינוי התעריף יחול על כל תוכניות התמחור והתשלומים.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan מציין תוכנית תעריפים. תוכנית תעריפים מוגדרת על סמך שילוב של חבילה, תעריפים וזמינות, כפי שמוגדר בהודעות (נתוני הנכס), OTA_HotelRateAmountNotifRQ ו-OTA_HotelAvailNotifRQ וכפי שמזוהה על ידי ה-PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string המזהה הייחודי של תוכנית התעריפים. הערך הזה ממופה לערך PackageID ב-<PackageData> בהודעה לגבי עסקה (נתוני נכס), ובמאפיין RatePlanCode ב-<StatusApplicationControl> בהודעות <OTA_HotelRateAmountNotifRQ> וב-<OTA_HotelAvailNotifRQ>. אפשר להזין עד 50 תווים.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes מאגר לרשימת סוגי החדרים שעליהם חל השינוי במחיר. שינוי התעריף יחול על כל <RoomType> שצוין. אם לא תציינו את <RoomTypes>, המחיר ישתנה בכל החדרים.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType מציין את סוג החדר. סוג חדר מוגדר ברכיב <RoomData> בהודעה Transaction (נתוני נכס) והפניה אליו מתבצעת באמצעות הערך <RoomID> שלו. (בהודעות OTA_HotelRateAmountNotifRQ יש הפניה גם לערך <RoomID> של המאפיין InvTypeCode).
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string המזהה הייחודי של המלאי (סוג החדר). הערך הזה ממופה אל <RoomID> בהודעה של עסקה (נתוני נכס). אפשר להזין עד 50 תווים.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates מאגר לטווח תאריכים אחד או יותר שקובע איך יחול שינוי במחירים, למשל כדי להתאים לתמחור עונתי.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

תיאור האופן שבו צריך להחיל את שינוי התעריפים.

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange טווח תאריכים שמציין את התאריכים שבהם יחול השינוי בתעריף.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date תאריך ההתחלה (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות לפני התאריך של end, או זהה לו. אם לא מציינים את האפשרות start, למעשה טווח התאריכים בלתי מוגבל מבחינת תאריך ההתחלה.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date תאריך הסיום (על סמך אזור הזמן של הנכס), כולל, בטווח התאריכים. התאריך הזה חייב להיות זהה לתאריך של start או אחריו. אם לא מציינים את התאריך end, בפועל טווח התאריכים לא מוגבל מבחינת תאריך סיום.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

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

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries אם צוין, שינוי המחיר יחול רק אם המשתמש נמצא באחת מהמדינות שצוינו. אם לא מציינים זאת, השינוי במחיר חל ללא קשר למיקום של המשתמש.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum סוג המפרט UserCountries (ארצות הברית).

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

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

אם מדינות המשתמש type הן exclude, השינוי במחיר יחול על משתמשים מחוץ למדינות הרשומות.

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

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

דוגמאות

הודעה בסיסית

בדוגמה הבאה מוצגת הודעה בסיסית של RateModifications:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


מחיקת שינוי אחד בתעריף

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

מחיקת כל השינויים בתעריפים

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


יצירת שכבת-על של כל השינויים בתעריפים

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

פעולות שינוי מרובות

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


השבתת תוכנית תעריפים למדינות של משתמשים

הדוגמה הבאה ממחישה איך להגביל תוכנית תמחור ותשלומים למשתמשים ביפן (JP) בלבד:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


תשובות

תחביר

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
  </Issues>
</RateModificationsResponse>

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

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

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

כל הודעה כוללת את <Success> או את <Issues>.

RateModificationsResponse / Issues 0..1 Issues מאגר לבעיה אחת או יותר שזוהו במהלך העיבוד של ההודעה RateModifys.

כל הודעה כוללת את <Success> או את <Issues>.

RateModificationsResponse / Issues / Issue 1..n Issue תיאור של אזהרה, שגיאה או כשל שהתרחשו במהלך עיבוד ההודעה RateModifys. פרטים על הבעיות האלה מופיעים במאמר הודעות שגיאה של סטטוס פיד.
RateModificationsResponse / Issues / Issue / @code 1 integer המזהה של הבעיה.
RateModificationsResponse / Issues / Issue / @status 1 enum

סוג הבעיה.

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

דוגמאות

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

התגובה הבאה היא הודעה שהתבצעה עיבוד בהצלחה ב-RateChanges.

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

בעיות

התשובה הבאה היא תשובה להודעה RateChanges שלא עובדה בגלל שגיאות.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</RateModificationsResponse>