درخواست ها
نحو
پیام 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 (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> و <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 | یک 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 / 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 باید یک عدد صحیح بین 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>
<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
دیگر وجود نداشتند. توجه داشته باشید که حذف دادههای بسته بر برنامه نرخ کلی تعریف شده در پیامهای Transaction (Property Data)، OTA_HotelRateAmountNotifRQ، و OTA_HotelAvailNotifRQ
تأثیر میگذارد (با ارجاع به همان مقدار PackageID
)، و بنابراین ممکن است بهروزرسانیهای متناظر با استفاده از سایر انواع پیامها برای منعکس PackageID_3
PackageID_2
مورد نیاز باشد.
<?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>
درخواست ها
نحو
پیام 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 (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> و <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 | یک 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 / 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 باید یک عدد صحیح بین 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>
<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
دیگر وجود نداشتند. توجه داشته باشید که حذف دادههای بسته بر برنامه نرخ کلی تعریف شده در پیامهای Transaction (Property Data)، OTA_HotelRateAmountNotifRQ، و OTA_HotelAvailNotifRQ
تأثیر میگذارد (با ارجاع به همان مقدار PackageID
)، و بنابراین ممکن است بهروزرسانیهای متناظر با استفاده از سایر انواع پیامها برای منعکس PackageID_3
PackageID_2
مورد نیاز باشد.
<?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>
درخواست ها
نحو
پیام 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>
عناصر و صفات
پیام معامله (داده املاک) دارای عناصر و ویژگی های زیر است:
عنصر / @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> و <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 مربوط به پیام های RatePlanCode و 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_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 باید یک عدد صحیح بین 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>
<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_HOTELRATEAMOUNTNOTNOTIFRQ و OTA_HotelAvailNotifRQ
(با مراجعه به همان مقدار PackageID
) و در نتیجه به روزرسانی های مربوطه با استفاده از PackageID_3
PackageID_2
دیگر ممکن است مورد نیاز باشد که دیگر در اینجا تعریف نشده باشد.
<?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 مهمان داشته باشد. علاوه بر این ، ممکن است حداکثر 4 بزرگسال و حداکثر 3 کودک داشته باشد. برای اینکه این اتاق قابل رزرو باشد ، هر سه مورد نیاز ظرفیت باید برآورده شوند. این پیکربندی نماینده یک اتاق معمولی با دو تخت است که هر یک از آنها دو نفر مناسب است. ظرفیت کودک یکی کمتر از کل ظرفیت است زیرا اتاق باید حداقل یک فرد بالغ حضور داشته باشد.
نمونه های گسترده با <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>
درخواست ها
نحو
پیام 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>
عناصر و صفات
پیام معامله (داده املاک) دارای عناصر و ویژگی های زیر است:
عنصر / @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> و <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 مربوط به پیام های RatePlanCode و 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_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 باید یک عدد صحیح بین 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 | (Same as <PhotoURL> in <RoomData> , but for the package (eg meal photos).) |
نمونه ها
Room and package data
The following is a basic example of how to define a property's room and package data in a Transaction (Property Data) message. The overlay
attribute is used to ensure that, if any data unexpectedly exists already, all existing data is deleted and replaced with the data in this message:
<?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>
Add a room type
The following is an example of how to add a room type and package to existing <Transaction>
data:
<?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>
Remove room types
The following is an example of how to remove existing room types and packages. In this scenario, if the messages in the "Room and package data" and "Add a room type" had been sent to Google previously, the King
and Double
room types would no longer exist once Google receives the message shown. Note that removing package data affects the overall rate plan as defined across Transaction (Property Data), OTA_HotelRateAmountNotifRQ, and OTA_HotelAvailNotifRQ
messages (by referencing the same PackageID
value), and thus corresponding updates using the other message types may be required to reflect that PackageID_2
and PackageID_3
are no longer defined here.
<?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>
Restrict rate plans
The following is an example of how to use the <AllowablePackageIDs>
element to restrict the rate plans allowed for a room type. In this example, the Queen
room type ( RoomID_2
) can only be combined with the package and rate plan identified as 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>
Restrict room capacity
The following is an example of how to use the <Capacity>
, <AdultCapacity>
, <ChildCapacity>
elements to set restrictions on room capacities.
<?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>
The Double room type (RoomID_1) may have up to 4 guests total. Additionally, it may have up to 4 adults and up to 3 children. All three capacity requirements must be satisfied in order for this room to be bookable. This configuration is representative of a typical room with two beds that each fit two people. The child capacity is one less than the total capacity because the room must have at least one adult present.
Extended examples with <RoomFeatures>
and meals
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>
Two double beds
The following is an example of western
style 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 w/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 refer to the following 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>
وعده های غذایی
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>
پاسخ ها
نحو
The TransactionResponse (Property Data)
message uses the following syntax:
<?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>
عناصر و صفات
The TransactionResponse (Property Data)
message has the following elements and attributes:
عنصر / @Attribute | رخدادها | تایپ کنید | توضیحات |
---|---|---|---|
TransactionResponse | 1 | Complex element | The root element indicating the success or issues for a received Transaction request message. |
TransactionResponse / @timestamp | 1 | DateTime | تاریخ و زمان ایجاد این پیام. |
TransactionResponse / @id | 1 | string | The unique identifier from the associated Transaction message. |
TransactionResponse / @partner | 1 | string | حساب شریک برای این پیام. |
TransactionResponse / Success | 0..1 | Success | Indicates that the Transaction message was processed successfully without warnings, errors, or failures. یا |
TransactionResponse / Issues | 0..1 | Issues | A container for one or more issues encountered while processing the Transaction message. یا |
TransactionResponse / Issues / Issue | 1..n | Issue | The description of a warning, error, or failure encountered while processing the Transaction message. جزئیات مربوط به این مسائل را میتوانید در پیامهای خطای وضعیت فید مشاهده کنید. |
TransactionResponse / Issues / Issue / @code | 1 | integer | شناسه مشکل |
TransactionResponse / Issues / Issue / @status | 1 | enum | نوع مشکل مواجه شده مقادیر معتبر |
نمونه ها
موفقیت
The following is a response to a successfully processed Transaction message.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
مسائل
The following is a response to a Transaction message not processed due to errors.
<?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>