בדף הזה מפורט מידע על הודעות העסקאות שמבוססות על XML.
<Transaction>
האלמנט ברמה הבסיסית של הודעת עסקה הוא <Transaction>
. הוא מכיל מידע תיאורי על חדרים וחבילות, ומידע על המחירים והזמינות של החדרים והחבילות.
הרכיב <Transaction>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
בהודעות שבהן <Transaction>
משמש כרכיב הבסיס, נדרש לפחות רכיב צאצא אחד. הודעות עסקה יכולות לכלול מספר בלתי מוגבל של רכיבי צאצא, כל עוד הגודל הכולל של ההודעה לא חורג מ-100MB.
תחביר
רכיב <Transaction>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">
<!-- Defines data about a room or package (Room Bundle) -->
<PropertyDataSet>
...
</PropertyDataSet>
<!-- Updates/sets prices and availability for rooms and Room Bundles -->
<!-- (Also removes itineraries from inventory) -->
<Result>
...
</Result>
</Transaction>
מאפיינים
לרכיב <Transaction>
יש את המאפיינים הבאים:
מאפיין | חובה? | סוג | תיאור |
---|---|---|---|
id | Required | string | מזהה ייחודי לכל הודעת Transaction. |
partner | Optional | string | חשבון השותף שאליו מיועדת הודעת העסקה. בדרך כלל משתמשים באפשרות הזו אם הקצה העורפי מספק פידים של מחירים לכמה חשבונות שותפים. ערך המחרוזת הזה הוא הערך של 'מפתח השותף' שמופיע ב דף 'הגדרות החשבון' ב-Hotel Center. |
timestamp | Required | DateTime | הרגע שבו הודעת העסקה נשלחה. כל הודעה שנשלחה עם חותמת זמן ב-24 השעות האחרונות תטופל, וההודעות שלא יקבלו טיפול יימחקו. ההודעות מעובדות לפי הערך של |
רכיבים צאצאים
לרכיב <Transaction>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<PropertyDataSet> | Optional* | <PropertyDataSet> |
תיאור של חדר ספציפי וחבילות חדרים. בדרך כלל משתמשים ברכיב הזה בהודעת עסקה נפרדת כדי להגדיר ערכים משותפים לחבילות חדרים ולצמצם את הגודל של הודעות העסקה. |
<Result> | Optional* | <Result> |
נתוני תמחור של מסלול נסיעה של חדר או רכיב |
* חובה להזין לפחות אחד מהשדות <PropertyDataSet> או <Result> . |
דוגמאות
נתוני החדר
בדוגמה הבאה מוגדר נתוני החדר בהודעת Transaction:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
נתוני תמחור
בדוגמה הבאה מוגדר נתוני תמחור בהודעת עסקה:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
מחירים ללילה
בדוגמה הבאה מוגדרים נתוני תמחור ל-1 עד 7 לילות, החל מ-7 ביוני 2023:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-08-24T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">209.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">419.98</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>3</Nights>
<Baserate currency="USD">614.97</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>4</Nights>
<Baserate currency="USD">819.96</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>5</Nights>
<Baserate currency="USD">999.95</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>6</Nights>
<Baserate currency="USD">1193.94</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>7</Nights>
<Baserate currency="USD">1259.93</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
</Transaction>
תעריפים בסיסיים ותעריפים מותנים
בדוגמה הבאה מוצגת הודעת עסקה שמכילה שיעור בסיס ושיעור מותנה:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
הסרת מלאי שטחי פרסום
בדוגמה הבאה מסירים מהמלאי כמה מלאי שטחי פרסום (לילות לינה ל-1 לילה במספר תאריכים שונים) של מלון:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-23</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-24</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<!---Sending <Baserate> is optional with <Unavailable> -->
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-25</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">-1</Baserate>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
</Transaction>
<PropertyDataSet>
מאגר של פרטי החדר והחבילה (או חבילת החדר) בהודעה <Transaction>
. ערכים שהוגדרו ברמת המלון מבטלים ערכים שהוגדרו ברמת השותף.
Google שומרת את המידע הזה כדי שלא תצטרכו להגדיר אותו בכל פעם שאתם שולחים עדכוני תמחור.
הרכיב <PropertyDataSet>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
מידע נוסף זמין במאמר מטא-נתונים של חבילות חדרים.
תחביר
רכיב <PropertyDataSet>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> <!-- (Required) ID that matches the Hotel List Feed --> <Property>hotel_ID</Property> <!-- (Optional) Defines metadata about a room --> <RoomData> ... </RoomData> <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) --> <PackageData> ... </PackageData> </PropertyDataSet> ... </Transaction>
מאפיינים
לאלמנט <PropertyDataSet>
אין מאפיינים.
רכיבים צאצאים
לרכיב <PropertyDataSet>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<PackageData> | Optional* | <PackageData> |
תיאור של חבילת חדרים. הנתונים האלה משויכים לשותף ולמלון, אבל לא למסלול נסיעה. האלמנט הזה דומה לאלמנט <RoomData> , אבל הוא מתאר שירותים ותנאים שלא נכללים בתיאור החדר הפיזי.
עליכם לציין את מזהה החבילה בעדכוני התמחור. למידע נוסף, ראו מטא-נתונים של חבילות חדרים. |
<Property> | Required | string | המזהה של המלון שאליו רלוונטיים הנתונים המשויכים. הערך של הרכיב הזה חייב להיות מחרוזת שתואמת לנכס <id> בפיד רשימת המלונות.
|
<RoomData> | Optional* | <RoomData> |
תיאור של חדר. הנתונים האלה משויכים לשותף ולמלון, אבל לא למסלול נסיעה.
עליכם לציין את מזהה החדר בעדכוני התמחור. |
* חובה להזין לפחות אחד מהשדות <PackageData> או <RoomData> . |
דוגמאות
נתוני החדר והחבילה
בדוגמה הבאה מוצגים גם נתוני החדר וגם נתוני החבילה ב-<PropertyDataSet>
:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
כששולחים מחירים וזמינות של החדר הזה ושל חבילת החדרים, צריך לציין את מזהי החדר והחבילה בהודעות לגבי התמחור. התוצאה היא שהגודל של ההודעות קטן מאוד, וגם כמות השגיאות שעשויות להתרחש בגלל נתונים כפולים קטנה. למידע נוסף, ראו מטא-נתונים של חבילות חדרים.
<RoomData>
הגדרת מטא-נתונים של חדרים שאינם תלויים במסלול הנסיעה, וכתוצאה מכך גם של חבילות חדרים (כי חבילות חדרים הן חדרים עם שירותים נוספים). אפשר להשתמש ב-<RoomData>
כדי לצמצם את החזרה על נתונים תיאוריים בפיד המחירים.
הרכיב <RoomData>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
רכיבי <RoomData>
מכילים מידע שמשויך לשותף ולמלון, אבל לא למסלול נסיעה. המטרה המיועדת היא לכל הנתונים שאינם מסלול נסיעה.
האלמנט <RoomData>
דומה לאלמנט <PackageData>
, אבל הוא מתאר את החדר הפיזי ולא את השירותים והתנאים של החבילה. משתמשים בשילוב של <RoomData>
ו-<PackageData>
כדי לספק פרטים על חבילות חדרים. אם מדובר בחדרים ספציפיים שלא נכללים בחבילה, צריך להשתמש רק ב-<RoomData>
.
אפשר להגדיר את הרכיבים <RoomData>
ו-<PackageData>
לאותו חדר או לחבילת חדרים. כשהחדר או החבילה האלה יוצגו בתוצאות החיפוש ב-Google, הם יכללו את התיאורים משני המקורות, מופרדים באמצעות מקף.
מידע נוסף זמין במאמר מטא-נתונים של חבילות חדרים.
תחביר
רכיב <RoomData>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> ... <RoomData> <RoomID>room_ID</RoomID> <Name> <Text text="room_name" language="language_code"/> ... </Name> <Description> <Text text="room_description" language="language_code"/> ... </Description> <Capacity>max_number_of_occupants</Capacity> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults, children, or seniors --></OccupancyDetails> <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> ... </RoomFeatures> </RoomData> ... </PropertyDataSet> </Transaction>
מאפיינים
לאלמנט <RoomData>
אין מאפיינים.
רכיבים צאצאים
לרכיב <RoomData>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<Capacity> | Optional | integer | מספר האורחים המקסימלי שיכולים להתארח בחדר פיזית. קיבולת החדר חייבת להיות שווה או גדולה ממספר האורחים.
אם מציינים ערך, הוא חייב להיות שווה לערך של הרכיב הערך של |
<Description> | Optional | Object | תיאור מפורט של החדר. הרכיב הזה צריך להכיל מידע שלא מתואר ברכיבים אחרים או ברכיב <Name> . לא מומלץ להשתמש באותיות רישיות בלבד כשכותבים את תיאור החדר.
רכיב
צריך להשתמש ברכיב בדוגמה הבאה מוצגות הגרסאות הצרפתית והאנגלית של תיאור החדר: <Description> <Text text="Two queen-sized beds" language="en"/> <Text text="Deux lits de la reine" language="fr"/> </Description> |
<Name> | Required | string | שם הקטגוריה של החדר. הערך הזה צריך להיות זהה לערך שמופיע בדף הנחיתה של המלון (לשעבר נקודת המכירה). לא להגדיר את הערך של הרכיב הזה באותיות גדולות בלבד.
הרכיב הזה מכיל רכיב צאצא יחיד,
צריך להשתמש ברכיב בדוגמה הבאה מוצגות הגרסאות הצרפתית והאנגלית של שם החדר: <Name> <Text text="Standard Double Room" language="en"/> <Text text="Le chambre double" language="fr"/> </Name> |
<Occupancy> | Optional | integer | מספר האורחים המקסימלי שהחדר מיועד.
לדוגמה, סוויטה גדולה יכולה להכיל פיזית 6 אורחים (קיבולת = 6), אבל היא מיועדת ל-4 אורחים לכל היותר.
הערך הזה חייב להיות קטן מ- הערך של השדה |
<OccupancySettings> | Optional | Object | הגדרות שיכולות להגביל או לשנות את דרישות התפוסה של חדר.
אלמנט
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> לא צריך לכלול את כל רכיבי הצאצאים. |
<PhotoURL> | Optional | Object | כתובת URL ותגובה אופציונלית לתמונה של החדר או של חבילת החדרים. אפשר לציין יותר מ-<PhotoURL> אחד לחדר או לחבילת חדרים. כל כתובת URL של תמונה חייבת להיות ב-<PhotoURL> משלה.
האלמנט הזה מכיל את רכיבי הצאצא הבאים:
דוגמה: <PhotoURL> <URL>https://www.example.com/static/bar/image1234.jpg</URL> <Caption> <Text text="A bright and breezy way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse et aérée pour profiter de votre journée tasse de thé." language="fr"/> </Caption> </PhotoURL> <PhotoURL> <URL>https://www.foo.com/static/bar/image5678.jpg</URL> <Caption> <Text text="Or, perhaps you prefer coffee." language="en"/> <Text text="Ou peut-être préférez-vous le café." language="fr"/> </Caption> </PhotoURL> |
<RoomFeatures> | Optional | <RoomFeatures> |
מכיל מידע על תכונות החדר. |
<RoomID> | Required | string | המזהה הייחודי של החדר. משתמשים במזהה הזה כדי להתאים את נתוני החדר לבלוק <Result> בעדכוני המחירים. למידע נוסף, ראו מטא-נתונים של חבילות חדרים. (אפשר גם להשתמש במזהה הזה כדי להפנות להגדרה משותפת של חדר בהודעת עסקה אחת, כשמגדירים את נתוני החדר בתוך שורת ההודעה). |
דוגמאות
נתוני החדר
בדוגמה הבאה מגדירים את נתוני החדר:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
מטא-נתונים של חדרים וחבילות
בדוגמה הבאה מגדירים מטא-נתונים של חדר ושל חבילת שירות:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
חבילות של כמה חדרים
בדוגמה הבאה מגדירים מטא-נתונים של חדרים וחבילות לכמה חבילות של חדרים:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<!-- A transaction message with room types result. -->
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
<RoomID>single</RoomID>
<Name>
<Text text="Single room" language="en"/>
<Text text="Chambre simple" language="fr"/>
</Name>
<Description>
<Text text="A single room" language="en"/>
<Text text="Le chambre simple" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image1235.jpg</URL>
</PhotoURL>
<Capacity>2</Capacity>
</RoomData>
<RoomData>
<RoomID>double</RoomID>
<Name>
<Text text="Double room" language="en"/>
<Text text="Chambre double" language="fr"/>
</Name>
<Occupancy>1</Occupancy>
</RoomData>
<PackageData>
<PackageID>refundbreakfast</PackageID>
<Name>
<Text text="Refundable Room with Breakfast" language="en"/>
<Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Continental Breakfast" language="en"/>
<Text text="Petit déjeuner continental" language="fr"/>
</Description>
<ChargeCurrency>hotel</ChargeCurrency>
<Refundable available="1" refundable_until_days="3"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>prepaid</PackageID>
<Name>
<Text text="Nonrefundable" language="en"/>
<Text text="Non remboursable" language="fr"/>
</Name>
<Description>
<Text text="Blah blah blad" language="en"/>
<Text text="Le blah blah blad" language="fr"/>
</Description>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="0"/>
</PackageData>
</PropertyDataSet>
</Transaction>
<RoomFeatures>
מגדיר את התכונות שנמצאות בחדר.
הרכיב <RoomFeatures>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<RoomFeatures>
תחביר
רכיב <RoomFeatures>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet ... > ... <RoomData> <RoomFeatures> <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle> <Beds> <Bed size="[single|semi_double|double|queen|king]"> <Width unit="cm" number="width"/> <Length unit="cm" number="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> ... </PropertyDataSet> </Transactions>
מאפיינים
לאלמנט <RoomFeatures>
אין מאפיינים.
רכיבים צאצאים
לרכיב <RoomFeatures>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<JapaneseHotelRoomStyle> | Optional | enum | מציין את הסגנון של חדר במלון ביפן. הערכים החוקיים כוללים:
|
<Beds> | Optional | Object | מכיל את כל הערכים של <Bed> שקיימים בחדר. חשוב לזכור שלא צריך לספור כאן את המיטה היפנית (futon).
לכל
<Bed> יש את רכיבי הצאצא הבאים:
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
<Suite> | Optional | empty | יש לציין את הפרמטר הזה אם החדר הוא סוויטה. |
<Capsule> | Optional | empty | יש לציין את הפרמטר הזה אם החדר הוא חדר קפסולה. |
<Roomsharing> | Optional | enum | אם החדר משותף עם דיירים אחרים, כמו בעלים או אורחים אחרים. הערכים החוקיים הם shared ו-private . |
<Outdoor> | Optional | empty | יש לציין את האלמנט הזה אם החדר הוא מקום לינה בחיק הטבע שאין בו קירות קבועים, צנרת ומיזוג אוויר. לדוגמה, חדרי מלון הם לא חדרי אירוח בשטח פתוח, אבל אתרי קמפינג שבהם האורחים ישנים באוהלים ואתרי קרוואנים שבהם האורחים מביאים את הקרוואן שלהם הם חדרי אירוח בשטח פתוח. |
<MobilityAccessible> | Optional | empty | יש לציין את האלמנט הזה אם החדר נגיש לנכים. |
<Smoking> | Optional | enum | אם החדר ללא עישון או לחדרי עישון. הערכים החוקיים הם non_smoking ו-smoking . |
<BathAndToilet> | Optional | Object | מכיל מידע על אמבטיה ושירותים בחדר.
המאפיין הוא:
הרכיב יכול לכלול את רכיבי הצאצא הבאים:
דוגמה: <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
<OpenAirBath> | Optional | empty | יש לציין את הפרמטר הזה אם בחדר יש אמבטיה פרטית באוויר הפתוח. |
<AirConditioning> | Optional | empty | יש לציין את הפרמטר הזה אם יש מיזוג אוויר בחדר. |
<Balcony> | Optional | empty | יש לציין את הרכיב הזה אם לחדר יש מרפסת קטנה או מרפסת רחבה. |
<Views> | Optional | Object | האפשרויות החוקיות כוללות:
|
דוגמאות
ל-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
, פועלים לפי הדוגמה הבאה:
<?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>
<PackageData>
הגדרת מטא-נתונים של חבילות חדרים בנכס, שאינם תלויים במסלול נסיעה. הרכיב הזה מכיל מידע שמשויך לשותף ולמלון, אבל לא למסלול נסיעה. המטרה היא להגדיר את כל הנתונים שאינם מסלול נסיעה פעם אחת ולהפנות אליהם מנתוני מסלול הנסיעה.
הרכיב <PackageData>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
האלמנט <PackageData>
דומה לאלמנט <RoomData>
, אבל הוא מתאר תנאים ומאפיינים של התעריף שלא נכללים בתיאור החדר הפיזי. משתמשים ב-<RoomData>
וב-<PackageData>
בשילוב כדי לספק פרטים על חבילות חדרים ועל תכונות התמחור. בחדרים בודדים שלא כלולים בחבילה, משתמשים רק ב-<RoomData>
.
אפשר להגדיר את הרכיבים <RoomData>
ו-<PackageData>
לאותו חדר או לחבילת חדרים. כשהחדר או החבילה האלה יוצגו בתוצאות החיפוש ב-Google, הם יכללו את התיאורים משני המקורות, מופרדים באמצעות מקף.
אם מעדכנים רכיב <PackageData>
יחיד בנכס, צריך לעדכן את כל הרכיבים <PackageData>
ו-<RoomData>
בנכס.
כל <PropertyDataSet>
נחשב לכל הנתונים על הנכס, והוא מחליף את כל הנתונים הקיימים.
מידע נוסף זמין במאמר מטא-נתונים של חבילות חדרים.
תחביר
רכיב <PackageData>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
<PropertyDataSet ... >
<PackageData>
<PackageID>package_ID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
...
</Name>
<Description>
<Text text="package_description" language="language_code"/>
...
</Description>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
<Occupancy>max_number_of_intended_occupants</Occupancy>
<OccupancyDetails><!-- optional info about the types of guests,
whether adults or children --></OccupancyDetails>
<!-- 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>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Special Rewards">
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum">
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<!-- a PackageID with a MilesIncluded
rate feature -->
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en">
</Name>
<ChargeCurrency>hotel </ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000 </NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines">
</Provider>
</MilesIncluded>
</PackageData>
...
...
</PropertyDataSet>
...
</Transaction>
מאפיינים
לאלמנט <PackageData>
אין מאפיינים.
רכיבים צאצאים
לרכיב <PackageData>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<BreakfastIncluded> | Optional | boolean | השדה מציין אם ארוחת הבוקר כלולה במחיר החבילה.
הערכים החוקיים הם 0 (או false ) ו-1
(או true ).
מומלץ להשתמש ב- |
<ChargeCurrency> | Optional | enum | מתי ואיפה המשתמש משלם על הזמנה. הרכיב הזה משתמש באותו תחביר כמו <ChargeCurrency> ב-<Result> .
ערך ברירת המחדל הוא |
<CheckinTime> | Optional | Time | שעת הצ'ק-אין המוקדם ביותר. השעה צריכה להיות פחות מ-24:00 לפי השעון המקומי של המלון. |
<CheckoutTime> | Optional | Time | השעה המאוחרת ביותר שבה אפשר לצאת מהחדר לפי השעון המקומי של המלון. |
<Description> | Optional | Object | תיאור מפורט של החבילה. הרכיב הזה צריך להכיל מידע שלא מתואר ברכיבים אחרים או ברכיב <Name> . לא מומלץ להשתמש באותיות רישיות בלבד כשכותבים את תיאור החדר.
אלמנט <Description> <Text text="Two breakfast buffet certificates for each night of stay." language="en"/> <Text text="Deux certificats petit-déjeuner buffet pour chaque nuit de séjour." language="fr"/> </Description> |
<InternetIncluded> | Optional | boolean | אם חבילת שירות מסוימת כוללת גישה לאינטרנט ללא תשלום, בעוד שחבילות אחרות לא כוללות את השירות הזה. אל תגדירו את הרכיב הזה לחבילות חדרים במלון שמספק אינטרנט בחינם לכל החדרים. הרכיב הזה לא רלוונטי לאינטרנט קווי בחדר או לאינטרנט אלחוטי שלא זמין בחדרי האורחים. הערכים החוקיים הם
0 (או false ) ו-1
(או true ).
|
<Meals> | Optional | Object | מכיל מידע על הארוחות בחבילה הזו.
אלמנט
המאפיינים האופציונליים משמשים רק כשהערך של כדי שמסנני הארוחות ( |
<Name> | Required | string | שם החבילה. הערך הזה צריך להיות זהה לערך שמופיע בדף הנחיתה של המלון. לא להגדיר את הערך של הרכיב הזה באותיות גדולות בלבד.
הרכיב הזה מכיל רכיב צאצא יחיד, <Name> <Text text="Bed and Breakfast" language="en"/> <Text text="Lit et petit déjeuné" language="fr"/> </Name> |
<Occupancy> | Optional | integer | מספר האורחים המקסימלי שמיועד לחבילת אירוח.
לדוגמה, יכול להיות שסוויטה גדולה יכולה להכיל פיזית 6 אורחים, אבל היא מיועדת ל-4 אורחים לכל היותר.
הערך הזה חייב להיות קטן מ- הערך של אם מציינים את הרכיב הזה גם ב- הערה: <Occupancy> יכול להיות מלווה ב-<OccupancyDetails> ,שמציין את סוג האורחים (מבוגרים או ילדים). התחביר והתיאור של רכיבי הצאצאים מפורטים במאמר <OccupancyDetails> .
|
<PackageID> | Required | string | המזהה הייחודי של החבילה. משתמשים במזהה הזה כדי להתאים את הנתונים של חבילת החדרים לקטעי הקוד (אפשר גם להשתמש במזהה הזה כדי להפנות להגדרה משותפת של חבילת חדרים שמשמשת בהודעת עסקה אחת כשמגדירים את הנתונים של חבילת החדרים בתוך שורת ההודעה). |
<ParkingIncluded> | Optional | boolean | אם חבילת חדרים כוללת חניה ללא תשלום, במקרים שבהם החניה היא שירות בתשלום במלון הזה. אם מדובר במלון שמציע חניה בחינם, אין לציין ערך לאלמנט הזה.
הערכים החוקיים הם |
<PhotoURL> | Optional | Object | (זהה ל-<PhotoURL> ב-<RoomData> , אבל לגבי החבילה (למשל, תמונות של ארוחה).)
|
<Refundable> | Optional | Object | מאפשרת לציין שאפשר לקבל החזר כספי מלא על המחיר או לבטל את ההזמנה בחינם. אם לא יצוין פרט כזה, לא יוצג מידע על החזר כספי.
מדיניות החזרים כספיים ברמת <PackageData> מבטלת את מדיניות ההחזרים הכספיים ברמת <Result> . מדיניות ההחזרים הכספיים ברמת <Rates> מבטלת את מדיניות ההחזרים הכספיים ברמת <PackageData> . אפשר גם להדגיש למשתמשים את המחירים שניתנים להחזר כספי באמצעות אפשרויות חלופיות, בלי לשנות ישירות את הסכימה של הודעת העסקה. מידע נוסף על האפשרויות האלה זמין במדיניות בנושא תעריפים למימוש זיכויים.
בדוגמה הבאה מוצג האלמנט <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> הערה: מומלץ להגדיר את כל המאפיינים. הודעת אזהרה לגבי סטטוס הפיד נוצרת אם לא מוגדר מאפיין אחד או יותר. אם לא תגדירו מאפיינים, התעריף לא יוצג ככזה שניתן להחזרים כספיים. המאפיינים הם:
כשמגדירים את המאפיינים, חשוב לשים לב לדברים הבאים:
|
<MembershipBenefits |
Optional | boolean | המחיר כולל את ההטבות של סטטוס Elite למשך כל השהייה. כולל את הפרמטרים הבאים:
|
<CarRentalIncluded> | Optional | boolean | המחיר כולל השכרת רכב בחינם למשך השהייה. |
<MilesIncluded>> | Optional | boolean | המחיר כולל נקודות למימוש במועדון הנוסע המתמיד. הפרמטרים כוללים:
|
<OnPropertyCredit> | Optional | boolean | המחיר כולל זיכוי בנכס (מסעדות, ספא, אתר נופש וכו'). פרמטר:
|
<AirportTransportationIncluded> | Optional | Object | המחיר כולל הסעה בחינם אל נמל תעופה סמוך או ממנו. המאפיין האופציונלי direction מציין את הכיוון של התחבורה. הערכים התקינים כוללים:
from : ההסעה היא מנמל התעופה אל הנכס. זהו ערך ברירת המחדל אם לא צוין כיוון.
to : יש הסעה מהמלון לנמל התעופה.
round_trip : השירות כולל הסעה לנמל התעופה וממנו.
|
דוגמאות
חבילת חדר יחיד
בדוגמה הבאה מוגדר חבילת אירוח אחת לחדר, עם תפוסה של 2 אנשים (מבוגר אחד וילד אחד) וכוללת ארוחת בוקר:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Two certificates for continental
breakfast will be provided." language="en"/>
<Text text="Deux certificats pour le petit déjeuner
continental seront fournis." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
מטא-נתונים של חדרים וחבילות
בדוגמה הבאה מגדירים מטא-נתונים של חדר ושל חבילת שירות:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
חבילות של כמה חדרים
בדוגמה הבאה מגדירים מטא-נתונים של חדרים וחבילות לכמה חבילות של חדרים:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<!-- A transaction message with room types result. -->
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
<RoomID>single</RoomID>
<Name>
<Text text="Single room" language="en"/>
<Text text="Chambre simple" language="fr"/>
</Name>
<Description>
<Text text="A single room" language="en"/>
<Text text="Le chambre simple" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image1235.jpg</URL>
</PhotoURL>
<Capacity>2</Capacity>
</RoomData>
<RoomData>
<RoomID>double</RoomID>
<Name>
<Text text="Double room" language="en"/>
<Text text="Chambre double" language="fr"/>
</Name>
<Occupancy>1</Occupancy>
</RoomData>
<PackageData>
<PackageID>refundbreakfast</PackageID>
<Name>
<Text text="Refundable Room with Breakfast" language="en"/>
<Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Continental Breakfast" language="en"/>
<Text text="Petit déjeuner continental" language="fr"/>
</Description>
<ChargeCurrency>hotel</ChargeCurrency>
<Refundable available="1" refundable_until_days="3"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>prepaid</PackageID>
<Name>
<Text text="Nonrefundable" language="en"/>
<Text text="Non remboursable" language="fr"/>
</Name>
<Description>
<Text text="Blah blah blad" language="en"/>
<Text text="Le blah blah blad" language="fr"/>
</Description>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="0"/>
</PackageData>
</PropertyDataSet>
</Transaction>
חבילת חדרים עם מחירים
בדוגמה הבאה מוגדר המטא-נתונים של החדר והחבילה לחבילת חדרים עם תכונות תמחור:
<Transaction timestamp="2010-04-24T20:44:56-04:00" id="TXNID">
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
...
</RoomData>
<!-- definitions of PackageData types including rate features -->
<PackageData>
<PackageID>room_with_addl_benefits</PackageID>
<Name>
<Text text="Acme Hotels 2017 Promotion Package" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<BreakfastIncluded>1</BreakfastIncluded>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Marriott Rewards"/>
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum"/>
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000</NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines"/>
</Provider>
</MilesIncluded>
<AirportTransportationIncluded direction="from"/>
</PackageData>
</PropertyDataSet>
<!-- The actual list of prices -->
<Result>
…
</Result>
</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>
<Result>
מאגר לעדכוני תמחור וזמינות בהודעת <Transaction>
.
הרכיב <Result>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
משתמשים ב-<Result>
כדי להגדיר או לעדכן מחירים של חדרים ולהגדיר את מלאי החדרים הזמין. הפריטים שמוגדרים ברכיב הזה בדרך כלל מפנים למטא-נתונים של חדר או חבילת אירוח שאינם תלויים במסלול (כמו תיאור או קבוצת שירותים) שמוגדרים ב-<PackageData>
וב-<RoomData>
.
בדרך כלל שולחים הודעות Transaction עם עדכוני תמחור בתדירות גבוהה מאוד. האופן המדויק שבו מבצעים את הפעולה הזו והתדירות שבה מבצעים אותה משתנים בהתאם למצב המסירה.
אפשר להשתמש ב-<Result>
בהודעת עסקה כדי להסיר מסלולי נסיעה, כפי שמתואר בקטע הסרת מלאי שטחי פרסום.
למידע נוסף על שימוש בהודעות עסקה לעדכון מחירים וזמינות, ראו הוספה ועדכון של מלאי שטחי הפרסום.
הודעה אחת מסוג Transaction יכולה לכלול כל מספר של רכיבי <Result>
, כל עוד גודל ההודעה לא חורג מ-100MB.
תחביר
רכיב <Result>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <!-- Required --> <Property>hotel_ID</Property> <!-- Required --> <Checkin>YYYY-MM-DD</Checkin> <!-- Required --> <Nights>number_of_nights</Nights> <Baserate currency="currency_code">price</Baserate> <!-- Only required when <Baserate> contains a real price --> <Tax currency="currency_code">tax_amount</Tax> <!-- Only required when <Baserate> contains a real price --> <OtherFees currency="currency_code">fee_amount</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <RoomID>room_ID</RoomID> <PackageID>package_ID</PackageID> <ExpirationTime>expiration_time</ExpirationTime> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <!-- For Baserate, occupancy value must be greater than or equal to 2. If a value is not provided for occupancy, it defaults to 2. --> <OccupancyDetails>occupancy_info</OccupancyDetails> <Rates>...</Rates> <RoomBundle>...</RoomBundle> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> ... </AllowablePointsOfSale> <Custom[1-5]>custom_value</Custom[1-5]> </Result> ... </Transaction>
מאפיינים
לרכיב <Result>
יש את המאפיינים הבאים:
מאפיין | חובה? | סוג | תיאור |
---|---|---|---|
mergeable | Optional | boolean | כברירת מחדל, מחירים חדשים של מלון ספציפי ושל מסלול ספציפי יחליפו את כל המחירים הקודמים (שעדיין בתוקף) שנמצאים במטמון של Google. המאפיין שניתן למיזוג מאפשר לאחסן מחירים נוספים במטמון של Google בלי למחוק את נתוני התמחור הקודמים. התשובות של שאילתה פעילה עם הקשר לגבי התמחור תמיד יכללו את הערך true למאפיין הזה (ללא קשר לתשובה להודעת העסקה). |
רכיבים צאצאים
לרכיב <Result>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | דף נחיתה אחד או יותר שעומדים בדרישות של המלון. דף נחיתה הוא אתר שיכול לטפל בתהליך ההזמנה של משתמש הקצה. כדי לכלול באופן מפורש דף נחיתה מסוים (ולחרוג מאחרים), מוסיפים אלמנט <AllowablePointsOfSale> אחד או יותר בקובץ דפי הנחיתה, כך שיתאימו למאפיין id של אלמנט <PointOfSale> .
אם לא תכללו את הרכיב הזה, כל דפי הנחיתה שמוגדרים בקובץ דפי הנחיתה ייחשבו ככשירים לשימוש להזמנת החדר. למידע נוסף, ראו תחביר של קובצי דפי נחיתה. |
<Baserate> | Optional | float | המחיר של החדר לשהייה. הערך של האלמנט הזה צריך לשקף את הפרטים הבאים:
אם החדר לא זמין במסלול, צריך להשמיט את הערך כדי להסיר חבילת חדרים, פועלים לפי ההוראות במאמר הסרת חבילת חדרים. השדה <Baserate currency="USD">1200.40</Baserate> הרכיב
|
<ChargeCurrency> | Optional | enum | מתי ואיפה המשתמש משלם על הזמנה. אפשר להשתמש ברכיב הזה בהודעה על עסקה ברכיב <Result> למחיר המלון או בבלוק <PackageData> לחבילת חדרים.
הערכים החוקיים כוללים:
ערך ברירת המחדל הוא |
<Checkin> | Required | Date | תאריך הצ'ק-אין של מסלול נסיעה בפורמט Date. השילוב של הרכיב <Nights> עם הרכיב <Checkin> יוצר מסלול נסיעה. |
<Custom[1‑5]> | Optional | string | הגדרת שדה מותאם אישית שאפשר להשתמש בו כדי להעביר נתונים נוספים שמשויכים למלון. אפשר להעביר עד חמישה ערכים מותאמים אישית באמצעות שמות הרכיבים הבאים:
הרכיבים רכיבי <Custom> שסופקו ברכיב |
<ExpirationTime> | Optional | DateTime | התאריך והשעה שבהם המחיר נחשב לפג תוקף (3 שעות לפחות).
מומלץ לא לספק חותמות זמן של תפוגה אם הן לא קריטיות למבנה התמחור שלכם. Google לא מציגה מחירים שפג תוקפם, וכל מסלול נסיעה עם מחיר שפג תוקפו יעמוד בדרישות ל שליחת שאילתות לגבי מחירים בזמן אמת. |
<Nights> | Required | integer | מספר הלילות במסלול הנסיעה. הערך של הרכיב <Nights> חייב להיות מספר שלם חיובי.
השילוב של <Nights> ו-<Checkin> יוצר מסלול נסיעה. |
<OtherFees> | Optional | float | עמלות שאינן המחיר הבסיסי והמיסים שמשפיעים על המחיר הסופי של החדר. הרכיב <OtherFees> כולל מאפיין חובה אחד, currency , שמגדיר את קוד המטבע בן שלוש האותיות של החיובים. לדוגמה, USD .
הרכיב |
<Occupancy> | Optional | integer | מציין את מספר האנשים המקסימלי שמורשים להשתמש בקצב הזה.
כשהערך <Occupancy> מופיע ישירות מתחת לערך <Result> , הוא חייב לציין 2 או יותר. <Occupancy> יכול להיות מלווה ב-<OccupancyDetails> , שמציין את סוג האורחים (מבוגרים או ילדים). אם לא מציינים את סוגי האורחים, המערכת מניחה שהם מבוגרים. התחביר והתיאור של רכיבי הצאצאים מפורטים במאמר <OccupancyDetails> . אם לא מציינים את הרכיב <Occupancy> , ברירת המחדל של הצפיפות היא 2 .
הערה: כדי לשלוח מחירים ללא אירוח של שני אנשים, צריך לפנות לצוות התמיכה. |
<PackageID> | Optional | string | המזהה הייחודי של החבילה כדי למפות אותה לנתוני חבילה מוגדרים מראש. משמש גם לאכלוס המשתנה של דף הנחיתה PACKAGE-ID. למידע נוסף, ראו מטא-נתונים של חבילת חדרים. |
<Property> | Required | string | המזהה של המלון שמושפע מהנתונים המשויכים (מחיר, מסלול נסיעה, חבילת חדרים או מטא-נתונים). הערך של הרכיב הזה חייב להיות מחרוזת. הערך של הרכיב הזה צריך להתאים לנכס <id> שהגדרתם בפיד רשימת המלונות.
|
<Rates> | Optional | <Rates> |
קונטיינר של בלוק <Rate> אחד או יותר. כל <Rate> ב-<Rates> מגדיר מחיר שונה לשילוב של החדר או המסלול.
משתמשים באלמנט הערה: ב- |
<Refundable> | Optional | Object | מאפשרת לציין שאפשר לקבל החזר כספי מלא על המחיר או לבטל את ההזמנה בחינם. אם לא יצוין פרט כזה, לא יוצג מידע על החזר כספי.
מדיניות החזרים כספיים ברמת <PackageData> מבטלת את מדיניות ההחזרים הכספיים ברמת <Result> . מדיניות החזרים כספיים ברמת <Rates> מבטלת את מדיניות ההחזרים הכספיים ברמת <PackageData> . אפשר גם להדגיש למשתמשים את המחירים שניתנים להחזר כספי באמצעות אפשרויות חלופיות, בלי לשנות ישירות את הסכימה של הודעת העסקה. מידע נוסף על המדיניות בנושא תעריפים שניתנים להחזר כספי
בדוגמה הבאה מוצג האלמנט <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> הערה: מומלץ להגדיר את כל המאפיינים. הודעת אזהרה לגבי סטטוס הפיד נוצרת אם לא מוגדר מאפיין אחד או יותר. אם לא תגדירו מאפיינים, התעריף לא יוצג ככזה שניתן להחזרים כספיים. המאפיינים הם:
כשמגדירים את המאפיינים, חשוב לשים לב לדברים הבאים:
|
<RoomBundle> | Optional | <RoomBundle> |
מאגר שמכיל מידע על תיאורים פיזיים של חדרים עם מחירים, חבילות של שירותים ומתקנים ופרטי מדיניות רכישה מסוימים של המלון והמסלול הרלוונטיים.
באופן כללי, משתמשים ברכיב הזה כדי להגדיר את התמחור של חדר הבסיס ושל סוגי חדרים שונים באותו נכס. אפשר להגדיר את התיאורים של חבילות החדרים בתוך השורה, אבל מומלץ להשתמש בהודעת עסקה נפרדת כדי להגדיר את המידע הזה. Google תשמור את המטא-נתונים כדי שתוכלו להפנות אליהם, במקום לחזור עליהם, בכל עדכוני התמחור העתידיים. |
<RoomID> | Optional | string | המזהה הייחודי של החדר כדי למפות אותו לנתוני החדר שהוגדרו מראש. משמש גם לאכלוס המשתנה של דף הנחיתה PARTNER-ROOM-ID. למידע נוסף, ראו מטא-נתונים של חבילת חדרים. |
<Tax> | Optional | float | המיסים שחושבו במסגרת המחיר הסופי של החדר.
לרכיב <Tax> יש מאפיין חובה אחד, currency , שמגדיר את קוד המטבע בן שלוש האותיות של המיסים. לדוגמה, USD . הרכיב <Tax> נדרש אם הערך של <Baserate> גדול מאפס.
אם המאפיין all_inclusive של הרכיב |
<Unavailable> | Optional | Object | מציין שאי אפשר להזמין את מסלול הנסיעה. משמש כמאגר של סיבות מפורטות יותר לכך שהמסלול לא היה זמין. יכול להיות שתוויות <Unavailable> יכילו אחת או יותר מהסיבות הבאות לכך שהנכס לא זמין:
|
דוגמאות
דוגמה לנכסים מרובים
בדוגמה הבאה מוגדר מסלול נסיעה אחד והתמחור שלו לשני נכסים:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
בדוגמה הזו לא מוצגים פרטים על החדר, כמו תיאור, תמונה ותווית, שם החדר והקיבולת שלו.
אפשר להגדיר את המידע הזה פעם אחת בהודעת עסקה נפרדת ש-Google שומרת. לאחר מכן תוכלו להפנות אליו בכל העדכונים הבאים של המחירים והמלאי. למידע נוסף, עיינו במאמר מטא-נתונים של חבילות חדרים.
דוגמה לשימוש במספר שיעורי ריבית
בדוגמה הבאה מוגדר מסלול ונכס יחידים עם כמה תעריפים לתפוסות שונות. אפשר להשתמש ברכיב <Rates>
כדי לספק תמחור במספר שיעורי תמחור לנכס ספציפי. הדוגמה הבאה שימושית גם לנכסי אירוח (VR):
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-23T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2021-01-13</Checkin>
<Nights>9</Nights>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>2</Occupancy>
<Rates>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>1</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>3</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>4</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>5</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>6</Occupancy>
</Rate>
</Rates>
</Result>
</Transaction>
דוגמה לא זמינה
בדוגמה הבאה מוגדר מסלול נסיעה אחד שלא ניתן היה לאחזר את הזמינות שלו מערוצים במורד הזרם, מסלול נסיעה שני שהשהייה בו קצרה מהמספר המינימלי של לילות והוא כבר הוזמנה בתאריכים שצוינו, ומסלול נסיעה שלישי שהנכס בו סגור בתאריך ההגעה אבל נפתח במהלך השהייה:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NotFetched/>
</Unavailable>
</Result>
<Result>
<Property>073313</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NoVacancy/>
<MinNightStay value=3/>
</Unavailable>
</Result>
<Result>
<Property>052213</Property>
<Checkin>2018-06-10</Checkin>
<Nights>10</Nights>
<Unavailable>
<PropertyClosed first_open="2018-06-15" first_closed="2018-06-10"/>
</Unavailable>
</Result>
</Transaction>
<Rates>
קונטיינר של בלוק <Rate>
אחד או יותר. כל <Rate>
ב-<Rates>
מגדיר מחיר שונה לשילוב של החדר או מסלול הנסיעה.
משתמשים ברכיב <Rates>
רק כשיש כמה תעריפים לאותו חדר או לשילוב של מסלול נסיעה. לדוגמה, אפשר להגדיר כמה תעריפים לתעריפים מותנים, לתעריפים פרטיים או לתעריפים מותנים בחבילות חדרים.
הרכיב <Rates>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
(Can also contain<Rates>
) + ...
ערכים שהוגדרו ב-<Rate>
מבטלים את הערכים הקשורים למחירים ברכיב ההורה <Result>
או ברכיב <RoomBundle>
. אם הם לא מוגדרים ב-<Rate>
, הם יורשים את הערך שלהם מרכיב ההורה. רק הרכיב <AllowablePointsofSale> עובר בירושה לרכיב <RoomBundle>
.
תחביר
רכיב <Rates>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <Rates> <Rate rate_rule_id="rate_rule_id"> <Baserate currency="currency_code">price</Baserate> <Tax currency="currency_code">tax_amount</Tax> <OtherFees currency="currency_code">fee_amount</OtherFees> <ExpirationTime>expiration_time</ExpirationTime> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> </AllowablePointsOfSale> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> ... <Custom[1-5]>custom_value</Custom[1-5]> </Rate> ... </Rates> </Result> ... </Transaction>
מאפיינים
לרכיב <Rates>
יש את המאפיינים הבאים:
מאפיין | חובה? | תיאור |
---|---|---|
rate_rule_id | Optional | ב שיעורים מותנים, המזהה הזה מתאים שיעור להגדרה בקובץ של הגדרת כללי התמחור. מגבלת התווים בשדה הזה היא 40 תווים. |
רכיבים צאצאים
לרכיב <Rates>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | דף נחיתה אחד או יותר שעומדים בדרישות של המלון. הרכיב הזה משתמש באותו תחביר כמו <AllowablePointsOfSale> ב-<Result> . |
<Baserate> | Required | float | המחיר של החדר לשהייה. הרכיב הזה משתמש באותו תחביר כמו <Baserate> ב-<Result> .
הערה: לא ניתן להגדיר את רכיב הצאצא |
<ChargeCurrency> | Optional | enum | מתי ואיפה המשתמש משלם על הזמנה. הרכיב הזה משתמש באותו תחביר כמו <ChargeCurrency> ב-<Result> . |
<Custom[1‑5]> | Optional | string | שדות בהתאמה אישית שאפשר להשתמש בהם כדי להעביר נתונים נוספים שמשויכים למלון לדף נחיתה. הרכיב הזה משתמש באותו תחביר כמו <Custom[1‑5]> ב-<Result> . לכל שדה מותאם אישית יש מגבלה של 200 תווים. למידע נוסף, אפשר לעיין במאמר
קובצי דפי נחיתה.
אם רכיבי <Custom> מוצגים ברכיב |
<ExpirationTime> | Optional | DateTime | התאריך והשעה שבהם פג התוקף של התעריף. הרכיב הזה משתמש באותו תחביר כמו <ExpirationTime> ב-<Result> . |
<Occupancy> | Optional | integer | מציין את מספר האנשים המקסימלי שמורשים להשתמש בקצב הזה. אם לא מציינים זאת, המערכת מניחה שהיא זהה לשיעור של החשבון הראשי.
|
<OtherFees> | Required | float | עמלות שאינן המחיר הבסיסי והמיסים שמשפיעים על המחיר הסופי של החדר. הרכיב הזה משתמש באותו תחביר כמו <OtherFees> ב-<Result> .
אם המאפיין all_inclusive של הרכיב |
<Refundable> | Optional | Object | מאפשרת לציין שאפשר לקבל החזר כספי מלא על המחיר או לבטל את ההזמנה בחינם. אם לא יצוין פרט כזה, לא יוצג מידע על החזר כספי.
מדיניות החזרים כספיים ברמת <PackageData> מבטלת את מדיניות ההחזרים הכספיים ברמת <Result> . מדיניות ההחזרים הכספיים ברמת <Rates> מבטלת את מדיניות ההחזרים הכספיים ברמת <PackageData> . אפשר גם להדגיש למשתמשים את המחירים שניתנים להחזר כספי באמצעות אפשרויות חלופיות, בלי לשנות ישירות את הסכימה של הודעת העסקה. מידע נוסף על האפשרויות האלה זמין במדיניות בנושא תעריפים למימוש זיכויים.
בדוגמה הבאה מוצג האלמנט <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> הערה: מומלץ להגדיר את כל המאפיינים. הודעת אזהרה לגבי סטטוס הפיד נוצרת אם לא מוגדר מאפיין אחד או יותר. אם לא תגדירו מאפיינים, התעריף לא יוצג ככזה שניתן להחזרים כספיים. המאפיינים הם:
כשמגדירים את המאפיינים, חשוב לשים לב לדברים הבאים:
|
<Tax> | Required | float | המיסים שחושבו במסגרת המחיר הסופי של החדר. הרכיב הזה משתמש באותו תחביר כמו <Tax> ב-<Result> . |
דוגמאות
תעריף בסיס ותעריף מותנה
בדוגמה הבאה מוצגת הודעת Transaction שמכילה שיעור בסיס ושיעור מותנה:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
כמה תעריפים בלעדיים
בדוגמה הבאה מוגדר שיעור בסיס ומספר שיעורים מותנים בתוך <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<RoomBundle>
מגדיר את התמחור והזמינות של חבילות חדרים כצאצא של <Result>
בהודעה <Transaction>
. מגדירים אלמנט נפרד לכל שילוב של חבילה או מסלול נסיעה. כדי להגדיר את חבילת התנאים של חבילות החדר, משתמשים ב-<RoomData>
.
הרכיב <RoomBundle>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקה:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
מידע נוסף זמין במאמר שימוש בחבילות חדרים.
תחביר
רכיב <RoomBundle>
כולל את התחביר הבא:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <RoomBundle> <!-- Required unless specified inline under<RoomData>
--> <RoomID>room_ID</RoomID> <!-- Required<PackageData>
--> <PackageID>package_ID</PackageID> <!-- Required --> <Baserate currency="currency_code">price</Baserate> <!-- Required --> <Tax currency="currency_code">taxes</Tax> <!-- Required --> <OtherFees currency="currency_code">other_fees</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <!-- Required --> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> <BreakfastIncluded>boolean_value</BreakfastIncluded> <InternetIncluded>boolean_value</InternetIncluded> <ParkingIncluded>boolean_value</ParkingIncluded> <RatePlanID>rate_plan_ID</RatePlanID> <Rates>...</Rates> <Custom1>custom_value_1</Custom1> <Custom2>custom_value_2</Custom2> <Custom3>custom_value_3</Custom3> <Custom4>custom_value_4</Custom4> <Custom5>custom_value_5</Custom5> </RoomBundle> ... </Result> </Transaction>
מאפיינים
לאלמנט <RoomBundle>
אין מאפיינים.
רכיבים צאצאים
לרכיב <RoomBundle>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<Baserate> | Required | float | מגדיר את המחיר של חבילת החדרים לשהייה. הרכיב הזה משתמש באותו תחביר כמו <Baserate> ב-<Result> , מלבד ההחרגה הבאה:
|
<BreakfastIncluded> | Optional | boolean | השדה מציין אם חבילת החדר הזו כוללת ארוחת בוקר במחיר. |
<ChargeCurrency> | Optional | enum | מתי ואיפה המשתמש משלם על הזמנה. הרכיב הזה משתמש באותו תחביר כמו <ChargeCurrency> ב-<Result> .
ערך ברירת המחדל הוא |
<Custom[1‑5]> | Optional | string | שדות מותאמים אישית להעברת נתונים נוספים לדפי הנחיתה של חבילת החדרים. האלמנטים האלה משתמשים באותו תחביר כמו <Custom[1-5]> ב-<Result> . המגבלה היא 200 תווים לכל שדה מותאם אישית. למידע נוסף, ראו קבצים של דפי נחיתה.
משתנים מותאמים אישית מופיעים רק כששולחים את המחירים בהודעת העסקה.
אם רכיבי <Custom> מוצגים ברכיב |
<InternetIncluded> | Optional | boolean | אם חבילת חדרים מסוימת כוללת גישה לאינטרנט ללא תשלום, בעוד שחבילות אחרות לא כוללות את השירות הזה. אל תגדירו את הרכיב הזה לחבילות חדרים במלון שמספק אינטרנט בחינם לכל החדרים. הרכיב הזה לא רלוונטי לאינטרנט קווי בחדרים או לאינטרנט אלחוטי שלא זמין בחדרי האורחים. |
<Occupancy> | Required | integer | מציין את מספר האנשים המקסימלי שמורשים להשתמש בקצב הזה. לדוגמה, יכול להיות שסוויטה גדולה יכולה להכיל פיזית 6 אורחים, אבל בחבילת 'ירח הדבש' מותר להכניס רק 2 אורחים.
הערך הזה חייב להיות קטן מ- כשמגדירים את נתוני התפוסה בכתובת ה-URL של דף הנחיתה, צריך להשתמש במשתנים הערך של הערות:
|
<OtherFees> | Required | float | עמלות שאינן המחיר הבסיסי והמיסים שמשפיעים על המחיר הסופי של החדר. הרכיב <OtherFees> כולל מאפיין חובה אחד, currency , שמגדיר את קוד המטבע בן שלוש האותיות של החיובים. לדוגמה, משתמשים ב-USD עבור דולר ארה"ב. |
<PackageID> | Optional (recommended) | string | המזהה הייחודי של נתוני החבילה. משתמשים במזהה הזה כדי להתאים את נתוני חבילת החדרים לנתונים שנשלחו ב-<PackageData> . למידע נוסף, ראו מטא-נתונים של חבילת חדרים. (אפשר גם להשתמש במזהה הזה כדי להפנות להגדרה נפוצה של חבילת חדרים שמשמשת בהודעת עסקה אחת כשמגדירים את הנתונים של חבילת החדרים בתוך שורת ההודעה). |
<ParkingIncluded> | Optional | boolean | אם חבילת חדרים כוללת חניה ללא תשלום, במקרים שבהם החניה היא שירות בתשלום במלון הזה. אם מדובר במלון שמציע חניה בחינם, לא צריך לציין ערך לאלמנט הזה.
הערכים החוקיים הם |
<RatePlanID> | Optional | string | מזהה חבילת השירות מייצג את המזהה הייחודי של שילוב החדר והחבילה. לדוגמה, אם הערך של <RoomID> הוא 5 והערך של <PackageID> הוא ABC, אפשר להשתמש בערך 5-ABC עבור <RatePlanID> . מומלץ מאוד להשתמש ב-RatePlanID כמשתנה כדי ליצור את כתובת ה-URL של דף הנחיתה הדינמי (לשעבר נקודת מכירה).
למידע נוסף, קראו את המאמר שימוש במשתנים ובתנאים. |
<Rates> | Optional | <Rates> |
שיעורי התמחור שמבטלים את הגדרות ברירת המחדל של חבילת החדר הזו. הרכיב הזה משתמש באותו תחביר כמו <Rates> ב-<Result> . |
<Refundable> | Optional | Object | מאפשרת לציין שאפשר לקבל החזר כספי מלא על המחיר או לבטל את ההזמנה בחינם. אם לא יצוין פרט כזה, לא יוצג מידע על החזר כספי.
מדיניות החזרים כספיים ברמת <PackageData> מבטלת את מדיניות ההחזרים הכספיים ברמת <Result> . מדיניות ההחזרים הכספיים ברמת <Rates> מבטלת את מדיניות ההחזרים הכספיים ברמת <PackageData> . אפשר גם להדגיש למשתמשים את המחירים שניתנים להחזר כספי באמצעות אפשרויות חלופיות, בלי לשנות ישירות את הסכימה של הודעת העסקה. מידע נוסף על האפשרויות האלה זמין במדיניות בנושא תעריפים למימוש זיכויים.
בדוגמה הבאה מוצג האלמנט <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> הערה: מומלץ להגדיר את כל המאפיינים. הודעת אזהרה לגבי סטטוס הפיד נוצרת אם לא מוגדר מאפיין אחד או יותר. אם לא תגדירו מאפיינים, התעריף לא יוצג ככזה שניתן להחזרים כספיים. המאפיינים הם:
כשמגדירים את המאפיינים, חשוב לשים לב לדברים הבאים:
|
<RoomID> | Required | string | המזהה הייחודי של נתוני החדר. משתמשים במזהה הזה כדי להתאים את הנתונים של חבילת חדרים לנתונים ששלחתם ב-<RoomData> .
למידע נוסף, ראו
מטא-נתונים של חבילות חדרים. (אפשר גם להשתמש במזהה הזה כדי להפנות להגדרה של חדר משותף בהודעת Transaction אחת, כשמגדירים את נתוני החדר בתוך שורת ההודעה). |
<Tax> | Required | float | המיסים שחושבו במסגרת המחיר הסופי של החדר.
לרכיב <Tax> יש מאפיין חובה אחד, currency , שמגדיר את קוד המטבע בן שלוש האותיות של המיסים. לדוגמה, משתמשים ב-USD לדולר ארה"ב. |
דוגמאות
חבילת שירות לאדם אחד
בדוגמה הבאה מוגדר תגובה עם חבילת אירוח לאדם אחד.
כשמשתמש בוחר באפשרות 1
בבורר התפוסה, Google מציגה את המחיר הנמוך ביותר שעומד בדרישות, ללא קשר לתפוסה.
אם אין מחיר לאדם אחד, Google תציג את המחיר הנמוך ביותר לאדם אחד. חשוב לזכור שלא מתבצעת שאילתה בזמן אמת לגבי מחירים לחדר יחיד אם מחירים לחדר זוגי או יותר שמורים במטמון של מסלול נסיעה.
בדוגמה הזו נעשה שימוש ברכיבים <RoomID>
ו-<PackageID>
כדי להפנות למטא-נתונים מוגדרים מראש של חדרים וחבילות. משתמשים ברכיבים <RoomData>
ו-<PackageData>
כדי להגדיר את המידע הזה.
<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 1 example ----->
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
<!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
<!-- Note: Once defined it does not have to be repeated for future
Transaction Messages.
PropertyDataSets can also be defined and sent in their own
Transaction Message separately from pricing. Google can be
configured to pull just PropertyDataSets once per day
(or on a predefined frequency). -->
<PropertyDataSet>
<Property>180054</Property>
<!-- Can be reused by multiple Room Bundles -->
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Queen Room - Non-Smoking" language="en"/>
<Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate up to 4, but package data specifies occupancy
between 1 to 4 -->
<Capacity>4</Capacity>
</RoomData>
<RoomData>
<RoomID>436233</RoomID>
<Name>
<Text text="Premium King Room - Non-Smoking" language="en"/>
<Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<Capacity>4</Capacity>
</RoomData>
<!-- Can be reused by multiple Room Bundles -->
<PackageData>
<PackageID>P11111</PackageID>
<Occupancy>1</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P54321</PackageID>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P12345</PackageID>
<Occupancy>4</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="1"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
</PropertyDataSet>
<!-- Efficient method of defining Room Bundles -->
<!-- Part 2: Reference RoomData and PackageData through ID -->
<Result>
<!-- Single occupancy pricing will be specified in a room bundle below -->
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Base Room Bundle -->
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P54321</PackageID>
<Baserate currency="USD">199.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RatePlanID>060773-P54321</RatePlanID>
</RoomBundle>
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P11111</PackageID>
<!-- Price for 1 ("occupancy") is the lowest price and will be
displayed -->
<Baserate currency="USD">174.99</Baserate>
<Tax currency="USD">22.08</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RatePlanID>060773-P11111</RatePlanID>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Price for 4 ("occupancy"), any eligible room bundle with 1 or more
occupancy will be displayed-->
<Baserate currency="USD">298.88</Baserate>
<Tax currency="USD">42.12</Tax>
<OtherFees currency="USD">10.00</OtherFees>
<RatePlanID>436233-P12345</RatePlanID>
</RoomBundle>
<!-- ..Continue providing all available RoomBundle rates under matched
property for 1 or more occupancies..-->
</Result>
</Transaction>
שני דיירים או יותר
בדוגמה הבאה מוגדר תגובה שמכילה שתי תפוסות או יותר.
בדוגמה הזו מתייחסים למטא-נתונים מוגדרים מראש של חדרים וחבילות באמצעות הרכיבים <RoomID>
ו-<PackageID>
. משתמשים ברכיבים <RoomData>
ו-<PackageData>
כדי להגדיר את המידע הזה.
<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 3 example ----->
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
<!-- Efficient method of defining Room Bundles-->
<!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
<PropertyDataSet>
<Property>180054</Property>
<!-- Can be reused by multiple Room Bundles -->
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Queen Room - Non-Smoking" language="en"/>
<Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate up to 4, but package data specifies occupancy
between 1 to 4 -->
<Capacity>4</Capacity>
</RoomData>
<RoomData>
<RoomID>436233</RoomID>
<Name>
<Text text="Premium King Room - Non-Smoking" language="en"/>
<Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<Capacity>4</Capacity>
</RoomData>
<!-- Can be reused by multiple Room Bundles -->
<PackageData>
<PackageID>P33333</PackageID>
<Occupancy>3</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P12345</PackageID>
<Occupancy>4</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="1"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
</PropertyDataSet>
<Result>
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Efficient method of defining Room Bundles -->
<!-- Part 2: Reference RoomData and PackageData through ID -->
<!-- Base Room Bundle -->
<RoomBundle>
<!-- Baserate above and attributes must match atleast one room bundle
below -->
<RoomID>060773</RoomID>
<PackageID>P33333</PackageID>
<Baserate currency="USD">499.99</Baserate>
<Tax currency="USD">55.12</Tax>
<OtherFees currency="USD">22.00</OtherFees>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Lowest price for 3 ("occupancy"), shown below, will be displayed -->
<Baserate currency="USD">598.88</Baserate>
<Tax currency="USD">62.12</Tax>
<OtherFees currency="USD">30.00</OtherFees>
</RoomBundle>
<!-- ..Continue providing all available RoomBundle rates under matched
property for 2 or more occupancies..-->
</Result>
</Transaction>
חבילות של כמה חדרים
בדוגמה הבאה מוגדר מספר אורחים במספר חבילות חדרים, כדי להמחיש את התמחור האפשרי של חדרים בהוסטל.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
<Result>
...
<!-- Suite Room Bundle -->
<RoomBundle>
<RoomID>suite1</RoomID>
<PackageID>standard</PackageID>
<Occupancy>2</Occupancy>
<!-- Price for room -->
<Baserate currency="USD">80.00</Baserate>
<Tax currency="USD">5.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="Suite for 2" language="en"/>
</Name>
</RoomData>
</RoomBundle>
<!-- Small Dorm Room Bundle -->
<RoomBundle>
<RoomID>small_dorm</RoomID>
<PackageID>economy</PackageID>
<Occupancy>1</Occupancy>
<!-- Price per bed -->
<Baserate currency="USD">35.00</Baserate>
<Tax currency="USD">3.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="1 bed in small dorm" language="en"/>
</Name>
</RoomData>
</RoomBundle>
<!-- Large Dorm Room Bundle -->
<RoomBundle>
<RoomID>large_dorm</RoomID>
<PackageID>economy</PackageID>
<Occupancy>1</Occupancy>
<!-- Price per bed -->
<Baserate currency="USD">20.00</Baserate>
<Tax currency="USD">2.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="1 bed in large dorm" language="en"/>
</Name>
</RoomData>
</RoomBundle>
...
</Result>
</Transaction>
מספר תעריפים בלעדיים
בדוגמה הבאה מוגדר שיעור בסיס ומספר שיעורים מותנים בתוך <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<OccupancyDetails>
השדה <Occupancy>
בהודעת עסקה מציין את מספר האורחים המקסימלי בחדר או בחבילה. השדה <OccupancyDetails>
יכול להכיל מידע נוסף, כמו מספר האורחים והסוג שלהם (מבוגרים או ילדים).
כשהשדות <Occupancy>
ו-<OccupancyDetails>
מופיעים ברכיב <Rates>
של <Result>
או <RoomBundle>
, המשמעות היא שהתעריף מוגבל לפי פרטי התפוסה.
תחביר
כשהקוד <OccupancyDetails>
מופיע, תמיד מופיע לפניו <Occupancy>
.
שימו לב לסינטקס הבא:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <NumAdults>number_of_adults</NumAdults> <Children> <Child age=age_of_one_child_guest/> <Child age=age_of_one_child_guest/> </Children> </OccupancyDetails> </Result> </Transaction>
רכיבים צאצאים
לרכיב <OccupancyDetails>
יש את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<NumAdults> | Required | integer | מספר האורחים המבוגרים. מינימום:1, מקסימום:20. |
<Children> | Optional | Object | קונטיינר של רכיב <Child> אחד או יותר. |
<Child age> | Optional | integer | הגיל המקסימלי של הילד או הילדה – לדוגמה, <Child age="17"> . |
דוגמאות
בדוגמאות הבאות אפשר לראות איך <OccupancyDetails>
יכול להופיע ב-<Results>
, ב-<RoomBundle>
או ברכיב הצאצא <Rates>
.
תגובת התוצאה
בדוגמה הבאה מוגדר מסלול נסיעה אחד והתמחור שלו לנכס אחד, בתגובה לשאילתה לגבי מחירים בזמן אמת שבה המשתמש ציין את מספר האורחים והסוגים שלהם. כאן, הערך של <OccupancyDetails>
– 2 מבוגרים וילד אחד – מוחזר ב-<Result>
.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
</Result>
</Transaction>
תגובה לדירוג
בדוגמה הבאה מוגדר מסלול נסיעה אחד והתמחור שלו למבוגר אחד וילד אחד. כאן, הערכים של <OccupancyDetails>
מוחזרים ברכיב <Rates>
של <Result>
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2018-04-18T11:27:45-04:00">
<Result>
<Property>8251</Property>
<Checkin>2018-06-20</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">62.18</Baserate>
<Tax currency="USD">2.45</Tax>
<OtherFees currency="USD">0.00</OtherFees>
<Rates>
<Rate rate_rule_id="rule-951">
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Baserate currency="USD">42.61</Baserate>
<Tax currency="USD">5.70</Tax>
<OtherFees currency="USD">0.00</OtherFees>
<Custom1>abc4</Custom1>
<AllowablePointsOfSale>
<PointOfSale id="yourhotelpartnersite.com"/>
</AllowablePointsOfSale>
</Rate>
</Rates>
</Result>
</Transaction>
חבילת חדר
בדוגמה הבאה מוגדר מספר האורחים: 2 מבוגרים וילד אחד, למשך שתי לילות, עם תעריף שניתן להחזר. כאן, ה-<OccupancyDetails>
מופיעים בתוך <RoomBundle>
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>6781291</Property>
<Checkin>2017-08-05</Checkin>
<Nights>2</Nights>
...
<RoomBundle>
<RoomID>10291</RoomID>
<RatePlanID>564739</RatePlanID>
<PackageID>564739</PackageID>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="true" refundable_until_days="1" refundable_until_time="23:59:00" />
<Baserate currency="USD">185.34</Baserate>
<Tax currency="USD">37.06</Tax>
<OtherFees currency="USD">2.22</OtherFees>
</RoomBundle>
</Result>
</Transaction>
חבילות של כמה חדרים
בדוגמה הבאה מוגדרים כמה תעריפים של <RoomBundle>
שמוגבלים לאירוח של 2 מבוגרים ו-2 ילדים. כאן, הערכים של <OccupancyDetails>
מופיעים ברכיב <Rates>
של <RoomBundle>
.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<RoomBundle>
<RoomID>5</RoomID>
<PackageID>STD</PackageID>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<InternetIncluded>1</InternetIncluded>
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<Custom2>ratebasic</Custom2>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<ChargeCurrency>hotel</ChargeCurrency>
<Custom1>ratecode321</Custom1>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Custom1>ratecode432</Custom1>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>