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 về cách thêm mã đánh dấu dữ liệu có cấu trúc vào các khách sạn của bạn dữ liệu giá.

Tổng quan

Dữ liệu có cấu trúc về giá khách sạn dùng để giải thích, xác thực và hiển thị một cách 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. Chiến dịch này cũng bao gồm giá cơ bản, giá, phòng, phí và các trường có liên quan đến thuế và giá.

Google khuyến nghị các đối tác chú thích các trang web của họ bằng các tính năng chuẩn hoá dữ liệu có cấu trúc mà trình thu thập dữ liệu có thể đọc được; được cung cấp bởi schema.org để thu thập dữ liệu về giá một cách chính xác từ các 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 các trình thu thập dữ liệu. Lợi ích đối với bạn là việc tăng số lượng xác thực độ chính xác về giá và khả năng khắc phục các vấn đề về mức độ chính xác về giá trực tiếp và cũng để 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 cho dữ liệu có cấu trúc và định dạng.

Khách sạn trê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. Tham khảo Đị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 chiếu 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 dùng để chú thích các trường dành riêng cho từng khách sạn trong . 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 từng 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:

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

Các thuộc tính nameaddress

Các thuộc tính nameaddress dùng để chú thích tên khách sạn và vị trí. 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:

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

Của đối tác mã khách sạn.

Giá trị nhận dạng phải là một chuỗi riêng biệt của mỗi khách sạn và phải khớp chính xác bằng chuỗi dùng trong nguồn cấp dữ liệu giá.

Hotel.address Optional PostalAddress Địa chỉ hoặc vị trí 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ú giải 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"
  }
}
}

Tài sản makesOffer

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:

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 đối với 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 múi giờ của bạn không 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 thì múi giờ của khách sạn sẽ được xem xét.

Ví dụ:

makesOffer

Sau đây là 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 bạn nên chỉ định Tỷ lệ do Google hiển thị trước, sau đó là các mức giá khác. Mức giá đã 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"
      }
    }
  ]
}

Tài sản Hotel priceSpecification

Thuộc tính này dùng để chú thích thông tin về giá cho khách sạn hoặc khách sạn của bạn phòng. Có thêm hai thuộc tính bắt buộc để chú thích giá và thuế. Bạn nên dùng CompoundPriceSpecification để cho biết tổng thông tin 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. priceSpecification thuộc tính đ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:

Thuộc tính Bắt buộc? Loại Mô tả
Hotel.Offer.priceSpecification.price Required float

Tổng giá bao gồm cả thuế và phí cho 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 về giá đầy đủ. Việc chú thích chi tiết giá phòng giúp bạn hoàn tất kiểm tra độ chính xác về giá. Google chấp nhận cả cấp khách sạn và cấp phòng giá.

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[]

Thông tin chi tiết về giá tổng cộng, bao gồm cả 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 thông tin chi tiết về giá để bao gồm:

    • Base rate (Giá cơ bản): Giá cơ bản mỗi đêm

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

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

    • Chiết khấu: Số tiền khấu trừ.

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

    Các giá trị của PriceComponentTypeEnumeration là:

    • Discount: Mức chiết khấu chung đối với giá.

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

    • GenericTax: Đây là một mục bổ sung thuế.

    • ServiceFee: Đây là một khoản phí bổ sung kênh đặt phòng tính phí.

    • TransferFee: Đây là một khoản phí bắt buộc để xác minh tính xác thực cho vận chuyển đến khách sạn do khách sạn thu thập hoặc đặt phòng của bạn.

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 bao gồm UnitPriceSpecification và phải được chỉ định trong giá trị Thuộc tính UnitPriceSpecification.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

Điểm thanh toán của khách sạn.Quy trình thanh toán khách sạn bao gồm giá được tính phí trong thời gian trả phòng trên trang web đặt phòng và tại khách sạn trong khi nhận phòng.

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

Google hỗ trợ hai chế độ cài đặt sau cho phần tử PayAction người nhận:

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

  • recipient.@type = "Hotel" cho biết khoản thanh toán thu thập được 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 về giá vào . Bạn có thể bao gồm nhiều ưu đãi cấp khách sạn trong 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. Tỷ lệ do Google hiển thị 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 mức giá hiện hành thuế.

