בדף הזה יש הפניה להודעות עסקאות שמבוססות על XML.
<Transaction>
רכיב הבסיס של הודעת עסקה הוא <Transaction>
. זהו מאגר שמכיל מידע תיאורי על חדרים וחבילות, כולל מחירים וזמינות של חדרים וחבילות.
הרכיב <Transaction>
מופיע במקום הבא בהיררכיית ה-XML של הודעת העסקאות:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
בהודעות שמשתמשות ב-<Transaction>
כרכיב ברמה הבסיסית (root) צריך לפחות רכיב צאצא אחד. הודעות על עסקאות יכולות לכלול כל מספר של רכיבי צאצא, כל עוד הגודל הכולל של ההודעה לא עולה על 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 | מזהה ייחודי לכל הודעת עסקה. |
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>
מחירים ללילה
בדוגמה הבאה מוגדרים נתוני תמחור של לילה אחד עד 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 | המחיר כולל זיכוי לפרסום עתידי (F&B, אתר נופש, ספא וכו'). פרמטר:
|
<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>
, שלא תלויים בתוכנית.
בדרך כלל, אתם שולחים הודעות על עסקאות עם עדכוני מחירים לעיתים קרובות מאוד. התדירות והתדירות שבה בדיוק עושים את זה תלויים במצב המסירה שהגדרתם.
אפשר להשתמש ב-<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>
דוגמה לא זמינה
בדוגמה הבאה מוגדר מסלול נסיעה אחד שאי אפשר לאחזר את הזמינות שלו מערוצי ה-downstream, מסלול שני שנמצא מתחת למספר השהייה המינימלי של לילה ושכבר הוזמן בתאריכים שצוינו, ושלישי שהנכס שלו סגור בתאריך ההגעה, אבל נפתח במהלך השהייה:
<?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>