مرجع البيانات المنظَّمة الخاصة بأسعار الفنادق

تقدّم هذه الصفحة مرجعًا لإضافة ترميزات البيانات المنظَّمة إلى بيانات الأسعار الخاصة بفنادقك.

نظرة عامة

تُستخدَم البيانات المنظَّمة الخاصة بأسعار الفنادق لشرح الأسعار المدرَجة على موقعك الإلكتروني والتحقّق من صحتها وعرضها بالتفصيل، بغض النظر عن واجهة المستخدم. ويشمل ذلك أيضًا السعر الأساسي والأسعار والغرف والرسوم والضرائب والحقول ذات الصلة بالأسعار.

تنصح Google الشركاء بإضافة تعليقات توضيحية إلى صفحاتهم على الويب باستخدام بيانات منظَّمة موحّدة يمكن للزواحف قراءتها آليًا، وهي مقدَّمة من schema.org، وذلك من أجل استخراج الأسعار بدقة من صفحات الويب.

يتيح ذلك توسيع نطاق عمليات التحقّق من دقة الأسعار من خلال تحسين موثوقية برامج الزحف. ستستفيد من زيادة عدد عمليات التحقّق من دقة الأسعار وإمكانية تصحيح المشاكل المتعلّقة بدقة الأسعار بشكل مباشر، بالإضافة إلى الحصول على نتيجة متّسقة لدقة الأسعار.

إذا كنت لا تزال مبتدئًا في مجال البيانات المنظَّمة، يمكنك الاطّلاع على المزيد من المعلومات حول مفردات البيانات المنظَّمة وتنسيقاتها.

تنصح خدمة "فنادق Google" باستخدام تنسيق JSON-LD لإضافة تعليقات توضيحية إلى صفحات الويب. يمكنك الرجوع إلى التنسيقات المتوافقة للمزيد من المعلومات حول التنسيقات الأخرى المقبولة. يقدّم هذا المستند محتوًى مرجعيًا تفصيليًا خاصًا بتنفيذ البيانات المنظَّمة في "فنادق Google".

تُستخدَم بيانات Hotel المنظَّمة لإضافة تعليقات توضيحية إلى الحقول الخاصة بالفنادق في صفحة الويب. تتضمّن بيانات Hotel المنظَّمة الخصائص التالية:

تُستخدَم بيانات HotelRoom المنظَّمة لإضافة تعليقات توضيحية إلى الحقول الخاصة بالغرف في صفحة الويب.

تتضمّن بيانات HotelRoom المنظَّمة الخصائص التالية:

البيانات المنظَّمة الخاصة بالفنادق

السمتان name وaddress

تُستخدَم السمتان name وaddress لإضافة تعليقات توضيحية إلى اسم الفندق وموقعه الجغرافي. في ما يلي السمتان name وaddress:

  "@type": "Hotel",
    "name": "hotel-name",
    "identifier": "hotel-id-1234",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "XX",
      "addressLocality": "City Name",
      "addressRegion": "State Name",
      "postalCode": "01234",
      "streetAddress": "1234 Main St."
    },

البنية

تستخدم السمتان name وaddress البنية التالية:

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

الخصائص

في ما يلي السمتان name وaddress:

الموقع مطلوب؟ النوع الوصف
Hotel.name Required string اسم الفندق
Hotel.identifier Required string

يشير إلى رقم تعريف الفندق الشريك.

يجب أن يكون المعرّف سلسلة فريدة لكل فندق، ويجب أن يتطابق تمامًا مع السلسلة المستخدَمة في خلاصة الأسعار.

Hotel.address Optional PostalAddress تمثّل هذه السمة عنوان الفندق أو موقعه الجغرافي.

أمثلة

الاسم والعنوان

في ما يلي مثال أساسي على إضافة التعليقات التوضيحية name وaddress:

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

تُستخدَم تعليقات makesOffer التوضيحية لترميز برامج رحلات الفنادق.

  "makesOffer": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/InStock",
    ...
  }

البنية

تستخدم السمة makesOffer البنية التالية:

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

الخصائص

في ما يلي سمات makesOffer:

الموقع مطلوب؟ النوع الوصف
makesOffer Required Offer and LodgingReservation

عروض الفندق لبرنامج الرحلة المحدّد

يمكن أن تحتوي السمة makesOffer على مصفوفة من العروض.

LodgingReservation.checkinTime Required DateTime

وقت تسجيل الوصول في المنطقة الزمنية للمستخدم إذا لم يتم ذكر منطقتك الزمنية، سيتم اعتماد المنطقة الزمنية للفندق.

LodgingReservation.checkoutTime Required DateTime

وقت المغادرة في المنطقة الزمنية للمستخدم إذا لم يتم ذكر منطقتك الزمنية، سيتم اعتبار المنطقة الزمنية للفندق.

مثال

makesOffer

في ما يلي مثال أساسي لإضافة تعليقات توضيحية إلى عروض الفنادق. يمكنك تحديد عروض متعددة لبرنامج الرحلة، ولكن عليك تحديد السعر المعروض على Google أولاً، ثم الأسعار الأخرى. يشمل مبلغ السعر المحدّد جميع الضرائب السارية.

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

تُستخدَم هذه السمة لإضافة تعليقات توضيحية إلى معلومات الأسعار الخاصة بفندقك أو غرف فندقك. هناك سمتان إضافيتان مطلوبتان لإضافة تعليقات توضيحية إلى الأسعار والضرائب. يجب استخدام CompoundPriceSpecification لتحديد معلومات التسعير الإجمالية، مثل السعر الأساسي والضرائب والخصومات. استخدِم UnitPriceSpecification لتحديد ضرائب إضافية أو أنواع خاصة من الرسوم، مثل ResortFee وGenericTax وServiceFee. يتم تجميع السمة priceSpecification مع السمة Offer.

  {
    ...
    "priceSpecification": {
      "@type": "CompoundPriceSpecification",
      "price": "float",
      "priceCurrency": "currency",
      "priceComponent": [
        {
          "@type": "UnitPriceSpecification",
          "name": "GenericTax",
          "price": "float",
          "priceCurrency": "currency"
        },
        ...
      ]
    }
  }

البنية

تستخدم السمة Hotel priceSpecification البنية التالية:

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

البيانات الجزئية

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

الخصائص

في ما يلي سمات hotel priceSpecification:

الموقع مطلوب؟ النوع الوصف
Hotel.Offer.priceSpecification.price Required float

السعر الإجمالي للفندق، بما في ذلك الضرائب والرسوم

يجب دائمًا إضافة تعليق توضيحي إلى سعر Google على صفحتك المقصودة مع تفاصيل السعر الكاملة. يتيح لك وضع تعليقات توضيحية على تفاصيل الأسعار إكمال عمليات التحقّق من دقة الأسعار. يقبل محرّك بحث Google الأسعار على مستوى الفندق وعلى مستوى الغرفة.

Hotel.Offer.priceSpecification.priceCurrency Required currency رمز عملة مكوّن من ثلاثة أحرف للسعر المحدّد. مثال: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

تفاصيل السعر الإجمالي، بما في ذلك الضرائب والرسوم المفروضة على الفندق هناك نوعان من البيانات المنظَّمة الخاصة بالسعر:

  • تقدّم CompoundPriceSpecification تفاصيل الأسعار لتشمل ما يلي:

    • السعر الأساسي: السعر الأساسي في الليلة

    • الضرائب لكل إقامة: السعر في الليلة مع الضرائب

    • الرسوم لكل شخص: السعر في الليلة لكل شخص.

    • الخصم: مبلغ الخصم

  • تُستخدَم السمة UnitPriceSpecification لتحديد نوع الرسوم. يجب تضمين قيم PriceComponentTypeEnumeration لتحديد الرسوم الإضافية.

    قيم PriceComponentTypeEnumeration هي:

    • Discount: الخصم العام على السعر

    • ResortFee: هي رسوم إضافية يجب دفعها في الفندق. ويمكن أن يختلف ذلك حسب نوع المكان المخصّص للاستئجار.

    • GenericTax: هي ضريبة إضافية متنوعة.

    • ServiceFee: هي رسوم إضافية يفرضها قناة الحجز.

    • TransferFee: هي رسوم إلزامية بحكم الواقع للانتقال إلى الفندق، ويجمعها الفندق أو قناة الحجز.

