Tài liệu tham khảo về dữ liệu có cấu trúc về giá khách sạn

Trang này cung cấp tài liệu tham khảo để thêm mã đánh dấu dữ liệu có cấu trúc vào dữ liệu giá của khách sạn.

Tổng quan

Dữ liệu có cấu trúc giá khách sạn được dùng để giải thích, xác thực và hiển thị chi tiết giá khách sạn đăng trên trang web của bạn, bất kể giao diện người dùng. Dữ liệu này cũng bao gồm các trường liên quan đến giá cơ bản, giá phòng, phòng, phí, thuế và giá.

Google đề xuất các đối tác chú thích trang web của họ bằng dữ liệu có cấu trúc chuẩn hoá mà máy thu thập dữ liệu có thể đọc được (do schema.org cung cấp) để thu thập giá một cách chính xác từ trang web của bạn.

Điều này cho phép mở rộng quy mô xác thực độ chính xác về giá thông qua việc cải thiện độ tin cậy của trình thu thập dữ liệu. Lợi ích mà bạn nhận được là tăng số lượng lần xác thực mức độ chính xác về giá và khả năng khắc phục trực tiếp các vấn đề về mức độ chính xác về giá, đồng thời có được mức độ chính xác nhất quán về giá.

Nếu bạn mới sử dụng dữ liệu có cấu trúc, hãy tìm hiểu thêm về Từ vựng và định dạng của dữ liệu có cấu trúc.

Khách sạn Google khuyên bạn nên sử dụng định dạng JSON-LD để chú thích các trang web của mình. Hãy tham khảo nội dung Các định dạng được hỗ trợ để tìm hiểu thêm về các định dạng được chấp nhận khác. 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 mục Khách sạn.

Dữ liệu có cấu trúc Hotel được dùng để chú thích các trường của riêng khách sạn trên trang web của bạn. Dữ liệu có cấu trúc Hotel có các thuộc tính sau:

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 trên trang web của bạn.

Dữ liệu có cấu trúc HotelRoom có các thuộc tính sau:

Dữ liệu có cấu trúc về khách sạn

Các thuộc tính nameaddress

Các thuộc tính nameaddress đượ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 nameaddress:

  "@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 nameaddress sử dụng cú pháp sau:

JSON-LD

{
  "@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 nameaddress:

Tài sản Bắt buộc? Loại Nội dung 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 duy nhất cho mỗi khách sạn và phải khớp hoàn toàn với chuỗi 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ụ

Tên và địa chỉ

Sau đây là ví dụ cơ bản về cách thêm chú thích nameaddress:

{
"@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"
  }
}
}

makesOffer cơ sở lưu trú

Chú giải makesOffer được dùng để đánh dấu các hành trình lưu trú của bạ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:

JSON-LD

{
  "@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:

Tài sản Bắt buộc? Loại Nội dung mô tả
makesOffer Required Offer and LodgingReservation

(Các) ưu đãi của khách sạn dành cho hành trình cụ thể.

Thuộc tính makesOffer có thể chứa một loạt ưu đãi.

LodgingReservation.checkinTime Required DateTime

Thời gian nhận phòng theo múi giờ của người dùng. Nếu bạn không đề cập đến múi giờ thì hệ thống sẽ xem xét múi giờ của khách sạn.

LodgingReservation.checkoutTime Required DateTime

Thời gian trả phòng theo múi giờ của người dùng. Nếu bạn không đề cập đến múi giờ thì hệ thống sẽ xem xét múi giờ của khách sạn.

Ví dụ:

makesOffer

Sau đây là một ví dụ cơ bản để chú thích các ưu đãi của khách sạn. Bạn có thể chỉ định nhiều ưu đãi cho một hành trình nhưng nên chỉ định giá do Google hiển thị trước tiên, sau đó là các mức giá khác. Số tiền giá được chỉ định bao gồm tất cả các khoản thuế hiện hành.

{
  "@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"
      }
    }
  ]
}

Hotel priceSpecification cơ sở lưu trú

Thuộc tính này dùng để chú thích thông tin về giá của khách sạn hoặc phòng của bạn. Bạn bắt buộc phải có 2 thuộc tính bổ sung để chú thích giá và thuế. Bạn nên sử dụng CompoundPriceSpecification để chỉ định thông tin tổng hợp về giá, chẳng hạn như giá cơ bản, thuế và chiết khấu. Sử dụng UnitPriceSpecification để chỉ định các khoản thuế bổ sung hoặc các loại phí đặc biệt, chẳng hạn như ResortFee, GenericTaxServiceFee. Thuộc tính priceSpecification đ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:

