בקשות
תחביר
ההודעה Transaction (Property Data) משתמשת בתחביר הבא:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
id="message_ID"
partner="partner_key">
<PropertyDataSet action="[overlay|delta]">
<!-- (Required) ID that matches the Hotel List Feed -->
<Property>HotelID</Property>
<RoomData>
<!-- (Required) One room ID per RoomData element -->
<RoomID>RoomID</RoomID>
<Name>
<Text text="room_name" language="language_code"/>
</Name>
<Description>
<Text text="room_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the rate plans allowed for this room type to
those listed here. If specified, don't specify AllowableRoomIDs. -->
<AllowablePackageIDs>
<AllowablePackageID>PackageID</AllowablePackageID>
</AllowablePackageIDs>
<Capacity>max_number_of_occupants</Capacity>
<AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
<ChildCapacity>max_number_of_child_occupants</ChildCapacity>
<OccupancySettings>
<MinOccupancy>min_number_of_occupants</MinOccupancy>
<MinAge>min_age_of_occupants</MinAge>
</OccupancySettings>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
</Caption>
<URL>photo_location</URL>
</PhotoURL>
<RoomFeatures>
<JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
<Beds>
<Bed size="[single|semi_double|double|queen|king]">
<Width unit="cm" number="bed_width"/>
<Length unit="cm" number="bed_length"/>
</Bed>
<!-- Include with any additional beds. -->
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>[shared|private]</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>[smoking|non_smoking]</Smoking>
<BathAndToilet relation="[together|separate]">
<Bath bathtub="[false|true]" shower="[false|true]"/>
<Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<!-- (Optional) Defines the type of views from the room. -->
<!-- Example: <OceanView/> -->
</Views>
</RoomFeatures>
</RoomData>
<PackageData>
<!-- (Required) One package ID per PackageData element -->
<PackageID>PackageID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
</Name>
<Description>
<Text text="package_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the room types allowed for this rate plan to
those listed here. If specified, don't specify AllowablePackageIDs. -->
<AllowableRoomIDs>
<AllowableRoomID>RoomID</AllowableRoomID>
</AllowableRoomIDs>
<!-- Add Loyalty point information -->
<MilesIncluded>
<LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
<!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
<NumberOfMiles>integer</NumberOfMiles>
</MilesIncluded>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
<BreakfastIncluded>boolean_value</BreakfastIncluded>
<InternetIncluded>boolean_value</InternetIncluded>
<ParkingIncluded>boolean_value</ParkingIncluded>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
...
</Caption>
<URL>photo_location</URL>
</PhotoURL>
...
<Meals>
<Breakfast
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
<Dinner
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
</Meals>
<CheckinTime>checkin_time</CheckinTime>
<CheckoutTime>checkout_time</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
רכיבים ומאפיינים
ההודעה Transaction (Property Data) כוללת את הרכיבים והמאפיינים הבאים:
| רכיב / @מאפיין | מופעים | סוג | תיאור |
|---|---|---|---|
| Transaction | 1 | Complex element | בהטמעה של ARI, זהו רכיב הבסיס של הודעה שמגדיר סוגי חדרים וחבילות לנכס יחיד. |
| Transaction / @timestamp | 1 | DateTime | התאריך והשעה שבהם ההודעה נוצרה. |
| Transaction / @id | 1 | string | מזהה ייחודי של הודעת הבקשה. הערך הזה מוחזר בהודעת התגובה. התווים המותרים הם a-z, A-Z, 0-9, _ (קו תחתון) ו- (מקף). |
| Transaction / @partner | 1 | string | חשבון השותף שאליו משויכת ההודעה. ערך המחרוזת הזה הוא הערך של 'מפתח שותף' שמופיע
בדף הגדרות החשבון ב-Hotel Center.
הערה: אם יש לכם קצה עורפי שמספק פידים לכמה חשבונות, הערך הזה צריך להיות זהה לערך המאפיין |
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | קונטיינר להגדרת סוגי חדרים וחבילות לנכס יחיד.
מומלץ לשלוח את
|
| Transaction / PropertyDataSet / @action | 0..1 | enum | סוג העדכון שרוצים להחיל על הגדרות מחירי החדרים. הערכים החוקיים כוללים:
המאפיין הזה הוא אופציונלי, ואם לא מציינים ערך, ברירת המחדל היא |
| Transaction / PropertyDataSet / Property | 1 | string | המזהה הייחודי של הנכס. הערך הזה צריך להיות זהה לערך של מזהה המלון שצוין באמצעות
<id> ב-<listing> בפיד רשימת המלונות. מזהה המלון מופיע גם ב-Hotel Center. |
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | תיאור של חדר. הערה: חובה לציין לפחות אחד מהערכים |
| Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | מזהה ייחודי של סוג החדר. הערך הזה מופיע במאפיין InvTypeCode ברכיב <StatusApplicationControl> בהודעות <OTA_HotelAvailNotifRQ>, <OTA_HotelRateAmountNotifRQ> ו-<OTA_HotelInvCountNotifRQ>. |
| Transaction / PropertyDataSet / RoomData / Name | 1 | Name | קונטיינר של שם קטגוריית החדר בשפה אחת או יותר. |
| Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | מציין את שם הקטגוריה של החדר בשפה אחת. |
| Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | שם קטגוריית החדר בשפה שצוינה במאפיין language. |
| Transaction / PropertyDataSet / RoomData / Description | 1 | Name | קונטיינר לתיאור של קטגוריית החדר בשפה אחת או יותר. |
| Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | מציין את תיאור הקטגוריה של המרחב בשפה אחת. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | תיאור קטגוריית החדר בשפה שצוינה במאפיין language. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | קוד שפה בן שתי אותיות. |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | קונטיינר של רכיבי <AllowablePackageID>.
אם מציינים את אם לא מציינים את אפשר להשתמש במאפיין |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | מציין את PackageID של תוכנית מחירים שאפשר לשלב עם סוג החדר הזה. תוכנית תמחור מוגדרת על ידי שילוב של
חבילה, תעריפים וזמינות. התג PackageID
תואם לתג RatePlanCode בהודעות OTA_HotelRateAmountNotifRQ ו-OTA_HotelAvailNotifRQ.
|
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | המספר המקסימלי של מבוגרים וילדים שיכולים להיכנס לחדר. הערך הזה צריך להיות גדול או שווה לכל הערכים של NumberOfGuests שאתם שולחים עם שיעורי עמלה.
הערך של הערה: אם לא מגדירים את |
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | מספר המבוגרים המקסימלי שיכולים להיכנס לחדר. הערך הזה צריך להיות גדול או שווה לכל הערכים של NumberOfGuests שאתם שולחים עם שיעורי העמלה.
הערך של |
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | המספר המקסימלי של ילדים שיכולים להיכנס לחדר
פיזית.
הערך של |
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | הגדרות שיכולות להגביל או לשנות את דרישות התפוסה של חדר.
הרכיב
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> לא צריך לכלול את כל רכיבי הצאצא. |
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | כתובת URL וכיתוב אופציונלי לתמונה של החדר או של
הדיל הכולל כמה חדרים. אפשר לציין יותר מ-<PhotoURL>
לחדר או לחבילת חדר.
האלמנט הזה מקבל את אלמנטי הצאצא הבאים:
<PhotoURL> <URL>http://www.example.com/image1.jpg</URL> <Caption> <Text text="A bright way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse pour profiter de votre tasse de thé." language="fr"/> </Caption> </PhotoURL> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures | 0..1 | <RoomFeatures> |
מכיל מידע על התכונות של החדר. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | מציין את הסגנון של חדר במלון יפני. הערכים החוקיים כוללים:
|
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | מכיל מספר של <Bed> כמספר החדרים. לתשומת ליבך, אין לכלול כאן פוטונים יפניים.
לכל
<Bed> יש את רכיבי הצאצא הבאים:
<Beds>
<Bed size="double">
<Width unit="cm" number="140"/>
<Length unit="cm" number="195"/>
</Bed>
<Bed/> <!-- Size unknown -->
</Beds> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite | 0.. | enum | צריך לספק את הרכיב הזה אם החדר הוא סוויטה. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | צריך לספק את הרכיב הזה אם החדר הוא חדר קפסולה. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | האם החדר הזה משותף עם דיירים אחרים, כמו בעלים או אורחים אחרים. הערכים החוקיים הם shared ו-private. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | צריך לספק את האלמנט הזה אם החדר הוא מקום לינה חיצוני ללא קירות קבועים, אינסטלציה ובקרת אקלים. לדוגמה, חדרי מלון לא נחשבים ליחידות אירוח חיצוניות, אבל אתרי קמפינג שבהם האורחים ישנים באוהלים ופארקים לקרוואנים שבהם האורחים מביאים את הקרוואן שלהם כן נחשבים ליחידות אירוח חיצוניות. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | צריך לספק את האלמנט הזה אם החדר מתאים לשימוש של אנשים עם מוגבלויות בניידות. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | האם החדר הזה הוא חדר ללא עישון או חדר עם עישון. הערכים התקינים הם non_smoking ו-smoking. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | כולל מידע על אמבטיה ושירותים בחדר.
המאפיין הוא:
האלמנט יכול לכלול את רכיבי הצאצא הבאים:
דוגמה: <BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet
electronic_bidet="1"
mobility_accessible="1"/>
</BathAndToilet> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | צריך לספק את הרכיב הזה אם בחדר יש אמבטיה פרטית בחוץ. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | צריך לספק את הרכיב הזה אם בחדר יש מיזוג אוויר. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | צריך לספק את הרכיב הזה אם לחדר יש מרפסת או מרפסת מקורה. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | האפשרויות התקפות כוללות:
|
| Transaction / PropertyDataSet / PackageData | 0..n | PackageData | קונטיינר לרכיבים שמתארים תכונות ומאפיינים של המחיר שלא נכללים בתיאור הפיזי של החדר. הערה: צריך לציין לפחות אחד מהערכים |
| Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | הערך PackageID בהודעות האלה תואם לערך RatePlanCode בהודעות OTA_HotelRateAmountNotifRQ ו-OTA_HotelAvailNotifRQ. |
| Transaction / PropertyDataSet / PackageData / Name | 1 | Name | קונטיינר לשם החבילה בשפה אחת או יותר. |
| Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | מציין את שם החבילה בשפה אחת. |
| Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | שם החבילה בשפה שצוינה במאפיין
language. |
| Transaction / PropertyDataSet / PackageData / Description | 1 | Description | קונטיינר לתיאור החבילה בשפה אחת או יותר. |
| Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | מציין את תיאור החבילה בשפה אחת. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | תיאור החבילה בשפה שצוינה במאפיין language. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | קוד שפה בן שתי אותיות. |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | קונטיינר של רכיבי <AllowableRoomID>.
אם מציינים את אם לא מציינים את אפשר להשתמש במאפיין |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | מציין את RoomID של סוג חדר שאפשר לשלב עם תוכנית המחירים הזו. סוג החדר מוגדר ברכיב <RoomData>.
|
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | מוסיפים מידע על נקודות מועדון לחבילות בהתאם להגדרות של תוכניות התמחור או החבילות. מציינים את רכיב <MilesIncluded>
בתוך רכיב <PackageData> שמגדיר את תוכנית התמחור.
לרכיב <MilesIncluded> יש את רכיב הבן הבא:
|
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | התכונה מאפשרת לפרסם מחיר עם אפשרות להחזר כספי מלא או לביטול. אם לא מספקים את המידע הזה, לא מוצג מידע על החזר כספי.
הערה: מומלץ להגדיר את כל המאפיינים. הודעת אזהרה על סטטוס הפיד נוצרת כשמאפיין אחד או יותר לא מוגדרים. אם לא מגדירים מאפיינים, המחיר לא מוצג כמחיר שניתן להחזר. כשמגדירים את המאפיינים, חשוב לשים לב לנקודות הבאות:
|
| Transaction / PropertyDataSet / PackageData / 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, כולל. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (מומלץ מאוד אם available הוא true) מציין את השעה המאוחרת ביותר ביום, לפי השעון המקומי של המלון, שבה בקשה להחזר כספי מלא תכובד. אפשר לשלב את המאפיין הזה עם
refundable_until_days כדי לציין, לדוגמה, ש"אפשר לקבל החזר כספי עד השעה 16:00 יומיים לפני הצ'ק-אין". אם לא מגדירים את refundable_until_time, ערך ברירת המחדל הוא חצות. |
| Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | המאפיין הזה מציין אם ארוחת הבוקר כלולה במחיר של סוג החדר.
הערכים התקינים הם 0 (או false) ו-1
(או true).
מומלץ להשתמש ב- |
| Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | השעה המוקדמת ביותר שאפשר לעשות בה צ'ק-אין, לפי השעה המקומית במלון. השעה חייבת להיות לפני 24:00. |
| Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | השעה המאוחרת ביותר שאפשר לעשות בה צ'ק-אאוט, לפי השעה המקומית במלון. |
| Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | המאפיין מציין אם החדר כולל גישה לאינטרנט בחינם, בזמן שחדרים אחרים לא כוללים את השירות הזה. אל תגדירו את הרכיב הזה במלון שמספק אינטרנט בחינם בכל החדרים. האלמנט הזה
לא רלוונטי לאינטרנט קווי בחדר או לאינטרנט אלחוטי שלא זמין בחדרי האורחים. הערכים התקינים הם 0 (או false) ו-1 (או true).
|
| Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | כולל מידע על הארוחות בחבילה הזו.
הרכיב
המאפיינים האופציונליים משמשים רק אם הערך של כדי שהמסננים של הארוחות ( |
| Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | האם החדר כולל חניה ללא תשלום, במקרים שבהם החניה היא שירות בתשלום במלון. אם המלון מציע חניה בחינם, אל תציינו ערך לרכיב הזה.
הערכים האפשריים הם 0 (או false) ו-1 (או true). ערך ברירת המחדל הוא false.
|
| Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (אותו דבר כמו <PhotoURL> ב-<RoomData>,
אבל לגבי החבילה (לדוגמה, תמונות של ארוחות)).
|
דוגמאות
נתונים של חדרים וחבילות
הדוגמה הבאה היא דוגמה בסיסית להגדרת נתוני החדר והחבילה של נכס בהודעת עסקה (נתוני נכס). המאפיין overlay
משמש כדי לוודא שאם קיימים נתונים באופן לא צפוי, כל הנתונים הקיימים יימחקו ויוחלפו בנתונים בהודעה הזו:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Description>
<Text text="Room with a king bed" language="en"/>
</Description>
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a king bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<Description>
<Text text="Standard rate" language="en"/>
</Description>
<MilesIncluded>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<Description>
<Text text="Free breakfast rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
הוספת סוג חדר
הדוגמה הבאה מראה איך מוסיפים סוג חדר וחבילה לנתוני <Transaction> קיימים:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="delta">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_3</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_3</PackageID>
<Name>
<Text text="Non-Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="false"/>
</PackageData>
</PropertyDataSet>
</Transaction>
הסרת סוגי חדרים
הדוגמה הבאה ממחישה איך מסירים חבילות וסוגי חדרים קיימים. בתרחיש הזה, אם ההודעות בקטע Room and package data (נתוני חדרים וחבילות) ובקטע Add a room type (הוספת סוג חדר) נשלחו ל-Google בעבר, סוגי החדרים King ו-Double לא יופיעו יותר אחרי ש-Google תקבל את ההודעה שמוצגת. שימו לב שהסרת נתוני חבילה משפיעה על תוכנית המחירים הכוללת כפי שהיא מוגדרת בהודעות Transaction (Property Data), OTA_HotelRateAmountNotifRQ ו-OTA_HotelAvailNotifRQ (על ידי הפניה לאותו ערך PackageID). לכן, יכול להיות שיהיה צורך לבצע עדכונים תואמים באמצעות סוגי ההודעות האחרים כדי לשקף את העובדה שהערכים PackageID_2 ו-PackageID_3 כבר לא מוגדרים כאן.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a queen bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
הגבלת תוכניות תמחור
בדוגמה הבאה מוצג אופן השימוש ברכיב <AllowablePackageIDs> כדי להגביל את התוכניות למחירים שמותר להשתמש בהן לסוג חדר מסוים. בדוגמה הזו, אפשר לשלב את סוג החדר Queen (RoomID_2) רק עם החבילה ותוכנית המחירים שמזוהות כמזהה החבילה PackageID_1.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<AllowablePackageIDs>
<AllowablePackageID>PackageID_1</AllowablePackageID>
</AllowablePackageIDs>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
הגבלת קיבולת החדר
הנה דוגמה לשימוש ברכיבים <Capacity>, <AdultCapacity> ו-<ChildCapacity> כדי להגדיר הגבלות על קיבולת החדרים.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<Capacity>4</Capacity>
<AdultCapacity>4</AdultCapacity>
<ChildCapacity>3</ChildCapacity>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
</PropertyDataSet>
</Transaction>
בחדר זוגי (RoomID_1) יכולים ללון עד 4 אורחים בסך הכול. בנוסף, יכולים להיות בו עד 4 מבוגרים ועד 3 ילדים. כדי שאפשר יהיה להזמין את החדר הזה, צריך לעמוד בכל שלוש הדרישות לגבי הקיבולת. הסידור הזה מייצג חדר טיפוסי עם שתי מיטות, שבכל אחת מהן יכולים לישון שני אנשים. הקיבולת של הילדים קטנה באחד מהקיבולת הכוללת, כי חייב להיות בחדר לפחות מבוגר אחד.
דוגמאות מורחבות עם <RoomFeatures> וארוחות
למאפיין JapaneseHotelRoomStyle אין ערך ברירת מחדל.
השמטה של ערך לא גורמת לשגיאת XML, אבל אם המשתמש מסנן לפי סגנון חדר או מספר מיטות, המלון לא יוצג בתוצאות החיפוש.
שתי מיטות יחיד
בדוגמה הבאה אפשר לראות איך משתמשים ב-<RoomFeatures>:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two single beds -->
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>private</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>non_smoking</Smoking>
<BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet electronic_bidet="1" mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<LakeView/>
<MarinaView/>
<BeachView/>
<ForestView/>
<MountainView/>
<NatureView/>
</Views>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
שתי מיטות זוגיות
דוגמה לחדר בסגנון western עם שתי מיטות double:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two double beds-->
<Bed size="double"></Bed>
<Bed size="double"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
בסגנון יפני ללא מיטה
הנה דוגמה לחדר בסגנון יפני ללא מיטה. לא נדרש מידע על המיטה בחדר בסגנון japanese.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
חדר יפני-מערבי עם מיטה
דוגמה לחדר בסגנון japanese_western עם מיטה בגודל king
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
<Beds>
<Bed size="king"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
japanese_western
אם השותף לא מציין את מספר המיטות בנתוני החדרים japanese_western, אפשר להיעזר בדוגמה הבאה:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
ארוחות
בדוגמה הבאה מוגדרים מטא-נתונים של חדר וחבילה לגבי ארוחות, תמונות ושעות הצ'ק-אין והצ'ק-אאוט:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Meals Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<!-- Guests can choose to have breakfast in their room or in another
space to avoid contact with other guests. -->
<Breakfast included="1" in_room="1" in_private_space="1"/>
<Dinner included="1" buffet="1"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
ארוחת בוקר בלבד
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<Breakfast included="true"/>
<!-- Dinner not included needs to be explicitly specified -->
<Dinner included="false"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
תשובות
תחביר
ההודעה TransactionResponse (Property Data) משתמשת בתחביר הבא:
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</TransactionResponse>
רכיבים ומאפיינים
ההודעה TransactionResponse (Property Data) כוללת את הרכיבים והמאפיינים הבאים:
| רכיב / @מאפיין | מופעים | סוג | תיאור |
|---|---|---|---|
| TransactionResponse | 1 | Complex element | רכיב הבסיס שמציין את ההצלחה או הבעיות בהודעת בקשת עסקה שהתקבלה. |
| TransactionResponse / @timestamp | 1 | DateTime | התאריך והשעה שבהם ההודעה נוצרה. |
| TransactionResponse / @id | 1 | string | המזהה הייחודי מהודעת העסקה המשויכת. |
| TransactionResponse / @partner | 1 | string | חשבון השותף שאליו משויכת ההודעה. |
| TransactionResponse / Success | 0..1 | Success | מציין שהודעת הטרנזקציה עובדה בהצלחה
ללא אזהרות, שגיאות או כשלים.
הערך |
| TransactionResponse / Issues | 0..1 | Issues | גורם מכיל לבעיה אחת או יותר שזוהו במהלך עיבוד ההודעה Transaction.
הערך |
| TransactionResponse / Issues / Issue | 1..n | Issue | תיאור של אזהרה, שגיאה או כשל שנתקלו בהם במהלך עיבוד הודעת הטרנזקציה. פרטים על הבעיות האלה מופיעים במאמר הודעות שגיאה בסטטוס הפיד. |
| TransactionResponse / Issues / Issue / @code | 1 | integer | המזהה של הבעיה. |
| TransactionResponse / Issues / Issue / @status | 1 | enum | סוג הבעיה שנתקלתם בה. הערכים התקפים הם |
דוגמאות
הפעולה הצליחה
זוהי תגובה להודעת עסקה שעברה עיבוד בהצלחה.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
בעיות
זוהי תגובה להודעת עסקה שלא עברה עיבוד בגלל שגיאות.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</TransactionResponse>