يجب ضبط القيم في السمة priceComponentType . جميع القيم مطلوبة إذا اخترت تضمين UnitPriceSpecification، ويجب تحديدها في السمة UnitPriceSpecification.

Hotel.Offer.priceSpecification.priceComponent. potentialAction Optional PayAction

نقطة الدفع في الفندق: تتضمّن إجراءات الدفع في الفندق الأسعار التي يتم تحصيلها عند تسجيل المغادرة على موقع الحجز وفي الفندق عند تسجيل الوصول.

يجب استخدام السمة potentialAction المضمّنة في الحقل "recipient" الخاص بالنوع PayAction للإشارة إلى نقطة الدفع. اطّلِع على PayAction لمعرفة المزيد عن السمة recipient.

يتيح محرّك بحث Google الإعدادَين التاليَين لمستلم PayAction:

  • يشير recipient.@type = "OnlineBusiness" إلى الدفعة التي يحصّلها التاجر على الإنترنت عند الحجز. هذا هو الإعداد التلقائي في حال عدم تحديد potentialAction.

  • يشير recipient.@type = "Hotel" إلى الدفعة التي يتم تحصيلها في الفندق.

أمثلة

أمثلة على JSON-LD

السعر

في ما يلي مثال أساسي على إضافة بيانات منظَّمة خاصة بالسعر إلى صفحة الويب. يمكن تضمين عروض متعددة على مستوى الفندق في السمة makesOffer.

تكون أنواع PostalAddress، مثل addressCountry وpostalCode وstreetAddress والحقول الأخرى، إلزامية إذا اخترت تحديد السمة address. يجب إدراج السعر المعروض على Google أولاً في السمة makesOffer. يشمل مبلغ السعر المحدّد جميع الضرائب السارية.

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

تفاصيل السعر

في ما يلي مثال على السمة priceSpecification مع تفاصيل السعر. يتم تحديد السعر الأساسي والضرائب، مثل الضريبة العامة والخصم، باستخدام المكوّن UnitPriceSpecification. تذكَّر ضبط الحقل priceComponentType بالقيم المتوافقة مع المكوّن UnitPriceSpecification.

يجب تحديد السعر الإجمالي لمدة الإقامة في السمة CompoundPriceSpecification. يجب تحديد تفاصيل السعر في السمة 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"
        }
      ]
    }
  }
}

نقطة الدفع

في ما يلي مثال على تحديد potentialAction باستخدام نوع المستلِم في PayAction.

يبلغ السعر الإجمالي للحزمة 1,170 دولارًا أمريكيًا، ويفرض الموقع الإلكتروني جزءًا من السعر الإجمالي يبلغ 1,150 دولارًا أمريكيًا في وقت الحجز المحدّد باستخدام "@type": "OnlineBusiness"، وعلى المستخدم دفع المبلغ المتبقي البالغ 20 دولارًا أمريكيًا عند تسجيل الوصول إلى الفندق المحدّد باستخدام @type": "Hotel".

يجب تحديد العنصر potentialAction لتقسيم الدفع بين وقت الحجز والفندق. في حال عدم تحديدها، سيفسّر payAction عملية الدفع في وقت الحجز على أنّها طريقة الدفع التلقائية.

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

مثال على البيانات الجزئية

تفاصيل السعر

في ما يلي مثال على السمة priceSpecification مع تفاصيل السعر. يتم تحديد السعر الأساسي والضرائب، مثل الضريبة العامة والخصم، باستخدام المكوّن UnitPriceSpecification. تذكَّر ضبط السمة name باستخدام القيم المتوافقة مع المكوّن UnitPriceSpecification.

يجب تحديد السعر الإجمالي لمدة الإقامة في السمة CompoundPriceSpecification. يجب تحديد تفاصيل السعر في السمة 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)

