בקשות
תחביר
ההודעה OTA_HotelRateAmountNotifRQ משתמשת בתחביר הבא:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="message_ID"
TimeStamp="timestamp"
Version="3.0"
NotifType="[Overlay|Delta|Remove]"
NotifScopeType="[ProductRate]">
<POS>
<Source>
<RequestorID ID="partner_key"/>
</Source>
</POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon="boolean_value"
Tue="boolean_value"
Weds="boolean_value"
Thur="boolean_value"
Fri="boolean_value"
Sat="boolean_value"
Sun="boolean_value"
InvTypeCode="RoomID"
RatePlanCode="PackageID"
RatePlanType="[26]" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="float"
AmountAfterTax="float"
CurrencyCode="currency"
NumberOfGuests="integer"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="float"
AgeQualifyingCode="[10|8]"
MaxAge="integer"/>
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
רכיבים ומאפיינים
ההודעה OTA_HotelRateAmountNotifRQ כוללת את הרכיבים והמאפיינים הבאים:
| רכיב / @מאפיין | מופעים | סוג | תיאור |
|---|---|---|---|
| OTA_HotelRateAmountNotifRQ | 1 | Complex element | רכיב הבסיס של הודעה על מחירים. |
| OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | מרחב השמות של ה-XML. |
| OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | מזהה ייחודי של הודעת הבקשה. הערך הזה מוחזר בהודעת התגובה. התווים המותרים הם a-z, A-Z, 0-9, _ (underscore) ו-- (dash). |
| OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | התאריך והשעה שבהם ההודעה נוצרה. |
| OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | גרסת ההודעה של OpenTravel. |
| OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | סוג ההתראה שרוצים להחיל על כל הערכים החוקיים כוללים: כדי להבין איך המאפיינים האלה פועלים, אפשר לעיין בדוגמאות.
|
| OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | ההיקף של הערכים החוקיים כוללים:
|
| OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | קונטיינר לציון חשבון השותף שאליו מיועדת ההודעה (בדרך כלל משמש אם הקצה העורפי מספק פידים של מחירים לכמה חשבונות שותפים). |
| OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | חובה אם מציינים את המאפיין <POS>. קונטיינר של הרכיב <RequestorID>. |
| OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | חובה אם מציינים את המאפיין <POS>. הגדרת חשבון השותף. |
| OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | חשבון השותף שאליו משויכת ההודעה. ערך המחרוזת הזה הוא הערך של 'מפתח שותף' שמופיע
בדף הגדרות החשבון ב-Hotel Center.
הערה: אם יש לכם קצה עורפי שמספק פידים לכמה חשבונות, הערך הזה צריך להיות זהה לערך המאפיין |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | אוסף של רכיבי <RateAmountMessage> שמגדירים תעריפים. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | המזהה הייחודי של הנכס. הערך הזה צריך להיות זהה לערך של מזהה המלון שצוין באמצעות <id> ברכיב <listing> בפיד רשימת המלונות. מזהה המלון מופיע גם ב-Hotel Center. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | קונטיינר להגדרת מחירים לחדר (שילוב של סוג חדר ותוכנית מחירים בטווח תאריכים). |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | המאפיין מגדיר את טווח התאריכים, וגם את המזהים של סוג החדר (InvTypeCode) ותוכנית המחירים (RatePlanCode). |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | תאריך ההתחלה (על סמך אזור הזמן של הנכס), כולל, של טווח התאריכים. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | תאריך הסיום (על סמך אזור הזמן של הנכס) של טווח התאריכים, כולל היום האחרון. הערך חייב להיות שווה לערך start או גדול ממנו.
אם הערכים של start ושל end זהים, העדכון יחול על התאריך הזה. הערה: Google תומכת בנתונים של עד שלוש שנים. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | מגדירים את הערך ל-true או ל-1 כדי לכלול באופן מפורש את ימי שני.
אם מגדירים את הערך |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | מגדירים את הערך ל-true או ל-1 כדי לכלול במפורש את ימי שלישי.
אם מגדירים את הערך |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | מגדירים את הערך ל-true או ל-1 כדי לכלול באופן מפורש את ימי רביעי.
אם מגדירים את הערך |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | מגדירים את הערך true או 1 כדי לכלול במפורש
ימי חמישי.
אם מגדירים את הערך |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | הערך שמוגדר הוא true או 1 כדי לכלול במפורש את ימי שישי.
אם מגדירים את הערך |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | מגדירים את הערך true או 1 כדי לכלול באופן מפורש את ימי שבת.
אם מגדירים את הערך |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | מגדירים את הערך true או 1 כדי לכלול באופן מפורש את ימי ראשון.
אם מגדירים את הערך |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | המזהה הייחודי של מלאי שטחי הפרסום (סוג החדר). הערך הזה ממופה ל-<RoomID> בהודעת Transaction (נתוני נכס). |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | מזהה ייחודי של תוכנית המחירים. המזהה הזה ממופה ל-<PackageID> בהודעה מסוג Transaction (Property Data). תוכנית התמחור מוגדרת ומפורטת ב-<StatusApplicationControl> בהודעות <OTA_HotelRateAmountNotifRQ> וגם בהודעות <OTA_HotelAvailNotifRQ>. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | מזהה שמציין את סוג מודל התמחור של ARI שחל על עדכון המחירים הזה. צריך לציין את הערך הזה רק כשמשתמשים במודל תמחור מבוסס-שהייה, באמצעות ערך של 26. השמטה
של המאפיין הזה מציינת שמדובר בעדכון של תמחור לפי תאריך. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | קונטיינר של אוסף רכיבי <Rate>. אם הערך של NotifType הוא "Remove", אסור לציין את הרכיב הזה. אחרת, צריך לציין את הרכיב הזה בדיוק פעם אחת. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | קונטיינר של אוסף רכיבי <BaseByGuestAmts>. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | היחידה שבה מציינים את משך השהייה. הערך הנתמך היחיד הוא "Day", כלומר משך השהייה יצוין בימים.
כדי להשתמש בתמחור לפי משך השהייה, צריך לציין את המאפיינים |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | מספר הלילות RateTimeUnits שמרכיבים את משך השהייה במחיר הזה.
לדוגמה, אם הערך של שיעורי התפוסה שצוינו באובייקט כדי להשתמש בתמחור לפי משך השהייה, צריך לציין את המאפיינים |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | קונטיינר של אוסף חיובים בסיסיים. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | מציינים את מחירי החדרים במטבע מסוים. אפשר להגדיר את המחיר לפי מספר האורחים באמצעות כמה רכיבי <BaseByGuestAmt>, שלכל אחד מהם ערך שונה במאפיין NumberOfGuests.
אחרת, המחיר תקף למספר מקסימלי של אורחים שמוגדר על ידי NumberOfGuests. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
המחיר היומי של החדר לפני מיסים ועמלות. אפשר לציין גם את אם אתם משתמשים במבצעים, ההנחה חלה על |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | המחיר היומי של תעריף החדר אחרי הכללת המיסים והעמלות הרלוונטיים. אם מציינים את AmountAfterTax, אין צורך לשלוח הודעות נפרדות לכל מאפיין <TaxFeeInfo>. אפשר להשתמש במאפיין הזה בשילוב עם AmountBeforeTax כדי לספק גם מחיר בסיס וגם מחיר כולל שיוצגו למשתמשים באזורים מסוימים.
אזהרה: אם אתם משתמשים במבצעים, אנחנו ממליצים מאוד לא להשתמש ב הערה: אם לא מציינים את |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | קוד אלפא בן 3 תווים לפי תקן ISO 4217 של יחידה מוניטרית ספציפית.
כאן אפשר לעיין ברשימת המטבעות הנתמכים. |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | מספר האורחים המקסימלי שאפשר לארח במחיר הזה.
אם לא מציינים ערך, ברירת המחדל היא 2 אורחים.
שימו לב: אם |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | קונטיינר לאוסף של חיובים על אורחים נוספים.
התחביר הזה שימושי אם תעריפים נוספים לילדים או לאורחים משתנים בהתאם לתאריך. אם אפשר להגדיר את הסכומים האלה באופן סטטי ברמת הנכס, כדאי להשתמש בהודעה היעילה יותר
לדוגמה, נניח שציינתם תעריפים בסיסיים למבוגר אחד ול-2 מבוגרים.
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | התג הזה מציין מחירים על סמך סוג האורח, שמוגדר באמצעות התג AgeQualifyingCode, ואם רלוונטי, את גיל האורח שמוגדר באמצעות התג MaxAge.
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | מגדיר את סוג האורח הנוסף, מבוגר או ילד. האפשרויות התקפות הן:
אפשר להגדיר את חובה לציין את |
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | חובה לציין את MaxAge אם הערך של AgeQualifyingCode הוא 8. אסור לציין את הערך הזה אם הערך של AgeQualifyingCode הוא 10.
הערך אם מציינים ערך של ערכים שגדולים מ- אפשר לציין כמה טווחי גילאים של ילדים באמצעות כמה רכיבי
|
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | הסכום לפני המיסים והעמלות שנוספים למחיר הבסיסי לכל אורח נוסף.
צריך לציין מיסים ועמלות שמשתנים בהתאם לגיל האורחים באמצעות רכיב |
דוגמאות
בקטע הזה מופיעות דוגמאות קוד שמדגימות איך:
- הגדרת מחירים בסיסיים ומחירים כוללים
- הוספה, שכבת-על והסרה של תעריפים
- הוספה, הצגה בשכבת-על והסרה של סכומים נוספים של אורחים
- הגדרת תעריפים לפי משך השהייה
- הוספה, הצגה כשכבת-על והסרה של מחירים שמבוססים על משך השהייה
כשמגדירים את הערכים add, overlay או remove, טווחי התאריכים יכולים להיות זהים או שונים, בהתאם ליעדים שלכם. לדוגמה, אפשר להשתמש בערך overlay כדי להגדיר רק כמה שבועות לחגים של דצמבר, במקום את כל הטווח שהוגדר להודעה 'שיעור ההוספה'. הפעולה הזו תחליף את שיעורי התפוסה רק לתקופה הזו.
תמחור לפי תאריך
לכל חדר ותוכנית מחירים יכולים להיות עד 50 שיעורי תפוסה לכל נכס. אם המחירים זהים לכל מספר האורחים, צריך לשלוח רק את מספר האורחים המקסימלי עם המחיר הנדרש. כך, Google מסיקה שגם בשיעורי התפוסה הנמוכים יותר מוצע אותו תעריף בסיסי.
הגדרת תעריפים בסיסיים ותעריפים כוללים
דוגמה 1
התעריף הבסיסי (ללא מיסים או עמלות) לחדר עם מספר האורחים שמוגדר כברירת מחדל (זוגי). במודל הזה, צריך להגדיר את המיסים והעמלות על הנכס באמצעות הודעה מסוג <TaxFeeInfo>. השיעור הבסיסי יוצג בצורה בולטת יותר למשתמשים שמחפשים ממיקומים מסוימים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>דוגמה 2
המחיר הבסיסי והמחיר הכולל לשהייה בהרכב ברירת המחדל (זוג). במודל הזה, אין להגדיר מיסים ועמלות בנפרד באמצעות הודעות <TaxFeeInfo>. השיעור הבסיסי יוצג בצורה בולטת יותר למשתמשים שמחפשים ממיקומים מסוימים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
AmountAfterTax="110.00"
CurrencyCode="USD"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>דוגמה 3
המחיר הכולל (כולל מיסים ועמלות) לכמה אנשים. במודל הזה,
אין להגדיר מיסים ועמלות בנפרד באמצעות הודעות <TaxFeeInfo>.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
<BaseByGuestAmt AmountAfterTax="120.00"
CurrencyCode="USD"
NumberOfGuests="3"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>דוגמה 4
מחיר בסיסי ומחיר כולל למספר סוגים של חדרים ולמספר תוכניות מחירים בטווחי תאריכים שונים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-01"
End="2020-05-31"
InvTypeCode="RoomID_2"
RatePlanCode="PackageID_2"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="200.00"
AmountAfterTax="220.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הוספה, הוספה כשכבת-על והסרה של תעריפים
יש מגבלה של 5,000 מוצרים – שילובים של סוג חדר וחבילה – לכל נכס. כדי להסיר מוצרים שהוגדרו בעבר, משתמשים בסוגי ההתראות Overlay או Remove.
הוספת מחירים
מגדירים את NotifType ל-Delta כדי להוסיף מחירים לפי מספר האורחים בחדר עם RoomID_1 ובחבילה עם PackageID_1 בין התאריכים 2021-10-20 ו-2021-12-31. הערה: Google תומכת בנתונים של עד שלוש שנים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountBeforeTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
<BaseByGuestAmt AmountBeforeTax="120.00"
CurrencyCode="USD"
NumberOfGuests="3"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>שיעורי חפיפה
הגדרת NotifType ל-Overlay תמחק את כל המחירים לכל מספר אנשים בחדר עבור RoomID_1 ו-PackageID_1 בין התאריכים 2021-10-20 ו-2021-12-31 ותחליף אותם במחירים החדשים לכל מספר אנשים בחדר שצוינו.
לדוגמה, אם ההודעה הזו נשלחה אחרי ההודעה 'הוספת מחירים', המחירים של תפוסה 1, 2 ו-3 יימחקו ורק המחיר החדש של תפוסה 1 יישמר. אפשר גם להגדיר טווח תאריכים קצר יותר (למשל: 2021-12-20 ו-2021-12-31) כדי להחליף רק חלק משיעורי התפוסה בתאריכים מסוימים, למשל בחגים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Overlay"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="200.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הסרת תעריפים
מגדירים את NotifType ל-Removeכדי למחוק את כל המחירים לכל תפוסה עבור RoomID_1 ו-PackageID_1 בין התאריכים 2021-10-20 ו-2021-12-31.
לדוגמה, אם ההודעה הזו נשלחה אחרי אחת מההודעות האחרות לדוגמה, לא יישמרו נתונים לגבי שיעורי התפוסה.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Remove"
NotifScopeType="ProductRate">>
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הוספה, הוספה כשכבת-על והסרה של סכומים נוספים לאורחים
הוספת סכומים
מגדירים את NotifType ל-Delta כדי להוסיף מחירים בסיסיים לשהייה של אורח אחד או שניים, וסכומים לאורחים נוספים, עבור RoomID_1 ו-PackageID_1 בין התאריכים 2021-10-20 ו-2021-12-31.
סכומים נוספים לאורחים יתווספו למחיר הבסיסי שייקבע לפי מספר האורחים בחיפוש של המשתמש. מספר האנשים שהמשתמש ציין חייב להיות במסגרת הקיבולת של RoomID_1.
בדוגמה הזו, הסכומים הנוספים של האורחים יחולו באופן הבא:
- 5$ לילדים בטווח הגילאים 0 עד 10 (כולל).
- 10$ לילדים בגילאים 11 עד 17 (כולל).
- 20$ למבוגרים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountBeforeTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
<AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
<AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>סכומי שכבת-על
הגדרת NotifType ל-Overlay תמחק את כל המחירים לכל מספר אורחים ואת כל הסכומים הנוספים לאורחים עבור RoomID_1 ו-PackageID_1 בין התאריכים 2021-10-20 ו-2021-12-31, ותחליף אותם במחירים החדשים לכל מספר אורחים ובסכומים הנוספים שצוינו.
לדוגמה, אם ההודעה הזו נשלחה אחרי ההודעה 'הוספת תעריפים', התעריפים של תפוסה בסיסית של חדרים עם מיטה אחת ועם 2 מיטות יימחקו, ורק התעריף החדש של תפוסה בסיסית של חדרים עם מיטה אחת יישמר. הסכומים הקודמים של האורחים הנוספים יימחקו, ורק הסכומים החדשים יישמרו. אם יש יותר אורחים, המערכת תשתמש במחיר החדש לחדר עם תפוסה של אורח אחד כמחיר הבסיס. חשוב לדעת: אחרי העדכון הזה, לא מוגדרים חיובים נוספים על ילדים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Overlay"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="200.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הסרת סכומים
מגדירים את NotifType ל-Delete כדי למחוק את כל המחירים הבסיסיים לכל תפוסה ואת כל הסכומים הנוספים לאורחים ב-RoomID_1 וב-PackageID_1 בין התאריכים 2021-10-20 ו-2021-12-31.
לדוגמה, אם ההודעה הזו נשלחה אחרי אחת מההודעות האחרות לדוגמה, לא יישמרו תעריפים בסיסיים לכל תפוסה או סכומים נוספים לאורחים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Remove"
NotifScopeType="ProductRate">>
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הסרת רק הסכומים של האורחים הנוספים
מגדירים את NotifType ל-Delta עם רכיב <AdditionalGuestAmounts> ריק כדי למחוק את כל הסכומים הנוספים לאורחים ב-RoomID_1 וב-PackageID_1 בלי להשפיע על המחירים הבסיסיים בין התאריכים 2021-10-20 ל-2021-12-31.
לדוגמה, אם ההודעה הזו נשלחה אחרי אחת מההודעות האחרות לדוגמה, יישמרו רק הסכומים הבסיסיים.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<AdditionalGuestAmounts/>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>תמחור לפי משך השהייה
הגדרת תעריפים לפי משך השהייה
דוגמה 1
הגדרת מחירים לשהייה של לילה אחד, שני לילות ושלושה לילות החל מ-2020-05-18. בדוגמה הזו, המחיר הכולל לשהייה של לילה אחד, שני לילות ושלושה לילות יהיה 100$, 180$ ו-240$, בהתאמה.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-18"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
<Rates>
<Rate UnitMultiplier="1" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="100.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
<Rate UnitMultiplier="2" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="90.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
<Rate UnitMultiplier="3" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="80.00"
CurrencyCode="USD"
NumberOfGuests="2" />
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הוספה, הצגה בשכבת-על והסרה של מחירים לפי משך השהייה
הוספת משכי שהייה
בשיטת התמחור לפי משך השהייה, פעולת Delta מאפשרת לעדכן את המחירים באופן מצטבר לטווח תאריכי הצ'ק-אין שצוין ב-<StatusApplicationControl> ולכל משך השהייה שצוין בכל רכיב צאצא Rate של UnitMultiplier.
לכל תאריך צ'ק-אין רלוונטי ולכל משך שהייה, צריך לציין את כל מחירי התפוסה.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0"
NotifType="Delta"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-18"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
<Rates>
<Rate UnitMultiplier="3" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="80.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הוספת שכבת-על של משכי שהייה
בשיטת התמחור לפי משך השהייה, Overlay פעולה
מחליפה את המחירים לכל משך השהייה של המוצר ואת טווח תאריכי הצ'ק-אין שמצוינים ב-<StatusApplicationControl>.
ההודעה הזו תגרום להסרה של תעריפים לכל מספר האורחים לכל משך השהייה בתאריכי ההגעה שצוינו, ולהחלפה שלהם בתעריף ל-2 אורחים שמוגדר רק למשך שהייה של 3 לילות.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0"
NotifType="Overlay"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-18"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
<Rates>
<Rate UnitMultiplier="3" RateTimeUnit="Day">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="80.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>הסרת משך השהייה
בשיטה של תמחור לפי משך השהייה, פעולת Remove מסירה את המחירים של כל משכי השהייה של המוצר ואת טווח תאריכי הצ'ק-אין שצוינו ב-<StatusApplicationControl>.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0"
NotifType="Remove"
NotifScopeType="ProductRate">
<RateAmountMessages HotelCode="Property_1">
<RateAmountMessage>
<StatusApplicationControl Start="2021-10-20"
End="2021-12-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"
RatePlanType="26"/>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>תשובות
תחביר
ההודעה OTA_HotelRateAmountNotifRS משתמשת בתחביר הבא:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="timestamp"
EchoToken="echo_token"
Version="3.0">
<!-- Either Success or Errors will be populated. -->
<Success/>
<Errors>
<Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>
רכיבים ומאפיינים
ההודעה OTA_HotelRateAmountNotifRS כוללת את הרכיבים והמאפיינים הבאים:
| רכיב / @מאפיין | מופעים | סוג | תיאור |
|---|---|---|---|
| OTA_HotelRateAmountNotifRS | 1 | Complex element | רכיב הבסיס של תשובה להודעת זמינות. |
| OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | התאריך והשעה שבהם ההודעה נוצרה. |
| OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | המזהה הייחודי מההודעה המשויכת OTA_HotelRateAmountNotifRQ. |
| OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | מציין שההודעה OTA_HotelRateAmountNotifRQ עובדה בהצלחה.
הערך |
| OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | גורם מכיל לבעיה אחת או יותר שזוהו במהלך עיבוד ההודעה OTA_HotelRateAmountNotifRQ.
הערך |
| OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | תיאור של שגיאה שקרתה במהלך עיבוד ההודעה [OTA_HotelRateAmountNotifRQ]. פרטים על השגיאות האלה זמינים במאמר הודעות שגיאה בסטטוס הפיד. |
| OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | ה-EWT (סוג האזהרה על שגיאה) של OpenTravel Alliance שמשויך לשגיאה. הערך היחיד שבו אפשר להשתמש הוא 12 (Processing exception). |
| OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | קוד השגיאה (ERR) של OpenTravel Alliance שמשויך לשגיאה.
הערך היחיד שבו אפשר להשתמש הוא 450 (Unable to process). |
| OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | הסטטוס של הבקשה המקורית. הערך היחיד שבו משתמשים הוא NotProcessed. |
| OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | המזהה של הבעיה ב-Google. פרטים על השגיאות האלה זמינים במאמר הודעות שגיאה בסטטוס הפיד. |
דוגמאות
הפעולה הצליחה
זוהי תגובה להודעה מסוג OTA_HotelRateAmountNotifRQ שעברה עיבוד בהצלחה.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0">
<Success/>
</OTA_HotelRateAmountNotifRS>שגיאות
התשובה הבאה מתייחסת להודעה מסוג OTA_HotelRateAmountNotifRQ שלא עברה עיבוד בגלל שגיאות.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2021-10-20T20:50:37-05:00"
Version="3.0">
<Errors>
<Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>