בדף הזה מופיעה הפניה להודעות לגבי עסקאות שמבוססות על 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 | מחרוזת | מזהה ייחודי לכל הודעה על עסקה. |
partner | Optional | string | חשבון השותף שאליו נשלחה הודעת העסקה. בדרך כלל משתמשים באפשרות הזו אם הקצה העורפי שלך מספק פידים של מחירים למספר חשבונות שותפים. ערך המחרוזת הזה הוא הערך של 'מפתח שותף' שמופיע בדף הגדרות החשבון ב-Hotel Center. |
timestamp | Required | DateTime | הרגע שבו ההודעה על העסקה נשלחה. הודעות שיישלחו עם חותמת זמן ב-24 השעות האחרונות יעובדו, והודעות שלא נמחקו, יימחקו. ההודעות מעובדות לפי |
אלמנטים צאצאים
הרכיב <Transaction>
כולל את רכיבי הצאצא הבאים:
רכיב צאצא | חובה? | סוג | תיאור |
---|---|---|---|
<PropertyDataSet> | Optional* | <PropertyDataSet> |
מתאר חדר ספציפי וחבילות חדרים. הרכיב הזה משמש בדרך כלל בהודעת עסקה נפרדת כדי להגדיר ערכים משותפים לחבילות של חדרים ולצמצם את גודל ההודעות הקשורות לעסקאות. |
<Result> | Optional* | <Result> |
נתוני תמחור למסלול נסיעה של חדר או רכיב |
* יש להזין לפחות אחד מ-<PropertyDataSet> או <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-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>
הסרת המלאי
בדוגמה הבאה מסירים מהמלאי כמה מלאים (שהיות של לילה אחד בכמה תאריכים שונים) מהמלאי:
<?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> שיש בחדר. לתשומת ליבך,
אין לספור כאן את הפוטונים היפנים.
לכל
<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 | המחיר כולל הטבות של סטטוס יוקרתי למשך השהייה. היא כוללת
את הפרמטרים הבאים:
|
<CarRentalIncluded> | Optional | boolean | המחיר כולל השכרת רכב בחינם למשך השהייה. |
<MilesIncluded>> | Optional | boolean | המחיר כולל מיילים של נוסע מתמיד. הפרמטרים כוללים:
|
<OnPropertyCredit> | Optional | boolean | המחיר כולל אשראי במקום (מסעדה, אתר נופש, ספא וכו'). פרמטר:
|
<AirportTransportationIncluded> | Optional | Object | המחיר כולל הסעה בחינם לנמל התעופה וממנו בקרבת מקום. המאפיין האופציונלי
direction מציין את הכיוון של
התחבורה. הערכים החוקיים כוללים:
from : תחבורה מסופק מנמל התעופה
לנכס. זהו ערך ברירת המחדל אם לא צוין כיוון.
to : מהנכס יש תחבורה לנמל התעופה.
round_trip : יש תחבורה אל נמל התעופה וממנו
וגם ממנו.
|
דוגמאות
חבילת חדר ליחיד
בדוגמה הבאה מוגדרת חבילת חדר אחת שכוללת 2 אורחים (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>
.
בדרך כלל, אתם שולחים הודעות על עסקאות עם עדכוני מחירים לעיתים קרובות מאוד. התדירות והתדירות המדויקות של שליחת הבקשה משתנה בהתאם למצב המשלוח.
אפשר להשתמש בשדה <Result>
בהודעה על העסקה על מנת להסיר מסלולי נסיעה, כפי שמתואר בהסרת מלאי.
למידע נוסף על השימוש בהודעות על טרנזקציות על מנת לעדכן את המחירים והזמינות, ראו את המאמר הוספה ועדכון של מלאי.
הודעת עסקה יכולה לכלול כל מספר של רכיבי <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 | תאריך הצ'ק-אין של מסלול הנסיעה בפורמט תאריך. השילוב של האלמנט <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> גדול מאפס. |
<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> . |
<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> . |
דוגמאות
תעריף בסיסי ותעריף מותנה
בדוגמה הבאה מוצגת הודעת טרנזקציה שכוללת תעריף בסיסי ותעריף מותנה:
<?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
אורחים בלבד.
הערך הזה צריך להיות קטן מ- כשמגדירים תפוסה בכתובת דף הנחיתה, צריך להשתמש
במשתנים הערך של הערות:
|
<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> .
מידע נוסף זמין במאמר
מטא-נתונים של חבילת חדר. (אפשר גם להשתמש במזהה הזה כדי להפנות להגדרה של חדר משותף בהודעת עסקה אחת כשאתם מגדירים את נתוני החדר בתוך השורה.) |
<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>