درخواستها
نحو
پیام Transaction (Property Data) از نحو زیر استفاده میکند:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
id="message_ID"
partner="partner_key">
<PropertyDataSet action="[overlay|delta]">
<!-- (Required) ID that matches the Hotel List Feed -->
<Property>HotelID</Property>
<RoomData>
<!-- (Required) One room ID per RoomData element -->
<RoomID>RoomID</RoomID>
<Name>
<Text text="room_name" language="language_code"/>
</Name>
<Description>
<Text text="room_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the rate plans allowed for this room type to
those listed here. If specified, don't specify AllowableRoomIDs. -->
<AllowablePackageIDs>
<AllowablePackageID>PackageID</AllowablePackageID>
</AllowablePackageIDs>
<Capacity>max_number_of_occupants</Capacity>
<AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
<ChildCapacity>max_number_of_child_occupants</ChildCapacity>
<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>
<JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
<Beds>
<Bed size="[single|semi_double|double|queen|king]">
<Width unit="cm" number="bed_width"/>
<Length unit="cm" number="bed_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>
<PackageData>
<!-- (Required) One package ID per PackageData element -->
<PackageID>PackageID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
</Name>
<Description>
<Text text="package_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the room types allowed for this rate plan to
those listed here. If specified, don't specify AllowablePackageIDs. -->
<AllowableRoomIDs>
<AllowableRoomID>RoomID</AllowableRoomID>
</AllowableRoomIDs>
<!-- Add Loyalty point information -->
<MilesIncluded>
<LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
<!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
<NumberOfMiles>integer</NumberOfMiles>
</MilesIncluded>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<!-- 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>
</PackageData>
</PropertyDataSet>
</Transaction>
عناصر و مشخصهها
پیام «تراکنش» (دادههای دارایی) عناصر و مشخصههای زیر را دارد:
| عنصر / @مشخصه | رویدادها | نوع | شرح |
|---|---|---|---|
| Transaction | 1 | Complex element | در پیادهسازی ARI، این عنصر ریشه برای پیامی است که انواع اتاق و بستهها را برای یک دارایی تعریف میکند. |
| Transaction / @timestamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
| Transaction / @id | 1 | string | شناسه یکتای این پیام درخواست. این مقدار در پیام پاسخ برگردانده میشود. نویسههای مجاز عبارتاند از a-z، A-Z، 0-9، _ (زیرخط)، و - (خط تیره). |
| Transaction / @partner | 1 | string | حساب شریک برای این پیام. این مقدار رشته همان
مقدار «کلید شریک» است که در
صفحه تنظیمات حساب در Hotel Center فهرست شده است.
توجه: اگر باطنهای دارید که فیدهای چندین حساب را ارائه میدهد، این مقدار باید با مقدار مشخصه |
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | محفظهای برای تعریف انواع اتاق و بستهها برای یک
دارایی.
توصیه میشود |
| Transaction / PropertyDataSet / @action | 0..1 | enum | نوع بهروزرسانی برای اعمال بر تعاریف نرخ اتاق. مقادیر معتبر عبارتاند از:
این مشخصه اختیاری است و اگر مشخص نشده باشد، بهطور پیشفرض روی |
| Transaction / PropertyDataSet / Property | 1 | string | شناسه یکتای دارایی. این مقدار باید با
«شناسه هتل» مشخصشده بااستفاده از
<id> در عنصر <listing>
در «فید فهرست هتل» مطابقت داشته باشد. «شناسه هتل» در مرکز هتل نیز فهرست شده است. |
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | اتاقی را توصیف میکند. توجه: حداقل یکی از |
| Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | شناسه یکتای نوع اتاق. این مقدار بااستفاده از
مشخصه InvTypeCode در
عنصر <StatusApplicationControl> در
پیامهای <OTA_HotelAvailNotifRQ>،
<OTA_HotelRateAmountNotifRQ>، و
<OTA_HotelInvCountNotifRQ> ارجاع داده میشود. |
| Transaction / PropertyDataSet / RoomData / Name | 1 | Name | ظرفی برای نام دسته اتاق به یک یا چند زبان. |
| Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | نام دسته اتاق را به یک زبان مشخص میکند. |
| Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | نام دسته اتاق به زبانی که با
شاخصه language مشخص شده است. |
| Transaction / PropertyDataSet / RoomData / Description | 1 | Name | ظرفی برای شرح دسته اتاق به یک یا چند زبان. |
| Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | شرح دسته اتاق را به یک زبان مشخص میکند. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | شرح دسته اتاق به زبانی که با مشخصه language تعیین شده است. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | کد زبان دوحرفی. |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | ظرفی برای عناصر <AllowablePackageID>.
اگر اگر از |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | PackageID طرح نرخی را که میتواند با این نوع اتاق ترکیب شود مشخص میکند. طرح نرخ با ترکیبی از بسته، نرخها، و دردسترس بودن تعریف میشود. PackageID
با RatePlanCode در
پیامهای OTA_HotelRateAmountNotifRQ و OTA_HotelAvailNotifRQ مطابقت دارد.
|
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | حداکثر تعداد بزرگسالان و کودکانی که یک اتاق میتواند
ازنظر فیزیکی در خود جای دهد. این مقدار باید بزرگتر یا مساوی با
هر مقدار NumberOfGuests باشد که با نرخها ارسال میکنید.
مقدار توجه:اگر |
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | حداکثر تعداد بزرگسالانی که اتاق میتواند ازنظر فیزیکی
در خود جای دهد. این مقدار باید بزرگتر یا مساوی با هر مقدار
NumberOfGuests باشد که با نرخها ارسال میکنید.
مقدار |
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | حداکثر تعداد کودکانی که اتاق میتواند ازنظر فیزیکی
در خود جای دهد.
مقدار |
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | تنظیماتی که میتواند الزامات اشغال اتاق را محدود یا اصلاح کند.
عنصر
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> لازم نیست همه عناصر فرزند گنجانده شوند. |
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | نشانی وب و زیرنویس اختیاری برای عکس اتاق یا
«بسته ترکیبی اتاق» موردنظر. میتوانید بیشاز یک <PhotoURL>
برای اتاق یا «بسته ترکیبی اتاق» مشخص کنید.
این عنصر عناصر فرزند زیر را میگیرد:
<PhotoURL> <URL>http://www.example.com/image1.jpg</URL> <Caption> <Text text="A bright way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse pour profiter de votre tasse de thé." language="fr"/> </Caption> </PhotoURL> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures | 0..1 | <RoomFeatures> |
حاوی اطلاعاتی درباره ویژگیهای اتاق است. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | نشاندهنده سبک اتاق هتل ژاپنی است. مقادیر معتبر عبارتاند از:
|
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | به تعداد <Bed> موجود در اتاق، دارد. لطفاً توجه داشته باشید که فوتونهای ژاپنی نباید در اینجا شمرده شوند.
هر
<Bed> دارای عناصر فرزند زیر است:
<Beds>
<Bed size="double">
<Width unit="cm" number="140"/>
<Length unit="cm" number="195"/>
</Bed>
<Bed/> <!-- Size unknown -->
</Beds> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite | 0.. | enum | اگر این اتاق سوئیت است، این عنصر را ارائه دهید. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | وقتی این اتاق از نوع اتاق کپسولی است، این عنصر را ارائه دهید. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | اینکه این اتاق با ساکنان دیگر مثل مالکان یا مهمانان دیگر مشترک است یا نه. مقادیر معتبر shared و private است. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | اگر این اتاق اقامتگاه فضای باز است که دیوار ثابت، لولهکشی، و کنترل دما ندارد، این عنصر را ارائه دهید. برای مثال، اتاقهای هتل اقامتگاه فضای باز نیستند، درحالیکه اردوگاههایی که مهمانان در چادر اقامت میکنند و پارکهای خودروهای کاروان که مهمانان خودروی کاروان خود را میآورند، اقامتگاه فضای باز هستند. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | اگر این اتاق برای افراد کمتوان حرکتی دسترسپذیر است، این عنصر را ارائه دهید. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | اینکه این اتاق سیگار ممنوع است یا سیگار آزاد. مقادیر معتبر
non_smoking و smoking است. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | حاوی اطلاعاتی درباره حمام و توالت در اتاق است.
شاخصه:
این عنصر بهطور اختیاری عناصر فرزند زیر را میگیرد:
مثال: <BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet
electronic_bidet="1"
mobility_accessible="1"/>
</BathAndToilet> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | اگر این اتاق وان خصوصی در فضای باز دارد، این عنصر را ارائه دهید. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | اگر این اتاق تهویه مطبوع دارد، این عنصر را ارائه دهید. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | اگر این اتاق بالکن یا ایوان دارد، این عنصر را ارائه دهید. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | گزینههای معتبر عبارتاند از:
|
| Transaction / PropertyDataSet / PackageData | 0..n | PackageData | محتوی برای عناصری که ویژگیها و شرایط نرخ را توصیف میکنند که بخشی از شرح فیزیکی اتاق نیستند. توجه: حداقل یکی از |
| Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | PackageID در این پیامها با
RatePlanCode در پیامهای OTA_HotelRateAmountNotifRQ و
OTA_HotelAvailNotifRQ مطابقت دارد. |
| Transaction / PropertyDataSet / PackageData / Name | 1 | Name | ظرفی برای نام بسته به یک یا چند زبان. |
| Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | نام بسته را به یک زبان مشخص میکند. |
| Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | نام بسته به زبانی که با مشخصه
language تعیین شده است. |
| Transaction / PropertyDataSet / PackageData / Description | 1 | Description | ظرفی برای شرح بسته به یک یا چند زبان. |
| Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | شرح بسته را به یک زبان مشخص میکند. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | شرح بسته به زبان مشخصشده توسط مشخصه
language. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | کد زبان دوحرفی. |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | ظرفی برای عناصر <AllowableRoomID>.
اگر اگر از |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | شناسه اتاق نوع اتاقی را که میتواند با این طرح نرخ ترکیب شود مشخص میکند. نوع اتاق در عنصر <RoomData>
تعریف میشود.
|
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | اطلاعات امتیاز وفاداری را براساس نحوه تعریف طرحهای نرخ یا بستهها به بستهها اضافه کنید. عنصر <MilesIncluded> را در عنصر <PackageData> که طرح نرخ را تعریف میکند مشخص کنید.
<MilesIncluded> عنصر فرزند زیر را دارد:
|
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | امکان فهرست کردن نرخ بهعنوان کاملاً قابلاسترداد یا قابللغو را فراهم میکند. اگر
ارائه نشود، هیچ اطلاعاتی درباره بازپرداخت نمایش داده نمیشود.
توجه: توصیه میکنیم همه مشخصهها را تنظیم کنید. وقتی یک یا چند مشخصه تنظیم نشده باشد، پیام هشدار وضعیت فید تولید میشود. اگر هیچ مشخصهای تنظیم نکنید، نرخ بهعنوان قابلاسترداد نمایش داده نمیشود. هنگام تنظیم مشخصهها، به موارد زیر توجه کنید:
|
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (الزامی) روی 1 یا
true تنظیم کنید تا نشان دهد آیا نرخ اجازه استرداد کامل را میدهد یا نه؛
درغیراینصورت، روی 0 یا false تنظیم کنید. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (اگر
available true باشد الزامی است)
تعداد روزهای قبلاز ورود را که میتوان درخواست استرداد کامل مبلغ کرد
مشخص میکند. مقدار refundable_until_days
باید عدد صحیحی بین ۰ تا ۳۳۰ باشد و میتواند این دو عدد را نیز دربر بگیرد. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (اگر available، true باشد، بهشدت توصیه میشود) آخرین زمان روز را براساس زمان محلی هتل مشخص میکند که درخواست استرداد کامل مبلغ پذیرفته میشود. این را میتوان با
refundable_until_days ترکیب کرد تا مثلاً مشخص شود که
«استرداد مبلغ تا ساعت ۴:۰۰ بعدازظهر دو روز قبلاز
ورود به هتل امکانپذیر است». اگر refundable_until_time تنظیم نشده باشد، مقدار
بهطور پیشفرض روی نیمهشب تنظیم میشود. |
| Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | مشخص میکند که آیا این نوع اتاق شامل صبحانه میشود یا نه.
مقادیر معتبر 0 (یا false) و 1
(یا true) است.
ترجیحاً بهجای |
| Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | زودترین زمان ممکن برای ورود به هتل براساس زمان محلی هتل. زمان باید کمتر از ۲۴:۰۰ باشد. |
| Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | آخرین زمان ممکن برای تخلیه اتاق براساس زمان محلی هتل. |
| Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | مشخص میکند که آیا اتاق شامل دسترسی رایگان به اینترنت است
درحالیکه اتاقهای دیگر این امکانات رفاهی را ندارند. این عنصر را برای هتلی که اینترنت رایگان در همه اتاقها ارائه میدهد تنظیم نکنید. این عنصر
برای اینترنت سیمی داخل اتاق یا اینترنت بیسیمی که در اتاقهای مهمان
دردسترس نیست اعمال نمیشود. مقادیر معتبر عبارتاند از 0 (یا
false) و 1 (یا true).
|
| Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | حاوی اطلاعاتی درباره وعدههای غذایی در این بسته است.
عنصر
مشخصههای اختیاری فقط زمانی استفاده میشوند که برای اینکه فیلترهای غذا ( |
| Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | اینکه آیا اتاق شامل پارکینگ رایگان میشود، درحالیکه
پارکینگ در این هتل معمولاً سرویسی پولی است. برای هتلی که پارکینگ رایگان ارائه میدهد،
مقداری برای این عنصر مشخص نکنید.
مقادیر معتبر عبارتاند از 0 (یا false) و
1 (یا true). مقدار پیشفرض
false است.
|
| Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (همانند <PhotoURL> در <RoomData>،
اما برای بسته (مثلاً عکسهای غذا).)
|
مثالها
دادههای اتاق و بسته
در زیر نمونهای ساده از نحوه تعریف دادههای اتاق و بسته دارایی در پیام «تراکنش» (دادههای دارایی) آورده شده است. از مشخصه overlay
استفاده میشود تا اطمینان حاصل شود که اگر دادهای بهطور غیرمنتظره ازقبل وجود داشته باشد،
همه دادههای موجود حذف و با دادههای موجود در این پیام جایگزین میشود:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Description>
<Text text="Room with a king bed" language="en"/>
</Description>
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a king bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<Description>
<Text text="Standard rate" language="en"/>
</Description>
<MilesIncluded>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<Description>
<Text text="Free breakfast rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
افزودن نوع اتاق
در زیر نمونهای از نحوه افزودن نوع اتاق و بسته به دادههای <Transaction> موجود آورده شده است:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="delta">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_3</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_3</PackageID>
<Name>
<Text text="Non-Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="false"/>
</PackageData>
</PropertyDataSet>
</Transaction>
برداشتن انواع اتاق
در زیر نمونهای از نحوه برداشتن انواع اتاق و بستههای موجود آورده شده است. در این سناریو، اگر پیامهای موجود در «دادههای اتاق و بسته»
و «افزودن نوع اتاق» قبلاً به Google ارسال شده باشد، پساز اینکه Google پیام نشاندادهشده را دریافت کند،
انواع اتاق King و
Double دیگر وجود نخواهند داشت. توجه داشته باشید که برداشتن دادههای بسته بر طرح نرخ کلی تأثیر میگذارد
همانطور که در پیامهای «تراکنش» (دادههای ملک)، OTA_HotelRateAmountNotifRQ،
و OTA_HotelAvailNotifRQ تعریف شده است (با ارجاع به همان مقدار PackageID)،
و بنابراین ممکن است بهروزرسانیهای مربوطه بااستفاده از انواع دیگر پیامها
لازم باشد تا نشان دهد که PackageID_2 و PackageID_3 دیگر
در اینجا تعریف نشدهاند.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a queen bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
محدود کردن طرحهای نرخ
در زیر نمونهای از نحوه استفاده از عنصر <AllowablePackageIDs>
برای محدود کردن طرحهای نرخ مجاز برای نوع اتاق آورده شده است. در این مثال،
نوع اتاق Queen (RoomID_2) فقط میتواند با بسته و
طرح نرخ شناساییشده بهعنوان PackageID_1 ترکیب شود.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<AllowablePackageIDs>
<AllowablePackageID>PackageID_1</AllowablePackageID>
</AllowablePackageIDs>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
محدود کردن ظرفیت اتاق
در زیر مثالی از نحوه استفاده از عناصر <Capacity>، <AdultCapacity>،
<ChildCapacity> برای تنظیم محدودیتهای ظرفیت اتاق آورده شده است.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<Capacity>4</Capacity>
<AdultCapacity>4</AdultCapacity>
<ChildCapacity>3</ChildCapacity>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
</PropertyDataSet>
</Transaction>
نوع اتاق دونفره (RoomID_1) میتواند درمجموع حداکثر ۴ مهمان داشته باشد. علاوهبراین، میتواند حداکثر ۴ بزرگسال و حداکثر ۳ کودک داشته باشد. برای اینکه این اتاق قابلرزرو باشد، باید هر سه شرط ظرفیت برآورده شود. این پیکربندی نشاندهنده یک اتاق معمولی با دو تخت است که هرکدام برای دو نفر مناسب است. ظرفیت کودکان یکی کمتر از ظرفیت کل است چون حداقل یک بزرگسال باید در اتاق حضور داشته باشد.
نمونههای گسترده با <RoomFeatures> و غذا
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>
غذا
مثال زیر فراداده اتاق و بسته را برای وعدههای غذایی، عکسها، و زمانهای اعلام حضور و تسویهحساب تعریف میکند:
<?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>
پاسخها
نحو
پیام TransactionResponse (Property Data) از نحو زیر استفاده میکند:
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</TransactionResponse>
عناصر و مشخصهها
پیام TransactionResponse (Property Data) دارای عناصر و مشخصههای زیر است:
| عنصر / @مشخصه | رویدادها | نوع | شرح |
|---|---|---|---|
| TransactionResponse | 1 | Complex element | عنصر ریشه که نشاندهنده موفقیت یا مشکلات پیام درخواست تراکنش دریافتی است. |
| TransactionResponse / @timestamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
| TransactionResponse / @id | 1 | string | شناسه یکتا از پیام «تراکنش» مربوطه. |
| TransactionResponse / @partner | 1 | string | حساب شریک برای این پیام. |
| TransactionResponse / Success | 0..1 | Success | نشان میدهد که «پیام تراکنش» باموفقیت و بدون هشدار، خطا، یا خرابی پردازش شده است.
|
| TransactionResponse / Issues | 0..1 | Issues | ظرفی برای یک یا چند مشکل که هنگام پردازش پیام تراکنش با آن مواجه شدهاید.
|
| TransactionResponse / Issues / Issue | 1..n | Issue | شرح هشدار، خطا، یا خرابیای که هنگام پردازش پیام «تراکنش» رخ داده است. جزئیات مربوط به این مشکلات را میتوانید در پیامهای خطای وضعیت فید پیدا کنید. |
| TransactionResponse / Issues / Issue / @code | 1 | integer | شناسه مشکل. |
| TransactionResponse / Issues / Issue / @status | 1 | enum | نوع مشکل مواجهشده. مقادیر معتبر عبارتاند از |
مثالها
موفقیتآمیز
در زیر پاسخی به «پیام تراکنش» پردازششده موفقیتآمیز ارائه شده است.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
مشکلات
آنچه در ادامه میآید پاسخی به «پیام تراکنش» است که بهدلیل خطا پردازش نشده است.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</TransactionResponse>