RateModifications

סקירה כללית

ממשק ה-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 רכיב הבסיס של הודעה על שינויים במחירים.
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

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

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

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 המזהה הזה מתאים לשיעור להגדרה בקובץ Rate Rule Definition. הערה:
  • מגבלת התווים בשדה הזה היא 40 תווים.
  • כל מחיר יכול להיות משויך רק לכלל מחיר אחד.
  • אם יש כמה שינויים שחלים על מזהה של כלל תמחור, המזהה של כלל התמחור שהוא הכי קטן מבחינה לקסיקוגרפית מוקצה לתעריף.
  • אם המזהה הזה לא תואם לכלל תמחור בקובץ ההגדרה של כללי התמחור, הוא לא עומד בדרישות.
ב מאמר הזה מוסבר על הטיפולים השונים בממשק המשתמש של המחירים הפרטיים.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable החלפת הערך של ההחזר הכספי על המחיר בערך שצוין.

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

  • פעולת השינוי הזו כותבת מחדש באופן מלא את ההגדרה 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 מאפיין שמציין תוכנית תעריפים. תוכנית תמחור מוגדרת על ידי שילוב של חבילה, מחירים וזמינות, כפי שמוגדר בהודעות Transaction (Property Data),‏ 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 (Property Data) ומתייחסים אליו באמצעות הערך <RoomID> שלו. (הערך של <RoomID> מופיע גם במאפיין InvTypeCode בהודעות OTA_HotelRateAmountNotifRQ).
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string המזהה הייחודי של מלאי שטחי הפרסום (סוג החדר). הערך הזה ממופה ל-<RoomID> בהודעת Transaction (נתוני נכס). אפשר להזין עד 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.

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

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

אם המדיניות UserCountries‏ 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 רכיב הבסיס שמציין את ההצלחה או הבעיות בהודעת בקשה מסוג RateModifications שהתקבלה.
RateModificationsResponse / @timestamp 1 DateTime התאריך והשעה שבהם ההודעה נוצרה.
RateModificationsResponse / @id 1 string המזהה הייחודי מההודעה המשויכת RateModifications.
RateModificationsResponse / @partner 1 string חשבון השותף שאליו משויכת ההודעה.
RateModificationsResponse / Success 0..1 Success מציין שההודעה RateModifications עובדה בהצלחה ללא אזהרות, שגיאות או כשלים.

הערך <Success> או <Issues> מופיע בכל הודעה.

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

הערך <Success> או <Issues> מופיע בכל הודעה.

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

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

הערכים התקפים הם warning,‏ error ו-failure.

דוגמאות

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

זוהי תגובה להודעה מסוג RateModifications שעברה עיבוד בהצלחה.

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

בעיות

התגובה הבאה היא להודעה מסוג RateModifications שלא עברה עיבוד בגלל שגיאות.

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