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

סקירה כללית

באמצעות ה-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 כוללת את הרכיבים והמאפיינים הבאים:

אלמנט / @מאפיין אירועים סוג תיאור
RateModifications 1 Complex element רכיב הבסיס (root) של הודעה בנושא שינוי תעריפים.
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> בהודעה מסוג עסקה (נתוני נכס), וההפניה אליו מתבצעת באמצעות הערך שבשדה <RoomID>. (הערך שלו <RoomID> מופיע גם במאפיין InvTypeCode בהודעות OTA_HotelRateAmountNotifRQ.)
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 סוג המפרט של מדינות משתמשים.

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

אם המדיניות User countries 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 כוללת את הרכיבים והמאפיינים הבאים:

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

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

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

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

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

סוג הבעיה שבה נתקלתם.

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

דוגמאות

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

בהמשך מופיעה תגובה להודעה מסוג RateModifys שעובדה בהצלחה.

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