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>