JSON-LD

{
  "@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"
        }
      ]
    }
  }
}

Vi dữ liệu

  <div itemscope itemtype="https://schema.org/Hotel">
    <meta itemprop="name" content="hotel-name"/>
    ...
    <div itemscope itemtype="https://schema.org/Offer https://schema.org/LodgingReservation" itemprop="makesOffer">
      ...
      <div itemscope itemtype="https://schema.org/CompoundPriceSpecification" itemprop="priceSpecification">
        <meta itemprop="price" content="float"/>
        <meta itemprop="priceCurrency" content="currency"/>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content=""/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="GenericTax" />
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="GenericTax"/>
        </div>
        <div itemscope itemtype="https://schema.org/UnitPriceSpecification" itemprop="priceComponent">
          <meta itemprop="name" content="Discount"/>
          <meta itemprop="price" content="float"/>
          <meta itemprop="priceCurrency" content="currency"/>
          <meta itemprop="priceComponentType" content="Discount"/>
        </div>
      </div>
    </div>
  </div>

Thuộc tính

Sau đây là các thuộc tính hotel priceSpecification:

Tài sản Bắt buộc? Loại Nội dung mô tả
Hotel.Offer.priceSpecification.price Required float

Tổng giá bao gồm các loại thuế và phí của khách sạn.

Bạn phải luôn chú thích mức giá của Google trên trang đích cùng với thông tin đầy đủ về mức 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 mức độ chính xác về giá. Google chấp nhận cả giá phòng khách sạn và giá phòng.

Hotel.Offer.priceSpecification.priceCurrency Required currency Mã đơn vị tiền tệ gồm ba chữ cái cho giá đã chỉ định. Ví dụ: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Tổng giá chi tiết, bao gồm các khoản thuế và phí của khách sạn. Có hai loại dữ liệu có cấu trúc về giá:

  • CompoundPriceSpecification cung cấp bảng chi tiết về giá như sau:

    • Giá cơ bản: Giá cơ bản mỗi đêm

    • Thuế mỗi lần lưu trú: Giá mỗi đêm đã bao gồm thuế.

    • Phí mỗi người lưu trú: Giá mỗi đêm/người lưu trú.

    • Giảm giá: Số tiền khấu trừ.

  • UnitPriceSpecification dùng để chỉ định loại khoản phí. Bạn nên thêm các giá trị PriceComponentTypeEnumeration để chỉ định các khoản phí bổ sung.

    Giá trị của PriceComponentTypeEnumeration là:

    • Discount: Chiết khấu chung đối với giá.

    • ResortFee: Đây là một khoản phí bổ sung phải thanh toán tại khách sạn. Mức giá này có thể thay đổi tuỳ theo loại cơ sở lưu trú.

    • GenericTax: Đây là các khoản thuế khác.

    • ServiceFee: Đây là một khoản phí bổ sung do kênh đặt trước thu.

    • TransferFee: Đây là phí thực tế bắt buộc để đưa đón khách đến khách sạn. Phí này do khách sạn hoặc kênh đặt phòng thu.

Bạn phải đặt các giá trị trong thuộc tính priceComponentType . Tất cả các giá trị đều là bắt buộc nếu bạn chọn sử dụng UnitPriceSpecification và phải được chỉ định giá trị này trong thuộc tính UnitPriceSpecification.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

Phương thức thanh toán cho 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 quá trình nhận phòng.

Bạn nên sử dụng thuộc tính potentialAction đi kèm với trường "recipient" của PayAction để cho biết điểm thanh toán. Hãy tham khảo PayAction để tìm hiểu thêm về thuộc tính recipient.

Google hỗ trợ 2 chế độ cài đặt sau đây cho người nhận của PayAction:

  • recipient.@type = "OnlineBusiness" là khoản thanh toán được thu tại thời điểm người bán trực tuyến đặt hàng. Đây là chế độ cài đặt mặc định nếu bạn không chỉ định potentialAction.

  • recipient.@type = "Hotel" là khoản thanh toán được thu tại khách sạn.

Ví dụ

Ví dụ về JSON-LD

Giá

Sau đây là ví dụ cơ bản về cách thêm dữ liệu có cấu trúc giá vào trang web. Bạn có thể bao gồm nhiều ưu đãi ở cấp khách sạn trong tài sản 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. Tỷ lệ hiển thị trên Google phải được liệt kê đầu tiên trong thuộc tính makesOffer. Số tiền giá được chỉ định bao gồm tất cả các khoản thuế hiện hành.