{
  "@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 giá chi tiết

Sau đây là ví dụ về thuộc tính priceSpecification có thuộc tính thông tin chi tiết về giá. Giá cơ bản, 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 có 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. Thông tin chi tiết về giá phải được chỉ định 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 của potentialAction khi sử dụng Loại người nhận của PayAction.

Tổng giá của gói là 1.170 đô la và phần tính phí trên trang web trực tuyến trong tổng giá là 1.150 đô la Mỹ 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 theo thời gian nhận phòng tại khách sạn, được xác định bằng thuộc tính @type": "Hotel"

Bạn phải chỉ định thành phần potentialAction để chia nhỏ thanh toán tại thời điểm đặt phòng và tại khách sạn. Nếu không được chỉ định thì payAction coi khoản thanh toán tại thời điểm đặt phòng là khoản thanh toán mặc định phương thức thanh toán.

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

Bảng giá chi tiết

Sau đây là ví dụ về thuộc tính priceSpecification có thuộc tính thông tin chi tiết về giá. Giá cơ bản, 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 có 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. Thông tin chi tiết về giá phải được chỉ định 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>

Tài sản hasMerchantReturnPolicy

Cơ sở lưu trú này dùng để chú thích 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
    }
  }
}

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 cho người bán. Đố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 cho thời gian lưu trú.

Nếu hasMerchantReturnPolicy không được chỉ định hoặc để trống số tiền đó được giả định 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 thông qua cơ sở lưu trú 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 cho khách sạn có phòng chi tiết 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 mất phí cho đến 11 giờ đêm (theo giờ UTC) ngày 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 của thời gian lưu trú. restockingFee mặc định thành $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
    }
  }
}

Tài sản eligibleCustomerType

Tài sản này có thể dùng để chú thích về các chương trình trao thưởng mà khách sạn cung cấp cho khách sạn khách hàng là thành viê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": { ... }
  }
}

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 được cung cấp cho khách 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. Mức giá bị hạn chế cho một số đố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ề giá dành cho thành viên hoặc giá được bảo vệ cho chương trình khách hàng thân thiết. Khách hàng là một "thành viên nhận phần thưởng" trong số 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"
        }
      ]
    }
  }
}

Thành viên & 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. Chiến lược phát hành đĩa đơn giá dành cho thành viên sẽ đượ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

Tài sản offers

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

Thuộc tính Bắt buộc? Loại Mô tả
offers Required Offer and LodgingReservation

Quy cách giá phòng của một hành trình cụ thể.

Thuộc tính offers có thể chứa một mảng Google.

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 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 thì múi giờ của khách sạn sẽ được xem xét.

Ví dụ:

phiếu mua hàng

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

{
  "@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 được 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 dùng để chú thích số khách trong phòng. Bạn có thể chỉ định các thuộc tính bedoccupancy bằng cách sử dụ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 thuộc tính bedoccupancy bằng thuộc tính HotelRoom thuộc tính này. Bạn có thể thêm thông tin cụ thể về phòng, bao gồm cả giá theo cấp phòng đến 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:

Thuộc tính Bắt buộc? Loại Mô tả
HotelRoom.bed Optional (Recommended) bed

Loại giường có trong chỗ ở và số lượng giường nhữ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 thông tin về 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, không dành cho một Offer cụ thể. Bạn chỉ nên gắn thẻ mức giá cho số người lưu trú được yêu cầu.

containsPlace Optional (Recommended) LocationFeatureSpecification

Giá trị này dùng để chú thích các mức giá phòng liên kết với một số phòng. Bạn cũng có thể dùng dữ liệu 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 amenityFeature.

Ví dụ

HotelRoom

Sau đây là ví dụ cơ bản về số giường và sức chứa của một phòng đặc điểm kỹ thuật.

{
  "@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à phòng khách sạn

Sau đây là ví dụ về cách chú thích 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"
      }
    }
  }
}

Tài sản HotelRoom priceSpecification

Quy cách giá phòng khách sạn tương tự như quy cách giá khách sạn. điểm khác biệt là giá phòng được chỉ định bằng cơ sở lưu trú 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:

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 cả thuế và phí Product.

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 về giá đầy đủ. Việc chú thích chi tiết giá phòng giúp bạn hoàn tất kiểm tra độ chính xác về giá. Google chấp nhận cả cấp khách sạn và cấp phòng giá.

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[]

Thông tin chi tiết về tổng giá phòng, bao gồm cả các khoản thuế và phí của khách sạn phòng và số người lưu trú cùng với những ư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 thông tin chi tiết về giá để bao gồm:

    • Base rate (Giá cơ bản): Giá cơ bản mỗi đêm

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

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

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

    • Chiết khấu: Số tiền khấu trừ.

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

    Các giá trị của PriceComponentTypeEnumeration là:

    • Discount: Mức chiết khấu chung đối với giá.

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

    • GenericTax: Đây là một mục bổ sung thuế.

    • ServiceFee: Đây là một khoản phí bổ sung kênh đặt phòng tính phí.

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