تُستخدَم هذه السمة لإضافة تعليقات توضيحية إلى سياسة ردّ الأموال التي يحدّدها التاجر في برامج الرحلات.

    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "refundType": "https://schema.org/FullRefund",
      "merchantReturnDays": "YYYY-MM-DD[THH:mm:ss]",
      "restockingFee": 0
    }

البنية

تتضمّن hasMerchantReturnPolicy بنية الجملة التالية:

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

الموقع

في ما يلي السمة hasMerchantReturnPolicy:

السمة مطلوب؟ النوع الوصف
Offer.hasMerchantReturnPolicy Optional MerchantReturnPolicy

تمثّل هذه السمة سياسة ردّ الأموال التي يحدّدها التاجر. على الشركاء استخدام MerchantReturnPolicy.restockingFee للإشارة إلى سياسات الإلغاء التي لا تردّ المبلغ الكامل مقابل مدة الإقامة.

إذا لم يتم تحديد السمة hasMerchantReturnPolicy أو تم تركها فارغة، يُفترض أنّ المبلغ غير قابل للاسترداد. يمكنك تحديد سياسة عدم ردّ الأموال باستخدام السمة returnPolicyCategory: MerchantReturnNotPermitted.

مثال

سياسة الإرجاع

في ما يلي مثال أساسي على البيانات المنظَّمة لفندق يتضمّن تفاصيل الغرف وإجمالي السعر مع الضرائب والرسوم. يشير هذا المثال إلى إقامة يمكن إلغاؤها بدون أي رسوم حتى الساعة 11 مساءً (بالتوقيت العالمي المتفق عليه) في 18 كانون الأول (ديسمبر) 2023. على الشركاء استخدام "MerchantReturnPolicy.restockingFee" للإشارة إلى سياسات الإلغاء التي لا تردّ المبلغ الكامل للإقامة. تكون القيمة التلقائية restockingFee هي 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)

يمكن استخدام هذه السمة لإضافة تعليقات توضيحية إلى برامج المكافآت المقدَّمة للعملاء المشتركين في برنامج الولاء الخاص بالفندق.

"eligibleCustomerType": "RewardsMember",
"priceSpecification": {
    "@type": "CompoundPriceSpecification",
    "price": "float",
    "priceCurrency": "currency"
 }

البنية

تتضمّن السمة eligibleCustomerType بنية الجملة التالية:

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

الموقع

في ما يلي السمة eligibleCustomerType:

السمة مطلوب؟ النوع الوصف
Offer.eligibleCustomerType Optional BusinessEntityType

برامج الولاء أو مكافآت المشتركين المقدَّمة للعملاء

تعرض العديد من صفحات الفنادق الأسعار المخصّصة للمشتركين مع الأسعار العامة، وذلك لتشجيع المستخدمين على الاشتراك في برامج الولاء. يمكن تحديد الأسعار المحصورة بشرائح جمهور معيّنة، مثل الأسعار المخصّصة للمشتركين، من خلال ضبط السمة Offer.eligibleCustomerType.

أمثلة

الأسعار الخاصة بالمشتركين

في ما يلي مثال أساسي على تحديد الأسعار المخصّصة للمشتركين أو الأسعار المحجوزة لبرامج الولاء. العميل هو "عضو في برنامج المكافآت" الخاص بالفندق.

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

الأسعار الخاصة بالمشتركين والأسعار العادية

في ما يلي مثال على التعليقات التوضيحية لكلّ من الأسعار العادية والأسعار المخصّصة للمشتركين. يتم عرض سعر الاشتراك أولاً، ثم الأسعار العادية.

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

البيانات المنظَّمة الخاصة بفنادق HotelRoom

موقع واحد (offers)

تُستخدَم تعليقات offers التوضيحية لترميز برامج رحلاتك المتعلقة بالغرف. يجب استخدام السمة offers لتحديد 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": {...}
}

البنية

تتضمّن السمة offers بنية الجملة التالية:

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

الخصائص

في ما يلي سمات offers:

الموقع مطلوب؟ النوع الوصف
offers Required Offer and LodgingReservation

مواصفات سعر الغرفة لبرنامج الرحلة المحدّد.

يمكن أن تحتوي السمة offers على مصفوفة من العروض.

LodgingReservation.checkinTime Required DateTime

