Trang này cung cấp quy cách kỹ thuật và tài liệu tham khảo về từ vựng cho mã đánh dấu dữ liệu có cấu trúc về khách sạn trên Schema.org.
Tổng quan
Dữ liệu có cấu trúc về giá khách sạn cung cấp một định dạng chuẩn mà máy có thể đọc được để giải thích, xác thực và hiển thị giá khách sạn được đăng trên trang web của bạn, bất kể bố cục trực quan của bạn. Trong đó có giá cơ bản, mức giá, thông số kỹ thuật của phòng, các khoản phí và thuế được liệt kê, cũng như chính sách đặt phòng.
Google khuyên bạn nên chú thích các trang trên trang web bằng dữ liệu có cấu trúc chuẩn do Schema.org cung cấp để trích xuất chính xác giá từ các trang trên trang web của bạn.
Dữ liệu có cấu trúc tiêu chuẩn cho phép mở rộng quy trình xác thực độ chính xác về giá bằng cách cải thiện độ tin cậy của trình thu thập thông tin, tăng số lượt xác thực độ chính xác về giá, cho phép gỡ lỗi trực tiếp các vấn đề về độ chính xác về giá và duy trì điểm số nhất quán về độ chính xác về giá.
Nếu mới làm quen với dữ liệu có cấu trúc, hãy tìm hiểu thêm về từ vựng và định dạng dữ liệu có cấu trúc.
Theo mặc định, Google Khách sạn đề xuất định dạng Vi dữ liệu để chú thích các trang trên trang web của bạn nhằm kiểm tra độ chính xác về giá của khách sạn. Định dạng JSON-LD không được dùng nữa để xác thực độ chính xác về giá. Xin lưu ý rằng đề xuất này chỉ áp dụng cho quy trình xác thực độ chính xác về giá khách sạn và không ảnh hưởng đến các trường hợp sử dụng khác của dữ liệu có cấu trúc trên Google (chẳng hạn như kết quả nhiều định dạng trên Google Tìm kiếm). Để tìm hiểu thêm về các định dạng được hỗ trợ cho các tính năng chung của Tìm kiếm, hãy xem các định dạng được hỗ trợ.
Tài liệu này cung cấp nội dung tham khảo chi tiết dành riêng cho việc triển khai dữ liệu có cấu trúc trong Khách sạn.
Dữ liệu có cấu trúc Hotel được dùng để chú thích các trường dành riêng cho khách sạn trong trang web của bạn. Dữ liệu có cấu trúc Hotel có các thuộc tính sau:
Thuộc tính
namevàaddressmakesOffertài sảnHotel priceSpecificationtài sảnhasMerchantReturnPolicytài sảneligibleCustomerTypetài sản
Dữ liệu có cấu trúc HotelRoom được dùng để chú thích các trường dành riêng cho phòng trong trang web của bạn.
Dữ liệu có cấu trúc HotelRoom có các thuộc tính sau:
offerstài sảnThuộc tính
bedvàoccupancyThuộc tính
HotelRoom priceSpecificationincludesObjecttài sảnavailabilitytài sảnamenityFeaturetài sản
Thuộc tính điều hướng được dùng để giải thích các phần tử tương tác và trạng thái trang cho trình thu thập thông tin. Để biết thêm thông tin, hãy xem phần gắn thẻ điều hướng.
Dữ liệu có cấu trúc về khách sạn
Các thuộc tính sau đây áp dụng cho thực thể Khách sạn.
Các thuộc tính name và address
Các thuộc tính name và address được dùng để chú thích tên và vị trí của khách sạn. Sau đây là các thuộc tính name và address:
"@type": "Hotel",
"name": "hotel-name",
"identifier": "hotel-id-1234",
"address": {
"@type": "PostalAddress",
"addressCountry": "XX",
"addressLocality": "City Name",
"addressRegion": "State Name",
"postalCode": "01234",
"streetAddress": "1234 Main St."
},
Cú pháp
Các thuộc tính name và address sử dụng cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">hotel-name</span>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">1234 Main St.</span>,
<span itemprop="addressLocality">City Name</span>,
<span itemprop="addressRegion">State Name</span>
<span itemprop="postalCode">01234</span>
<span itemprop="addressCountry">XX</span>
</div>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "hotel-name",
"identifier": "hotel-id-1234",
"address": {
"@type": "PostalAddress",
"addressCountry": "XX",
"addressLocality": "City Name",
"addressRegion": "State Name",
"postalCode": "01234",
"streetAddress": "1234 Main St."
},
"makesOffer": {
"@type": ["Offer", "LodgingReservation"]
...
}
}
Thuộc tính
Sau đây là các thuộc tính name và address:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| Hotel.name | Required | string | Tên khách sạn |
| Hotel.identifier | Required | string | Mã khách sạn của đối tác. Giá trị nhận dạng phải là một chuỗi riêng biệt cho mỗi khách sạn và phải khớp chính xác với chuỗi được dùng trong nguồn cấp dữ liệu giá. |
| Hotel.address | Optional | PostalAddress | Địa chỉ hoặc vị trí của khách sạn. |
Ví dụ về tên và địa chỉ
Sau đây là ví dụ cơ bản về cách thêm chú giải name và address:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<h1 itemprop="name">Mountain Hotel</h1>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">Technikerstrasse 21</span>,
<span itemprop="addressLocality">Innsbruck</span>,
<span itemprop="addressRegion">Tyrol</span>
<span itemprop="postalCode">6020</span>
<span itemprop="addressCountry">AT</span>
</div>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Mountain Hotel",
"identifier": "hotel-id-1234",
"address": {
"@type": "PostalAddress",
"addressCountry": "AT",
"addressLocality": "Innsbruck",
"addressRegion": "Tyrol",
"postalCode": "6020",
"streetAddress": "Technikerstrasse 21"
},
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
}
}
Tài sản makesOffer
Chú thích makesOffer được dùng để đánh dấu hành trình lưu trú tại khách sạn.
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/InStock",
...
}
Cú pháp
Thuộc tính makesOffer sử dụng cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">hotel-name</span>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
Check-out: <time itemprop="checkoutTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
<meta itemprop="availability" content="https://schema.org/InStock"/>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
...
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "hotel-name",
"identifier": "hotel-id-1234",
"address": { ... },
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/InStock",
"priceSpecification": { ... }
}
}
Thuộc tính
Sau đây là các thuộc tính makesOffer:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| makesOffer | Required | Offer and LodgingReservation | (Các) ưu đãi của khách sạn cho hành trình đã biết.
Thuộc tính |
| LodgingReservation.checkinTime | Required | DateTime | Thời gian nhận phòng theo múi giờ của người dùng. Nếu múi giờ của bạn không được đề cập, thì múi giờ của khách sạn sẽ được xem xét. |
| LodgingReservation.checkoutTime | Required | DateTime | Thời gian trả phòng theo múi giờ của người dùng. Nếu múi giờ của bạn không được đề cập, thì múi giờ của khách sạn sẽ được xem xét. |
Ví dụ về makesOffer
Sau đây là một ví dụ cơ bản để chú thích các sản phẩm khách sạn. Bạn có thể chỉ định nhiều ưu đãi cho một hành trình nhưng trước tiên, bạn nên chỉ định mức giá mà Google hiển thị, sau đó là các mức giá khác. Số tiền của giá mà bạn chỉ định đã bao gồm tất cả các khoản thuế hiện hành.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">Mountain Hotel</span>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
</div>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1200.74</span>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Mountain Hotel",
"identifier": "hotel-id-1234",
"address": { ... },
"makesOffer": [
{
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
},
{
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1200.74,
"priceCurrency": "USD"
}
}
]
}
Tài sản Hotel priceSpecification
Thuộc tính này được dùng để chú thích thông tin về giá cho khách sạn hoặc phòng khách sạn. Bạn cần có thêm 2 thuộc tính để chú thích giá và thuế. Bạn nên sử dụng CompoundPriceSpecification để chỉ định tổng thông tin về giá, chẳng hạn như mức cơ bản, thuế và chiết khấu.
Sử dụng UnitPriceSpecification để chỉ định các loại thuế bổ sung hoặc các loại phí đặc biệt, chẳng hạn như ResortFee, GenericTax và ServiceFee. Thuộc tính priceSpecification được đi kèm với thuộc tính Offer.
{
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
},
...
]
}
}
Cú pháp
Thuộc tính Hotel priceSpecification sử dụng cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">hotel-name</span>
...
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name"></span>
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">GenericTax</span>
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
<meta itemprop="priceComponentType" content="GenericTax"/>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Discount</span>
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
<meta itemprop="priceComponentType" content="Discount"/>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
...
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "",
"price": "float",
"priceCurrency": "currency"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency",
"priceComponentType": "GenericTax",
"potentialAction": {
"@type": "https://schema.org/PayAction",
"recipient": {
"@type": "OnlineBusiness",
"name": "name-of-the-business"
}
}
},
{
"@type": "UnitPriceSpecification",
"name": "Discount",
"price": "float",
"priceCurrency": "currency",
"priceComponentType": "Discount"
}
]
}
}
}
Thuộc tính
Sau đây là các thuộc tính hotel priceSpecification:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| Hotel.Offer.priceSpecification.price | Required | float | Tổng giá bao gồm thuế và phí của khách sạn. Bạn phải luôn chú thích giá của Google trên trang đích cùng với thông tin chi tiết đầy đủ về giá. Việc chú thích thông tin chi tiết về giá giúp bạn hoàn tất quy trình kiểm tra độ chính xác về giá. Google chấp nhận cả giá ở cấp khách sạn và giá ở cấp phòng. |
| Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Mã đơn vị tiền tệ gồm ba chữ cái cho mức giá đã chỉ định. Ví dụ: "USD"
. |
| Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | Bảng giá chi tiết bao gồm cả thuế và phí của khách sạn. Có hai loại dữ liệu có cấu trúc về giá:
Bạn phải đặt các giá trị trong thuộc tính |
| Hotel.Offer.priceSpecification.priceComponent. potentialAction | Optional | PayAction | Điểm thanh toán của khách sạn.Quy trình thanh toán của khách sạn bao gồm giá được tính trong thời gian trả phòng trên trang web đặt phòng và tại khách sạn trong thời gian nhận phòng. Bạn nên sử dụng thuộc tính Google hỗ trợ 2 chế độ cài đặt sau đây cho người nhận
|
Ví dụ
Sau đây là ví dụ về quy cách giá khách sạn.
Giá
Sau đây là ví dụ cơ bản về cách thêm dữ liệu có cấu trúc về giá vào trang web của bạn. Bạn có thể thêm nhiều ưu đãi ở cấp khách sạn vào thuộc tính makesOffer.
Các loại PostalAddress như addressCountry, postalCode, streetAddress và các trường khác là bắt buộc nếu bạn chọn chỉ định thuộc tính address. Giá do Google hiển thị phải được liệt kê đầu tiên trong thuộc tính makesOffer. Số tiền giá mà bạn chỉ định đã bao gồm tất cả các khoản thuế hiện hành.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">ACME Hotel</span>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">Technikerstrasse 21</span>,
<span itemprop="addressLocality">Innsbruck</span>,
<span itemprop="addressRegion">Tyrol</span>
<span itemprop="postalCode">6020</span>
<span itemprop="addressCountry">AT</span>
</div>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
</div>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1200.74</span>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "ACME Hotel",
"identifier": "hotel-id-1234",
"address": {
"@type": "PostalAddress",
"addressCountry": "AT",
"addressLocality": "Innsbruck",
"addressRegion": "Tyrol",
"postalCode": "6020",
"streetAddress": "Technikerstrasse 21"
},
"makesOffer": [
{
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
},
{
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1200.74,
"priceCurrency": "USD"
}
}
]
}
Bảng chi tiết về giá
Sau đây là ví dụ về thuộc tính priceSpecification có bảng chi tiết về giá. Mức cơ bản, các loại thuế như thuế chung và chiết khấu được xác định bằng thành phần UnitPriceSpecification. Hãy nhớ đặt trường priceComponentType bằng các giá trị tương ứng với thành phần UnitPriceSpecification.
Bạn nên chỉ định tổng giá cho thời gian lưu trú trong thuộc tính CompoundPriceSpecification. Bạn nên chỉ định bảng chi tiết giá trong thuộc tính priceComponent.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<h1 itemprop="name">ACME Hotel</h1>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">123 Main street</span>,
<span itemprop="addressLocality">Mountain View</span>,
<span itemprop="addressRegion">Santa Clara</span>
<span itemprop="postalCode">94040</span>
<span itemprop="addressCountry">US</span>
</div>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
Total Price: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
<!-- Price Components -->
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Base Rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1150</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">172.74</span>
<meta itemprop="priceComponentType" content="GenericTax" />
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Discount</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">-100</span>
<meta itemprop="priceComponentType" content="Discount" />
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "ACME Hotel",
"identifier": "hotel-id-1234",
"address": {...},
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "",
"price": 1150,
"priceCurrency": "USD"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": 172.74,
"priceCurrency": "USD",
"priceComponentType": "GenericTax"
},
{
"@type": "UnitPriceSpecification",
"name": "Discount",
"price": -100,
"priceCurrency": "USD",
"priceComponentType": "Discount"
}
]
}
}
}
Điểm thanh toán
Sau đây là ví dụ về quy cách potentialAction khi sử dụng loại người nhận của PayAction.
Tổng giá của gói là 11.700.000 VND và trang web trực tuyến tính một phần của tổng giá là 11.500.000 VND tại thời điểm đặt phòng được chỉ định bằng "@type": "OnlineBusiness" và người dùng phải thanh toán 200.000 VND còn lại tại thời điểm nhận phòng tại khách sạn được chỉ định bằng @type": "Hotel".
Bạn phải chỉ định thành phần potentialAction để chia nhỏ khoản thanh toán tại thời điểm đặt phòng và tại khách sạn. Nếu bạn không chỉ định, thì payAction sẽ coi khoản thanh toán tại thời điểm đặt phòng là phương thức thanh toán mặc định.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">ACME Hotel</span>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
Price Due: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1170</span>
<!-- Paid Online -->
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1150</span>
<div itemprop="potentialAction" itemscope itemtype="https://schema.org/PayAction">
<div itemprop="recipient" itemscope itemtype="https://schema.org/OnlineBusiness">
<span itemprop="name">myonlinebusiness</span>
</div>
</div>
</div>
<!-- Paid at Hotel -->
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">20</span>
<div itemprop="potentialAction" itemscope itemtype="https://schema.org/PayAction">
<div itemprop="recipient" itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">The Langham, Boston</span>
</div>
</div>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "ACME Hotel",
"identifier": "hotel-id-1234",
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00]",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1170,
"priceCurrency": "USD",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"price": 1150,
"priceCurrency": "USD",
"potentialAction": {
"@type": "https://schema.org/PayAction",
"recipient": {
"@type": "OnlineBusiness",
"name": "myonlinebusiness"
}
}
},
{
"@type": "UnitPriceSpecification",
"price": 20,
"priceCurrency": "USD",
"potentialAction": {
"@type": "https://schema.org/PayAction",
"recipient": {
"@type": "Hotel",
"name": "The Langham, Boston",
"address": { ... }
}
}
}
]
}
}
}
Tài sản hasMerchantReturnPolicy
Thuộc tính này được dùng để chú thích chính sách hoàn tiền của người bán trong hành trình.
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"refundType": "https://schema.org/FullRefund",
"merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
"restockingFee": 0
}
Cú pháp
hasMerchantReturnPolicy có cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
...
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
<div itemprop="hasMerchantReturnPolicy" itemscope itemtype="https://schema.org/MerchantReturnPolicy">
<link itemprop="returnPolicyCategory" href="https://schema.org/MerchantReturnFiniteReturnWindow"/>
<link itemprop="refundType" href="https://schema.org/FullRefund"/>
<meta itemprop="merchantReturnDays" content="YYYY-MM-DDTHH:mm:ss"/>
<meta itemprop="restockingFee" content="0"/>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
...
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"priceSpecification": { ... },
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"refundType": "https://schema.org/FullRefund",
"merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
"restockingFee": 0
}
}
}
Thuộc tính
Sau đây là thuộc tính hasMerchantReturnPolicy:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| Offer.hasMerchantReturnPolicy | Optional | MerchantReturnPolicy | Chính sách hoàn tiền của người bán. Đối tác nên sử dụng Nếu bạn không chỉ định hoặc để trống |
Ví dụ về chính sách trả lại hàng
Sau đây là ví dụ cơ bản về dữ liệu có cấu trúc cho một khách sạn có thông tin chi tiết về phòng và tổng giá bao gồm thuế và phí. Ví dụ này biểu thị một lượt lưu trú có thể huỷ mà không bị tính phí cho đến 11 giờ tối (giờ UTC) ngày 18 tháng 12 năm 2023. Đối tác nên sử dụng "MerchantReturnPolicy.restockingFee" để cho biết chính sách huỷ không hoàn lại toàn bộ số tiền lưu trú. Giá trị mặc định của restockingFee là 0 đô la Mỹ.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">ACME Hotel</span>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
<div itemprop="hasMerchantReturnPolicy" itemscope itemtype="https://schema.org/MerchantReturnPolicy">
<link itemprop="returnPolicyCategory" href="https://schema.org/MerchantReturnFiniteReturnWindow"/>
<link itemprop="refundType" href="https://schema.org/FullRefund"/>
Cancellation Deadline: <time itemprop="merchantReturnDays" content="2023-12-18T23:00:00">2023-12-18 23:00:00</time>
Fee: $<span itemprop="restockingFee">0</span>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "ACME Hotel",
"identifier": "hotel-id-1234",
"description": "Beautiful resort in the outskirts of the city",
"address": {...},
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-12-15 16:00:00",
"checkoutTime": "2023-12-20 11:00:00",
"priceSpecification": {...},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"refundType": "https://schema.org/FullRefund",
"merchantReturnDays": "2023-12-18 23:00:00",
"restockingFee": 0
}
}
}
Tài sản eligibleCustomerType
Bạn có thể dùng thuộc tính này để chú thích các chương trình phần thưởng dành cho khách hàng là thành viên của khách sạn.
"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency"
}
Cú pháp
Thuộc tính eligibleCustomerType có cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
...
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<meta itemprop="eligibleCustomerType" content="RewardsMember"/>
...
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
...
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"eligibleCustomerType": "RewardsMember",
"priceSpecification": { ... }
}
}
Thuộc tính
Sau đây là thuộc tính eligibleCustomerType:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| Offer.eligibleCustomerType | Optional | BusinessEntityType | Chương trình khách hàng thân thiết hoặc phần thưởng dành cho thành viên mà khách hàng được hưởng. Nhiều trang khách sạn hiển thị giá dành cho thành viên cùng với giá công khai để khuyến khích người dùng đăng ký chương trình khách hàng thân thiết. Bạn có thể chỉ định giá chỉ dành cho một số đối tượng nhất định, chẳng hạn như giá dành cho thành viên, bằng cách đặt thuộc tínhOffer.eligibleCustomerType. |
Ví dụ
Sau đây là ví dụ về giá dành cho thành viên chương trình phần thưởng.
Giá dành cho thành viên
Sau đây là ví dụ cơ bản về quy cách giá dành cho thành viên hoặc giá có chiết khấu cho chương trình khách hàng thân thiết. Khách hàng là "thành viên chương trình phần thưởng" của khách sạn.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">ACME Hotel</span>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<!-- Address details -->
</div>
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<span itemprop="name">RewardsMember</span>
<meta itemprop="eligibleCustomerType" content="RewardsMember"/>
Check-in: <time itemprop="checkinTime" content="2023-12-15T16:00:00">Dec 15, 2023 4:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-12-20T11:00:00">Dec 20, 2023 11:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1342.74</span>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1069.98</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">172.74</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">ResortFee</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">100</span>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "ACME Hotel",
"identifier": "hotel-id-1234",
"address": {...},
"makesOffer": {
"@type": ["Offer", "LodgingReservation"],
"name": "RewardsMember",
"checkinTime": "2023-12-15 16:00:00",
"checkoutTime": "2023-12-20 11:00:00",
"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1342.74,
"priceCurrency": "USD",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "Base rate",
"price": 1069.98,
"priceCurrency": "USD"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": 172.74,
"priceCurrency": "currency"
},
{
"@type": "UnitPriceSpecification",
"name": "ResortFee",
"price": 100,
"priceCurrency": "USD"
}
]
}
}
}
Giá dành cho thành viên và giá thông thường
Đây là ví dụ về cả chú thích giá thông thường và giá dành cho thành viên. Giá dành cho thành viên được liệt kê trước, sau đó là giá thông thường.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">ACME Hotel</span>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<!-- Address details -->
</div>
<!-- Member Rate -->
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<span itemprop="name">RewardsMember</span>
<meta itemprop="eligibleCustomerType" content="RewardsMember"/>
Check-in: <time itemprop="checkinTime" content="2023-12-15T16:00:00">Dec 15, 2023 4:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-12-20T11:00:00">Dec 20, 2023 11:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1342.74</span>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1069.98</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="currency">$</span><span itemprop="price">172.74</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">ResortFee</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">100</span>
</div>
</div>
</div>
<!-- Regular Rate -->
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<span itemprop="name">regularRate</span>
Check-in: <time itemprop="checkinTime" content="2023-12-15T16:00:00">Dec 15, 2023 4:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-12-20T11:00:00">Dec 20, 2023 11:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1572.24</span>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1369.98</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="currency">$</span><span itemprop="price">202.26</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">ResortFee</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">100</span>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "ACME Hotel",
"identifier": "hotel-id-1234",
"address": {...},
"makesOffer": [
{
"@type": ["Offer", "LodgingReservation"],
"name": "RewardsMember",
"checkinTime": "2023-12-15 16:00:00",
"checkoutTime": "2023-12-20 11:00:00",
"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1342.74,
"priceCurrency": "USD",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "Base rate",
"price": 1069.98,
"priceCurrency": "USD"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": 172.74,
"priceCurrency": "currency"
},
{
"@type": "UnitPriceSpecification",
"name": "ResortFee",
"price": 100,
"priceCurrency": "USD"
}
]
}
},
{
"@type": ["Offer", "LodgingReservation"],
"name": "regularRate",
"checkinTime": "2023-12-15 16:00:00",
"checkoutTime": "2023-12-20 11:00:00",
"priceSpecification": {
"price": 1572.24,
"priceCurrency": "USD",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "Base rate",
"price": 1369.98,
"priceCurrency": "USD"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": 202.26,
"priceCurrency": "currency"
},
{
"@type": "UnitPriceSpecification",
"name": "ResortFee",
"price": 100,
"priceCurrency": "USD"
}
]
}
}
]
}
Dữ liệu có cấu trúc HotelRoom
Các thuộc tính sau đây áp dụng cho thực thể HotelRoom.
Tài sản offers
Chú thích offers được dùng để đánh dấu hành trình của phòng. Bạn nên sử dụng thuộc tính offers cho quy cách HotelRoom.
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "hotel-room-id-1234",
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"priceSpecification": {...}
}
Cú pháp
Thuộc tính offers có cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom">
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
Check-out: <time itemprop="checkoutTime" content="YYYY-MM-DDTHH:mm:ss">YYYY-MM-DD[THH:mm:ss]</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
...
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "HotelRoom",
"identifier": "hotel-room-id-1234",
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
...
}
}
}
Thuộc tính
Sau đây là các thuộc tính offers:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| offers | Required | Offer and LodgingReservation | Quy cách về giá phòng cho hành trình đã biết. Thuộc tính |
| LodgingReservation.checkinTime | Required | DateTime | Giờ nhận phòng theo múi giờ của người dùng. Nếu múi giờ của bạn không được đề cập, thì múi giờ của khách sạn sẽ được xem xét. |
| LodgingReservation.checkoutTime | Required | DateTime | Thời gian trả phòng theo múi giờ của người dùng. Nếu múi giờ của bạn không được đề cập, thì múi giờ của khách sạn sẽ được xem xét. |
Ví dụ về offers
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom">
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "HotelRoom",
"identifier": "hotel-room-id-1234",
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
}
}
Thuộc tính bed và occupancy
Thuộc tính bed được dùng để chú thích loại giường và số lượng giường có trong phòng. Thuộc tính occupancy được dùng để chú thích số lượng khách trong phòng. Bạn có thể chỉ định các thuộc tính bed và occupancy bằng thuộc tính HotelRoom.
"@type": "Hotel",
"identifier": "hotel-id-1234",
"containsPlace": {
"@type": ["HotelRoom", "Product"],
"identifier": "hotel-room-id",
"bed": {
"@type": "BedDetails",
"numberOfBeds": "integer",
"typeOfBed": "KING"
},
"occupancy": {
"@type": "QuantitativeValue",
"value": "integer"
}
}
Cú pháp
Các thuộc tính bed và occupancy có cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">hotel-name</span>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
<span itemprop="name">room-name</span>
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<!-- Bed Details -->
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">integer</span>
<span itemprop="typeOfBed">KING</span>
</div>
<!-- Occupancy -->
<div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
Occupancy: <span itemprop="value">integer</span>
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "hotel-name",
"identifier": "hotel-id-1234",
"containsPlace": {
"@type": ["HotelRoom", "Product"],
"name": "room-name",
"identifier": "hotel-room-id-1234",
"bed": {
"@type": "BedDetails",
"numberOfBeds": "integer",
"typeOfBed": "KING"
},
"occupancy": {
"@type": "QuantitativeValue",
"value": "integer"
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": {
"@type": "UnitPriceSpecification",
"name": "",
"price": "float",
"priceCurrency": "currency"
},
...
}
}
}
}
Bạn chỉ có thể đặt các thuộc tính bed và occupancy bằng cách sử dụng thuộc tính HotelRoom. Bạn có thể thêm thông tin cụ thể về phòng, bao gồm cả giá ở cấp phòng, vào thuộc tính Hotel thông qua thuộc tính containsPlace. Tham khảo ví dụ về quy cách Hotel và HotelRoom.
Thuộc tính
Sau đây là các thuộc tính bed và occupancy:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| HotelRoom.bed | Optional (Recommended) | bed | Loại giường có trong cơ sở lưu trú và số lượng người lưu trú trong phòng. Sau đây là các giá trị được hỗ trợ:
|
| HotelRoom.occupancy | Optional (Recommended) | QuantitativeValue | Số lượng khách trong phòng khách sạn. Loại cho số người cư trú là Số người lưu trú là một thuộc tính rõ ràng của |
| containsPlace | Optional (Recommended) | LocationFeatureSpecification | Thuộc tính này được dùng để chú thích giá ở cấp phòng liên kết với các phòng cụ thể. Bạn cũng có thể dùng thuộc tính này để chỉ định các tiện nghi trong phòng. Tìm hiểu thêm về cách sử dụng |
Ví dụ
Sau đây là ví dụ về quy cách giường và số người lưu trú.
Ví dụ về HotelRoom
Sau đây là ví dụ cơ bản về giường và số người lưu trú cho một quy cách phòng.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<span itemprop="name">Deluxe Room, 1 King Bed</span>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">KING</span>
</div>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">SINGLE</span>
</div>
<div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
Occupancy: <span itemprop="value">2</span>
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room, 1 King Bed",
"identifier": "hotel-room-id-1234",
"bed": [
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "KING"
},
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "SINGLE"
}
],
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
}
}
Ví dụ về Hotel và HotelRoom
Sau đây là ví dụ về cách chú thích các thuộc tính Hotel và HotelRoom cùng với bed, occupancy và priceSpecification.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">hotel-name</span>
<meta itemprop="identifier" content="hotel-id-1234"/>
<div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
<span itemprop="name">Deluxe Room, 1 King Bed</span>
<meta itemprop="identifier" content="hotel-room-id"/>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">KING</span>
</div>
<div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
Occupancy: <span itemprop="value">2</span>
</div>
<div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
<span itemprop="name">Minibar</span>
<meta itemprop="value" content="true"/>
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "hotel-name",
"identifier": "hotel-id-1234",
"containsPlace": {
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room, 1 King Bed",
"identifier": "hotel-room-id",
"bed": {
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "KING"
},
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"amenityFeature": {
"@type": "LocationFeatureSpecification",
"name": "Minibar",
"value": true
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
}
}
}
Tài sản HotelRoom priceSpecification
Quy cách về giá phòng khách sạn tương tự như quy cách về giá khách sạn.Điểm khác biệt là giá phòng được chỉ định bằng thuộc tính Product.offers thay vì thuộc tính Hotel.makesOffer.
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": {
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency"
}
...
}
Cú pháp
Thuộc tính priceSpecification cho phòng khách sạn có cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
...
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name"></span>
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">GenericTax</span>
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
<meta itemprop="priceComponentType" content="GenericTax"/>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Discount</span>
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">float</span>
<meta itemprop="priceComponentType" content="Discount"/>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": ["HotelRoom", "Product"],
...
"bed": {
"@type": "BedDetails",
"numberOfBeds": "integer",
"typeOfBed": "KING"
},
"occupancy": {
"@type": "QuantitativeValue",
"value": "integer"
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "",
"price": "float",
"priceCurrency": "currency"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": "float",
"priceCurrency": "currency",
"priceComponentType": "GenericTax"
},
{
"@type": "UnitPriceSpecification",
"name": "Discount",
"price": "float",
"priceCurrency": "currency",
"priceComponentType": "Discount"
}
]
}
}
}
Thuộc tính
Sau đây là các thuộc tính HotelRoom priceSpecification:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| Hotel.Offer.priceSpecification.price | Required | float | Giá mỗi phòng bao gồm thuế và phí cho Bạn phải luôn chú thích giá của Google trên trang đích cùng với thông tin chi tiết đầy đủ về giá. Việc chú thích thông tin chi tiết về giá giúp bạn hoàn tất quy trình kiểm tra độ chính xác về giá. Google chấp nhận cả giá ở cấp khách sạn và giá ở cấp phòng. |
| Hotel.Offer.priceSpecification.priceCurrency | Required | currency | Mã đơn vị tiền tệ gồm ba chữ cái cho mức giá đã chỉ định. Ví dụ: "USD"
. |
| Hotel.Offer.priceSpecification.priceComponent | Optional | UnitPriceSpecification[] | Bảng giá chi tiết bao gồm thuế và phí cho phòng khách sạn và số người lưu trú có các ưu đãi được liên kết với
|
Ví dụ
Sau đây là ví dụ về quy cách giá HotelRoom.
Ví dụ về tổng giá phòng
Sau đây là ví dụ cơ bản về cách xác định tổng giá cho thời gian lưu trú và giá theo số người lưu trú.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
<span itemprop="name">Deluxe Room King, 1 Single Bed</span>
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">KING</span>
</div>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">SINGLE</span>
</div>
<div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
Occupancy: <span itemprop="value">2</span>
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1232.74</span>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room King, 1 Single Bed",
"identifier": "hotel-room-id-1234",
"bed": [
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "KING"
},
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "SINGLE"
}
],
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1232.74,
"priceCurrency": "USD"
}
}
}
Ví dụ về bảng chi tiết giá phòng
Sau đây là ví dụ về giá theo phòng hoặc gói. Bảng chi tiết giá được xác định cho loại phòng, chẳng hạn như phòng Deluxe và loại bed và occupancy, chẳng hạn như giường KING và SINGLE, cũng như số người lưu trú là 2 khách lưu trú.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
<span itemprop="name">Deluxe Room King, 1 Single Bed</span>
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">KING</span>
</div>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">SINGLE</span>
</div>
<div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
Occupancy: <span itemprop="value">2</span>
</div>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
Total: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Base rate</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1150</span>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">GenericTax</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">172.74</span>
<meta itemprop="priceComponentType" content="GenericTax"/>
</div>
<div itemprop="priceComponent" itemscope itemtype="https://schema.org/UnitPriceSpecification">
<span itemprop="name">Discount</span>: <span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">-100</span>
<meta itemprop="priceComponentType" content="Discount"/>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room King, 1 Single Bed",
"identifier": "hotel-room-id-1234",
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"bed": [
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "KING"
},
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "SINGLE"
}
],
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD",
"priceComponent": [
{
"@type": "UnitPriceSpecification",
"name": "Base rate",
"price": 1150,
"priceCurrency": "USD"
},
{
"@type": "UnitPriceSpecification",
"name": "GenericTax",
"price": 172.74,
"priceCurrency": "USD",
"priceComponentType": "GenericTax"
},
{
"@type": "UnitPriceSpecification",
"name": "Discount",
"price": -100,
"priceCurrency": "USD",
"priceComponentType": "Discount"
}
]
}
}
}
Tài sản includesObject
Thuộc tính này dùng để chú thích các dịch vụ theo mức giá cụ thể được cung cấp trong khách sạn hoặc phòng, chẳng hạn như các lựa chọn bữa ăn và dịch vụ đỗ xe. Bạn có thể chú thích includesObject trong thuộc tính Hotel hoặc HotelRoom.
{
"includesObject": [
{
"@type": "TypeAndQuantityNode",
"typeOfGood": {
"@type": "Service",
"name": "Valet"
}
},
{
"@type": "TypeAndQuantityNode",
"amountOfThisGood": "float",
"unitText": "currency",
"typeOfGood": {
"@type": "FoodService",
"name": "MealCredit"
}
}
]
}
Cú pháp
includesObject có cú pháp sau đây cho các dịch vụ theo mức giá cụ thể có trong phòng:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
...
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
<div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
<div itemprop="typeOfGood" itemscope itemtype="https://schema.org/Service">
<span itemprop="name">Valet</span>
</div>
</div>
<div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
<meta itemprop="amountOfThisGood" content="float"/>
<meta itemprop="unitText" content="currency"/>
<div itemprop="typeOfGood" itemscope itemtype="https://schema.org/FoodService">
<span itemprop="name">MealCredit</span>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
...
"@type": ["HotelRoom", "Product"],
...
"offers": {
"@type": ["Offer", "LodgingReservation"],
...
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": "float",
"priceCurrency": "currency"
},
"includesObject": [
{
"@type": "TypeAndQuantityNode",
"typeOfGood": {
"@type": "Service",
"name": "Valet"
}
},
{
"@type": "TypeAndQuantityNode",
"amountOfThisGood": "float",
"unitText": "currency",
"typeOfGood": {
"@type": "FoodService",
"name": "MealCredit"
}
}
]
}
}
Thuộc tính
includesObject có thuộc tính sau:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| Offer.includesObject | Optional | TypeAndQuantityNode | Các dịch vụ được cung cấp trong khách sạn hoặc phòng. Các tính năng dành riêng cho mức giá được cung cấp bằng thuộc tính Các tính năng dành riêng cho mức giá cũng có thể được đưa vào các ưu đãi ở cấp cơ bản hoặc có thể được chỉ định là gói bổ sung với mức giá bổ sung.
|
Ví dụ về includesObject
Sau đây là ví dụ cơ bản về các tính năng theo đơn giá cụ thể cho dịch vụ đỗ xe và dịch vụ ăn uống. Bạn nên chỉ định các tính năng dành riêng cho mức giá bằng thuộc tính Offer.includesObject. Bạn nên dùng trường tên trên TypeAndQuantityNode.typeOfGood để cho biết loại dịch vụ.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
<span itemprop="name">Deluxe Room, 1 King Bed</span>
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
<!-- Included Services -->
<div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
<div itemprop="typeOfGood" itemscope itemtype="https://schema.org/Service">
<span itemprop="name">Valet</span>
</div>
</div>
<div itemprop="includesObject" itemscope itemtype="https://schema.org/TypeAndQuantityNode">
<meta itemprop="amountOfThisGood" content="50"/>
<meta itemprop="unitText" content="USD"/>
<div itemprop="typeOfGood" itemscope itemtype="https://schema.org/FoodService">
<span itemprop="name">MealCredit</span>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room, 1 King Bed",
"identifier": "hotel-room-id-1234",
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
},
"includesObject": [
{
"@type": "TypeAndQuantityNode",
"typeOfGood": {
"@type": "Service",
"name": "Valet"
}
},
{
"@type": "TypeAndQuantityNode",
"amountOfThisGood": 50,
"unitText": "USD",
"typeOfGood": {
"@type": "FoodService",
"name": "MealCredit"
}
}
]
}
}
Tài sản availability
Thuộc tính offer.availability được dùng để chú thích các hành trình đã bán hết cho phòng khách sạn.
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/SoldOut"
}
Cú pháp
Thuộc tính availability có cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
...
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
...
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
...
"@type": ["HotelRoom", "Product"],
"name": "room-type",
"identifier": "hotel-room-id-1234",
"bed": {
"@type": "BedDetails",
"numberOfBeds": "integer",
"typeOfBed": "KING"
},
"occupancy": {
"@type": "QuantitativeValue",
"value": "integer"
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "YYYY-MM-DD[THH:mm:ss]",
"checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
"availability": "https://schema.org/SoldOut"
}
}
Thuộc tính
Sau đây là thuộc tính availability:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| Offer.availability | Optional | ItemAvailability | Tình trạng còn phòng của khách sạn hoặc phòng. Tỷ lệ được trích xuất từ
Một mặt hàng không có Bạn không cần chỉ định |
Ví dụ về availability
Sau đây là một ví dụ cơ bản minh hoạ tình trạng phòng khách sạn không có sẵn. Bạn nên thêm loại giường, số lượng giường và thông tin chi tiết về số người lưu trú cho phòng được chỉ định.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/HotelRoom https://schema.org/Product">
<span itemprop="name">Deluxe Room, 1 King Bed</span>
<meta itemprop="identifier" content="hotel-room-id-1234"/>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">KING</span>
</div>
<div itemprop="bed" itemscope itemtype="https://schema.org/BedDetails">
<span itemprop="numberOfBeds">1</span>
<span itemprop="typeOfBed">SINGLE</span>
</div>
<div itemprop="occupancy" itemscope itemtype="https://schema.org/QuantitativeValue">
Occupancy: <span itemprop="value">2</span>
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<meta itemprop="availability" content="https://schema.org/SoldOut"/>
Sold Out
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<!-- Price Specification details -->
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": ["HotelRoom", "Product"],
"name": "Deluxe Room, 1 King Bed",
"identifier": "hotel-room-id-1234",
"bed": [
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "KING"
},
{
"@type": "BedDetails",
"numberOfBeds": 1,
"typeOfBed": "SINGLE"
}
],
"occupancy": {
"@type": "QuantitativeValue",
"value": 2
},
"offers": {
"@type": ["Offer", "LodgingReservation"],
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"availability": "https://schema.org/SoldOut",
"priceSpecification": {...}
}
}
Tài sản amenityFeature
Bạn có thể chỉ định tiện nghi ở loại Hotel hoặc HotelRoom bằng cách sử dụng thuộc tính amenityFeature. Bạn nên dùng thuộc tính containsPlace để chỉ định các tiện nghi được cung cấp trong phòng.
{
"@type": "Hotel",
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "HotTub",
"hoursAvailable": {
"@type": "OpeningHoursSpecification",
"opens": "HH:mm:ss",
"closes": "HH:mm:ss"
}
},
{
"@type": "LocationFeatureSpecification",
"name": "GymFitnessEquipment",
"value": "boolean"
}
],
"containsPlace": {
"@type": "HotelRoom",
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Minibar",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Smoking",
"value": false
}
]
}
}
Cú pháp
Thuộc tính amenityFeature và containsPlace có cú pháp sau:
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
...
<!-- Hotel Amenity -->
<div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
<span itemprop="name">HotTub</span>
<div itemprop="hoursAvailable" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
<time itemprop="opens" content="HH:mm:ss">HH:mm:ss</time>
<time itemprop="closes" content="HH:mm:ss">HH:mm:ss</time>
</div>
</div>
<div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom">
<!-- Room Amenity -->
<div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
<span itemprop="name">Minibar</span>
<meta itemprop="value" content="boolean"/>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
...
"amenityFeature": {
"@type": "LocationFeatureSpecification",
"name": "HotTub",
"hoursAvailable": {
"@type": "OpeningHoursSpecification",
"opens": "HH:mm:ss",
"closes": "HH:mm:ss"
}
},
"containsPlace": {
"@type": "HotelRoom",
"amenityFeature": {
"@type": "LocationFeatureSpecification",
"name": "Minibar",
"value": "boolean"
}
}
}
Tiện nghi
Các tiện nghi sau đây được cho phép và xác định trong thuộc tính name.
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| amenityFeature.AC | Optional | boolean | Cơ sở lưu trú có máy điều hoà không khí hay không. |
| amenityFeature.AirportShuttle | Optional | boolean | Cơ sở lưu trú có cung cấp dịch vụ đưa đón đến sân bay và các nhà ga khác hoặc theo chiều ngược lại hay không. |
| amenityFeature.Balcony | Optional | boolean | Cơ sở lưu trú có ban công hay không. |
| amenityFeature.BeachAccess | Optional | boolean | Cơ sở lưu trú có lối ra bãi biển công cộng gần khuôn viên hay không. |
| amenityFeature.ChildFriendly | Optional | boolean | Cơ sở lưu trú có phù hợp với trẻ em hay không. |
| amenityFeature.Crib | Optional | boolean | Cơ sở lưu trú có giường cũi cho trẻ em hay không. |
| amenityFeature.Elevator | Optional | boolean | Cơ sở lưu trú có thang máy hay không. |
| amenityFeature.FirePlace | Optional | boolean | Cơ sở lưu trú có lò sưởi hay không. |
| amenityFeature.FreeBreakfast | Optional | boolean | Cơ sở lưu trú có phục vụ bữa sáng miễn phí cho tất cả khách hay không. Sử dụng các tính năng về giá để cho biết liệu bữa sáng có chỉ được cung cấp trong một số gói giá cụ thể hay không. |
| amenityFeature.GymFitnessEquipment | Optional | boolean | Cơ sở lưu trú có phòng tập thể dục hoặc bất kỳ thiết bị thể dục nào hay không. |
| amenityFeature.Heating | Optional | boolean | Cơ sở lưu trú có hệ thống sưởi ấm hay không. |
| amenityFeature.HotTub | Optional | boolean | Cơ sở lưu trú có bồn tắm nước nóng hay không. |
| amenityFeature.InstantBookable | Optional | boolean | Khách có thể đặt phòng tại cơ sở lưu trú ngay lập tức thông qua quy trình thanh toán hay không. Một phương thức khác là chờ phê duyệt. |
| amenityFeature.IroningBoard | Optional | boolean | Cơ sở lưu trú có bàn là hay không. |
| amenityFeature.Kitchen | Optional | boolean | Cơ sở lưu trú có bếp hay không. |
| amenityFeature.Microwave | Optional | boolean | Cơ sở lưu trú có lò vi sóng hay không. |
| amenityFeature.OpenAirBath(Hotels only) | Optional | boolean | Cơ sở lưu trú có bồn tắm ngoài trời hay không. Nếu được chỉ định ở cấp phòng, thì phòng tắm chỉ dành riêng cho người ở trong phòng. |
| amenityFeature.OutdoorGrill | Optional | boolean | Cơ sở lưu trú có bếp nướng hay không. |
| amenityFeature.OvenStove | Optional | boolean | Cơ sở lưu trú có bếp lò hay không. |
| amenityFeature.Patio | Optional | boolean | Cơ sở lưu trú có sân hiên hay không. |
| amenityFeature.Pool | Optional | boolean | Cơ sở lưu trú có hồ bơi hay không. |
| amenityFeature.PrivateBeachAccess | Optional | boolean | Cơ sở lưu trú có lối đi riêng dẫn ra bãi biển dành riêng cho khách lưu trú hay không. |
| amenityFeature.SelfCheckinCheckout | Optional | boolean | Cơ sở lưu trú có hỗ trợ tính năng tự nhận phòng và trả phòng hay không. |
| amenityFeature.WasherDryer | Optional | boolean | Cơ sở lưu trú có máy giặt hay không. |
| amenityFeature.Wifi | Optional | boolean | Cơ sở lưu trú có Wi-Fi hay không. |
| amenityFeature.Smoking | Optional | boolean | Cơ sở lưu trú có cho phép hút thuốc hay không. |
| amenityFeature.InternetType | Optional | Enum | Loại Internet hiện có tại cơ sở lưu trú. Sau đây là các giá trị được hỗ trợ:
|
| amenityFeature.ParkingType | Optional | Enum | Loại chỗ đỗ xe hiện có tại cơ sở lưu trú. Sau đây là các giá trị được hỗ trợ:
|
| amenityFeature.PoolType | Optional | Enum | Loại hồ bơi hiện có tại cơ sở lưu trú. Sau đây là các giá trị được hỗ trợ:
|
| amenityFeature.RoomStyle | Optional | Enum | Cho biết liệu phòng có được thiết kế theo phong cách Nhật Bản hay không. Sau đây là các giá trị được hỗ trợ:
|
| amenityFeature.LicenseNum | Required | string | Số giấy phép của doanh nghiệp sẽ xuất hiện trên cơ sở lưu trú ở một số khu vực trên thế giới. Bạn có thể lặp lại giá trị này và nếu có nhiều giấy phép, bạn nên thêm thông tin về chủ sở hữu hoặc cơ quan cấp phép. Ví dụ: |
Thuộc tính
Sau đây là các thuộc tính amenityFeature:
| Thuộc tính | Bắt buộc? | Loại | Mô tả |
|---|---|---|---|
| amenityFeature | Optional | LocationFeatureSpecification | Tiện nghi được cung cấp trong khách sạn hoặc phòng. Bạn có thể chỉ định giá trị này bằng thuộc tính Bạn có thể chỉ định tiện nghi ở cấp |
| containsPlace | Optional | LocationFeatureSpecification | Tiện nghi được cung cấp trong khách sạn hoặc phòng cho tất cả khách lưu trú. Bạn có thể chỉ định bằng cách sử dụng
|
Ví dụ về tiện nghi
Sau đây là ví dụ cơ bản về một khách sạn có bể bơi mở cửa từ 10:00 đến 22:00 và không có phòng tập thể dục. Phòng khách sạn không hút thuốc và có tủ lạnh nhỏ.
Vi dữ liệu
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">ACME Hotel</span>
<!-- Amenities -->
<div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
<span itemprop="name">HotTub</span>
<div itemprop="hoursAvailable" itemscope itemtype="https://schema.org/OpeningHoursSpecification">
Open from <time itemprop="opens" content="10:00:00">10:00</time>
to <time itemprop="closes" content="22:00:00">22:00</time>
</div>
</div>
<div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
<span itemprop="name">GymFitnessEquipment</span>:
<meta itemprop="value" content="false"/> No
</div>
<div itemprop="containsPlace" itemscope itemtype="https://schema.org/HotelRoom">
<!-- Room Amenities -->
<div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
<span itemprop="name">Minibar</span>:
<meta itemprop="value" content="true"/> Yes
</div>
<div itemprop="amenityFeature" itemscope itemtype="https://schema.org/LocationFeatureSpecification">
<span itemprop="name">Smoking</span>:
<meta itemprop="value" content="false"/> No
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation">
<meta itemprop="identifier" content="rate-plan-id-of-member-rate"/>
Check-in: <time itemprop="checkinTime" content="2023-03-10T15:00:00">Mar 10, 2023 3:00 PM</time>
Check-out: <time itemprop="checkoutTime" content="2023-03-16T10:00:00">Mar 16, 2023 10:00 AM</time>
<div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price">1222.74</span>
</div>
</div>
</div>
</div>
JSON-LD (Không dùng nữa)
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "ACME Hotel",
"address": { ... },
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "HotTub",
"hoursAvailable": {
"@type": "OpeningHoursSpecification",
"opens": "10:00:00",
"closes": "22:00:00"
}
},
{
"@type": "LocationFeatureSpecification",
"name": "GymFitnessEquipment",
"value": false
}
],
"containsPlace": {
"@type": "HotelRoom",
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Minibar",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Smoking",
"value": false
}
],
"offers": {
"@type": ["Offer", "LodgingReservation"],
"identifier": "rate-plan-id-of-member-rate",
"checkinTime": "2023-03-10 15:00:00",
"checkoutTime": "2023-03-16 10:00:00",
"priceSpecification": {
"@type": "CompoundPriceSpecification",
"price": 1222.74,
"priceCurrency": "USD"
}
}
}
}
Gắn thẻ điều hướng
Các thuộc tính HTML5 tuỳ chỉnh có tiền tố data-nav- được dùng để chú thích các phần tử tương tác và khai báo trạng thái trang, cho phép trình thu thập thông tin điều hướng qua quy trình đặt phòng.
Cú pháp
Thẻ điều hướng sử dụng cú pháp thuộc tính sau:
Thuộc tính
<body data-nav-stage="stage_name">
...
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Action
</button>
...
<button data-nav-close="true">Dismiss</button>
</body>
Thuộc tính
Sau đây là các thuộc tính điều hướng:
| Thuộc tính | Giá trị | Mô tả |
|---|---|---|
| data-nav-stage | landing, room-selection, checkout, confirmation | Khai báo trạng thái phễu đang hoạt động cho trình thu thập thông tin. Được đính kèm vào <body> hoặc trình bao bọc cấp cao. |
| data-nav-stage-final | true, false | Chỉ báo cho trang cuối cùng của luồng (mặc định là false). Nếu không có phần tử nào có data-nav-criticalpath="true" trên một trang, thì trình thu thập thông tin sẽ tự động coi đó là trang cuối cùng của luồng. |
| data-nav-criticalpath | true, false | Đánh dấu một phần tử mà trình thu thập dữ liệu PHẢI tương tác để chuyển đến trang đặt phòng ở bước cuối cùng. Nếu không có phần tử nào có data-nav-criticalpath="true" trên một trang, thì trình thu thập dữ liệu sẽ tự động coi đó là trang cuối cùng của luồng. |
| data-nav-interactiontype | CLICK, SELECT | Chỉ định thao tác tương tác. CLICK là dành cho các nút/đường liên kết. SELECT dành cho trình đơn thả xuống/nhóm nút chọn. |
| data-nav-interactionorder | integer | Cung cấp một trình tự thực thi cho chế độ điều hướng nhiều bước. Số nhỏ hơn sẽ được thực thi trước. |
| data-nav-close | true | Đánh dấu các nút đóng trên cửa sổ bật lên, lớp phủ biểu ngữ về cookie hoặc phương thức tăng giá. |
Ví dụ về điều hướng
Sau đây là ví dụ về việc gắn thẻ điều hướng.
Điều hướng bằng cách nhấp
Sau đây là ví dụ cơ bản về thao tác nhấp để điều hướng khai báo giai đoạn của kênh.
<body data-nav-stage="room-selection" data-nav-stage-final="false">
<h1>Select Your Room</h1>
<!-- Crawler needs to click this to proceed -->
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">
Select & Proceed
</button>
</body>
Điều hướng nhiều bước
Sau đây là ví dụ về chế độ điều hướng nhiều bước, bao gồm biểu ngữ về cookie, tính năng hiển thị dạng accordion và lượt nhấp.
<div data-nav-stage="landing" data-nav-stage-final="false">
<!-- Hotel, LodgingReservation info, and Offer price are expected to be included in this page -->
<!-- Step 1: Accept cookies -->
<div class="cookie-banner">
<p>We use cookies to improve your experience.</p>
<button data-nav-close="true"
data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="1">Accept cookies</button>
</div>
<!-- Step 2: Open accordion to reveal pricing (Crucial for making prices visible in Mobile UIs) -->
<div data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="2"
class="accordion-header">
<span>View Room Rates</span>
</div>
<!-- Step 3: Book the room -->
<div class="accordion-content">
<button data-nav-criticalpath="true"
data-nav-interactiontype="CLICK"
data-nav-interactionorder="3">
Book Now
</button>
</div>
</div>
Khai báo trang cuối cùng
Sau đây là ví dụ về cách khai báo trang cuối cùng của quy trình đặt phòng.
<!-- Marks this as the final confirmation page where price is extracted -->
<!-- Hotel, LodgingReservation info, and Offer price are expected to be included in this page -->
<div data-nav-stage="confirmation" data-nav-stage-final="true">
<h1>Grand View Hotel</h1>
<!-- Price and other details here -->
</div>