Yêu cầu
Cú pháp
Thông báo Transaction (Property Data)
sử dụng cú pháp sau:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
id="message_ID"
partner="partner_key">
<PropertyDataSet action="[overlay|delta]">
<!-- (Required) ID that matches the Hotel List Feed -->
<Property>HotelID</Property>
<RoomData>
<!-- (Required) One room ID per RoomData element -->
<RoomID>RoomID</RoomID>
<Name>
<Text text="room_name" language="language_code"/>
</Name>
<Description>
<Text text="room_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the rate plans allowed for this room type to
those listed here. If specified, don't specify AllowableRoomIDs. -->
<AllowablePackageIDs>
<AllowablePackageID>PackageID</AllowablePackageID>
</AllowablePackageIDs>
<Capacity>max_number_of_occupants</Capacity>
<AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
<ChildCapacity>max_number_of_child_occupants</ChildCapacity>
<OccupancySettings>
<MinOccupancy>min_number_of_occupants</MinOccupancy>
<MinAge>min_age_of_occupants</MinAge>
</OccupancySettings>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
</Caption>
<URL>photo_location</URL>
</PhotoURL>
<RoomFeatures>
<JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
<Beds>
<Bed size="[single|semi_double|double|queen|king]">
<Width unit="cm" number="bed_width"/>
<Length unit="cm" number="bed_length"/>
</Bed>
<!-- Include with any additional beds. -->
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>[shared|private]</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>[smoking|non_smoking]</Smoking>
<BathAndToilet relation="[together|separate]">
<Bath bathtub="[false|true]" shower="[false|true]"/>
<Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<!-- (Optional) Defines the type of views from the room. -->
<!-- Example: <OceanView/> -->
</Views>
</RoomFeatures>
</RoomData>
<PackageData>
<!-- (Required) One package ID per PackageData element -->
<PackageID>PackageID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
</Name>
<Description>
<Text text="package_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the room types allowed for this rate plan to
those listed here. If specified, don't specify AllowablePackageIDs. -->
<AllowableRoomIDs>
<AllowableRoomID>RoomID</AllowableRoomID>
</AllowableRoomIDs>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
<BreakfastIncluded>boolean_value</BreakfastIncluded>
<InternetIncluded>boolean_value</InternetIncluded>
<ParkingIncluded>boolean_value</ParkingIncluded>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
...
</Caption>
<URL>photo_location</URL>
</PhotoURL>
...
<Meals>
<Breakfast
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
<Dinner
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
</Meals>
<CheckinTime>checkin_time</CheckinTime>
<CheckoutTime>checkout_time</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
Phần tử và thuộc tính
Thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) có các phần tử và thuộc tính sau:
Phần tử / @Thuộc tính | Số lần xuất hiện | Loại | Nội dung mô tả |
---|---|---|---|
Transaction | 1 | Complex element | Trong quá trình triển khai ARI, đây là phần tử gốc của thông báo xác định loại phòng và gói dịch vụ cho một cơ sở lưu trú. |
Transaction / @timestamp | 1 | DateTime | Ngày và giờ tạo thông báo này. |
Transaction / @id | 1 | string | Giá trị nhận dạng duy nhất cho thông báo yêu cầu này. Giá trị này được trả về trong thông báo phản hồi. Các ký tự được phép là a-z, A-Z, 0-9, _ (dấu gạch dưới) và - (dấu gạch ngang). |
Transaction / @partner | 1 | string | Tài khoản đối tác dùng cho thư này. Giá trị của chuỗi này là giá trị của "Khoá đối tác" được liệt kê trên
trang Cài đặt tài khoản trong Hotel Center.
Lưu ý: Nếu bạn có phần phụ trợ cung cấp nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này cần phải khớp với giá trị thuộc tính |
Transaction / PropertyDataSet | 1.. | PropertyDataSet | Vùng chứa dùng để xác định loại phòng và gói dịch vụ cho một cơ sở lưu trú. |
Transaction / PropertyDataSet / @action | 0..1 | enum | Loại nội dung cập nhật áp dụng cho định nghĩa về giá phòng. Các giá trị hợp lệ là:
Thuộc tính này là không bắt buộc và đặt mặc định là |
Transaction / PropertyDataSet / Property | 1 | string | Giá trị nhận dạng duy nhất của cơ sở lưu trú. Giá trị này phải khớp với Mã khách sạn được chỉ định bằng phần tử
<id> trong phần tử <listing> của Nguồn cấp dữ liệu danh sách khách sạn. Mã khách sạn cũng có trong Hotel Center. |
Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Mô tả một phòng. Lưu ý: Bạn phải dùng ít nhất một trong hai thuộc tính |
Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | Giá trị nhận dạng duy nhất của một loại phòng. Giá trị này được tham chiếu bằng thuộc tính InvTypeCode ở phần tử <StatusApplicationControl> của các thông báo <OTA_HotelAvailNotifRQ> và <OTA_HotelRateAmountNotifRQ> . |
Transaction / PropertyDataSet / RoomData / Name | 1 | Name | Vùng chứa tên của danh mục phòng bằng một hoặc nhiều ngôn ngữ. |
Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | Xác định tên của danh mục phòng bằng một ngôn ngữ. |
Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | Tên của danh mục phòng bằng ngôn ngữ do thuộc tính language chỉ định. |
Transaction / PropertyDataSet / RoomData / Description | 1 | Name | Vùng chứa nội dung mô tả của danh mục phòng bằng một hoặc nhiều ngôn ngữ. |
Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | Xác định nội dung mô tả của danh mục phòng bằng một ngôn ngữ. |
Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | Nội dung mô tả danh mục phòng bằng ngôn ngữ do thuộc tính language chỉ định. |
Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | Mã ngôn ngữ gồm hai chữ cái. |
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | Vùng chứa các phần tử <AllowablePackageID> .
Nếu bạn chỉ định Nếu không chỉ định Hãy sử dụng |
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | Xác định PackageID của một gói giá có thể kết hợp được với loại phòng này. Gói giá được xác định theo sự kết hợp giữa gói, giá và tình trạng phòng. PackageID
tương ứng với RatePlanCode trong các thông báo
OTA_HotelRateAmountNotifRQ và OTA_HotelAvailNotifRQ.
|
Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | Số người lớn và trẻ em tối đa mà một phòng có thể chứa được trên thực tế. Giá trị này phải lớn hơn hoặc bằng các giá trị NumberOfGuests mà bạn gửi cùng với giá.
Giá trị của Lưu ý: Nếu bạn không đặt |
Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | Số lượng người lớn tối đa mà một phòng có thể chứa được trên thực tế. Giá trị này phải lớn hơn hoặc bằng các giá trị NumberOfGuests mà bạn gửi cùng với giá.
Giá trị của |
Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Số lượng trẻ em tối đa mà một phòng có thể chứa được trên thực tế.
Giá trị của |
Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Các chế độ cài đặt có thể hạn chế hoặc sửa đổi các yêu cầu về số người lưu trú của một phòng.
Phần tử
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Bạn không cần thêm tất cả các phần tử con. |
Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | URL và nội dung chú thích không bắt buộc về hình ảnh của phòng hoặc Gói dịch vụ phòng đã chọn. Bạn có thể chỉ định nhiều <PhotoURL> cho một phòng hoặc Gói dịch vụ phòng.
Phần tử này có các phần tử con sau đây:
<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> |
Chứa thông tin về các đặc điểm của phòng. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | Cho biết kiểu phòng khách sạn kiểu Nhật. Các giá trị hợp lệ là:
|
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Chứa nhiều <Bed> nhất có trong phòng. Xin lưu ý
rằng đệm futon của Nhật Bản không được tính ở đây.
Mỗi
<Bed> đều có các phần tử con sau đây:
<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 | Hãy cung cấp phần tử này khi phòng này là phòng suite. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | Hãy cung cấp phần tử này khi phòng này là phòng con nhộng. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | Phòng này có được dùng chung với những người lưu trú khác như chủ sở hữu
hoặc khách khác hay không. Các giá trị hợp lệ là shared và private . |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | Hãy cung cấp phần tử này khi phòng này là cơ sở lưu trú ngoài trời, không có tường cố định, hệ thống ống nước và hệ thống điều hoà không khí. Ví dụ: phòng khách sạn không phải là nơi lưu trú ngoài trời, trong khi những khu cắm trại là nơi khách lưu trú trong lều và khu đỗ xe RV, nơi khách đưa xe RV riêng đến là nơi lưu trú ngoài trời. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | Cung cấp phần tử này nếu phòng này có hỗ trợ người khuyết tật. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | Phòng này là phòng không hút thuốc hay phòng hút thuốc. Các giá trị hợp lệ là non_smoking và smoking . |
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | Chứa thông tin về bồn tắm và nhà vệ sinh trong phòng.
Thuộc tính này là:
Phần tử này có thể lấy các phần tử con sau đây (không bắt buộc):
Ví dụ: <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | Hãy cung cấp phần tử này khi phòng này có bồn tắm riêng ngoài trời. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | Cung cấp phần tử này khi phòng này có máy điều hoà không khí. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | Cung cấp phần tử này khi phòng này có ban công hoặc mái hiên. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | Các lựa chọn hợp lệ bao gồm:
|
Transaction / PropertyDataSet / PackageData | 0..n | PackageData | Vùng chứa các phần tử mô tả những điều khoản và dịch vụ theo đơn giá không thuộc nội dung mô tả phòng thực tế. Lưu ý: Bạn phải dùng ít nhất một trong hai thuộc tính |
Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | PackageID trong các thông báo này tương ứng với
RatePlanCode trong các thông báo OTA_HotelRateAmountNotifRQ và
OTA_HotelAvailNotifRQ. |
Transaction / PropertyDataSet / PackageData / Name | 1 | Name | Vùng chứa tên gói bằng một hoặc nhiều ngôn ngữ. |
Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | Chỉ định tên của gói bằng một ngôn ngữ. |
Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | Tên của gói bằng ngôn ngữ do thuộc tính language chỉ định. |
Transaction / PropertyDataSet / PackageData / Description | 1 | Description | Vùng chứa nội dung mô tả gói bằng một hoặc nhiều ngôn ngữ. |
Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | Cho biết nội dung mô tả gói bằng một ngôn ngữ. |
Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | Nội dung mô tả gói bằng ngôn ngữ do thuộc tính language chỉ định. |
Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | Mã ngôn ngữ gồm hai chữ cái. |
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | Vùng chứa các phần tử <AllowableRoomID> .
Nếu bạn chỉ định Nếu không chỉ định Hãy sử dụng |
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Xác định RoomID của một loại phòng có thể kết hợp được với gói giá này. Loại phòng được xác định trong phần tử <RoomData> .
|
Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Cho phép niêm yết giá là có thể hoàn tiền đầy đủ hoặc có thể huỷ. Nếu không được cung cấp, sẽ không có thông tin nào về khoản tiền hoàn lại được hiển thị.
Lưu ý: Bạn nên đặt tất cả các thuộc tính. Thông báo cảnh báo trạng thái của nguồn cấp dữ liệu sẽ được tạo khi bạn không thiết lập một hoặc nhiều thuộc tính. Nếu bạn không thiết lập thuộc tính nào thì giá sẽ không xuất hiện dưới dạng có thể hoàn tiền. Khi đặt thuộc tính, hãy lưu ý những điều sau:
|
Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Bắt buộc) Đặt thành 1 hoặc true để cho biết liệu giá cho phép hoàn tiền toàn bộ hay không; nếu không, hãy đặt là 0 hoặc false . |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Bắt buộc nếu available là true ) Chỉ định số ngày trước khi nhận phòng mà người dùng có thể yêu cầu hoàn tiền toàn bộ. Giá trị của refundable_until_days phải là một số nguyên từ 0 đến 330. |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (Nên dùng nếu available là true ) Chỉ định thời gian mới nhất trong ngày theo giờ địa phương của khách sạn mà yêu cầu hoàn tiền toàn bộ sẽ được chấp nhận. Bạn có thể kết hợp thuộc tính này với refundable_until_days để chỉ định rằng "có thể hoàn tiền đến 4 giờ chiều hai ngày trước khi nhận phòng". Nếu bạn không đặt refundable_until_time , giá trị mặc định sẽ là nửa đêm. |
Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | Xác định xem loại phòng này có bao gồm bữa sáng hay không.
Các giá trị hợp lệ là 0 (hoặc false ) và 1 (hoặc true ).
Bạn nên sử dụng |
Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | Thời gian nhận phòng sớm nhất có thể theo giờ địa phương của khách sạn. Thời gian phải ít hơn 24:00. |
Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | Thời gian trả phòng muộn nhất theo giờ địa phương của khách sạn. |
Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | Chỉ định xem phòng có quyền truy cập Internet miễn phí hay không, trong khi các phòng khác không có tiện nghi này. Đừng đặt phần tử này trong
những khách sạn cung cấp Internet miễn phí cho tất cả phòng. Phần tử này không áp dụng cho dịch vụ Internet có dây trong phòng hoặc Internet không dây không có trong phòng khách. Các giá trị hợp lệ là 0 (hoặc false ) và 1 (hoặc true ).
|
Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | Chứa thông tin về các bữa ăn trong gói này.
Phần tử
Các thuộc tính không bắt buộc chỉ được dùng khi Để bộ lọc bữa ăn ( |
Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | Xác định phòng có bao gồm chỗ đỗ xe miễn phí hay không. Nếu không, bãi đỗ xe tại khách sạn này sẽ là dịch vụ có tính phí. Đừng chỉ định giá trị cho phần tử này đối với khách sạn cung cấp chỗ đỗ xe miễn phí.
Các giá trị hợp lệ là 0 (hoặc false ) và 1 (hoặc true ). Giá trị mặc định là false .
|
Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (Giống như <PhotoURL> trong <RoomData> , nhưng đối với gói dịch vụ (ví dụ: ảnh chụp bữa ăn).)
|
Ví dụ
Dữ liệu về phòng và gói dịch vụ
Sau đây là ví dụ cơ bản về cách xác định dữ liệu phòng và gói dịch vụ của cơ sở lưu trú trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú). Thuộc tính overlay
dùng để đảm bảo rằng nếu có dữ liệu tồn tại đột ngột, thì mọi dữ liệu hiện có sẽ bị xoá và thay thế bằng dữ liệu trong thông báo này:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Description>
<Text text="Room with a king bed" language="en"/>
</Description>
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a king bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<Description>
<Text text="Standard rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<Description>
<Text text="Free breakfast rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Thêm loại phòng
Sau đây là ví dụ về cách thêm loại phòng và gói dịch vụ vào dữ liệu <Transaction>
hiện có:
<?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>
Xoá loại phòng
Sau đây là ví dụ về cách xoá loại phòng và gói dịch vụ hiện có. Trong trường hợp này, nếu trước đây thông báo trong "Dữ liệu về phòng và gói dịch vụ" và "Thêm loại phòng" đã được gửi tới Google, thì loại phòng King
và Double
sẽ không còn tồn tại sau khi Google nhận được thông báo hiển thị. Xin lưu ý rằng việc xoá dữ liệu gói sẽ ảnh hưởng đến gói giá chung như được xác định trong các thông báo Giao dịch (Dữ liệu của cơ sở lưu trú), OTA_HotelRateAmountNotifRQ và OTA_HotelAvailNotifRQ
(bằng cách tham chiếu cùng một giá trị PackageID
). Do đó, bạn có thể phải cập nhật tương ứng bằng các loại thông báo khác để phản ánh rằng PackageID_2
và PackageID_3
không còn được xác định ở đây.
<?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>
Hạn chế các gói giá
Sau đây là ví dụ về cách sử dụng phần tử <AllowablePackageIDs>
để hạn chế các gói giá được phép cho một loại phòng. Trong ví dụ này, bạn chỉ có thể kết hợp loại phòng Queen
(RoomID_2
) với gói giá và gói giá được xác định là 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>
Giới hạn sức chứa của phòng
Sau đây là ví dụ về cách sử dụng các phần tử <Capacity>
, <AdultCapacity>
, <ChildCapacity>
để đặt các quy định hạn chế về sức chứa của phòng.
<?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>
Loại phòng đôi (RoomID_1) có thể có tổng cộng tối đa 4 khách. Ngoài ra, phòng này có thể có tối đa 4 người lớn và tối đa 3 trẻ em. Khách hàng phải đáp ứng cả 3 yêu cầu về sức chứa thì phòng này mới có thể đặt trước được. Cấu hình này đại diện cho một căn phòng thông thường có 2 giường, mỗi giường chứa được 2 người. Sức chứa của trẻ nhỏ hơn 1 so với tổng sức chứa vì phòng phải có ít nhất một người lớn có mặt.
Ví dụ mở rộng về <RoomFeatures>
và bữa ăn
JapaneseHotelRoomStyle
không có giá trị mặc định.
Việc bỏ qua giá trị sẽ không dẫn đến lỗi XML. Tuy nhiên, trang thông tin của bạn sẽ không xuất hiện trong kết quả tìm kiếm khi người dùng lọc theo kiểu phòng hoặc giường.
2 giường đơn
Ví dụ sau đây trình bày cách sử dụng <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>
2 giường đôi nhỏ
Sau đây là ví dụ về phòng kiểu western
có 2
giường 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>
Kiểu Nhật không có giường
Sau đây là ví dụ về phòng kiểu Nhật không có giường. Không bắt buộc phải có thông tin về giường đối với phòng kiểu 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>
Giường kiểu phương Tây theo phong cách Nhật Bản
Sau đây là ví dụ về một phòng kiểu japanese_western
có giường kích thước 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>
Nếu đối tác không có thông tin về số lượng giường trong japanese_western
phòng, hãy tham khảo ví dụ sau:
<?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>
Bữa ăn
Ví dụ sau đây xác định siêu dữ liệu của phòng và gói dịch vụ cho các bữa ăn, ảnh, thời gian nhận và trả phòng:
<?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>
Chỉ có bữa sáng
<?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>
Phản hồi
Cú pháp
Thông báo TransactionResponse (Property Data)
sử dụng cú pháp sau:
<?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>
Phần tử và thuộc tính
Thông báo TransactionResponse (Property Data)
có các phần tử và thuộc tính sau:
Phần tử / @Thuộc tính | Số lần xuất hiện | Loại | Nội dung mô tả |
---|---|---|---|
TransactionResponse | 1 | Complex element | Phần tử gốc cho biết thông báo Yêu cầu giao dịch nhận được thành công hay gặp vấn đề. |
TransactionResponse / @timestamp | 1 | DateTime | Ngày và giờ tạo thông báo này. |
TransactionResponse / @id | 1 | string | Giá trị nhận dạng duy nhất lấy từ thông báo Giao dịch tương ứng. |
TransactionResponse / @partner | 1 | string | Tài khoản đối tác dùng cho thư này. |
TransactionResponse / Success | 0..1 | Success | Cho biết rằng thông báo Giao dịch đã được xử lý thành công
mà không có cảnh báo, lỗi hoặc thất bại.
|
TransactionResponse / Issues | 0..1 | Issues | Vùng chứa một hoặc nhiều vấn đề gặp phải trong quá trình xử lý
thông báo Giao dịch.
|
TransactionResponse / Issues / Issue | 1..n | Issue | Nội dung mô tả về cảnh báo, lỗi hoặc lỗi gặp phải trong quá trình xử lý thông báo Giao dịch. Bạn có thể xem thông tin chi tiết về các vấn đề này trong Thông báo lỗi về trạng thái nguồn cấp dữ liệu. |
TransactionResponse / Issues / Issue / @code | 1 | integer | Giá trị nhận dạng của vấn đề. |
TransactionResponse / Issues / Issue / @status | 1 | enum | Loại vấn đề mà bạn gặp phải. Các giá trị hợp lệ là |
Ví dụ
Thành công
Dưới đây là phản hồi cho thông báo Giao dịch được xử lý thành công.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
Vấn đề
Dưới đây là phản hồi cho thông báo Giao dịch chưa được xử lý do xảy ra lỗi.
<?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>