{
  "@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"
      }
    },
    ...
  ]
}

Chi tiết giá

Sau đây là một ví dụ về thuộc tính priceSpecification có thông tin chi tiết về giá. Giá cơ sở, các khoản 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.

Tổng giá cho thời gian lưu trú phải được chỉ định trong thuộc tính CompoundPriceSpecification. Bạn phải chỉ định thông tin chi tiết về giá trong thuộc tính priceComponent.

{
  "@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à 1.170 USD và trang web trực tuyến sẽ tính phí một phần trong tổng giá là 1.150 USD 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 20 USD 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 để phân tích chi tiết 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ẽ hiểu khoản thanh toán tại thời điểm đặt lịch là phương thức thanh toán mặc định.

{
  "@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": { ... }
            }
          }
        }
      ]
    }
  }
}

Ví dụ về vi dữ liệu

Chi tiết giá

Sau đây là một ví dụ về thuộc tính priceSpecification có thông tin chi tiết về giá. Giá cơ sở, các khoản thuế như thuế chung và chiết khấu được xác định bằng thành phần UnitPriceSpecification. Hãy nhớ đặt thuộc tính name bằng các giá trị tương ứng với thành phần UnitPriceSpecification.

Tổng giá cho thời gian lưu trú phải được chỉ định trong thuộc tính CompoundPriceSpecification. Bạn phải chỉ định thông tin chi tiết về giá trong thuộc tính priceComponent.

<div itemscope itemtype="https://schema.org/Hotel">
  <meta itemprop="name" content="ACME Hotel"/>
  <meta itemprop="identifier" content="hotel-id-1234"/>
  <div itemscope itemtype="https://schema.org/PostalAddress" itemprop="address">
    <meta itemprop="addressCountry" content="US" />
    <meta itemprop="addressLocality" content="Mountain View" />
    <meta itemprop="addressRegion" content="Santa Clara" />
    <meta itemprop="postalCode" content="94040" />
    <meta itemprop="streetAddress" content="123 Main street" />
  </div>
  <div itemscope itemtype="https://schema.org/Offer   https://schema.org/LodgingReservation"  itemprop="makesOffer">
    <meta itemprop="checkinTime" content="2023-03-10 15:00:00" />
    <meta itemprop="checkoutTime" content="2023-03-16 10:00:00"/>
    <div itemscope itemtype="https://schema.org/CompoundPriceSpecification"   itemprop="priceSpecification">
    <meta itemprop="price" content="1222.74" />
    <meta itemprop="priceCurrency" content="USD" />
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"    itemprop="priceComponent">
        <meta itemprop="name" content="" />
        <meta itemprop="price" content="1150" />
        <meta itemprop="priceCurrency" content="USD" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"  itemprop="priceComponent">
        <meta itemprop="name" content="GenericTax" />
        <meta itemprop="price" content="172.74" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="GenericTax" />
      </div>
      <div itemscope itemtype="https://schema.org/UnitPriceSpecification"   itemprop="priceComponent">
        <meta itemprop="name" content="Discount" />
        <meta itemprop="price" content="-100" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceComponentType" content="Discount" />
      </div>
    </div>
  </div>
</div>

hasMerchantReturnPolicy cơ sở lưu trú

Thuộc tính này được dùng để chú thích về chính sách hoàn tiền của người bán trong các 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:

JSON-LD

{
  "@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
    }
  }
}

Tài sản

Sau đây là thuộc tính hasMerchantReturnPolicy:

Thuộc tính Bắt buộc? Loại Nội dung 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 MerchantReturnPolicy.restockingFee để cho biết chính sách huỷ là không hoàn lại toàn bộ số tiền cho thời gian lưu trú.

Nếu bạn không chỉ định hasMerchantReturnPolicy hoặc để trống, thì hệ thống sẽ giả định số tiền đó là số tiền không thể hoàn lại. Bạn có thể chỉ định chính sách không hoàn tiền bằng thuộc tính returnPolicyCategory: MerchantReturnNotPermitted.

Ví dụ:

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 của một khách sạn, trong đó 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ị lượt lưu trú có thể bị huỷ mà không mất phí cho đến 11 giờ đêm (theo 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ỷ là không hoàn lại toàn bộ chi phí lưu trú. Theo mặc định, restockingFee là $0.

{
  "@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
    }
  }
}

