בדף הזה יש הפניה להודעות עסקאות שמבוססות על 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 | המזהה הייחודי של החבילה. צריך להשתמש במזהה הזה כדי להתאים
נתוני חדר עם הבלוקים של (אפשר להשתמש במזהה הזה גם כדי להתייחס להגדרה של חבילת חדרים משותפת משמש בהודעת עסקה יחידה כשמגדירים נתונים של חבילת חדר inline.) |
<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>
רכיבים שתואמים לרכיב <PointOfSale>
id בקובץ דפי הנחיתה.
אם לא כוללים את הרכיב הזה, כל דפי הנחיתה שמוגדרים קבצים של דפי נחיתה נחשבים כשירים שאפשר להשתמש בהם כדי להזמין את חדר. מידע נוסף זמין במאמר התחביר של הקובץ של דפי הנחיתה. |
<Baserate> | Optional | float | מחיר החדר לשהייה. הערך של הרכיב הזה אמורים לשקף את הדברים הבאים:
כשהחדר לא פנוי במסלול הנסיעה,
יש להשמיט את כדי להסיר חבילת חדר, תוכלו להיעזר בהוראות שבמאמר הסרה של חבילת חדר. השדה <Baserate currency="USD">1200.40</Baserate> הרכיב
|
<ChargeCurrency> | Optional | enum | מתי ואיפה המשתמש משלם על הזמנה. הרכיב הזה יכול
בשימוש בהודעה על עסקה ב<Result>
רכיב עבור מחיר המלון או בלוק <PackageData>
לחבילת חדר.
הערכים החוקיים כוללים:
ערך ברירת המחדל הוא |
<Checkin> | Required | Date | תאריך הצ'ק אין של מסלול נסיעה לפי תאריך
הפורמט. השילוב של הרכיב <Nights>
רכיב אחד (<Checkin> ) מורכב ממסלול נסיעה. |
<Custom[1‑5]> | Optional | string | מגדיר שדה מותאם אישית שיכול לשמש להעברת נתונים נוספים
המשויך למלון. אפשר להעביר עד חמישה ערכים מותאמים אישית באמצעות הפונקציה
שמות הרכיבים הבאים:
רכיבי <בהתאמה אישית> רכיבים שצוינו ב- |
<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 תווים לכל שדה מותאם אישית. מידע נוסף זמין במאמר
קבצים של דפי נחיתה.
אם בוחרים ב<התאמה אישית> רכיבים אלה מסופקים
|
<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
תווים לכל שדה מותאם אישית. מידע נוסף זמין במאמר
קבצים של דפי נחיתה.
אם בוחרים ב<התאמה אישית> רכיבים אלה מסופקים
|
<InternetIncluded> | Optional | boolean | אם חבילת חדר כוללת גישה לאינטרנט ללא תשלום: ואילו חבילות אחרות לא יכללו את השירותים האלה. לא להגדיר רכיב לחבילות חדרים במלון שמספק אינטרנט בחינם לכולם חדרים. הרכיב הזה לא רלוונטי לאינטרנט קווי בתוך החדר או לאינטרנט אלחוטי אינטרנט שלא זמין בחדרי האורחים. |
<Occupancy> | Required | integer | מציינת את מספר האורחים המקסימלי המותר לתעריף הזה. לדוגמה,
סוויטה גדולה יכולה להכיל פיזית 6 אורחים,
'חבילת ירח דבש' יכולים ל-2 אורחים בלבד.
הערך חייב להיות קטן מהערך או שווה לו
כשמגדירים תפוסה בכתובת דף הנחיתה, צריך להשתמש במאפיין של
משתנים של הערך של הערות:
|
<OtherFees> | Required | float | עמלות שאינן מחיר הבסיס ומיסים שמשפיעים על
המחיר הסופי של חדר. הרכיב <OtherFees> לוקח
מאפיין נדרש יחיד, currency , שמגדיר את
קוד מטבע בן שלוש אותיות לעמלות. לדוגמה, השתמשו
USD לדולר ארה"ב. |
<PackageID> | Optional (recommended) | string | המזהה הייחודי של נתוני החבילה. צריך להשתמש במזהה הזה כדי להתאים
נתונים של חבילות חדר עם הנתונים שנשלחו בקבוצה <PackageData> . עבור
מידע נוסף, אפשר לעיין
חדר
מטא-נתונים של חבילה. (את/ה
יכול להשתמש במזהה הזה גם כדי להתייחס להגדרה של חבילת חדרים נפוצה
בהודעת עסקה יחידה כשמגדירים נתונים של חבילת חדר
inline.) |
<ParkingIncluded> | Optional | boolean | האם חבילת חדרים כוללת חניה ללא תשלום, במקרים שבהם
אחרת, החניה במלון הזה תהיה בתשלום. לא לציין
ערך לרכיב הזה עבור מלון שמציע חניה בחינם.
הערכים החוקיים הם |
<RatePlanID> | Optional | string | מזהה תוכנית התעריפים מייצג את המזהה הייחודי של
שילוב של חדר וחבילה. לדוגמה, כאשר מזינים
הערך של <RoomID> הוא 5 ו-a
<PackageID> של ABC, אפשר להשתמש בערך של
5-ABC ל-<RatePlanID> . מומלץ מאוד להשתמש
RatePlanID כמשתנה לבניית דף הנחיתה הדינמי
(לשעבר 'נקודת מכירה')
מידע נוסף זמין במאמר שימוש במשתנים וגם תנאים. |
<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>
– שני מבוגרים
ילד אחד – מוחזר ב-<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>