وقت تسجيل الوصول في المنطقة الزمنية للمستخدم إذا لم يتم ذكر منطقتك الزمنية، سيتم اعتماد المنطقة الزمنية للفندق.

LodgingReservation.checkoutTime Required DateTime

وقت المغادرة في المنطقة الزمنية للمستخدم إذا لم يتم ذكر منطقتك الزمنية، سيتم اعتبار المنطقة الزمنية للفندق.

مثال

عروض

في ما يلي مثال أساسي لتحديد offers في السمة 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"
    }
  }
}

السمتان bed وoccupancy

تُستخدم السمة bed لإضافة تعليقات توضيحية حول نوع الأسرّة وعددها المتوفّر في الغرفة. تُستخدَم السمة occupancy للإشارة إلى عدد الضيوف في الغرفة. يمكن تحديد السمتَين bed وoccupancy باستخدام السمة 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"
  }
}

البنية

تتضمّن السمتان bed وoccupancy بنية الجملة التالية:

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

لا يمكن ضبط السمتَين bed وoccupancy إلا باستخدام السمة HotelRoom. يمكن تضمين معلومات خاصة بالغرفة، بما في ذلك الأسعار على مستوى الغرفة، في السمة Hotel من خلال السمة containsPlace. راجِع مثال مواصفات Hotel وHotelRoom.

الخصائص

في ما يلي السمتان bed وoccupancy:

الموقع مطلوب؟ النوع الوصف
HotelRoom.bed Optional (Recommended) bed

تمثّل هذه السمة نوع الأسرّة المتوفرة في مكان الإقامة وعدد الأشخاص الذين يمكنهم الإقامة في الغرفة.

القيم المسموح بها هي:

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

تمثّل هذه السمة عدد الضيوف في غرفة الفندق. نوع الإشغال هو QuantitativeValue.

تشكّل حالة التوفّر سمة صريحة للسمة HotelRoom، وليس لسمة Offer معيّنة. يجب وضع علامات على الأسعار للإشغال المطلوب فقط.

containsPlace Optional (Recommended) LocationFeatureSpecification

يُستخدَم هذا النوع من التعليقات التوضيحية للإشارة إلى الأسعار على مستوى الغرفة المرتبطة بغرف معيّنة. يمكن استخدامها أيضًا لتحديد وسائل الراحة المتوفّرة في الغرفة.

يمكنك الاطّلاع على مزيد من المعلومات حول كيفية استخدام containsPlace في السمة amenityFeature.

أمثلة

HotelRoom

في ما يلي مثال أساسي على الأسِرّة وعدد الأشخاص المسموح به في غرفة محدّدة.

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

Hotel وHotelRoom

في ما يلي مثال على إضافة تعليقات توضيحية إلى السمتَين Hotel وHotelRoom بالإضافة إلى bed وoccupancy وpriceSpecification.

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

تتشابه مواصفات أسعار الغرف الفندقية مع مواصفات أسعار الفنادق، إلا أنّ أسعار الغرف يتم تحديدها باستخدام السمة Product.offers بدلاً من السمة Hotel.makesOffer.

"priceSpecification": {
  "@type": "CompoundPriceSpecification",
  "price": "float",
  "priceCurrency": "currency",
  "priceComponent": {
    "@type": "UnitPriceSpecification",
    "name": "GenericTax",
    "price": "float",
    "priceCurrency": "currency"
  }
  ...
}

البنية

تتضمّن السمة priceSpecification لغرف الفنادق بنية الجملة التالية:

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

الخصائص

في ما يلي سمات HotelRoom priceSpecification:

الموقع مطلوب؟ النوع الوصف
Hotel.Offer.priceSpecification.price Required float

تمثّل هذه السمة السعر لكل غرفة، بما في ذلك الضرائب والرسوم المترتبة على Product.

يجب دائمًا إضافة تعليق توضيحي إلى سعر Google على صفحتك المقصودة مع تفاصيل السعر الكاملة. يتيح لك وضع تعليقات توضيحية على تفاصيل الأسعار إكمال عمليات التحقّق من دقة الأسعار. يقبل محرّك بحث Google الأسعار على مستوى الفندق وعلى مستوى الغرفة.

