درخواست ها
نحو
پیام 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>
<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 (Property Data) دارای عناصر و ویژگی های زیر است:
عنصر / @Attribute | رخدادها | تایپ کنید | توضیحات |
---|---|---|---|
Transaction | 1 | Complex element | در اجرای ARI، این عنصر ریشه برای پیامی است که انواع اتاق و بستهها را برای یک ویژگی مشخص میکند. |
Transaction / @timestamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
Transaction / @id | 1 | string | یک شناسه منحصر به فرد برای این پیام درخواست. این مقدار در پیام پاسخ برگردانده می شود. کاراکترهای مجاز عبارتند از: az، AZ، 0-9، _ (خط زیر)، و - (خط تیر). |
Transaction / @partner | 1 | string | حساب شریک برای این پیام. این مقدار رشته، مقدار «کلید شریک» است که در صفحه تنظیمات حساب در مرکز هتل فهرست شده است. توجه: اگر یک Backend دارید که برای چندین حساب فید ارائه میدهد، این مقدار باید با مقدار مشخصه |
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> ارجاع داده می شود. |
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 | یک URL و شرح اختیاری برای عکسی از اتاق یا بسته اتاق داده شده. شما می توانید بیش از یک <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 | هنگامی که این اتاق اقامتگاهی در فضای باز است که دیوارهای ثابت، لوله کشی و کنترل آب و هوا ندارد، این عنصر را ارائه دهید. به عنوان مثال، اتاقهای هتل محل اقامت در فضای باز نیستند، در حالی که کمپینگهایی که مهمانان در چادرها اقامت میکنند و پارکهای RV که مهمانان RV خود را میآورند، اقامتگاه در فضای باز هستند. |
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 | RoomID یک نوع اتاق را مشخص می کند که می تواند با این طرح نرخ ترکیب شود. یک نوع اتاق در عنصر <RoomData> تعریف شده است. |
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 باید یک عدد صحیح بین 0 تا 330 باشد. |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (به شدت توصیه می شود اگر available باشد true باشد) آخرین زمانی از روز را در زمان محلی هتل مشخص می کند که درخواست بازپرداخت کامل مورد توجه قرار می گیرد. این را می توان با refundable_until_days ترکیب کرد تا مشخص شود، به عنوان مثال، "بازپرداخت تا ساعت 16:00 دو روز قبل از اعلام حضور در دسترس است". اگر refundable_until_time تنظیم نشده باشد، مقدار پیشفرض نیمهشب است. |
Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | مشخص می کند که آیا این نوع اتاق شامل صبحانه می شود یا خیر. مقادیر معتبر 0 (یا false ) و 1 (یا true ) هستند. ترجیحاً از |
Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | زودترین زمان ممکن برای ورود به وقت محلی هتل. زمان باید کمتر از 24:00 باشد. |
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>
<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
دیگر وجود نداشتند. توجه داشته باشید که حذف دادههای بسته بر برنامه نرخ کلی تعریف شده در پیامهای Transaction (Property Data)، 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) ممکن است در مجموع حداکثر 4 مهمان داشته باشد. علاوه بر این، ممکن است حداکثر ۴ بزرگسال و حداکثر ۳ کودک داشته باشد. برای اینکه این اتاق قابل رزرو باشد، باید هر سه مورد نیاز ظرفیت رعایت شود. این پیکربندی نماینده یک اتاق معمولی با دو تخت است که هر کدام برای دو نفر مناسب است. ظرفیت کودک یک کمتر از کل ظرفیت است زیرا اتاق باید حداقل یک بزرگسال حضور داشته باشد.
نمونه های گسترده با <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)
دارای عناصر و ویژگی های زیر است:
عنصر / @Attribute | رخدادها | تایپ کنید | توضیحات |
---|---|---|---|
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>