eligibleCustomerType cơ sở lưu trú

Bạn có thể dùng thuộc tính này để chú thích về các chương trình trao thưởng được cung cấp 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:

JSON-LD

{
  "@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": { ... }
  }
}

Tài sản

Sau đây là thuộc tính eligibleCustomerType:

Thuộc tính Bắt buộc? Loại Nội dung 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 được cung cấp cho khách hàng.

Nhiều trang khách sạn đăng giá dành cho thành viên cùng với mức giá công khai để khuyến khích người dùng đăng ký tham gia chương trình khách hàng thân thiết của họ. Bạn có thể chỉ định các mức giá chỉ dành cho những đối tượng cụ thể, chẳng hạn như giá dành cho thành viên bằng cách đặt thuộc tính Offer.eligibleCustomerType.

Ví dụ

Giá dành cho thành viên

Sau đây là ví dụ cơ bản về mức giá dành cho thành viên hoặc quy cách giá có rào cản cho các chương trình khách hàng thân thiết. Khách hàng là "thành viên nhận thưởng" của khách sạn.

{
  "@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à mức giá thông thường

Đây là ví dụ về cả chú thích giá thông thường và chú thích 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.

{
  "@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

offers cơ sở lưu trú

Bạn có thể dùng chú thích offers để đánh dấu các hành trình trong phòng. Bạn nên 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:

JSON-LD

{
  "@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:

Tài sản Bắt buộc? Loại Nội dung mô tả
offers Required Offer and LodgingReservation

Thông số kỹ thuật về giá phòng của hành trình cụ thể.

Thuộc tính offers có thể chứa một loạt ưu đãi.

LodgingReservation.checkinTime Required DateTime

Thời gian nhận phòng theo múi giờ của người dùng. Nếu bạn không đề cập đến múi giờ thì hệ thống sẽ xem xét múi giờ của khách sạn.

LodgingReservation.checkoutTime Required DateTime

Thời gian trả phòng theo múi giờ của người dùng. Nếu bạn không đề cập đến múi giờ thì hệ thống sẽ xem xét múi giờ của khách sạn.

Ví dụ:

phiếu mua hàng

Sau đây là ví dụ cơ bản về cách chỉ định offers trong thuộc tính HotelRoom.

{
  "@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 bedoccupancy

Thuộc tính bed dùng để chú thích loại giường và số lượng giường có sẵn 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 bedoccupancy 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 bedoccupancy có cú pháp sau:

JSON-LD

{
  "@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 bedoccupancy bằng thuộc tính HotelRoom. Thông tin cụ thể về phòng, bao gồm cả giá phòng, có thể được đưa vào thuộc tính Hotel thông qua thuộc tính containsPlace. Tham khảo ví dụ về quy cách HotelHotelRoom.

Thuộc tính

Sau đây là các thuộc tính bedoccupancy:

Tài sản Bắt buộc? Loại Nội dung mô tả
HotelRoom.bed Optional (Recommended) bed

Loại giường bao gồm trong chỗ ở và số lượng người trong phòng.

Các giá trị được hỗ trợ là:

  • CALIFORNIA_KING
  • KING
  • QUEEN
  • FULL
  • DOUBLE
  • SEMI_DOUBLE
  • SINGLE
HotelRoom.occupancy Optional (Recommended) QuantitativeValue

Số lượng khách trong phòng khách sạn. Loại số người lưu trú là QuantitativeValue.

Số người lưu trú là một thuộc tính rõ ràng của HotelRoom, chứ không phải cho một Offer cụ thể. Bạn chỉ được gắn thẻ giá cho số người lưu trú theo yêu cầu.

containsPlace Optional (Recommended) LocationFeatureSpecification

Tệp này dùng để chú thích giá phòng theo từng 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 để xác định các tiện nghi trong phòng.

Tìm hiểu thêm về cách sử dụng containsPlace trong thuộc tính amenityFeature.

Ví dụ

HotelRoom

Sau đây là ví dụ cơ bản về giường và sức chứa cho một thông số phòng.

{
  "@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"
    }
  }
}

Khách sạn và HotelRoom

Sau đây là ví dụ về cách chú thích các thuộc tính HotelHotelRoom cùng với bed, occupancypriceSpecification.

{
  "@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"
      }
    }
  }
}

HotelRoom priceSpecification cơ sở lưu trú

Quy cách giá phòng khách sạn cũng tương tự như quy cách giá phòng 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:

JSON-LD