Hotel.Offer.priceSpecification.priceCurrency Required currency رمز عملة مكوّن من ثلاثة أحرف للسعر المحدّد. مثال: "USD" .
Hotel.Offer.priceSpecification.priceComponent Optional UnitPriceSpecification[]

تفاصيل السعر الإجمالي، بما في ذلك الضرائب والرسوم المترتّبة على غرفة الفندق والإشغال مع العروض المرتبطة بـ HotelRoom وProduct هناك نوعان من البيانات المنظَّمة الخاصة بالسعر:

  • تقدّم CompoundPriceSpecification تفاصيل الأسعار لتشمل ما يلي:

    • السعر الأساسي: السعر الأساسي في الليلة

    • الضرائب لكل إقامة: السعر في الليلة مع الضرائب

    • الرسوم لكل شخص: السعر في الليلة لكل شخص.

      occupancy هي سمة صريحة من سمات HotelRoom، وليس Offer محدّد. يجب وضع علامات على الأسعار فقط لعدد الأشخاص المطلوب.

    • الخصم: مبلغ الخصم

  • تُستخدَم السمة UnitPriceSpecification لتحديد نوع الرسوم. يجب تضمين قيم PriceComponentTypeEnumeration لتحديد الرسوم الإضافية.

    قيم PriceComponentTypeEnumeration هي:

    • Discount: الخصم العام على السعر

    • ResortFee: هي رسوم إضافية يجب دفعها في الفندق. ويمكن أن يختلف ذلك حسب نوع المكان المخصّص للاستئجار.

    • GenericTax: هي ضريبة إضافية متنوعة.

    • ServiceFee: هي رسوم إضافية يفرضها قناة الحجز.

    يجب ضبط القيم في السمة name الخاصة بالعنصر UnitPriceSpecification. يجب توفير جميع القيم إذا اخترت تضمين تفاصيل السعر، ويجب تحديدها في المكوّن UnitPriceSpecification.

أمثلة

السعر الإجمالي للغرفة

في ما يلي مثال أساسي على تحديد السعر الإجمالي لمدة الإقامة والسعر لكل شخص.

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

تفاصيل سعر الغرفة

في ما يلي مثال على السعر لكل غرفة أو خطة. يتم تحديد تفاصيل السعر لنوع الغرفة، مثل غرفة Deluxe، ونوع bed وoccupancy، مثل أسرّة KING وSINGLE، ومعدّل إشغال يبلغ ضيفَين.

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

تُستخدَم هذه السمة لإضافة تعليقات توضيحية إلى الخدمات الخاصة بالسعر المقدَّمة في الفندق أو الغرفة، مثل خيارات الوجبات وخدمة صف السيارات. يمكنك إضافة تعليقات توضيحية إلى السمة includesObject في السمتَين Hotel أو HotelRoom.

{
  "includesObject": [
    {
      "@type": "TypeAndQuantityNode",
      "typeOfGood": {
        "@type": "Service",
        "name": "Valet"
      }
    },
    {
      "@type": "TypeAndQuantityNode",
      "amountOfThisGood": "float",
      "unitText": "currency",
      "typeOfGood": {
        "@type": "FoodService",
        "name": "MealCredit"
      }
    }
  ]
}

البنية

يتضمّن includesObject بنية الجملة التالية للخدمات الخاصة بالأسعار المتاحة في الغرفة:

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

الموقع

تتضمّن السمة includesObject السمة التالية:

السمة مطلوب؟ النوع الوصف
Offer.includesObject Optional TypeAndQuantityNode

الخدمات المقدَّمة في الفندق أو الغرفة

يتم تضمين الميزات الخاصة بالسعر ضمن السمة includesObject. يجب استخدام حقل الاسم في "TypeAndQuantityNode.typeOfGood" للإشارة إلى نوع الخدمة، مثل خدمة صف السيارات أو خدمة تقديم الوجبات.

قد يتم أيضًا تضمين ميزات خاصة بالسعر ضمن العروض الأساسية، أو قد يتم تحديدها كميزات إضافية بسعر إضافي.

