این صفحه مرجعی برای پیامهای تراکنش مبتنی بر XML ارائه میکند.
<Transaction>
عنصر اصلی یک پیام تراکنش <Transaction>
است. این محفظه ای برای اطلاعات توصیفی در مورد اتاق ها و بسته ها و قیمت و در دسترس بودن اتاق ها و بسته ها است.
عنصر <Transaction>
در مکان زیر در سلسله مراتب XML پیام تراکنش ظاهر می شود:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
پیام هایی که از <Transaction>
به عنوان عنصر اصلی استفاده می کنند حداقل به یک عنصر فرزند نیاز دارند. پیامهای تراکنش میتوانند هر تعداد عنصر فرزند داشته باشند، تا زمانی که حجم پیام از 100 مگابایت تجاوز نکند.
نحو
عنصر <Transaction>
از نحو زیر استفاده می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">
<!-- Defines data about a room or package (Room Bundle) -->
<PropertyDataSet>
...
</PropertyDataSet>
<!-- Updates/sets prices and availability for rooms and Room Bundles -->
<!-- (Also removes itineraries from inventory) -->
<Result>
...
</Result>
</Transaction>
صفات
عنصر <Transaction>
دارای ویژگی های زیر است:
صفت | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
id | Required | رشته | یک شناسه منحصر به فرد برای هر پیام تراکنش. |
partner | Optional | string | حساب شریکی که پیام تراکنش برای آن است. معمولاً اگر باطن شما فیدهای قیمت را برای چندین حساب شریک ارائه دهد، از آن استفاده می کنید. این مقدار رشته، مقدار «کلید شریک» است که در صفحه تنظیمات حساب در مرکز هتل فهرست شده است. |
timestamp | Required | DateTime | لحظه ای که پیام تراکنش ارسال شد. هر پیامی که در 24 ساعت قبل با مهر زمانی ارسال شود، پردازش میشود و پیامهایی که با مهر زمانی ارسال نشدهاند، کنار گذاشته میشوند. پیام ها به ترتیب |
عناصر کودک
عنصر <Transaction>
دارای عناصر فرزند زیر است:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<PropertyDataSet> | Optional* | <PropertyDataSet> | یک اتاق خاص و بستههای اتاق را توصیف میکند. شما معمولاً از این عنصر در یک پیام تراکنش جداگانه برای تعریف مقادیر به اشتراک گذاشته شده برای Room Bundles و کاهش اندازه پیام های تراکنش خود استفاده می کنید. |
<Result> | Optional* | <Result> | دادههای قیمتگذاری برای برنامه سفر اتاق یا عنصر |
* حداقل یکی از <PropertyDataSet> یا <Result> مورد نیاز است. |
نمونه ها
داده های اتاق
مثال زیر داده های اتاق را در پیام تراکنش تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
داده های قیمت گذاری
مثال زیر داده های قیمت گذاری را در پیام تراکنش تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
نرخ های شبانه
مثال زیر دادههای قیمتگذاری را برای 1 تا 7 شب از تاریخ 7 ژوئن 2023 تعریف میکند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-08-24T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">209.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">419.98</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>3</Nights>
<Baserate currency="USD">614.97</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>4</Nights>
<Baserate currency="USD">819.96</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>5</Nights>
<Baserate currency="USD">999.95</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>6</Nights>
<Baserate currency="USD">1193.94</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>7</Nights>
<Baserate currency="USD">1259.93</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
</Transaction>
نرخ های پایه و مشروط
مثال زیر یک پیام تراکنش را نشان می دهد که حاوی نرخ پایه و نرخ مشروط است:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
موجودی را حذف کنید
مثال زیر چندین موجودی (یک شب اقامت برای چندین تاریخ مختلف) را برای یک هتل از موجودی حذف میکند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-23</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-24</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<!---Sending <Baserate> is optional with <Unavailable> -->
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-25</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">-1</Baserate>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
</Transaction>
<PropertyDataSet>
ظرفی برای اطلاعات اتاق و بسته (یا Room Bundle ) در پیام <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>
فرادادههای مستقل از برنامه سفر را درباره اتاقها، و در نتیجه، Room Bundles را تعریف میکند (زیرا Room Bundles اتاقهایی به اضافه امکانات اضافی هستند). از <RoomData>
برای کاهش تکرار داده های توصیفی در فید قیمت خود استفاده کنید.
عنصر <RoomData>
در مکان زیر در سلسله مراتب XML پیام تراکنش ظاهر می شود:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
عناصر <RoomData>
حاوی اطلاعاتی هستند که با یک شریک و هتل مرتبط است، اما نه با یک برنامه سفر. هدف مورد نظر برای همه داده های غیر سفرنامه است.
عنصر <RoomData>
شبیه <PackageData>
است، اما به جای امکانات و شرایط یک بسته، اتاق فیزیکی را توصیف می کند. شما از <RoomData>
و <PackageData>
به صورت ترکیبی برای ارائه جزئیات در مورد Room Bundles استفاده می کنید. برای اتاق های فردی که بخشی از یک بسته نیستند، فقط از <RoomData>
استفاده کنید.
شما می توانید هر دو عنصر <RoomData>
و <PackageData>
را برای یک اتاق یا Room Bundle تعریف کنید. هنگامی که 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 | هنگامی که این اتاق اقامتگاهی در فضای باز است که دیوارهای ثابت، لوله کشی و کنترل آب و هوا ندارد، این عنصر را ارائه دهید. به عنوان مثال، اتاقهای هتل محل اقامت در فضای باز نیستند، در حالی که کمپینگهایی که مهمانان در چادرها اقامت میکنند و پارکهای RV که مهمانان RV خود را میآورند، اقامتگاه در فضای باز هستند. |
<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>
فراداده مستقل از برنامه سفر را در مورد Room Bundles برای یک ملک تعریف می کند. این عنصر حاوی اطلاعاتی است که با شریک و هتل مرتبط است، اما نه با یک برنامه سفر. هدف در نظر گرفته شده این است که همه داده های غیر سفرنامه را یک بار تعریف کنیم و از داده های سفر به آنها ارجاع دهیم.
عنصر <PackageData>
در مکان زیر در سلسله مراتب XML پیام تراکنش ظاهر می شود:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
عنصر <PackageData>
شبیه <RoomData>
است، اما ویژگیهای نرخ و اصطلاحاتی را توصیف میکند که بخشی از توضیحات اتاق فیزیکی نیستند. شما از <RoomData>
و <PackageData>
به صورت ترکیبی برای ارائه جزئیات درباره بستههای اتاق و ویژگیهای امتیازدهی استفاده میکنید. برای اتاق های فردی که بخشی از یک بسته نیستند، فقط از <RoomData>
استفاده کنید.
شما می توانید هر دو عنصر <RoomData>
و <PackageData>
را برای یک اتاق یا Room Bundle تعریف کنید. هنگامی که 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 | اگر یک بسته شامل دسترسی به اینترنت بدون هزینه باشد، در حالی که بسته های دیگر شامل این امکانات نمی شوند. این عنصر را برای Room Bundles در هتلی که اینترنت رایگان برای همه اتاقها فراهم میکند، تنظیم نکنید. این عنصر برای اینترنت سیمی داخل اتاق یا اینترنت بیسیمی که در اتاقهای مهمان در دسترس نیست اعمال نمیشود. مقادیر معتبر 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 | حداکثر تعداد مهمانانی که یک Room Bundle برای آنها در نظر گرفته شده است . به عنوان مثال، یک سوئیت بزرگ ممکن است بتواند از لحاظ فیزیکی 6 مهمان را در خود جای دهد، اما فقط برای حداکثر 4 مهمان در نظر گرفته شده است. این مقدار باید کمتر یا مساوی عنصر مقدار اگر این عنصر را در توجه : <Occupancy> ممکن است با <OccupancyDetails> همراه باشد، که نوع مهمانان (بزرگسالان یا کودکان) را مشخص می کند. برای نحو و شرح عناصر فرزند به <OccupancyDetails> مراجعه کنید. |
<PackageID> | Required | string | شناسه منحصر به فرد بسته. از این شناسه برای تطبیق دادههای Room Bundle با بلوکهای (همچنین می توانید از این شناسه برای ارجاع به تعریف رایج Room Bundle استفاده شده در یک پیام تراکنش واحد هنگام تعریف داده های Room Bundle به صورت درون خطی استفاده کنید.) |
<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 Included> | 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>
تعریف شده است، ارجاع می دهند.
شما معمولاً پیامهای تراکنش را با بهروزرسانیهای قیمتگذاری بسیار مکرر ارسال میکنید. اینکه دقیقاً چگونه و چند وقت یکبار این کار را انجام می دهید به حالت تحویل شما بستگی دارد.
همانطور که در Removing Inventory توضیح داده شده است، می توانید <Result>
در پیام تراکنش برای حذف برنامه های سفر استفاده کنید. برای اطلاعات بیشتر درباره استفاده از پیامهای تراکنش برای بهروزرسانی قیمتها و در دسترس بودن، افزودن و بهروزرسانی موجودی .
یک پیام تراکنش میتواند هر تعداد عنصر <Result>
را در خود داشته باشد، تا زمانی که اندازه پیام از 100 مگابایت تجاوز نکند.
نحو
عنصر <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 | شناسه منحصر به فرد اتاق برای نقشه برداری از آن به داده های از پیش تعریف شده اتاق. همچنین برای جمع آوری متغیر صفحه Landing Partner-room-ID استفاده می شود. برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید. |
<Tax> | Optional | float | مالیات هایی که برای قیمت نهایی یک اتاق محاسبه می شوند. عنصر <Tax> یک ویژگی مورد نیاز واحد ، currency را می گیرد که کد ارز سه نامه را برای مالیات ها تعریف می کند. به عنوان مثال ، USD . عنصر <Tax> در صورت <Baserate> بیشتر از صفر مورد نیاز است. اگر ویژگی "All_Inclusive" |
<Unavailable> | Optional | Object | نشان می دهد که برنامه سفر برای رزرو در دسترس نیست. به دلایل دقیق تر اینکه برنامه سفر در دسترس نبود ، به عنوان یک ظرف خدمت می کند. یک یا چند دلیل عدم دسترسی به زیر ممکن است در زیر برچسب <Unavailable> توخالی شود:
|
نمونه ها
مثال چند پروپری
مثال زیر یک برنامه سفر و قیمت گذاری آن را برای دو ویژگی تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
در این مثال جزئیات مربوط به اتاق مانند توضیحات ، تصویر و عنوان ، نام اتاق و ظرفیت آن نشان داده نشده است.
می توانید آن اطلاعات را یک بار در یک پیام معامله جداگانه که Google ذخیره می کند تعریف کنید. سپس می توانید آن را در تمام به روزرسانی های قیمت گذاری و موجودی بعدی ارجاع دهید. برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید.
مثال چند نرخ
مثال زیر یک برنامه سفر و ملک واحد با نرخ های متعدد برای مشاغل مختلف را تعریف می کند. از عنصر <Rates>
می توان برای تهیه قیمت چند نرخ برای یک خاصیت خاص استفاده کرد. مثال زیر برای خواص اجاره تعطیلات (VR) نیز مفید است:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-23T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2021-01-13</Checkin>
<Nights>9</Nights>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>2</Occupancy>
<Rates>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>1</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>3</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>4</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>5</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>6</Occupancy>
</Rate>
</Rates>
</Result>
</Transaction>
مثال غیرقابل دسترسی
مثال زیر یک برنامه سفر را تعریف می کند که در دسترس بودن آن از کانال های پایین دست قابل بازیابی نیست ، ثانیه ای که هم زیر حداقل اقامت شب است و هم در حال حاضر برای تاریخ های مشخص شده رزرو شده است ، و یک سوم که ملک آن در تاریخ ورود بسته است ، اما این باز می شود در طول مدت اقامت:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NotFetched/>
</Unavailable>
</Result>
<Result>
<Property>073313</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NoVacancy/>
<MinNightStay value=3/>
</Unavailable>
</Result>
<Result>
<Property>052213</Property>
<Checkin>2018-06-10</Checkin>
<Nights>10</Nights>
<Unavailable>
<PropertyClosed first_open="2018-06-15" first_closed="2018-06-10"/>
</Unavailable>
</Result>
</Transaction>
<Rates>
یک کانتینر برای یک یا چند بلوک <Rate>
. هر <Rate>
در <Rates>
قیمت متفاوتی را برای ترکیب اتاق یا برنامه سفر تعریف می کند.
فقط در صورت وجود نرخ های مختلف برای همان اتاق یا ترکیب برنامه سفر ، از عنصر <Rates>
استفاده کنید. به عنوان مثال ، شما چندین نرخ را برای نرخ مشروط ، نرخ خصوصی یا نرخ مشروط در بسته های اتاق تعریف می کنید.
عنصر <Rates>
در مکان زیر در پیام تراکنش XML سلسله مراتب ظاهر می شود:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
(Can also contain<Rates>
) + ...
مقادیر تعیین شده در یک <Rate>
مقادیر مربوط به قیمت گذاری در عنصر والدین <Result>
یا <RoomBundle>
. اگر آنها در <Rate>
تنظیم نشده باشند ، ارزش خود را از عنصر والدین به ارث می برند. فقط <AllowblePointsOfSale> به عنصر <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 کاراکتر وجود دارد. برای اطلاعات بیشتر ، به پرونده های صفحه فرود مراجعه کنید. اگر عناصر <upuare> در عنصر |
<ExpirationTime> | Optional | DateTime | تاریخ و زمانی که نرخ در نظر گرفته شده است. این عنصر از همان نحو به عنوان یک <ExpirationTime> در یک <Result> استفاده می کند. |
<Occupancy> | Optional | integer | حداکثر سرنشینان مجاز برای این نرخ را مشخص می کند. اگر مشخص نشده باشد ، فرض بر این است که همان نرخ والدین است. |
<OtherFees> | Required | float | هزینه های غیر از نرخ پایه و مالیات هایی که بر قیمت نهایی یک اتاق تأثیر می گذارد. این عنصر از همان نحو به عنوان <OtherFees> در <Result> استفاده می کند. اگر ویژگی "All_Inclusive" |
<Refundable> | Optional | Object | لیست کردن نرخ را به عنوان کاملاً قابل استرداد یا ارائه لغو رایگان امکان پذیر می کند. در صورت عدم ارائه ، هیچ اطلاعاتی در مورد بازپرداخت نمایش داده نمی شود. خط مشی بازپرداخت در سطح <PackageData> سیاست بازپرداخت را در سطح <Result> غلبه می کند. خط مشی بازپرداخت در سطح <Rates> ، سیاست بازپرداخت را در سطح <PackageData> غلبه می کند. قیمت گذاری قابل استرداد همچنین می تواند از طریق گزینه های جایگزین بدون تغییر مستقیم طرح پیام معاملات شما ، از طریق گزینه های جایگزین برای کاربران برجسته شود. در مورد این گزینه ها خط مشی نرخ بازپرداخت بیشتر بدانید. مثال زیر عنصر <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> توجه: توصیه می کنیم تمام ویژگی ها را تنظیم کنید. هنگامی که یک یا چند ویژگی تنظیم نشده است ، یک پیام هشدار دهنده وضعیت خوراک ایجاد می شود. اگر هیچ ویژگی را تنظیم نکنید ، نرخ به عنوان بازپرداخت نمایش داده نمی شود. صفات عبارتند از:
هنگام تنظیم ویژگی ها ، موارد زیر را یادداشت کنید:
|
<Tax> | Required | float | مالیات هایی که برای قیمت نهایی یک اتاق محاسبه می شوند. این عنصر از همان نحو به عنوان A <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 کاراکتر وجود دارد. برای اطلاعات بیشتر ، به پرونده های صفحه فرود مراجعه کنید. متغیرهای سفارشی فقط در هنگام ارسال قیمت در پیام معامله ذکر می شوند. اگر عناصر <upuare> در عنصر |
<InternetIncluded> | Optional | boolean | اگر یک بسته نرم افزاری شامل دسترسی به اینترنت بدون هیچ گونه هزینه ای باشد ، در حالی که سایر بسته ها شامل این راحتی نمی شوند. این عنصر را برای بسته های اتاق در هتلی که اینترنت رایگان برای همه اتاق ها فراهم می کند ، تنظیم نکنید. این عنصر برای اینترنت سیمی در اتاق یا اینترنت بی سیم که در اتاق های مهمان موجود نیست ، صدق نمی کند. |
<Occupancy> | Required | integer | حداکثر سرنشینان مجاز برای این نرخ را مشخص می کند. به عنوان مثال ، یک مجموعه بزرگ ممکن است بتواند از نظر جسمی 6 مهمان را در خود جای دهد ، اما "بسته ماه عسل" فقط به 2 مهمان اجازه می دهد. این مقدار باید کمتر یا مساوی با هنگام تعریف اشغال در URL صفحه فرود خود ، از متغیرهای ارزش یادداشت ها :
|
<OtherFees> | Required | float | هزینه های غیر از نرخ پایه و مالیات هایی که بر قیمت نهایی یک اتاق تأثیر می گذارد. عنصر <OtherFees> یک ویژگی مورد نیاز ، currency می گیرد که کد ارز سه حرفی را برای هزینه ها تعریف می کند. به عنوان مثال ، از USD آمریکا استفاده کنید. |
<PackageID> | Optional (recommended) | string | شناسه منحصر به فرد برای داده های بسته. از این شناسه استفاده کنید تا داده های بسته نرم افزاری اتاق را با آنچه در <PackageData> ارسال شده است مطابقت دهید. برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید. (همچنین می توانید از این شناسه برای اشاره به تعریف بسته نرم افزاری اتاق مشترک که در یک پیام معامله واحد استفاده می شود هنگام تعریف داده های بسته بندی اتاق به صورت درون خطی استفاده کنید.) |
<ParkingIncluded> | Optional | boolean | این که آیا یک بسته نرم افزاری شامل پارکینگ بدون هزینه است ، جایی که پارکینگ در این هتل خدمات پرداخت شده در این هتل خواهد بود. برای هتلی که پارکینگ رایگان ارائه می دهد ، ارزش این عنصر را مشخص نکنید. مقادیر معتبر |
<RatePlanID> | Optional | string | شناسه برنامه نرخ شناسه منحصر به فرد برای یک اتاق و ترکیب بسته را نشان می دهد. به عنوان مثال ، با توجه به مقدار <RoomID> از 5 و مقدار <PackageID> ABC ، می توانید از مقدار 5-ABC برای <RatePlanID> استفاده کنید. ما اکیداً توصیه می کنیم URL از SpeadPlanid به عنوان یک متغیر برای ساختن صفحه فرود پویا (که قبلاً نقطه فروش) است.برای اطلاعات بیشتر به استفاده از متغیرها و شرایط مراجعه کنید. |
<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>
پاسخ نرخ
مثال زیر یک برنامه سفر و قیمت گذاری آن را برای 1 بزرگسال و 1 کودک تعریف می کند. در اینجا ، <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 بزرگسال و 1 کودک را به مدت دو شب با نرخ قابل استرداد تعریف می کند. در اینجا ، <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>
این صفحه مرجع پیام های معامله مبتنی بر XML را ارائه می دهد.
<Transaction>
عنصر اصلی یک پیام معامله <Transaction>
است. این یک ظروف برای اطلاعات توصیفی در مورد اتاق ها و بسته ها و قیمت گذاری و در دسترس بودن اتاق ها و بسته ها است.
عنصر <Transaction>
در مکان زیر در پیام تراکنش XML سلسله مراتب ظاهر می شود:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
پیامهایی که از <Transaction>
به عنوان عنصر اصلی استفاده می کنند حداقل به یک عنصر کودک نیاز دارند. پیام های معامله می توانند تعداد عناصر کودک را داشته باشند ، تا زمانی که اندازه پیام از 100 مگابایت تجاوز نکند.
نحو
عنصر <Transaction>
از نحو زیر استفاده می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">
<!-- Defines data about a room or package (Room Bundle) -->
<PropertyDataSet>
...
</PropertyDataSet>
<!-- Updates/sets prices and availability for rooms and Room Bundles -->
<!-- (Also removes itineraries from inventory) -->
<Result>
...
</Result>
</Transaction>
صفات
عنصر <Transaction>
ویژگی های زیر را دارد:
صفت | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
id | Required | رشته | یک شناسه منحصر به فرد برای هر پیام معامله. |
partner | Optional | string | حساب شریک که پیام معامله برای آن است. شما معمولاً از این استفاده می کنید اگر باکتری شما فیدهای قیمت را برای حساب های چند شریک فراهم کند. این مقدار رشته مقدار "کلید شریک" است که در صفحه تنظیمات حساب در مرکز هتل ذکر شده است. |
timestamp | Required | DateTime | لحظه ای که پیام معامله ارسال شد. هر پیامی که در طی 24 ساعت قبل با یک جدول زمانی ارسال شود ، پردازش می شود و مواردی که از آنها دور ریخته نمی شوند. پیام ها به ترتیب |
عناصر کودک
عنصر <Transaction>
عناصر کودک زیر را دارد:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<PropertyDataSet> | Optional* | <PropertyDataSet> | یک اتاق و اتاق خاص اتاق را توصیف می کند. شما به طور معمول از این عنصر در یک پیام معامله جداگانه استفاده می کنید تا مقادیر مشترک را برای بسته های اتاق تعریف کنید و اندازه پیام های معامله خود را کاهش دهید. |
<Result> | Optional* | <Result> | داده های قیمت گذاری برای برنامه سفر یک اتاق یا یک عنصر |
* حداقل یکی از <PropertyDataSet> یا <Result> لازم است. |
نمونه ها
داده های اتاق
مثال زیر داده های اتاق را در یک پیام معامله تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
داده های قیمت گذاری
مثال زیر داده های قیمت گذاری را در یک پیام معامله تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
نرخ شبانه
مثال زیر داده های قیمت گذاری را برای 1 تا 7 شب از 7 ژوئن 2023 تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-08-24T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">209.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">419.98</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>3</Nights>
<Baserate currency="USD">614.97</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>4</Nights>
<Baserate currency="USD">819.96</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>5</Nights>
<Baserate currency="USD">999.95</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>6</Nights>
<Baserate currency="USD">1193.94</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>7</Nights>
<Baserate currency="USD">1259.93</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
</Transaction>
نرخ پایه و مشروط
مثال زیر پیام معامله ای را نشان می دهد که حاوی نرخ پایه و نرخ مشروط است:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
موجودی را حذف کنید
مثال زیر چندین موجودی (1 شب اقامت برای چندین تاریخ مختلف) را برای یک هتل از موجودی حذف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-23</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-24</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<!---Sending <Baserate> is optional with <Unavailable> -->
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-25</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">-1</Baserate>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
</Transaction>
<PropertyDataSet>
یک کانتینر برای اطلاعات اتاق و بسته (یا بسته نرم افزاری اتاق ) در یک پیام <Transaction>
. مقادیر تنظیم شده بر روی هتل مقادیر تنظیم شده بر روی شریک زندگی. Google این اطلاعات را ذخیره می کند تا هر بار که به روزرسانی های قیمت گذاری را ارسال می کنید ، نیازی به تعریف آن ندارید.
عنصر <PropertyDataSet>
در پیام تراکنش XML در مکان زیر ظاهر می شود:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید.
نحو
عنصر <PropertyDataSet>
از نحو زیر استفاده می کند:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> <!-- (Required) ID that matches the Hotel List Feed --> <Property>hotel_ID</Property> <!-- (Optional) Defines metadata about a room --> <RoomData> ... </RoomData> <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) --> <PackageData> ... </PackageData> </PropertyDataSet> ... </Transaction>
صفات
عنصر <PropertyDataSet>
هیچ ویژگی ندارد.
عناصر کودک
عنصر <PropertyDataSet>
عناصر کودک زیر را دارد:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<PackageData> | Optional* | <PackageData> | یک بسته نرم افزاری اتاق را توصیف می کند. این داده ها با یک شریک و هتل همراه است ، اما نه با برنامه سفر. این عنصر شبیه به <RoomData> است ، اما امکانات و اصطلاحاتی را توصیف می کند که جزئی از توضیحات اتاق فیزیکی نیستند.شما شناسه بسته را در به روزرسانی های قیمت گذاری خود ارجاع می دهید. برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید. |
<Property> | Required | string | شناسه هتلی که داده های مرتبط با آن اعمال می شود. مقدار این عنصر باید رشته ای باشد که با لیست <id> در فید لیست هتل شما مطابقت داشته باشد. |
<RoomData> | Optional* | <RoomData> | یک اتاق را توصیف می کند. این داده ها با یک شریک و هتل همراه است ، اما نه با برنامه سفر. شما شناسه اتاق را در به روزرسانی های قیمت گذاری خود ارجاع می دهید. |
* حداقل یکی از <PackageData> یا <RoomData> لازم است. |
نمونه ها
داده های اتاق و بسته بندی
مثال زیر داده های اتاق و بسته را در <PropertyDataSet>
نشان می دهد:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
هنگامی که قیمت و در دسترس بودن برای این اتاق و بسته نرم افزاری اتاق و اتاق را ارسال می کنید ، در پیام های قیمت گذاری خود به شناسه اتاق و بسته بندی مراجعه می کنید. نتیجه این است که شما اندازه پیام های خود را تا حد زیادی کاهش می دهید ، و همچنین میزان خطاهایی را که ممکن است به دلیل داده های تکراری با آنها روبرو شوید ، کاهش می دهید. برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید.
<RoomData>
ابرداده مستقل از برنامه را در مورد اتاق ها تعریف می کند ، و با استفاده از بسته های اتاق (از آنجا که بسته های اتاق اتاق هایی به علاوه امکانات اضافی هستند). برای کاهش تکرار داده های توصیفی در فید قیمت خود از <RoomData>
استفاده کنید.
عنصر <RoomData>
در مکان زیر در پیام تراکنش XML سلسله مراتب ظاهر می شود:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
عناصر <RoomData>
حاوی اطلاعاتی هستند که با یک شریک و هتل همراه است ، اما نه با برنامه سفر. هدف در نظر گرفته شده برای کلیه داده های غیر اصلی است.
عنصر <RoomData>
شبیه به <PackageData>
است ، اما اتاق فیزیکی را به جای امکانات و شرایط یک بسته توصیف می کند. شما برای ارائه جزئیات در مورد بسته های اتاق <RoomData>
و <PackageData>
در ترکیب استفاده می کنید. برای اتاق های جداگانه که جزئی از یک بسته نیستند ، فقط از <RoomData>
استفاده کنید.
شما می توانید هر دو عناصر <RoomData>
و <PackageData>
را برای همان اتاق یا بسته نرم افزاری اتاق تعریف کنید. هنگامی که Google آن اتاق یا بسته را در نتایج جستجو نشان می دهد ، توضیحات مربوط به هر دو را شامل می شود که توسط یک هیفن از هم جدا شده است.
برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید.
نحو
عنصر <RoomData>
از نحو زیر استفاده می کند:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> ... <RoomData> <RoomID>room_ID</RoomID> <Name> <Text text="room_name" language="language_code"/> ... </Name> <Description> <Text text="room_description" language="language_code"/> ... </Description> <Capacity>max_number_of_occupants</Capacity> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults, children, or seniors --></OccupancyDetails> <OccupancySettings> <MinOccupancy>min_number_of_occupants</MinOccupancy> <MinAge>min_age_of_occupants</MinAge> </OccupancySettings> <PhotoURL> <Caption> <Text text="photo_description" language="language_code"/> ... </Caption> <URL>photo_location</URL> </PhotoURL> <RoomFeatures> ... </RoomFeatures> </RoomData> ... </PropertyDataSet> </Transaction>
صفات
عنصر <RoomData>
هیچ ویژگی ندارد.
عناصر کودک
عنصر <RoomData>
عناصر کودک زیر را دارد:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<Capacity> | Optional | integer | حداکثر تعداد مهمانانی که یک اتاق می تواند از نظر جسمی در آن قرار بگیرد . برای یک اتاق ، ظرفیت بیشتر یا مساوی با اشغال است. در صورت مشخص شدن ، این مقدار باید برابر یا بیشتر از مقدار عنصر مقدار |
<Description> | Optional | Object | شرح مفصلی از اتاق. این عنصر باید حاوی اطلاعاتی باشد که توسط عناصر دیگر یا عنصر <Name> شرح داده نشده است. هنگام مشخص کردن توضیحات اتاق نباید از تمام حروف بزرگ استفاده کنید. عنصر
برای هر زبانی که در آن تبلیغ یا پیوند رزرو رایگان شما ممکن است ظاهر شود (با مقادیر مختلف برای ویژگی های مثال زیر نسخه های فرانسوی و انگلیسی توضیحات اتاق را نشان می دهد: <Description> <Text text="Two queen-sized beds" language="en"/> <Text text="Deux lits de la reine" language="fr"/> </Description> |
<Name> | Required | string | نام دسته اتاق. این ارزش باید مطابق با آنچه در صفحه فرود هتل (که قبلاً نقطه فروش بود) باشد مطابقت داشته باشد. ارزش این عنصر را بر روی همه حروف بزرگ تنظیم نکنید. این عنصر یک عنصر کودک مجرد را می گیرد ،
برای هر زبانی که در آن تبلیغ یا پیوند رزرو رایگان شما ممکن است ظاهر شود (با مقادیر مختلف برای ویژگی های مثال زیر نسخه های فرانسوی و انگلیسی نام اتاق را نشان می دهد: <Name> <Text text="Standard Double Room" language="en"/> <Text text="Le chambre double" language="fr"/> </Name> |
<Occupancy> | Optional | integer | حداکثر تعداد مهمانانی که یک اتاق در نظر گرفته شده است . به عنوان مثال ، یک مجموعه بزرگ ممکن است بتواند از نظر جسمی 6 مهمان (ظرفیت = 6) را در خود جای دهد ، اما فقط برای 4 مهمان در نظر گرفته شده است. این مقدار باید کمتر از یا مساوی با عنصر ارزش |
<OccupancySettings> | Optional | Object | تنظیماتی که می تواند نیازهای اشغال یک اتاق را محدود یا اصلاح کند. عنصر
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> همه عناصر کودک نیازی به گنجاندن ندارند. |
<PhotoURL> | Optional | Object | URL و عنوان اختیاری برای عکس از اتاق داده شده یا بسته نرم افزاری اتاق. می توانید بیش از یک <PhotoURL> را برای یک بسته نرم افزاری اتاق یا اتاق مشخص کنید. هر URL عکس باید به خودی خود <PhotoURL> باشد.این عنصر عناصر کودک زیر را می گیرد:
مثال: <PhotoURL> <URL>https://www.example.com/static/bar/image1234.jpg</URL> <Caption> <Text text="A bright and breezy way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse et aérée pour profiter de votre journée tasse de thé." language="fr"/> </Caption> </PhotoURL> <PhotoURL> <URL>https://www.foo.com/static/bar/image5678.jpg</URL> <Caption> <Text text="Or, perhaps you prefer coffee." language="en"/> <Text text="Ou peut-être préférez-vous le café." language="fr"/> </Caption> </PhotoURL> |
<RoomFeatures> | Optional | <RoomFeatures> | حاوی اطلاعاتی در مورد ویژگی های اتاق است. |
<RoomID> | Required | string | شناسه منحصر به فرد برای اتاق. از این شناسه استفاده کنید تا داده های اتاق را با بلوک های <Result> در به روزرسانی های قیمت گذاری خود مطابقت دهید. برای اطلاعات بیشتر ، به ابرداده بسته نرم افزاری مراجعه کنید. (همچنین می توانید هنگام تعریف داده های اتاق در یک پیام مشترک ، از این شناسه استفاده کنید. |
نمونه ها
داده های اتاق
مثال زیر داده های اتاق را تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
فوق داده اتاق و بسته بندی
مثال زیر ابرداده اتاق و بسته را تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
بسته های چند اتاق
مثال زیر ابرداده اتاق و بسته را برای بسته های مختلف اتاق تعریف می کند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<!-- A transaction message with room types result. -->
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
<RoomID>single</RoomID>
<Name>
<Text text="Single room" language="en"/>
<Text text="Chambre simple" language="fr"/>
</Name>
<Description>
<Text text="A single room" language="en"/>
<Text text="Le chambre simple" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image1235.jpg</URL>
</PhotoURL>
<Capacity>2</Capacity>
</RoomData>
<RoomData>
<RoomID>double</RoomID>
<Name>
<Text text="Double room" language="en"/>
<Text text="Chambre double" language="fr"/>
</Name>
<Occupancy>1</Occupancy>
</RoomData>
<PackageData>
<PackageID>refundbreakfast</PackageID>
<Name>
<Text text="Refundable Room with Breakfast" language="en"/>
<Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Continental Breakfast" language="en"/>
<Text text="Petit déjeuner continental" language="fr"/>
</Description>
<ChargeCurrency>hotel</ChargeCurrency>
<Refundable available="1" refundable_until_days="3"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>prepaid</PackageID>
<Name>
<Text text="Nonrefundable" language="en"/>
<Text text="Non remboursable" language="fr"/>
</Name>
<Description>
<Text text="Blah blah blad" language="en"/>
<Text text="Le blah blah blad" language="fr"/>
</Description>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="0"/>
</PackageData>
</PropertyDataSet>
</Transaction>
<RoomFeatures>
ویژگی های موجود در اتاق را تعریف می کند.
The <RoomFeatures>
element appears in the following place in the Transaction message XML hierarchy:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<RoomFeatures>
نحو
The <RoomFeatures>
element uses the following syntax:
<?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>
صفات
The <RoomFeatures>
element has no attributes.
عناصر کودک
The <RoomFeatures>
element has the following child elements:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<JapaneseHotelRoomStyle> | Optional | enum | Indicates the style of a Japanese hotel room. مقادیر معتبر عبارتند از:
|
<Beds> | Optional | Object | Contains as many <Bed> as the room has. Note that the Japanese futons shouldn't be counted here. Each
<Bed> has the following child elements:
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
<Suite> | Optional | empty | Provide this element when this room is a suite. |
<Capsule> | Optional | empty | Provide this element when this room is a capsule room. |
<Roomsharing> | Optional | enum | Whether this room is shared with other occupants such as owners or other guests. Valid values are shared and private . |
<Outdoor> | Optional | empty | Provide this element when this room is outdoor lodging that doesn't have fixed walls, plumbing, and climate control. For example, hotel rooms are not outdoor lodging whereas campsites where guests stay in tents and RV parks where guests bring their own RV are outdoor lodging. |
<MobilityAccessible> | Optional | empty | Provide this element when this room is mobility-accessible. |
<Smoking> | Optional | enum | Whether this room is a non-smoking room or a smoking room. Valid values are non_smoking and smoking . |
<BathAndToilet> | Optional | Object | Contains information about a bath and toilet in the room. The attribute is:
The element optionally takes the following child elements:
مثال: <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
<OpenAirBath> | Optional | empty | Provide this element when this room has a private open-air bath. |
<AirConditioning> | Optional | empty | Provide this element when this room has air conditioning. |
<Balcony> | Optional | empty | Provide this element when this room has a balcony or lanai. |
<Views> | Optional | Object | Valid options include: |
نمونه ها
JapaneseHotelRoomStyle
doesn't have a default value. Omitting a value does not result in an XML error, but your listing is not shown in the search results, when the user filters by room style or beds.
Two single beds
The following example shows how to use <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>
دو تخت دونفره
The following is an example of western
style Japanese room with two double
beds.
<?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 style without bed
The following is an example of a Japanese style room without bed. Bed information is not required for japanese
style room.
<?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 with bed
The following is an example of a japanese_western
style room with king
size bed.
<?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>
If partner doesn't have the number of beds information in japanese_western
rooms, then follow the example:
<?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>
Defines itinerary-independent metadata about Room Bundles for a property. This element contains information that is associated with a partner and hotel, but not with an itinerary. The intended purpose is to define all non-itinerary data once and reference it from itinerary data.
The <PackageData>
element appears in the following place in the Transaction message XML hierarchy:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
The <PackageData>
element is similar to <RoomData>
, but it describes rate features and terms that aren't part of the physical room description. You use <RoomData>
and <PackageData>
in combination to provide details about Room Bundles and rate features. For individual rooms that aren't part of a package, use just <RoomData>
.
You can define both the <RoomData>
and <PackageData>
elements for the same room or Room Bundle. When Google displays that room or package in the search results, it will include the descriptions from both, separated by a hyphen.
If you update a single <PackageData>
element for a property, you must update all <PackageData>
and <RoomData>
elements for the property. Each <PropertyDataSet>
is considered all data about the property, and overwrites any existing data.
For more information, refer to Room Bundle metadata .
نحو
The <PackageData>
element uses the following syntax:
<?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>
صفات
The <PackageData>
element has no attributes.
عناصر کودک
The <PackageData>
element has the following child elements:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<BreakfastIncluded> | Optional | boolean | Specifies whether this package includes breakfast with the rate. Valid values are 0 (or false ) and 1 (or true ). It is preferred that you use |
<ChargeCurrency> | Optional | enum | When and where the user pays for a booking. This element uses the same syntax as <ChargeCurrency> in a <Result> . The default value is |
<CheckinTime> | Optional | Time | Earliest possible check-in time. Time must be less than 24:00 in the local time of the hotel. |
<CheckoutTime> | Optional | Time | Latest possible check-out time in the local time of the hotel. |
<Description> | Optional | Object | A detailed description of the package. This element should contain information not described by other elements or the <Name> element. You shouldn't use all capital letters when specifying the description of the room. The <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 | If a package includes internet access at no charge, while other packages wouldn't include that amenity. Don't set this element for Room Bundles in a hotel that provides free internet to all rooms. This element does not apply to in-room wired internet or wireless internet that is not available in guest rooms. Valid values are 0 (or false ) and 1 (or true ). |
<Meals> | Optional | Object | Contains information about meals in this package. The
The optional attributes are used only when For meal filters ( |
<Name> | Required | string | نام بسته. This value should match what appears on the hotel's landing page. Don't set the value of this element to all capital letters. This element takes a single child element, <Name> <Text text="Bed and Breakfast" language="en"/> <Text text="Lit et petit déjeuné" language="fr"/> </Name> |
<Occupancy> | Optional | integer | The maximum number of guests that a Room Bundle is intended for . For example, a large suite might be able to physically accommodate 6 guests, but is intended for up to 4 guests only. This value must be less than or equal to the The value of If you specify this element in both توجه : <Occupancy> may be accompanied by <OccupancyDetails> ,which specifies the type of guests (adults or children). Refer to <OccupancyDetails> for syntax and description of child elements. |
<PackageID> | Required | string | The unique ID for the package. Use this ID to match the Room Bundle data with the (You can also use this ID to reference a common Room Bundle definition used in a single Transaction message when defining Room Bundle data inline.) |
<ParkingIncluded> | Optional | boolean | Whether a Room Bundle includes parking at no charge, where parking would otherwise be a paid service at this hotel. Don't specify a value for this element for a hotel that offers free parking. Valid values are |
<PhotoURL> | Optional | Object | (Same as <PhotoURL> in <RoomData> , but for the package (eg meal photos).) |
<Refundable> | Optional | Object | Enables listing a rate as being fully refundable or providing a free cancellation. If not provided, no information about a refund is displayed. A refund policy at the <PackageData> level overrides the refund policy at the <Result> level. A refund policy at the <Rates> level overrides the refund policy at the <PackageData> level. Refundable pricing can also be highlighted to users through alternative options without directly modifying your transaction message schema. Learn more about these options Refundable rates policy . The following example shows the <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Note: We recommend setting all of the attributes. A feed status warning message is generated when one or more attributes are not set. If you don't set any attributes, the rate does not display as refundable. صفات عبارتند از:
When setting the attributes, note the following:
|
<MembershipBenefits Included> | Optional | boolean | Rate includes elite status benefits for duration of stay. Includes the following parameters:
|
<CarRentalIncluded> | Optional | boolean | Rate includes free car rental for duration of stay. |
<MilesIncluded> > | Optional | boolean | Rate includes frequent flyer miles. پارامترها عبارتند از:
|
<OnPropertyCredit> | Optional | boolean | Rate includes on-property credit (F&B, resort, spa, etc). پارامتر:
|
<AirportTransportationIncluded> | Optional | Object | Rate includes free transportation to/from a nearby airport. The optional direction attribute specifies the directionality of the transportation. مقادیر معتبر عبارتند از:from : Transportation is provided from the airport to the property. This is the default value if no direction is specified. to : Transportation is provided to the airport from the property. round_trip : Transportation is provided both to and from the airport. |
نمونه ها
Single room bundle
The following example defines a single Room Bundle, with an occupancy of 2 (one adult and one child) and includes breakfast:
<?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>
Room and package metadata
The following example defines room and package metadata:
<?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>
Multiple room bundles
The following example defines room and package metadata for multiple Room Bundles:
<?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>
Room bundle with rates
The following example defines room and package metadata for a Room bundle with rate features:
<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>
Meals & photos
The following example defines room and package metadata for meals, photos, and check-in and check-out times:
<?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>
A container for pricing and availability updates in a <Transaction>
message.
The <Result>
element appears in the following place in the Transaction message XML hierarchy:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Use <Result>
to set or update room prices and define available inventory. Items defined in this element typically reference itinerary-independent metadata about a room or package (such as a description or set of amenities) defined in <PackageData>
and <RoomData>
.
You typically send Transaction messages with pricing updates very frequently. Exactly how and how often you do this depends on your delivery mode .
You can use <Result>
in a Transaction message to remove itineraries, as described in Removing Inventory . For more information about using Transaction messages to update prices and availability, Adding and Updating Inventory .
A single Transaction message can include any number of <Result>
elements in it, as long as the size of the message does not exceed 100MB.
نحو
The <Result>
element uses the following syntax:
<?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>
صفات
The <Result>
element has the following attributes:
صفت | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
mergeable | Optional | boolean | By default, new prices for a specific hotel and itinerary pair will overwrite any previous (non-expired) prices present in Google's cache. The mergeable attribute lets you store additional prices to Google's cache without deleting previous pricing information. Live Pricing Query with Context responses will always have this attribute set to true (regardless of your transaction message response). |
عناصر کودک
The <Result>
element has the following child elements:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | One or more landing pages that are eligible for the hotel. A landing page is a website that can handle the booking process for the end-user. To explicitly include certain landing page (and exclude others), add one or more <AllowablePointsOfSale> elements that match the <PointOfSale> element's id attribute in the landing pages file.If you don't include this element, all landing pages defined in the landing pages file are considered eligible to be used for booking the room. For more information, refer to Landing Pages File Syntax . |
<Baserate> | Optional | float | The price of the room for the stay. The value of this element should reflect the following:
When the room is unavailable for the itinerary, To remove a Room Bundle, use the instructions in Removing a Room Bundle . The <Baserate currency="USD">1200.40</Baserate> The
|
<ChargeCurrency> | Optional | enum | When and where the user pays for a booking. This element can be used in a Transaction message in the <Result> element for the Hotel Price or <PackageData> block for a Room Bundle.مقادیر معتبر عبارتند از:
The default value is |
<Checkin> | Required | Date | The check-in date for an itinerary using the Date format. The combination of the <Nights> element and the <Checkin> element make up an itinerary. |
<Custom[1‑5]> | Optional | string | Defines a custom field that you can use to pass additional data associated with a hotel. You can pass up to five custom values with the following element names:
The <Custom> elements provided in the |
<ExpirationTime> | Optional | DateTime | The date and time at which the price is considered expired (3 hours minimum). We recommend that you don't provide expiration timestamps if it isn't critical to your pricing structure. Google doesn't serve any prices that are expired, and any itinerary that has an expired price will become eligible for Live Pricing Querying . |
<Nights> | Required | integer | The number of nights for an itinerary. The value of the <Nights> element must be a positive integer. The combination of <Nights> and <Checkin> make up an itinerary. |
<OtherFees> | Optional | float | Fees other than the base rate and taxes that influence the final price of a room. The <OtherFees> element takes a single required attribute, currency , that defines the three-letter currency code for the fees. For example, USD . The |
<Occupancy> | Optional | integer | Specifies the maximum allowed occupants for this rate. When <Occupancy> appears directly under <Result> , it must specify 2 or more. <Occupancy> may be accompanied by <OccupancyDetails> , which specifies the type of guests (adults or children). If guest types are not specified, they are assumed to be adults. Consult <OccupancyDetails> for syntax and description of child elements. If the <Occupancy> element is not provided, occupancy is defaulted as 2 .Note: Contact your support team to enable the feature to send non-double occupancy prices. |
<PackageID> | Optional | string | The unique ID of the package to map it to predefined package data. Also used to populate the PACKAGE-ID landing page variable. For more information, refer to Room Bundle metadata . |
<Property> | Required | string | The ID of a hotel affected by the associated data (price, itinerary, Room Bundle, or metadata). The value of this element must be a string. The value of this element must match the listing <id> that you defined in your Hotel List Feed. |
<Rates> | Optional | <Rates> | A container for one or more <Rate> blocks. Each <Rate> in <Rates> defines a different price for the room/itinerary combination. Use the Note: Within |
<Refundable> | Optional | Object | Enables listing a rate as being fully refundable or providing a free cancellation. If not provided, no information about a refund is displayed. A refund policy at the <PackageData> level overrides the refund policy at the <Result> level. A refund policy at the <Rates> level overrides the refund policy at the <PackageData> level. Refundable pricing can also be highlighted to users through alternative options without directly modifying your transaction message schema. Learn more about Refundable rates policy . The following example shows the <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Note: We recommend setting all of the attributes. A feed status warning message is generated when one or more attributes are not set. If you don't set any attributes, the rate does not display as refundable. صفات عبارتند از:
When setting the attributes, note the following:
|
<RoomBundle> | Optional | <RoomBundle> | A container for information on priced physical descriptions of a room, any packaging of amenities, and some purchase policy details for the given hotel and itinerary. In general, use this element to define pricing for the base room and different types of rooms within the same property. While it is possible to define Room Bundle descriptions inline, you should use a separate Transaction message to define that information. Google will store metadata so that you can reference it, rather than repeat it, in all future pricing updates. |
<RoomID> | Optional | string | The unique ID of the room to map it to predefined room data. Also used to populate the PARTNER-ROOM-ID landing page variable. For more information, refer to Room Bundle metadata . |
<Tax> | Optional | float | The taxes that are calculated for the final price of a room. The <Tax> element takes a single required attribute, currency , that defines the three-letter currency code for the taxes. For example, USD . The <Tax> element is required if <Baserate> is greater than zero. If |
<Unavailable> | Optional | Object | Indicates that the itinerary is unavailable for booking. Serves as a container for more detailed reasons why the itinerary was unavailable. One or more of the following unavailability reasons may be nested underneath the <Unavailable> tag:
|
نمونه ها
Multi-property example
The following example defines one itinerary and its pricing for two properties:
<?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>
Not shown in this example are details about the room, such as a description, a picture and caption, the room's name, and its capacity.
You can define that information once in a separate Transaction message that Google stores. You can then reference it in all subsequent pricing and inventory updates. For more information, refer to Room Bundle metadata .
Multi-rate example
The following example defines a single itinerary and property with multiple rates for various occupancies. The <Rates>
element can be utilized to provide multi-rate pricing for a specific property. The following example is also useful for Vacation Rental (VR) properties:
<?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>
Unavailable example
The following example defines one itinerary whose availability couldn't be retrieved from downstream channels, a second that is both below the minimum night stay and already booked for the specified dates, and a third whose property is closed on the arrival date, but that opens during the course of the stay:
<?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>
A container for one or more <Rate>
blocks. Each <Rate>
in <Rates>
defines a different price for the room or itinerary combination.
Use the <Rates>
element only when there are multiple rates for the same room or itinerary combination. For example, you define multiple rates for conditional rates , private rates , or conditional rates in Room Bundles .
The <Rates>
element appears in the following place in the Transaction message XML hierarchy:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
(Can also contain<Rates>
) + ...
Values set in a <Rate>
override pricing-related values on the parent <Result>
or <RoomBundle>
element. If they are not set in <Rate>
, they inherit their value from the parent element. Only <AllowablePointsofSale> is inherited to the <RoomBundle>
element.
نحو
The <Rates>
element uses the following syntax:
<?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>
صفات
The <Rates>
element has the following attributes:
صفت | مورد نیاز؟ | توضیحات |
---|---|---|
rate_rule_id | Optional | For conditional rates , this ID matches a rate to a definition in your Rate Rule Definition file. The character limit for this field is 40 characters. |
عناصر کودک
The <Rates>
element has the following child elements:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | One or more landing pages that are eligible for the hotel. This element uses the same syntax as the <AllowablePointsOfSale> on <Result> . |
<Baserate> | Required | float | The price of the room for the stay. This element uses the same syntax as the <Baserate> on <Result> . Note: The |
<ChargeCurrency> | Optional | enum | When and where the user pays for a booking. This element uses the same syntax as a <ChargeCurrency> in a <Result> . |
<Custom[1‑5]> | Optional | string | Custom fields that you can use to pass additional data associated with a hotel to a landing page. This element uses the same syntax as a <Custom[1‑5]> in a <Result> . There is a limit of 200 characters per custom field. For more information, refer to landing page files . If <Custom> elements are provided in the |
<ExpirationTime> | Optional | DateTime | The date and time at which the rate is considered expired. This element uses the same syntax as an <ExpirationTime> in a <Result> . |
<Occupancy> | Optional | integer | Specifies the maximum allowed occupants for this rate. If not specified, it is assumed to be the same as parent rate. |
<OtherFees> | Required | float | Fees other than the base rate and taxes that influence the final price of a room. This element uses the same syntax as <OtherFees> in a <Result> . If |
<Refundable> | Optional | Object | Enables listing a rate as being fully refundable or providing a free cancellation. If not provided, no information about a refund is displayed. A refund policy at the <PackageData> level overrides the refund policy at the <Result> level. A refund policy at the <Rates> level overrides the refund policy at the <PackageData> level. Refundable pricing can also be highlighted to users through alternative options without directly modifying your transaction message schema. Learn more about these options Refundable rates policy . The following example shows the <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Note: We recommend setting all of the attributes. A feed status warning message is generated when one or more attributes are not set. If you don't set any attributes, the rate does not display as refundable. صفات عبارتند از:
When setting the attributes, note the following:
|
<Tax> | Required | float | The taxes that are calculated for the final price of a room. This element uses the same syntax as the a <Tax> in a <Result> . |
نمونه ها
Base rate and conditional rate
The following example shows a Transaction message that contains a base rate and a conditional rate :
<?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>
Multiple conditional rates
The following example defines a base rate and multiple conditional rates within a <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>
Defines pricing and availability for Room Bundles as a child of <Result>
in a <Transaction>
message. Define a separate element for each package or itinerary combination. To define the package and terms of the Room Bundles, use <RoomData>
.
The <RoomBundle>
element appears in the following place in the Transaction message XML hierarchy:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
For more information, refer to Using Room Bundles .
نحو
The <RoomBundle>
element uses the following syntax:
<?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>
صفات
The <RoomBundle>
element has no attributes.
عناصر کودک
The <RoomBundle>
element has the following child elements:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<Baserate> | Required | float | Defines the price of the Room Bundle for the stay. This element uses the same syntax as <Baserate> in <Result> , with the following exception:
|
<BreakfastIncluded> | Optional | boolean | Specifies whether this Room Bundle includes breakfast with the rate. |
<ChargeCurrency> | Optional | enum | When and where the user pays for a booking. This element uses the same syntax as <ChargeCurrency> in a <Result> . The default value is |
<Custom[1‑5]> | Optional | string | Custom fields for passing additional data to the landing pages for the Room Bundle. These elements use the same syntax as <Custom[1-5]> in <Result> . There is a limit of 200 characters per custom field. For more information, refer to landing page files . Custom variables are listed only when you send the prices in the Transaction message. If <Custom> elements are provided in the |
<InternetIncluded> | Optional | boolean | If a Room Bundle includes internet access at no charge, while other bundles wouldn't include that amenity. Don't set this element for Room Bundles in a hotel that provides free internet to all rooms. This element does not apply to in-room wired internet or wireless internet that is not available in guest rooms. |
<Occupancy> | Required | integer | Specifies the maximum allowed occupants for this rate. For example, a large suite might be able to physically accommodate 6 guests, but the "Honeymoon Package" allows 2 guests only. This value must be less than or equal to the When defining occupancy in your landing page URL, use the The value of یادداشت ها :
|
<OtherFees> | Required | float | Fees other than the base rate and taxes that influence the final price of a room. The <OtherFees> element takes a single required attribute, currency , that defines the three-letter currency code for the fees. For example, use USD for US dollars. |
<PackageID> | Optional (recommended) | string | The unique ID for the package data. Use this ID to match the Room Bundle data with what was sent in <PackageData> . For more information, refer to Room Bundle metadata . (You can also use this ID to reference a common Room Bundle definition used in a single Transaction message when defining Room Bundle data inline.) |
<ParkingIncluded> | Optional | boolean | Whether a Room Bundle includes parking at no charge, where parking would otherwise be a paid service at this hotel. Don't specify a value for this element for a hotel that offers free parking. Valid values are |
<RatePlanID> | Optional | string | The Rate Plan ID represents the unique identifier for a room and package combination. For example, given a <RoomID> value of 5 and a <PackageID> value of ABC, you could use a value of 5-ABC for <RatePlanID> . We strongly recommend using RatePlanID as a variable to build your dynamic landing page (formerly Point of Sale) URL.For more information, refer to Using Variables and Conditions . |
<Rates> | Optional | <Rates> | Rates that override the defaults for this Room Bundle. This element uses the same syntax as <Rates> in <Result> . |
<Refundable> | Optional | Object | Enables listing a rate as being fully refundable or providing a free cancellation. If not provided, no information about a refund is displayed. A refund policy at the <PackageData> level overrides the refund policy at the <Result> level. A refund policy at the <Rates> level overrides the refund policy at the <PackageData> level. Refundable pricing can also be highlighted to users through alternative options without directly modifying your transaction message schema. Learn more about these options Refundable rates policy . The following example shows the <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Note: We recommend setting all of the attributes. A feed status warning message is generated when one or more attributes are not set. If you don't set any attributes, the rate does not display as refundable. صفات عبارتند از:
When setting the attributes, note the following:
|
<RoomID> | Required | string | The unique ID for the room data. Use this ID to match the Room Bundle data with what you sent in <RoomData> . For more information, refer to Room Bundle metadata . (You can also use this ID to reference a common room definition in a single Transaction message when defining room data inline.) |
<Tax> | Required | float | The taxes that are calculated for the final price of a room. The <Tax> element takes a single required attribute, currency , that defines the three-letter currency code for the taxes. For example, use USD for US dollars. |
نمونه ها
Single occupancy bundle
The following example defines a response with a single occupancy bundle. When a user selects 1
in the Occupancy picker, Google displays the lowest eligible price regardless of occupancy.
If a single occupancy price is not available, then Google will show the lowest double-occupancy price. Note that single occupancy prices are not live queried if double-occupancy or more prices are cached for an itinerary.
This example references predefined room and package metadata with the <RoomID>
and <PackageID>
elements. Use the <RoomData>
and <PackageData>
elements to define that information.
<!-- 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>
Two or more occupancies
The following example defines a response containing two or more occupancies.
This example references predefined room and package metadata with the <RoomID>
and <PackageID>
elements. Use the <RoomData>
and <PackageData>
elements to define that information.
<!-- 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>
Multiple room bundles
The following example sets Occupancy in multiple Room bundles to demonstrate possible hostel room pricing.
<?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>
Multiple Conditional rates
The following example defines a base rate and multiple conditional rates within a <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>
in a transaction message specifies the maximum number of guests for a room or package. <OccupancyDetails>
can contain additional information such as the number and type of guests (adults or children).
When <Occupancy>
and <OccupancyDetails>
appear within the <Rates>
element of <Result>
or <RoomBundle>
, it means that the rate is constrained by the occupancy details.
نحو
When <OccupancyDetails>
appears, it is always preceded by <Occupancy>
. Note the following syntax:
<?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>
عناصر کودک
The <OccupancyDetails>
element has the following child elements:
عنصر کودک | مورد نیاز؟ | تایپ کنید | توضیحات |
---|---|---|---|
<NumAdults> | Required | integer | The number of adult guests. Min:1, Max:20. |
<Children> | Optional | Object | A container for one or more <Child> elements. |
<Child age> | Optional | integer | The maximum age for this Child—for example, <Child age="17"> . |
نمونه ها
The following examples show how <OccupancyDetails>
may appear within <Results>
, <RoomBundle>
, or the <Rates>
child element.
Result response
The following example defines one itinerary and its pricing for one property in response to a Live Pricing Query where the user specified the number and types of guests. Here, the <OccupancyDetails>
-- 2 adults and one child -- are returned in <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>
Rates response
The following example defines one itinerary and its pricing for 1 adult and 1 child. Here, the <OccupancyDetails>
are returned in the <Rates>
element of <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>
Room bundle
The following example defines an occupancy of 2 adults and 1 child for two nights, with a refundable rate. Here, the <OccupancyDetails>
appear inside <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>
Multiple room bundles
The following example defines multiple <RoomBundle>
rates that are restricted to an occupancy of 2 adults and 2 children. Here, the <OccupancyDetails>
appear in the <Rates>
element of <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>