{
  "@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:

Tài sản Bắt buộc? Loại Nội dung mô tả
Hotel.Offer.priceSpecification.price Required float

Giá mỗi phòng, bao gồm cả thuế và phí cho Product.

Bạn phải luôn chú thích mức giá của Google trên trang đích cùng với thông tin đầy đủ về mức 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 mức độ chính xác về giá. Google chấp nhận cả giá phòng khách sạn và giá phòng.

Hotel.Offer.priceSpecification.priceCurrency Required currency Mã đơn vị tiền tệ gồm ba chữ cái cho giá đã chỉ định. Ví dụ: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

Tổng giá chi tiết, bao gồm các khoản thuế và phí cho phòng của khách sạn và số người lưu trú có liên kết với các ưu đãi được liên kết với HotelRoomProduct. Có hai loại dữ liệu có cấu trúc về giá:

  • CompoundPriceSpecification cung cấp bảng chi tiết về giá như sau:

    • Giá cơ bản: Giá cơ bản mỗi đêm

    • Thuế mỗi lần lưu trú: Giá mỗi đêm đã bao gồm thuế.

    • Phí mỗi người lưu trú: Giá mỗi đêm/người lưu trú.

      occupancy là một thuộc tính rõ ràng của HotelRoom, chứ không phải cho một Offer cụ thể. Bạn chỉ được gắn thẻ giá cho số người lưu trú theo yêu cầu.

    • Giảm giá: Số tiền khấu trừ.

  • UnitPriceSpecification dùng để chỉ định loại khoản phí. Bạn nên thêm các giá trị PriceComponentTypeEnumeration để chỉ định các khoản phí bổ sung.

    Giá trị của PriceComponentTypeEnumeration là:

    • Discount: Chiết khấu chung đối với giá.

    • ResortFee: Đây là một khoản phí bổ sung phải thanh toán tại khách sạn. Mức giá này có thể thay đổi tuỳ theo loại cơ sở lưu trú.

    • GenericTax: Đây là các khoản thuế khác.

    • ServiceFee: Đây là một khoản phí bổ sung do kênh đặt trước thu.

    Bạn phải đặt các giá trị trong thuộc tính name của UnitPriceSpecification. Tất cả giá trị đều là bắt buộc nếu bạn chọn đưa vào thông tin chi tiết về giá và phải được chỉ định giá trị đó trong thành phần UnitPriceSpecification.

Ví dụ

Tổng giá phòng

Sau đây là ví dụ cơ bản về việc xác định tổng giá cho thời gian lưu trú và giá mỗi người lưu trú.

{
  "@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"
    }
  },
  ...
}

Chi tiết giá phòng

Sau đây là ví dụ về giá mỗi phòng hoặc gói. Thông tin chi tiết về giá được xác định cho loại phòng như phòng Deluxe, loại bedoccupancy, chẳng hạn như giường KINGSINGLE, với sức chứa là 2 khách.

{
  "@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"
        }
      ]
    }
  }
}

includesObject cơ sở lưu trú

Cơ sở lưu trú này dùng để chú thích về các dịch vụ theo giá cụ thể mà khách sạn hoặc phòng cung cấp, chẳng hạn như các lựa chọn ăn uống 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 đối với các dịch vụ theo mức giá cụ thể trong phòng:

JSON-LD

{
  "@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"
        }
      }
    ]
  }
}

Tài sản

includesObject có thuộc tính sau:

Thuộc tính Bắt buộc? Loại Nội dung 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ơ sở lưu trú includesObject cung cấp các tính năng theo mức giá cụ thể. Bạn nên sử dụng trường tên trên "TypeAndQuantityNode.typeOfGood" để cho biết loại dịch vụ, chẳng hạn như dịch vụ phục vụ ăn uống hoặc dịch vụ ăn uống.

Các tính năng theo mức giá cụ thể 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àm tiện ích bổ sung cho một mức giá bổ sung.

includesObject yêu cầu giá trị thuộc loại TypeAndQuantityNode như sau:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

Ví dụ:

Dịch vụ

Sau đây là ví dụ cơ bản về các tính năng có mức giá cụ thể cho dịch vụ đỗ xe và dịch vụ ăn uống. Bạn phải chỉ định các tính năng theo từng mức giá bằng thuộc tính "Offer.includesObject". Bạn nên sử dụng trường tên trên "TypeAndQuantityNode.typeOfGood" để cho biết loại dịch vụ.

{
  "@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"
        }
      }
    ]
  }
}

availability cơ sở lưu trú