Ví dụ

Tổng giá phòng

Sau đây là ví dụ cơ bản về cách xác định tổng giá cho toàn bộ thời lượng 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"
    }
  },
  ...
}

Thông tin chi tiết về 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ư Deluxe phòng, cũng như bedoccupancy chẳng hạn như giường KINGSINGLE và 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"
        }
      ]
    }
  }
}

Tài sản includesObject

Cơ sở lưu trú này dùng để chú thích các dịch vụ theo giá cụ thể mà khách sạn cung cấp hoặc phòng nghỉ như các 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ụ có mức giá cụ thể có sẵn 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"
        }
      }
    ]
  }
}

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ụ do khách sạn hoặc phòng cung cấp.

Các tính năng theo giá cụ thể đi kèm với Thuộc tính includesObject. Trường tên trên Bạn nên dùng "TypeAndQuantityNode.typeOfGood" để cho biết loại dịch vụ như dịch vụ dọn phòng hoặc phục vụ bữa ăn.

Các tính năng theo giá cũng có thể được đưa vào ưu đãi ở cấp cơ bản, hoặc có thể được chỉ định làm tiện ích bổ sung với mức giá bổ sung.

includesObject yêu cầu một 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 theo giá phòng dành riêng cho dịch vụ đỗ xe và dịch vụ ăn uống. Các tính năng theo giá cụ thể phải được chỉ định bằng Thuộc tính "Offer.includesObject". Trường tên trên Bạn nên sử dụng "TypeAndQuantityNode.typeOfGood" để cho biết loại .

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

Tài sản offer.availability được dùng để chú thích những hành trình đã hết vé 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:

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

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 phòng hoặc khách sạn.

Các mức giá được trích xuất từ schema.org/Offer và thông tin giá chưa được tạo sử dụng schema.org/Hotel hoặc schema.org/HotelRoom. Điều này có nghĩa là những hành trình đã bán hết vé cũng phải có ưu đãi.

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

Offer.availability không cần phải được chỉ định nếu ưu đãi được chú thích bằng priceSpecification.

Ví dụ:

Phạm vi cung cấp

Sau đây là ví dụ cơ bản về tình trạng không còn phòng khách sạn. Bạn phải bao gồ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": {...}
  }
}

Tài sản amenityFeature

Bạn có thể chỉ định các tiện nghi theo loại Hotel hoặc HotelRoom bằng thuộc tính thuộc tính amenityFeature. Bạn nên sử dụng thuộc tính containsPlace để chỉ định tiện nghi có 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 amenityFeaturecontainsPlace có những đặc điểm sau cú pháp:

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 phép và được xác định trong tài sản 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 Đơn vị tổ chức có cung cấp dịch vụ đưa đón khách từ sân bay hoặc ngược lại hay không các đầu cuối khác.
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. Sử dụng dịch vụ theo giá phòng để cho biết liệu có chỉ bao gồm bữa sáng theo một mức 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 Có cho phép đặt phòng ngay tại cơ sở lưu trú thông qua quy trình thanh toán hay không của chúng tôi. 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 Nơi lưu trú có lò vi sóng hay không.
amenityFeature.OpenAirBath(Hotels only) Optional boolean Chỗ ở có gắn bồn tắm ngoài trời hay không. Nếu được chỉ định ở cấp phòng, bồn tắm chỉ nên 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 nấu 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ó 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 Chỗ ở 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 Nơi 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ợ:

  • 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 phòng có thiết kế theo 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ú ở các khu vực nhất định trên thế giới. Có thể lặp lại và nếu nhiều đã có 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:

Thuộc tính Bắt buộc? Loại Mô tả
amenityFeature Optional LocationFeatureSpecification

Các tiện nghi tại khách sạn hoặc phòng nghỉ. Bạn có thể chỉ định bằng cách sử dụng thuộc tính amenityFeature . Tiện nghi phải ở dành cho tất cả khách lưu trú tại khách sạn, bất kể gói giá đã chọn. amenityFeature được chỉ định bằng phương thức Giá trị thuộc tính LocationFeatureSpecification.

Bạn có thể chỉ định các tiện nghi tại 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 nghỉ cho tất cả khách lưu trú tại khách sạn. Nó có thể được chỉ định bằng cách sử dụng amenityFeature . Tiện nghi nên dành cho tất cả khách lưu trú tại phòng khách sạn, bất kể mức giá đã chọn .

Hotel.containsPlace.amenityFeature là các tiện nghi được cung cấp tại 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à không có phòng tập thể dục tại khách sạn. Phòng khách sạn không cho phép 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"
      }
    }
  }
}