تتطلّب السمة includesObject قيمة من النوع TypeAndQuantityNode على النحو التالي:

  • BreakfastIncluded
  • DinnerIncluded
  • Valet
  • MealCredit

مثال

الخدمات

في ما يلي مثال أساسي على الميزات الخاصة بالسعر لخدمة صف السيارات وخدمات الطعام. يجب تحديد الميزات الخاصة بالسعر باستخدام السمة "Offer.includesObject". يجب استخدام حقل الاسم في "TypeAndQuantityNode.typeOfGood" للإشارة إلى نوع الخدمة.

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

تُستخدَم السمة offer.availability لإضافة تعليقات توضيحية إلى برامج الرحلات التي تم بيعها بالكامل لغرف الفندق.

"offers": {
    "@type": ["Offer", "LodgingReservation"],
    "checkinTime": "YYYY-MM-DD[THH:mm:ss]",
    "checkoutTime": "YYYY-MM-DD[THH:mm:ss]",
    "availability": "https://schema.org/SoldOut"
}

البنية

تتضمّن السمة availability بنية الجملة التالية:

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

الموقع

في ما يلي السمة availability:

السمة مطلوب؟ النوع الوصف
Offer.availability Optional ItemAvailability

تعرض هذه السمة معلومات توفّر الفندق أو الغرفة.

يتم استخراج الأسعار من schema.org/Offer، ولا يتم إنشاء معلومات الأسعار باستخدام schema.org/Hotel أو schema.org/HotelRoom. وهذا يعني أنّه حتى البرامج التي تم بيعها بالكامل يجب أن تتضمّن عرضًا.

يُعدّ العرض غير متاح إذا لم يتضمّن priceSpecification. يجب تحديد العروض غير المتوفّرة على أنّها "Offer.availability= https://schema.org/SoldOut".

ليس من الضروري تحديد Offer.availability إذا كان العرض الترويجيّ مشروحًا باستخدام priceSpecification. صالح.

مثال

مدى التوفّر

في ما يلي مثال أساسي لعرض عدم توفّر غرف فندقية. يجب تضمين نوع السرير وعدد الأسرّة وتفاصيل الإشغال للغرفة المحدّدة.

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

يمكن تحديد وسائل الراحة في النوع Hotel أو HotelRoom باستخدام السمة amenityFeature. يجب استخدام السمة containsPlace لتحديد وسائل الراحة المتوفّرة في الغرفة.

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

البنية

تتضمّن السمتان amenityFeature وcontainsPlace البنية التالية:

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

وسائل الراحة

يُسمح بوسائل الراحة التالية ويتم تحديدها في السمة name.

السمة مطلوب؟ النوع الوصف
amenityFeature.AC Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر مكيفات هواء.
amenityFeature.AirportShuttle Optional boolean تُستخدَم لتحديد ما إذا كان المضيف يوفّر خدمات نقل من وإلى المطار أو محطات النقل الأخرى.
amenityFeature.Balcony Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر شرفة.
amenityFeature.BeachAccess Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يتيح استخدام شاطئ عام بالقرب منه.
amenityFeature.ChildFriendly Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار مناسبًا للأطفال.
amenityFeature.Crib Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر سرير أطفال.
amenityFeature.Elevator Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يضم مصعدًا.
amenityFeature.FirePlace Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يضم موقد تدفئة.
amenityFeature.FreeBreakfast Optional boolean تُستخدَم لتحديد ما إذا كانت الإقامة تشمل وجبة فطور مجانية لجميع النزلاء. استخدِم ميزات الأسعار لتحديد ما إذا كانت وجبة الفطور مضمّنة في خطط أسعار معيّنة فقط.
amenityFeature.GymFitnessEquipment Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر صالة تمارين أو أي معدّات رياضية.
amenityFeature.Heating Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر التدفئة.
amenityFeature.HotTub Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر مغطس مياه ساخنة.
amenityFeature.InstantBookable Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار قابلاً للحجز بشكل فوري عبر إتمام عملية الدفع. والخيار البديل هو انتظار الحصول على موافقة.
amenityFeature.IroningBoard Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر ألواح كي.
amenityFeature.Kitchen Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر مطبخًا.
amenityFeature.Microwave Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر ميكروويف.
amenityFeature.OpenAirBath(Hotels only) Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر حمّامًا في الهواء الطلق. في حال تحديدها على مستوى الغرفة، يجب أن يكون الحمّام خاصًا بالنزلاء فقط.
amenityFeature.OutdoorGrill Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر أدوات الشواء.
amenityFeature.OvenStove Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر موقد طهي.
amenityFeature.Patio Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر فناء.
amenityFeature.Pool Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر حوض سباحة.
amenityFeature.PrivateBeachAccess Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر إمكانية استخدام شاطئ خاص.
amenityFeature.SelfCheckinCheckout Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر إمكانية تسجيل الوصول والمغادرة ذاتيًا.
amenityFeature.WasherDryer Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر غسالات ملابس.
amenityFeature.Wifi Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يوفّر شبكة Wi-Fi.
amenityFeature.Smoking Optional boolean تُستخدَم لتحديد ما إذا كان المكان المخصّص للاستئجار يسمح بالتدخين.
amenityFeature.InternetType Optional Enum