Thuộc tính offer.availability dùng để chú thích về các hành trình đã hết phòng của các 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:

JSON-LD

{
  "@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"
  }
}

Tài sản

Sau đây là thuộc tính availability:

Thuộc tính Bắt buộc? Loại Nội dung mô tả
Offer.availability Optional ItemAvailability

Tình trạng phòng của khách sạn hoặc phòng.

Mức giá được trích xuất từ schema.org/Offer và thông tin về mức giá không được tạo bằng schema.org/Hotel hoặc schema.org/HotelRoom. Tức là ngay cả những hành trình đã bán hết vé cũng phải có ưu đãi.

Ưu đãi không có priceSpecification sẽ bị coi là không có sẵn. Ưu đãi không thể sử dụng phải được chỉ định là "Offer.availability= https://schema.org/SoldOut".

Bạn không cần chỉ định Offer.availability nếu ưu đãi được chú thích bằng priceSpecification. hợp lệ

Ví dụ:

Phạm vi cung cấp

Sau đây là một ví dụ cơ bản cho thấy tình trạng không có phòng khách sạn. Bạn nên thêm loại giường, số lượng giường và thông tin về số người lưu trú cho phòng được chỉ định.

{
  "@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": {...}
  }
}

amenityFeature cơ sở lưu trú

Bạn có thể chỉ định các tiện nghi trong loại Hotel hoặc HotelRoom bằng thuộc tính amenityFeature. Bạn nên sử 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

Các thuộc tính amenityFeaturecontainsPlace có cú pháp sau:

JSON-LD

{
  "@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à được định nghĩa trong cơ sở lưu trú name.

Thuộc tính Bắt buộc? Loại Nội dung 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 khách đến sân bay hoặc các nhà ga khác hay không.
amenityFeature.Balcony Optional boolean Chỗ ở 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 Chỗ ở 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. Hãy sử dụng các tính năng theo giá để cho biết liệu bữa sáng có chỉ bao gồm bữa sáng cho các 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 thiết bị tập thể dục hay không.
amenityFeature.Heating Optional boolean Chỗ ở 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 Liệu cơ sở lưu trú có cho phép đặt phòng 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ó đính kèm bồn tắm ngoài trời hay không. Nếu được chỉ định ở cấp phòng, bồn tắm phải là riêng tư chỉ dành cho người lưu trú 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 Nơi lưu trú có bể 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 Chỗ nghỉ 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ợ:

  • FREE
  • PAID
  • NONE
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ợ:

  • FREE
  • PAID
  • NONE
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ợ:

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

Cho biết liệu phòng có thiết kế kiểu Nhật hay không.

Sau đây là các giá trị được hỗ trợ:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

Số giấy phép của doanh nghiệp xuất hiện trên cơ sở lưu trú ở một số khu vực trên thế giới. Giấy phép này có thể lặp lại và nếu có nhiều giấy phép thì bạn nên thêm chủ sở hữu hoặc người có thẩm quyền của giấy phép đó. Ví dụ: "Paris: 123456ABC"

Thuộc tính

Sau đây là các thuộc tính amenityFeature:

Tài sản Bắt buộc? Loại Nội dung mô tả
amenityFeature Optional LocationFeatureSpecification

Các tiện nghi có trong khách sạn hoặc phòng. Bạn có thể chỉ định thuộc tính này bằng thuộc tính amenityFeature . Các tiện nghi phải được cung cấp cho tất cả khách lưu trú, bất kể gói giá bạn chọn. amenityFeature được chỉ định bằng giá trị thuộc tính LocationFeatureSpecification.

Bạn có thể chỉ định các tiện nghi ở cấp Hotel hoặc HotelRoom.

containsPlace Optional LocationFeatureSpecification

Các 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ú tại khách sạn. Bạn có thể chỉ định thuộc tính này bằng amenityFeature . Các tiện nghi phải được cung cấp cho tất cả khách lưu trú trong phòng khách sạn, bất kể gói giá đã chọn.

Hotel.containsPlace.amenityFeature là các tiện nghi có trong khách sạn.

HotelRoom.containsPlace.amenityFeature là các tiện nghi có trong phòng.

Ví dụ:

Tiện nghi trong khách sạn và phòng

Sau đây là ví dụ về một khách sạn có bể bơi mở cửa từ 10:00 đến 22:00 và cơ sở lưu trú không có phòng tập thể dục. Phòng khách sạn cấm hút thuốc và có tủ lạnh nhỏ.

{
  "@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"
      }
    }
  }
}