تحدّد هذه السمة نوع اتصال الإنترنت المتاح في المكان المخصّص للاستئجار.

القيمتان المسموح بإدراجهما هما:

  • FREE
  • PAID
  • NONE
amenityFeature.ParkingType Optional Enum

تحدّد هذه السمة نوع موقف السيارات المتاح في المكان المخصّص للاستئجار.

القيمتان المسموح بإدراجهما هما:

  • FREE
  • PAID
  • NONE
amenityFeature.PoolType Optional Enum

تحدّد هذه السمة نوع حوض السباحة المتاح في المكان المخصّص للاستئجار.

القيمتان المسموح بإدراجهما هما:

  • INDOOR
  • OUTDOOR
  • NONE
amenityFeature.RoomStyle Optional Enum

تشير إلى ما إذا كانت الغرفة مصمَّمة على الطراز الياباني.

القيمتان المسموح بإدراجهما هما:

  • WESTERN
  • JAPANESE
  • JAPANESE_WESTERN
amenityFeature.LicenseNum Required string

تشير هذه السمة إلى رقم ترخيص النشاط التجاري المطلوب عرضه على المكان المخصّص للاستئجار في مناطق محدّدة من العالم. يمكن تكرارها، وفي حال توفُّر عدة تراخيص، ننصح بإضافة جهة إصدار الترخيص. على سبيل المثال، "Paris: 123456ABC"

الخصائص

في ما يلي سمات amenityFeature:

الموقع مطلوب؟ النوع الوصف
amenityFeature Optional LocationFeatureSpecification

تشير هذه السمة إلى وسائل الراحة المتوفّرة في الفندق أو الغرفة. يمكن تحديدها باستخدام السمة amenityFeature . يجب أن تكون وسائل الراحة متاحة لجميع النزلاء في الفندق بغض النظر عن خطة الأسعار المحدّدة. يتم تحديد amenityFeature باستخدام قيمة السمة LocationFeatureSpecification.

يمكن تحديد وسائل الراحة على مستوى Hotel أو HotelRoom.

containsPlace Optional LocationFeatureSpecification

تشير إلى وسائل الراحة المتوفّرة في الفندق أو الغرفة لجميع نزلاء الفندق. ويمكن تحديدها باستخدام amenityFeature . يجب أن تكون وسائل الراحة متاحة لجميع النزلاء في غرف الفندق بغض النظر عن خطة الأسعار المحدّدة.

Hotel.containsPlace.amenityFeature هي وسائل الراحة المتوفرة في الفندق.

HotelRoom.containsPlace.amenityFeature هي وسائل الراحة المتوفرة في الغرفة.

مثال

وسائل الراحة في الفندق والغرفة

في ما يلي مثال على فندق يضم مسبحًا مفتوحًا من الساعة 10 صباحًا إلى الساعة 10 مساءً ولا يتوفّر فيه نادٍ رياضي. غرفة الفندق مخصّصة لغير المدخنين وتضمّ بارًا صغيرًا.

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