طرح موجودی v1

فیدهای کاتالوگ غذا بر اساس نهادهای DataFeed schema.org هستند. فید کاتالوگ غذا شامل جزئیات محلی رستوران مانند آدرس رستوران، منو، و مکان، و همچنین جزئیات خدمات رستوران مانند هزینه های تحویل، مناطق تحویل، و موارد دیگر است که در زیر مشخص شده است.

یک DataFeed شامل مجموعه‌ای از عناصر است که هر کدام یک آیتم را نشان می‌دهند که در واژگان schema.org بیان شده است. می توانید از نوع DataFeed برای انتشار تمام داده های ساختاریافته خود در قالب JSON-LD استفاده کنید.

برای اطلاعات در مورد استفاده از این مشخصات برای ساخت فیدهای خود، به نمای کلی یکپارچه سازی موجودی مراجعه کنید.

فرمت های DateTime و Time

DateTime بر اساس نوع schema.org است و، مگر اینکه خلاف آن ذکر شده باشد، باید از قالب ISO 8601 پیروی کند و تاریخ، زمان و منطقه زمانی را شامل شود. از دستور زیر برای DateTime استفاده کنید:

// DateTime format:
YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]

مثلا:

2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z  // UTC time zone. The optional "Z" suffix represents the UTC time zone.

Time ، زمان محلی منطقه زمانی یک رستوران یا مکان ارائه خدمات است، همچنین بر اساس نوع schema.org است، و همچنین باید از قالب ISO 8601 پیروی کند. Time از نحو زیر استفاده می کند:

// Time format:
THH:MM:SS

مثلا:

T08:08:00 // 8:08 AM

هر زمان که DateTime یا Time تعیین می کنید به موارد زیر توجه کنید:

  • پیشوند "T" قبل از زمان بخشی از قالب است و لازم است.
  • منطقه زمانی باید برای DATETIME مشخص شود. برای TIME لازم نیست.
  • زمان رستوران یا سرویس باید به وقت محلی مشخص شود.

پاكت نامه

کد شروع برای هر خوراک کاتالوگ مواد غذایی باید دارای بخش "پاکت" باشد.

"پاکت" ساختار سطح بالای هر فید است و باید یک DataFeed با ویژگی های زیر باشد:

ویژگی تایپ کنید ضرورت شرح
@context URL ضروری زمینه مورد استفاده؛ معمولاً "http://schema.googleapis.com".
@type متن ضروری این همیشه "DataFeed" است.
dateModified DateTime ضروری

آخرین DateTime تغییر یافته در فید داده، در قالب ISO 8601.

تاریخ و ساعت در قالب ISO_OFFSET_DATE_TIME که بر اساس آن موارد موجود در این فید اصلاح شدند. در غیاب این فیلد، فرض بر این است که زمان به‌روزرسانی زمانی است که پیام فشار دریافت می‌شود (یا خزیدن اتفاق می‌افتد) در سرورهای Google.

اگر از فشار و خزیدن با هم استفاده می کنید، اکیداً به شما توصیه می کنیم که این را اجرا کنید. این مهر زمانی باید با یک منطقه زمانی و دانه بندی میلی ثانیه مشخص شود. به عنوان مثال "2016-12-28T06:30:00:123-07:00".

در فیدهای دسته ای شما، نسخه بندی موجودیت از طریق قسمت dateModified در پاکت فید تعیین می شود.

dataFeedElement مجموعه ای از Menu یا Restaurant یا Service ضروری یک یا چند مورد که بخشی از این فید هستند. برای جزئیات به زیر مراجعه کنید.

مثال زیر پاکت نامه را نشان می دهد:

مثال

{
  "@context": "http://schema.googleapis.com",
  "dateModified": "2016-12-28T06:30:00:123-07:00",
  "@type": "DataFeed",
  "dataFeedElement": [
    /* All items that are part of this feed go here */
  ]
}

جزئیات افزودنی

برای استفاده از این نوع، زمینه gs1 را اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"]

سپس، FoodBeverageTobaccoProduct را به نوع MenuItem یا MenuItemOption مناسب اضافه کنید.

جدول زیر ویژگی های نوع AdditiveDetails را توضیح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "AdditiveDetails" است.
additiveName متن اختیاری نام ماده افزودنی
additiveLevelOfContainment متن اختیاری کد مهار در gs1:LevelOfContainmentCode . برای مثال http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ، http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ، یا http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .

مثال زیر استفاده از نوع AdditiveDetails را نشان می دهد:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/8",
  "name": "Energy Drink",
  "description": "A 0.25l can of energy drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-energy-drink",
    "price": "3.49",
    "priceCurrency": "USD"
  },
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AdditiveDetails",
      "additiveName": "phosphate",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

AddOnMenuItem

یک مورد غذا یا نوشیدنی که در یک آیتم منوی افزودنی MenuItem فهرست شده است.

جدول زیر ویژگی های نوع AddOnMenuItem را فهرست می کند:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "AddOnMenuItem" است.
@id URL ضروری یک شناسه منحصر به فرد از آیتم منوی افزودنی.
name متن ضروری متنی که وقتی کاربر در حال مرور منو است، AddOnMenuItem را شناسایی می کند.
description متن اختیاری شرح آیتم منوی افزودنی.
image URL اختیاری

تصویر آیتم منوی افزودنی که با دستورالعمل های زیر مطابقت دارد:

  • نسبت تصویر 3:2
  • >
  • حداقل وضوح 600x400 پیکسل، 72 نقطه در اینچ
  • >
  • وضوح پیشنهادی 1400x960 پیکسل، 72 نقطه در اینچ
offers آرایه Offer ضروری*

یک یا چند پیشنهاد برای ارائه این AddOnMenuItem.

توضیح می دهد که چه زمانی و با چه قیمتی این AddOnMenuItem در دسترس است. فقط یک پیشنهاد باید در یک زمان خاص معتبر باشد. اگر قیمت یا در دسترس بودن بر اساس زمان روز تغییر کند، می‌توانید پیشنهادهای معتبر زیادی داشته باشید. هنگامی که افزونه یا مورد از طریق یک ویژگی پایه یا یک تغییر در خود مورد افزودنی متفاوت است (مانند سیب زمینی سرخ کرده کوچک، متوسط ​​و بزرگ به عنوان یک افزودنی)، از ویژگی hasMenuItemOption استفاده کنید.

پیش فرض Offer.eligibleQuantity حداقل 0 و حداکثر 1 است.

ویژگی های Offer زیر در AddOnMenuItem استفاده می شود:

  • Offer.sku مورد نیاز است
  • Offer.price مورد نیاز است
  • Offer.priceCurrency مورد نیاز است
  • Offer.availabilityStarts اختیاری است
  • Offer.availabilityEnds اختیاری است
  • Offer.availableDay اختیاری است
  • Offer.validFrom اختیاری است
  • Offer.validThrough اختیاری است
  • Offer.eligibleQuantity اختیاری است
  • Offer.inventoryLevel اختیاری است
hasMenuItemOptions آرایه MenuItemOption ضروری*

آرایه‌ای از ویژگی‌های پایه که تغییراتی را در خود مورد افزودنی (مانند سیب‌زمینی‌های سرخ شده کوچک، متوسط ​​و بزرگ به عنوان یک افزودنی) برای این آیتم منوی افزودنی توصیف می‌کنند. از گزینه‌ها برای تعیین تغییرات مختلف موجود برای این آیتم منوی افزودنی استفاده کنید. دو سناریو وجود دارد که ممکن است این اتفاق بیفتد:

  • تغییر پایه روی خود مورد افزودنی است (مانند سیب زمینی سرخ کرده کوچک، متوسط ​​و بزرگ به عنوان افزودنی)
  • تنوع پایه برای آیتم منو که این افزونه با آن مرتبط است (مانند پنیر اضافی به عنوان یک افزودنی برای یک پیتزای بزرگ)
suitableForDiet مجموعه ای از RestrictedDiet اختیاری این ظرف با محدودیت غذایی شرح داده شده مطابقت دارد (مانند "GlutenFreeDiet" یا "VeganDiet"). این یک لیست برشماری از مقادیر ممکن است.
nutrition NutritionInformation اختیاری اطلاعات تغذیه برای ظرف، به ویژه کالری.
menuAddOn آرایه AddOnMenuSection اختیاری AddOnMenuItem می تواند یک بخش منو متشکل از موارد مجاز داشته باشد که می تواند به عنوان یک افزودنی اضافه شود.

مثال زیر AddOnMenuItem را نشان می دهد:

مثال 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small-pepperoni-pizza",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large-pepperoni-pizza",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ],
  "menuAddOn": [
    {
      "@type": "AddOnMenuSection",
      "name": "Choice of toppings",
      "@id": "https://www.example.com/1089/addon/1",
      "hasMenuItem": [
        {
          "@type": "AddOnMenuItem",
          "@id": "https://www.example.com/1089/addon/1/a",
          "name": "Shrimp",
          "hasMenuItemOptions": [
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],
              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-small",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-large",
                "price": "2.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-small",
                "price": "1.50",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-large",
                "price": "2.50",
                "priceCurrency": "USD"
              }
            }
          ]
        }
      ]
    }
  ]
}

AddOnMenuSection

زیر گروهی از اقلام غذا یا نوشیدنی به عنوان بخش منوی افزودنی برای آیتم منو.

جدول زیر ویژگی های نوع AddOnMenuSection را فهرست می کند:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "AddOnMenuSection" است.
@id URL ضروری شناسه منحصر به فرد بخش منو.
name متن ضروری متنی که می‌تواند بخش AddOnMenuSection را هنگامی که کاربر در حال مرور منو است شناسایی کند.
description متن اختیاری توضیحات بخش منو
eligibleQuantity QuantitativeValue اختیاری تعداد موارد مجاز به عنوان افزودنی برای این بخش منو را نشان می دهد. می‌توانید از این قسمت برای محدود کردن تعداد افزودنی‌ها، مانند حداقل و حداکثر تعداد رویه‌هایی که می‌توانید روی پیتزا انتخاب کنید، استفاده کنید.
image URL اختیاری تصویر بخش منو
hasMenuItem آرایه AddOnMenuItem ضروری* آیتم های منوی افزودنی موجود در AddOnMenuSection.
offers آرایه Offer اختیاری

از Offer .availabilityStarts و Offer .availabilityEnds برای نشان دادن دوره زمانی در دسترس بودن این AddOnMenuSection استفاده کنید.

فهرست زیر نشان می دهد که کدام ویژگی های Offer در AddOnMenuSection استفاده می شود.

  • Offer.availabilityStarts اختیاری است
  • Offer.availabilityEnds اختیاری است
  • Offer.availableDay اختیاری است
  • Offer.validFrom اختیاری است
  • Offer.validThrough اختیاری است
hasMenuSection آرایه AddOnMenuSection ضروری* زیر گروه بندی منطقی منوی افزودنی (مانند شام، پیش غذا، یا غذاهای ماهی).
defaultOption آرایه AddOnMenuItem اختیاری

آیتم های منوی افزودنی به طور پیش فرض برای کاربران در AddOnMenuSection از پیش انتخاب می شوند. کاربران می توانند انتخاب های نهایی را تغییر دهند. اگر هیچ defaultOption مشخص نشده باشد، هیچ AddOnMenuItem از پیش انتخاب نشده است.

اشیاء AddOnMenuItem باید در hasMenuItem از AddOnMenuSection وجود داشته باشد.

تعداد defaultOption نمی تواند از حداکثر eligibleQuantity در AddOnMenuSection بیشتر شود.

numberOfFreeAddOns عدد اختیاری تعداد افزونه هایی را که کاربر می تواند بدون پرداخت هزینه انتخاب کند را نشان می دهد.

مثال‌های زیر شامل اشیاء AddOnMenuSection هستند:

مثال 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

مثال 3

یک آیتم منوی "Sandwich پنیر" دارای یک AddOnMenuSection "Choice of Cheese" است که "Swiss" و "Mozzarella" از قبل به عنوان پیش‌فرض انتخاب شده‌اند.

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "defaultOption": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a"
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b"
    }
  ],
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozzarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

AdvanceServiceDeliveryHoursSpecification

ساعات تکمیل را برای کاربران نشان می دهد تا سفارشات قبلی برای تحویل و تحویل را برنامه ریزی کنند.

به طور معمول، مقدار opens کمتر از مقدار closes است. دستورالعمل های زیر برای استفاده از ویژگی های opens و closes می شود:

  • ویژگی های opens و closes برای AdvanceServiceDeliveryHoursSpecification اختیاری هستند، اما ما قویاً توصیه می کنیم که آنها را اضافه کنید.
  • زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار opens یا closes وارد نکنید. مناطق زمانی مشخص نادیده گرفته می شوند.
  • اگر opens و closes به طور صریح مشخص نشده باشد، فرض می کنیم که سفارش از قبل در همه روزها در همه زمان ها در دسترس است.
  • اگر opens و closes یکسان باشد، فرض می کنیم که سفارش از قبل در دسترس نیست.
  • اگر opens بیشتر از closes باشد، ساعت بسته شدن به روز بعد تعبیر می شود. به عنوان مثال، اگر ساعت کار روی 1 ژانویه ساعت 5 بعد از ظهر و ساعت بسته شدن ساعت 2 بامداد تنظیم شده باشد، رستوران به عنوان بسته شدن در 2 ژانویه در ساعت 2 بامداد تعبیر می شود.
  • opens و closes اشاره به شکاف زمانی آینده دارد. closes انحصاری است. به عنوان مثال، اگر ساعت 10 صبح opens می شود و ساعت 4 بعد از ظهر closes با serviceTimeInterval 15 دقیقه، اولین شکاف زمانی از ساعت 10 صبح و آخرین شکاف زمانی در ساعت 3:45 بعد از ظهر شروع می شود.

جدول زیر ویژگی های نوع AdvanceServiceDeliveryHoursSpecification را توضیح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "AdvanceServiceDeliveryHoursSpecification" است.
validFrom DateTime مشروط

تاریخ شروعی که از آن زمان می‌توان سفارشات قبلی کاربران را انجام داد. به عنوان مثال، "2017-05-01T00:00:00-07:00".

اگر این ویژگی تنظیم نشده باشد، فرض می شود که هر روز معتبر است. خواص validFrom و validThrough باید با هم وجود نداشته باشند یا وجود داشته باشند.

اگر این نوع به عنوان specialOpeningHoursSpecification در سطح Service مشخص شده باشد، این ویژگی validFrom در AdvanceServiceDeliveryHoursSpecification مورد نیاز است.

برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.

validThrough DateTime اختیاری

تاریخ پایانی که پس از آن سفارش‌های قبلی کاربران دیگر قابل انجام نیست. به عنوان مثال، "2018-12-01T00:00:00-07:00".

اگر این ویژگی تنظیم نشده باشد، فرض می شود که هر روز معتبر است. خواص validFrom و validThrough باید با هم وجود نداشته باشند یا وجود داشته باشند.

اگر این نوع به عنوان specialOpeningHoursSpecification در سطح Service مشخص شود، ویژگی validThrough در AdvanceServiceDeliveryHoursSpecification مورد نیاز است.

زمان validThrough انحصاری است. به عنوان مثال، اگر آن زمان روی 6 بعد از ظهر تنظیم شده باشد، زمان تا 5:59:59 بعد از ظهر معتبر است.

برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.

opens Time اختیاری

برای اسلات تحویل یا بیرون‌بر اعمال می‌شود.

زمان مشخصی از روز که از آن زمان می‌توان سفارش‌های پیش‌روی کاربران را انجام داد. به عنوان مثال، 6:30 صبح به عنوان "T06:30:00" داده می شود.

زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار opens لحاظ نکنید. اگر منطقه زمانی مشخص شده باشد، گوگل این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.

closes Time اختیاری

برای اسلات تحویل یا بیرون‌بر اعمال می‌شود.

زمان مشخصی از روز که پس از آن نمی‌توان سفارش‌های قبلی کاربران را انجام داد. به عنوان مثال، ساعت 9:00 به عنوان "T21:00:00" داده می شود. closes> انحصاری است، بنابراین تنظیم آن بر روی 9:00 بعد از ظهر برای serviceTimeInterval 15 دقیقه به این معنی است که آخرین شکاف زمانی موجود در ساعت 8:45 بعد از ظهر شروع می شود.

زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار closes لحاظ نکنید. اگر منطقه زمانی مشخص شده باشد، گوگل این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.

dayOfWeek آرایه DayOfWeek اختیاری

روزهایی از هفته که ساعت‌های تحویل از قبل در دسترس است. مقادیر معتبر عبارتند از:

  • "دوشنبه"
  • "سهشنبه"
  • "چهار شنبه"
  • "پنج شنبه"
  • "جمعه"
  • "شنبه"
  • "یکشنبه"

اگر هیچ روزی از هفته را مشخص نکنید، AdvanceServiceDeliveryHoursSpecification برای همه روزها اعمال می شود.

serviceTimeInterval Duration ضروری

فاصله بین دو زمان سرویس متوالی.

به عنوان مثال: اگر opens و closes ساعت 8 صبح و 8 بعد از ظهر باشد و serviceTimeInterval 15 دقیقه باشد، کاربر می تواند زمان های تکمیلی را 8 صبح، 8:15 صبح، 8:30 صبح، 8:45 صبح و غیره انتخاب کند تا اینکه ساعت 8 شب

Duration باید به عنوان مدت زمان ISO 8601 مشخص شود. به عنوان مثال: "P15M" به معنی فواصل 15 دقیقه است.

advanceBookingRequirement QuantitativeValue ضروری

تعداد دقیقه از زمان سفارش که می توان سفارش قبلی را انجام داد.

min و max مقدار QuantitativeValue باید روی تعداد دقیقه و unitCode روی "MIN" تنظیم شود.

به عنوان مثال، اگر یک سفارش اولیه حداقل به 60 دقیقه نیاز دارد تا انجام شود و انجام آن بیش از 2 روز بعد محدود شود، min مقدار 60 و max مقدار 2880 است.

مثال زیر استفاده از نوع AdvanceServiceDeliveryHoursSpecification را نشان می دهد:

مثال 1

{
  "@type": "AdvanceServiceDeliveryHoursSpecification",
  "opens": "T10:00:00",  // Delivery between 10AM and 7:59:59PM
  "closes": "T20:00:00",
  "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601)
  "advanceBookingRequirement": {
    "minValue": 60,   // The slot should be at least 60 mins away
    "maxValue": 8640, // but not more than 6 days away
    "unitCode": "MIN"
  }
}

جزئیات آلرژن

برای استفاده از این نوع، زمینه gs1 را اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"]

سپس، FoodBeverageTobaccoProduct را به نوع MenuItem یا MenuItemOption مناسب اضافه کنید.

جدول زیر ویژگی های نوع AllergenDetails را شرح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "جزئیات آلرژن" است.
allergenType متن اختیاری نوع آلرژن در هر gs1:AllergenTypeCode . برای مثال http://gs1.org/voc/AllergenTypeCode-PEANUTS .
allergenLevelOfContainmentCode متن اختیاری کد مهار در gs1:LevelOfContainmentCode . برای مثال http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ، http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM یا http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .

مثال زیر استفاده از نوع AllergenDetails را نشان می دهد:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/6",
  "name": "Strawberry joghurt drink",
  "description": "A 0.5l bottle of strawberry joghurt drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-joghurt-drink",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

مشخصات شارژ تحویل

جدول زیر ویژگی های نوع DeliveryChargeSpecification را توضیح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "DeliveryChargeSpecification" است.
@id URL اختیاری شناسه برای مشخصات هزینه تحویل.
price عدد ضروری مجموع هزینه تحویل به عنوان یک مقدار عددی. از ویژگی priceCurrency برای نشان دادن نوع ارز به جای نمادهای ارز استفاده کنید. به عنوان مثال، "6.00"، بدون نماد ارز.
priceCurrency متن ضروری کد ارز 3 حرفی ISO 4217. به عنوان مثال، "USD".
eligibleTransactionVolume PriceSpecification اختیاری حجم تراکنش، در واحد پولی که این مشخصات هزینه تحویل برای آن معتبر است. به عنوان مثال، برای نشان دادن حداقل حجم خرید، یا بیان اینکه حمل و نقل بدون هزینه اضافی بالاتر از حجم سفارش مشخصی در دسترس است.
eligibleQuantity QuantitativeValue اختیاری فاصله و واحد اندازه گیری مقادیر سفارش که هزینه ارسال برای آنها معتبر است. این به شما امکان می دهد، برای مثال، مشخص کنید که هزینه حمل و نقل معین فقط برای مقدار مشخصی معتبر است.
eligibleRegion آرایه GeoShape یا Place یا GeoCircle اختیاری مکان یا GeoShape/GeoCircle برای منطقه(های) جغرافیایی سیاسی که مشخصات پیشنهاد یا هزینه تحویل برای آن معتبر است. فقط در صورتی از این ملک استفاده کنید که هزینه های تحویل بسته به منطقه متفاوت باشد.
validFrom DateTime اختیاری تاریخ و ساعت (از جمله منطقه زمانی) که هزینه تحویل مشخص شده معتبر می شود. به عنوان مثال، "2017-05-01T06:30:00-07:00". برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.
validThrough DateTime اختیاری تاریخ و ساعت (از جمله منطقه زمانی) که پس از آن هزینه تحویل مشخص شده معتبر نیست. به عنوان مثال، "2017-05-01T06:30:00-07:00". زمان validThrough انحصاری است: برای مثال، اگر آن زمان روی 6 بعد از ظهر تنظیم شود، زمان تا 5:59:59 بعد از ظهر معتبر است. برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.

مثال‌های زیر عناصر DeliveryChargeSpecification را نشان می‌دهند:

مثال 1

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}

مثال 2

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

مثال 3

"priceSpecification": [{
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
    "price": "8.00", // Charges $8 for area5
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00",
      "priceCurrency": "USD"
    },
    "eligibleRegion": [ // area5
      {
        "@type": "GeoCircle",
        "geoMidpoint": {
          "@type": "GeoCoordinates",
          "latitude": "37.7392607",
          "longitude": "-122.3895522"
        },
        "geoRadius": "4505"
      }
    ]
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
    "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00", // Minimum order price for delivery is $20
      "priceCurrency": "USD"
    }
  }
]

علاوه بر "@type": ["DeliveryChargeSpecification"] ، شی را می توان با UnitPriceSpecification گسترش داد:

"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]

افزونه دو ویژگی اضافی مورد نیاز برای هزینه های تحویل محاسبه شده به درصد را ارائه می دهد.

ویژگی تایپ کنید ضرورت شرح
referenceQuantity QuantitativeValue ضروری مقدار مرجعی که قیمت معینی برای آن اعمال می شود. برای مثال، referenceQuantity از مقدار 10 با unitCode از "P1" منجر به 10٪ از ارزش سفارش می شود. در حال حاضر فقط unitCode "P1" پشتیبانی می شود.
basePrice عدد اختیاری شارژ پایه علاوه بر referenceQuantity . به عنوان مثال، referenceQuantity 10 با unitCode "P1" و basePrice 5 به دلار منجر به 5 دلار + 10٪ از ارزش سفارش می شود. مقدار پیش فرض 0 است.

نمونه هزینه های تحویل

Google به شما اجازه می دهد تا با استفاده از Offer.PriceSpecification موجودیت سرویس، هزینه های مختلفی را از قبل برای کاربران تعیین کنید.

توجه داشته باشید که Ordering End-to-End در حال حاضر فقط از یک DeliveryChargeSpecification پشتیبانی می کند. همه انواع هزینه ها را در یک DeliveryChargeSpecification واحد ترکیب کنید.

برای نحوه تعیین هزینه های تحویل بر اساس مساحت، مسافت و ارزش سفارش، به نمونه های خوراک سرویس مراجعه کنید.

اگر هزینه ای وجود نداشته باشد، Offer.PriceSpecification حذف می شود.

  • مثال 1: هزینه تحویل 5 درصد از کل سبد خرید است
  • مثال 2: هزینه تحویل 5 دلار است
  • مثال 3: هزینه تحویل 5 دلار + 10 درصد از کل سبد خرید است
  • مثال 4: هزینه تحویل 5 دلار و هزینه کیف 0.1 دلار است
  • مثال 5: هزینه تحویل 5 درصد و هزینه تسهیلات 2 درصد از کل سبد خرید است.
  • مثال 6: هزینه تحویل 5 دلار و 1 دلار به ازای هر 1 کیلومتر مسافت اضافی است

مثال 1

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

مثال 2

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

مثال 3

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "10.00", // 10%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "5.00" // User always pays $5 in addition to 10%
  }
]

مثال 4

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }

مثال 5

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]

مثال 6

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "basePrice": 5.00, // User always pays $5
    "price": 1.00, // An additional $1.00 is added per 1km
    "priceCurrency": "USD",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "unitCode": "MTR", // MTR == meter
      "value": "1000.0" // 1km
    }
  }
]

GeoCircle

جدول زیر ویژگی های نوع GeoCircle را شرح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "GeoCircle" است.
geoMidpoint GeoCoordinates ضروری GeoCoordinates را در مرکز یک GeoCircle نشان می دهد.
geoRadius عدد ضروری شعاع تقریبی (بر حسب متر) یک GeoCircle را نشان می دهد.

مثال زیر یک عنصر GeoCircle را نشان می دهد:

مثال

{
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": "37.7392607",
    "longitude": "-122.3895522"
  },
  "geoRadius": "4505"
}

مختصات جغرافیایی

جدول زیر ویژگی های نوع GeoCoordinates را شرح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه «Coordinates» است.
latitude عدد ضروری

عرض جغرافیایی بر حسب درجه مقادیر به محدوده 90- تا 90 محدود می شوند. اگر مقدار مشخص شده کمتر از 90- باشد، روی 90- تنظیم می شود. اگر مقدار بیشتر از 90 باشد، روی 90 تنظیم می شود.

دقت باید حداقل 5 رقم اعشار باشد.

longitude عدد ضروری

طول جغرافیایی بر حسب درجه مقادیر خارج از محدوده 180- تا 180 بسته بندی می شوند تا در محدوده قرار گیرند. به عنوان مثال، مقدار -190 به 170 تبدیل می شود. مقدار 190 به -170 تبدیل می شود. این نشان دهنده این واقعیت است که طول های جغرافیایی به دور کره زمین می پیچند.

دقت باید حداقل 5 رقم اعشار باشد.

مثال زیر یک عنصر GeoCoordinates را نشان می دهد:

مثال

"geo": {
  "@type": "GeoCoordinates",
  "latitude": "35.7392607",
  "longitude": "-120.3895522"
}

GeoShape

جدول زیر ویژگی های نوع GeoShape را توضیح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "GeoShape" است.
polygon آرایه متن ضروری

یک چند ضلعی یا چندضلعی که به صورت مجموعه ای از سه یا چند نقطه با فضای محدود بیان می شود. توصیه می شود نکات اول و آخر یکسان باشد اما الزامی نیست.

هر نقطه در یک چند ضلعی یا چندضلعی با یک نقطه عرض جغرافیایی و یک نقطه طول جغرافیایی تعریف می شود. همچنین باید نقاط را در جهت خلاف جهت عقربه های ساعت مشخص کنید.

در بیشتر موارد شما یک چند ضلعی خواهید داشت. برای موارد استفاده پیچیده تر، به مستندات منطقه خدمات تحویل مراجعه کنید.

مثال‌های زیر عناصر GeoShape را نشان می‌دهند:

مثال 1

{
  "@type": "GeoShape", // area4
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
},

مثال 2

{
  "@type": "GeoShape", // A service area with a hole.
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”,
               “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”]
},

مثال 3

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "areaServed": [
    {
      "@type": "GeoShape",  // Richmond District delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474"
    },
    {
      "@type": "GeoShape",  // Haight-Ashbury delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417"
    }  ],
...
},

جدول زیر ویژگی های نوع Menu را فهرست می کند:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "منو" است.
@id URL ضروری شناسه منحصر به فرد برای منو.
name متن اختیاری متنی که می تواند Menu در زمانی که کاربر در حال مرور منو است شناسایی کند.
description متن اختیاری توضیحات منو.
disclaimer MenuDisclaimer اختیاری سلب مسئولیت برای منو. به عنوان مثال، افشای اطلاعات تغذیه ای و افشای آلرژن ها.
hasMenuSection یک شی یا آرایه از MenuSection اختیاری زیر گروه بندی منطقی منو (مانند شام، پیش غذا، یا غذاهای ماهی).
hasMenuItem یک شی یا آرایه از MenuItem اختیاری اشیاء MenuItem موجود در یک Menu ، معمولاً زمانی که Menu به MenuSections تقسیم نمی شود.
inLanguage متن اختیاری زبان محتوای منو، به عنوان یک کد زبان از استاندارد IETF BCP 47 . به عنوان مثال، "en-US".

مثال های زیر استفاده از نوع Menu را نشان می دهد:

مثال 1

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "hasMenuSection": {
    "@type": "MenuSection",
    "@id": "http://www.provider.com/somerestaurant/menusection/1",
    "name": "Tacos",
    "description": "Tacos inspired by India cuisine.",
    "offers": {
      "@type": "Offer",
      "availabilityStarts": "T08:00:00", // Starts at 8:00AM
      "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM
    },
    "hasMenuItem": {
      "@type": "MenuItem",
      "@id": "http://www.provider.com/somerestaurant/menuitem/1",
      "name": "Aloo Gobi Taco",
      "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.",
      "offers": {
        "@type": "Offer",
        "sku": "offer-aloo-gobi-taco",
        "price": "3.50",
        "priceCurrency": "USD"
      },
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "170 Cal",
        "fatContent": "3 g",
        "fiberContent": "2 g",
        "proteinContent": "4 g"
      },
      "suitableForDiet": "http://schema.org/GlutenFreeDiet"
    }
  },
  "inLanguage": "English"
}

مثال 2

این مثال hasMenuItem به عنوان یک آرایه نشان می دهد.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Main",
      "description": "Main course",
      "image": "http://www.provider.com/somerestaurant/main_dishes.jpg",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/1",
          "name": "Pizza",
          "description": "Pizza",
          "offers": {
            "@type": "Offer",
            "sku": "offer-pizza",
            "price": "7.49",
            "priceCurrency": "USD",
            "availabilityStarts": "T08:00:00", // Starts at 8:00AM
            "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
          }
        },
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/2",
          "name": "Pasta",
          "description": "Pasta",
          "offers": [
            {
              "@type": "Offer",
              "sku": "offer-pasta-lunch",
              "price": "7.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T08:00:00", // Starts at 8:00AM
              "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
            },
            {
              "@type": "Offer",
              "sku": "offer-pasta-dinner",
              "price": "10.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T18:00:00", // Starts at 6:00PM
              "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM
            }
          ]
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/2",
      "name": "Soups & Salads",
      "description": "Salads and a few choices of soup",
      "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/3",
        "name": "Pea Soup",
        "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-pea-soup",
          "price": "3.49",
          "priceCurrency": "USD"
        },
        "suitableForDiet": "http://schema.org/GlutenFreeDiet"
      }
    }
  ]
}

مثال 3

این مثال hasMenuSection به عنوان یک آرایه نشان می دهد.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Dinner",
      "description": "Dinner dishes",
      "hasMenuSection": [
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/2",
          "name": "Starters",
          "description": "Appetizers and such",
          "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/1",
            "name": "Potato Skins",
            "description": "Small serving of stuffed potato skins.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-potato-skins",
              "price": "7.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/3",
          "name": "Soups & Salads",
          "description": "Salads and a few choices of soup",
          "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/2",
            "name": "Pea Soup",
            "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-pea-soup",
              "price": "3.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/4",
          "name": "Steak",
          "description": "Steak Dishes",
          "image": "https://steak.com/steak_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/3",
            "name": "Sirloin",
            "description": "Sirloin steak dish.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-sirloin-steak",
              "price": "15.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/5",
      "name": "Desserts",
      "description": "Dessert dishes.",
      "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/4",
        "name": "Chocolate Pie",
        "description": "A slice of chocolate pie.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chocolate-pie",
          "price": "3.49",
          "priceCurrency": "USD"
        }
      }
    }
  ]
}

برای مثال‌های بیشتر از موجودیت‌های Menu ، به نمونه‌های فید رستوران و منو مراجعه کنید.

جدول زیر ویژگی های نوع MenuDisclaimer را فهرست می کند:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "منو سلب مسئولیت" است.
@id URL ضروری شناسه منحصر به فرد برای سلب مسئولیت منو.
text متن ضروری متن سلب مسئولیت. به عنوان مثال، "متوسط ​​مصرف انرژی روزانه بزرگسالان 8700 کیلوژول است."
url URL اختیاری نشانی اینترنتی که به صفحه ای اشاره می کند که جزئیات بیشتری در مورد سلب مسئولیت ارائه می دهد.

مثال زیر استفاده از نوع MenuDisclaimer را نشان می دهد:

مثال

{
    "@type": "Menu",
    "@id": "menu_1",
    "disclaimer": {
        "@type": "MenuDisclaimer",
        "@id": "menu_1_disclaimer_1",
        "text": "The average adult daily energy intake is 8700 kJ",
        "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html"
    }
}

آیتم منو برای نشان دادن آیتم در منو. جدول زیر ویژگی های نوع MenuItem را فهرست می کند:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "MenuItem" است.
@id URL ضروری شناسه منحصر به فرد آیتم منو.
name متن ضروری متنی که می تواند MenuItem هنگامی که کاربر در حال مرور منو است شناسایی کند.
description متن اختیاری شرح آیتم منو
image URL اختیاری

تصویر آیتم منو از دستورالعمل های تصویر زیر استفاده کنید:

  • نسبت تصویر 3:2
  • حداقل وضوح 600x400 پیکسل، 72 نقطه در اینچ
  • وضوح پیشنهادی 1400x960 پیکسل 72 dpi
menuAddOn آرایه AddOnMenuSection اختیاری موارد موجود در بخش منو که می توانند به عنوان افزودنی به آیتم منو اضافه شوند.
offers آرایه Offer ضروری*

یک یا چند پیشنهاد برای ارائه این MenuItem . توضیح می دهد که چه زمانی و با چه قیمتی این MenuItem در دسترس است. فقط یک پیشنهاد باید در یک زمان خاص معتبر باشد. در صورت وجود تغییر در قیمت/در دسترس بودن بر اساس زمان روز، پیشنهادهای متعددی می‌تواند ارائه شود. اگر ماده غذایی از نظر ویژگی پایه متفاوت است (مثلاً اندازه برای پیتزا)، از menuItemOption استفاده کنید. پیش‌فرض برای Offer.eligibleQuantity حداقل 0 بدون محدودیت بالایی است.

فهرست زیر نشان می‌دهد که کدام ویژگی‌های Offer در MenuItem استفاده می‌شوند.

  • Offer.sku مورد نیاز است
  • Offer.price مورد نیاز است
  • Offer.priceCurrency مورد نیاز است
  • Offer.availabilityStarts اختیاری است
  • Offer.availabilityEnds اختیاری است
  • Offer.availableDay اختیاری است
  • Offer.validFrom اختیاری است
  • Offer.validThrough اختیاری است
  • Offer.eligibleQuantity اختیاری است
  • Offer.inventoryLevel اختیاری است
hasMenuItemOptions آرایه MenuItemOption ضروری فهرستی از گزینه‌های پایه/تغییر برای این آیتم منو. از گزینه‌ها باید برای تعیین تغییرات پایه مختلف در دسترس برای آیتم استفاده شود، به عنوان مثال کوچک، متوسط ​​و بزرگ.
suitableForDiet مجموعه ای از RestrictedDiet اختیاری این ظرف با محدودیت غذایی توصیف شده مطابقت دارد (مانند "http://schema.org/GlutenFreeDiet" یا "http://schema.org/VeganDiet". این لیستی از مقادیر ممکن است.
nutrition NutritionInformation اختیاری اطلاعات تغذیه برای ظرف، به ویژه کالری.
hasAllergen AllergenDetails اختیاری آلرژن های ظرف در هر gs1:AllergenDetails . زمینه gs1 را برای استفاده از این ویژگی اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"] . و FoodBeverageTobaccoProduct را به نوع MenuItem اضافه کنید.
additive آرایه از AdditiveDetails اختیاری مواد افزودنی ظرف در هر gs1:AdditiveDetails . این یک لیست برشماری از مقادیر ممکن است. زمینه gs1 را برای استفاده از این ویژگی اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"] . و FoodBeverageTobaccoProduct را به نوع MenuItem اضافه کنید.
packaging PackagingDetails اختیاری اطلاعات بسته بندی و بازیافت این آیتم منو در gs1:PackagingDetails . زمینه gs1 را برای استفاده از این ویژگی اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"] . و FoodBeverageTobaccoProduct را به نوع MenuItem اضافه کنید.

مثال‌های زیر عناصر MenuItem را نشان می‌دهند:

مثال 1

"hasMenuItem": {
  "@type": "MenuItem",
  "@id": "http://www.provider.com/bar/menuitem/1",
  "name": "Potato Skins",
  "description": "Small serving of stuffed potato skins.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-potato-skins",
    "price": "7.49",
    "priceCurrency": "USD"
  },
  "suitableForDiet": "http://schema.org/GlutenFreeDiet"
}

مثال 2

"hasMenuItem": [
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170067",
    "name": "Veg Grill Burrito",
    "offers": {
      "@type": "Offer",
      "sku": "offer-veg-grill-burrito",
      "price": "12.99",
      "priceCurrency": "USD"
    },
    "menuAddOn": {
      "@type": "AddOnMenuSection",
      "name": "Cheese",
      "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
      "eligibleQuantity":
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 2 // Maximum of 2 cheeses are allowed
      }
    }
  },
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170018",
    "name": "Chicken Taco",
    "offers": {
      "@type": "Offer",
      "sku": "offer-chicken-taco",
      "price": "6.99",
      "priceCurrency": "USD"
    }
  }
]

مثال 3

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

مثال 4

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 5

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/9",
  "name": "Ice Coffee",
  "offers": {
    "@type": "Offer",
    "sku": "offer-ice-coffee",
    "price": "3.99",
    "priceCurrency": "USD"
  },
  "nutrition": {
    "@type": "NutritionInformation",
    "description": "Contains preservatives and artificial flavor"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN"
    }
  ],
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ],
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.10",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
}

برای مثال‌های بیشتر از موجودیت‌های MenuItem ، به نمونه‌های فید رستوران و منو مراجعه کنید.

گزینه ای برای نشان دادن انتخاب هایی که کاربر باید هنگام انتخاب یک ظرف یا ترکیبی انجام دهد. کاربر باید گزینه ای را انتخاب کند، در غیر این صورت سفارش نامعتبر تلقی می شود. به عنوان مثال، انتخاب کوچک، متوسط ​​یا بزرگ در مورد پیتزا.

برای نمونه موارد استفاده از MenuItemOption ، راهنمای ما در مورد سفارشی سازی با استفاده از MenuItemOption را ببینید.

جدول زیر ویژگی های نوع MenuItemOption را فهرست می کند:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "MenuItemOption" است.
value PropertyValue ضروری PropertyValue حاوی یک جفت نام/مقدار که گزینه را نشان می دهد.
offers آرایه Offer ضروری

یک یا چند پیشنهاد برای ارائه این MenuItemOption . توضیح می دهد که چه زمانی و با چه قیمتی این گزینه آیتم منو در دسترس است. فقط یک پیشنهاد باید در یک زمان خاص معتبر باشد. اگر قیمت/در دسترس بودن بر اساس زمان روز تغییر کند، می‌توانید پیشنهادهای معتبر زیادی داشته باشید. از Offer.eligibleQuantity استفاده نکنید. MenuItemOption متقابلاً منحصر به فرد است، بنابراین Offer.eligibleQuantity در صورت ارائه نادیده گرفته می شود.

فهرست زیر نشان می‌دهد که کدام ویژگی‌های Offer در MenuItemOption استفاده می‌شوند.

  • Offer.sku مورد نیاز است
  • Offer.price مورد نیاز است
  • Offer.priceCurrency مورد نیاز است
  • Offer.availabilityStarts اختیاری است
  • Offer.availabilityEnds اختیاری است
  • Offer.availableDay اختیاری است
  • Offer.validFrom اختیاری است
  • Offer.validThrough اختیاری است
  • Offer.eligibleQuantity اختیاری است
  • Offer.inventoryLevel اختیاری است
menuAddOn Array of AddOnMenuSection اختیاری بخش منو از موارد مجاز است که می تواند به عنوان یک افزودنی اضافه شود. فقط در صورتی از این مورد استفاده کنید که افزونه ها مختص یک گزینه منوی خاص باشند. در غیر این صورت با استفاده از ویژگی MenuItem .menuAddOn، افزونه هایی را ارائه دهید.
suitableForDiet مجموعه ای از RestrictedDiet اختیاری فهرست برشماری که نشان‌دهنده رژیم‌هایی است که در آن این غذا با محدودیت‌های غذایی توصیف‌شده مطابقت دارد (مانند "http://schema.org/GlutenFreeDiet" یا "http://schema.org/VeganDiet").
nutrition NutritionInformation اختیاری اطلاعات تغذیه برای ظرف، به ویژه کالری.
hasAllergen AllergenDetails اختیاری آلرژن های ظرف در هر gs1:AllergenDetails . زمینه gs1 را برای استفاده از این ویژگی اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"] . و FoodBeverageTobaccoProduct را به نوع MenuItemOption اضافه کنید.
additive آرایه از AdditiveDetails اختیاری مواد افزودنی ظرف در هر gs1:AdditiveDetails . این یک لیست برشماری از مقادیر ممکن است. زمینه gs1 را برای استفاده از این ویژگی اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"] . و FoodBeverageTobaccoProduct را به نوع MenuItemOption اضافه کنید.
packaging PackagingDetails اختیاری اطلاعات بسته بندی و بازیافت این MenuItem در هر gs1:PackagingDetails زمینه gs1 را برای استفاده از این ویژگی اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"] . و FoodBeverageTobaccoProduct را به نوع MenuItemOption اضافه کنید.

مثال زیر عناصر MenuItemOption را نشان می دهد:

مثال 1

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

بخش منو برای نشان دادن یک بخش خاص در منو. جدول زیر ویژگی های نوع MenuSection را فهرست می کند:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "MenuSection" است.
@id URL ضروری شناسه منحصر به فرد بخش منو.
name متن ضروری متنی که می‌تواند MenuSection را هنگام مرور منو شناسایی کند.
description متن اختیاری توضیحات بخش منو
hasMenuSection آرایه از MenuSection اختیاری زیر گروه بندی منطقی MenuSection . به عنوان مثال، بخش منوی شام می‌تواند چندین زیرمنو بخش مانند «ظروف مرغ» یا «گیاه‌خواری» داشته باشد.
hasMenuItem آرایه ای از MenuItem اختیاری آیتم های منو موجود در یک MenuSection .
offers آرایه Offer اختیاری

از Offer.availabilityStarts و Offer.availabilityEnds برای نشان دادن دوره زمانی استفاده از این MenuSection استفاده کنید. از Offer.eligibleQuantity استفاده نکنید.

لیست زیر نشان می دهد که کدام ویژگی های Offer در MenuSection استفاده می شوند:

  • Offer.availabilityStarts اختیاری است
  • Offer.availabilityEnds اختیاری است
  • Offer.availableDay اختیاری است
  • Offer.validFrom اختیاری است
  • Offer.validThrough اختیاری است
image URL اختیاری تصویر بخش منو

مثال‌های زیر موجودیت‌های MenuSection را نشان می‌دهند:

مثال 1

{
  "@type": "MenuSection",
  "@id": "http://www.provider.com/bar/menusection/4",
  "name": "Steak",
  "description": "Steak Dishes",
  "image": "https://steak.com/steak_dishes.jpg",
  "hasMenuItem": {
    "@type": "MenuItem",
    "@id": "http://www.provider.com/bar/menuitem/3",
    "name": "Sirloin",
    "description": "Sirloin steak dish.",
    "offers": {
      "@type": "Offer",
      "sku": "offer-sirloin-steak",
      "price": "15.49",
      "priceCurrency": "USD"
    },
    "suitableForDiet": "http://schema.org/GlutenFreeDiet"
  }
}

مثال 2

"hasMenuSection": [
  {
    "@type": "MenuSection",
    "@id": "https://www.example.com/1089/categorization/25114480",
    "name": "Main Items",
    "hasMenuItem": [
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170067",
        "name": "Veg Grill Burrito",
        "offers": {
          "@type": "Offer",
          "sku": "offer-veg-grill-burrito",
          "price": "12.99",
          "priceCurrency": "USD"
        },
        "menuAddOn": {
          "@type": "AddOnMenuSection",
          "name": "Cheese",
          "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
          "eligibleQuantity":
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2 // Maximum of 2 cheeses are allowed
          }
        }
      },
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170018",
        "name": "Chicken Taco",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chicken-taco",
          "price": "6.99",
          "priceCurrency": "USD"
        }
      }
    ]
  },
  {
    "@type": "AddOnMenuSection",
    "@id": "https://www.example.com/1089/addon/1",
    "name": "AddOnCheese",
    "hasMenuItem": [
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/a",
        "name": "Swiss",
        "offers": {
          "@type": "Offer",
          "sku": "offer-swiss",
          "price": "2.99",
          "priceCurrency": "USD"
        }
      },
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/b",
        "name": "Mozarella",
        "offers": {
          "@type": "Offer",
          "sku": "offer-mozzarella",
          "price": "1.99",
          "priceCurrency": "USD"
        }
      }
    ]
  }
]

برای مثال‌های بیشتر از موجودیت‌های MenuSection ، به نمونه‌های فید رستوران و منو مراجعه کنید.

اطلاعات تغذیه

جدول زیر خواص نوع NutritionInformation را شرح می دهد. واحدهای اندازه گیری به حروف بزرگ و کوچک حساس هستند. به عنوان مثال، «کال» پذیرفته می شود، اما «کال» نه.

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "اطلاعات تغذیه" است.
description متن اختیاری اطلاعات تغذیه در متن آزاد. به عنوان مثال "حاوی مواد نگهدارنده".
calories متن اختیاری

تعداد کالری بر حسب کالری، کیلوکالری یا کیلوژول با استفاده از فرمت زیر:

number Cal_kcal_OR_kJ

به عنوان مثال، "240 Cal".

carbohydrateContent متن اختیاری

مقدار کربوهیدرات، معمولاً بر حسب گرم، با استفاده از فرمت زیر:

number g_OR_mg

به عنوان مثال، "7 گرم".

cholesterolContent متن اختیاری

مقدار کلسترول، معمولاً بر حسب میلی گرم، با استفاده از فرمت زیر:

number g_OR_mg

به عنوان مثال، "12 میلی گرم".

fatContent متن اختیاری

مقدار چربی، معمولاً بر حسب گرم، با استفاده از فرمت زیر:

number g_OR_mg

به عنوان مثال، "42 گرم".

fiberContent متن اختیاری

تعداد گرم یا میلی گرم فیبر، با استفاده از فرمت زیر:

number g_OR_mg
proteinContent متن اختیاری

تعداد گرم یا میلی گرم پروتئین با فرمت زیر:

number g_OR_mg
saturatedFatContent متن اختیاری

تعداد گرم یا میلی گرم چربی اشباع شده با فرمت زیر:

number g_OR_mg
servingSize متن اختیاری اندازه سرو بر حسب تعداد حجم یا جرم بر حسب میلی لیتر، L، گرم یا کیلوگرم.
sodiumContent متن اختیاری

تعداد میلی گرم یا گرم سدیم با فرمت زیر:

number g_OR_mg
sugarContent متن اختیاری

تعداد گرم یا میلی گرم شکر با فرمت زیر:

number g_OR_mg
transFatContent متن اختیاری

تعداد گرم یا میلی گرم چربی ترانس با فرمت زیر:

number g_OR_mg
unsaturatedFatContent متن اختیاری

مقدار چربی غیراشباع، معمولاً بر حسب گرم، با استفاده از فرمت زیر:

number g_OR_mg

مثال‌های زیر یک عنصر NutritionInformation را نشان می‌دهند:

مثال 1

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},

مثال 2

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/7",
  "name": "Peach Ice Tea",
  "description": "A 0.5l bottle of peach ice tea.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-peach-ice-tea",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "nutrition": {
              "@type": "NutritionInformation",
              "description": "Contains preservatives and artificial flavor"
  }
},

پیشنهاد

پیشنهاد برای یک آیتم منو جدول زیر ویژگی های نوع Offer را شرح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "پیشنهاد" است.
sku متن مشروط

شناسه منحصر به فرد پیشنهاد. می تواند هر مقدار متنی باشد که در Offer منحصر به فرد است. مقادیر sku در Checkout ارجاع می‌شوند و به عنوان offerId در lineitem ارسال می‌شوند.

این ملک فقط در انواع پیشنهاد زیر استفاده می شود:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price متن مشروط

قیمت کالای ارائه شده به عنوان مثال، "6.00" بدون نماد ارز.

این ویژگی فقط در انواع پیشنهادات زیر مورد نیاز است:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

در انواع پیشنهاد زیر استفاده نمی شود:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency متن مشروط

واحد پول (در قالب 3 حرف ایزو 4217) قیمت یا جزء قیمت، وقتی به PriceSpecification و انواع فرعی آن پیوست شود.

این ویژگی فقط در انواع پیشنهادات زیر مورد نیاز است:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

در انواع پیشنهاد زیر استفاده نمی شود:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime یا Time اختیاری تاریخ و زمان یا فقط زمانی که از آن پیشنهاد در دسترس است. به عنوان مثال، اگر پنکیک ها از ساعت 7 صبح سرو شوند، مقدار این قسمت می تواند به شکل زیر باشد: "2017-05-01T07:00:00-07:00". برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.
availabilityEnds DateTime یا Time اختیاری تاریخ و زمان یا فقط زمانی که پیشنهاد در دسترس نیست. این بار اختصاصی است به عنوان مثال، اگر زمان دسترسی به پنکیک در ساعت 10 صبح به پایان برسد، آخرین پنکیک را می توان در ساعت 9:59:59 صبح سرو کرد. مقدار این فیلد می تواند به شکل زیر باشد: "2017-05-01T10:00:00-07:00". برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.
availableDay آرایه DayOfWeek اختیاری

روزهای هفته که این مورد در دسترس است. مقادیر معتبر عبارتند از:

  • "دوشنبه"
  • "سهشنبه"
  • "چهار شنبه"
  • "پنج شنبه"
  • "جمعه"
  • "شنبه"
  • "یکشنبه"

اگر برای روزهای مختلف هفته دسترسی متفاوتی دارید، از بیش از یک شیء Offer استفاده کنید، همانطور که در مثال‌های زیر نشان داده شده است.

validFrom DateTime اختیاری

تاریخ و ساعت (از جمله منطقه زمانی) که در آن قیمت مشخص شده معتبر است. به عنوان مثال، پاستا در هنگام ناهار 8 دلار و در شام 10 دلار است. برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

این ملک در انواع پیشنهادی زیر استفاده نمی شود:

  • Service.Offer
validThrough DateTime اختیاری

تاریخ و ساعت (از جمله منطقه زمانی) که پس از آن قیمت مشخص شده دیگر معتبر نیست. به عنوان مثال، پاستا در هنگام ناهار 8 دلار و در شام 10 دلار است. زمان validThrough انحصاری است: برای مثال، اگر آن زمان روی 6 بعد از ظهر تنظیم شود، زمان تا 5:59:59 بعد از ظهر معتبر است. برای اطلاعات بیشتر، به قالب‌های DateTime و Time مراجعه کنید.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

این ویژگی در انواع پیشنهادی زیر استفاده نمی شود.

  • Service.Offer
eligibleQuantity مقدار کمی اختیاری

مقادیر سفارشی که این مورد برای آنها مجاز است. به عنوان مثال، یک رستوران ممکن است نیاز داشته باشد که حداقل 10 پیتزا برای تحویل سفارش داده شود.

این مقدار اختیاری است. به طور پیش فرض، حداکثر محدودیتی وجود ندارد، اما رستوران می تواند یکی را مشخص کند. حداقل زمانی اعمال می شود که کاربر موردی را انتخاب کند.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

این ویژگی در انواع پیشنهادی زیر استفاده نمی شود.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating اختیاری

رتبه بندی کلی، بر اساس مجموعه ای از بررسی ها یا رتبه بندی های مورد.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

این ویژگی در انواع زیر استفاده نمی شود.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel مقدار کمی اختیاری

سطح موجودی تقریبی فعلی برای کالا یا اقلام.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer

این ملک در انواع پیشنهادی زیر استفاده نمی شود:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Array of DeliveryChargeSpecification یا آرایه PaymentChargeSpecification اختیاری

هنگامی که در Service.Offer استفاده می شود، جزئیات مربوط به قیمت تحویل را نشان می دهد. اگر چندین شیء DeliveryChargeSpecification قابل اجرا باشد، خاص ترین مورد اعمال می شود. برای جلوگیری از هرگونه ابهام، از اشیاء منحصر به فرد DeliveryChargeSpecification استفاده کنید.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • Service.Offer

این ملک در انواع پیشنهادی زیر استفاده نمی شود:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy مجموعه ای از شناسه های Restaurant اختیاری

نشان دهنده رستوران هایی است که این Offer در آنها ارائه می شود.

اگر مشخص نشده باشد، این Offer به همه رستوران ها ارائه می شود.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

این ملک در انواع پیشنهادی زیر استفاده نمی شود:

  • Service.Offer
applicableFulfillmentMethod آرایه متن اختیاری

نشان دهنده نوع خدماتی است که این Offer توسط آن انجام می شود. مقادیر ممکن "تحویل" یا "TAKEOUT" هستند.

اگر مشخص نشده باشد، این Offer هم با تحویل و هم با بیرون‌بر انجام می‌شود.

این ملک در انواع پیشنهادی زیر قابل استفاده است:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

این ملک در انواع پیشنهادی زیر استفاده نمی شود:

  • Service.Offer
@id URL منسوخ شناسه منحصر به فرد پیشنهاد. از تاریخ 4/25/19 منسوخ شده است، همانطور که در بالا توضیح داده شد با sku جایگزین کنید.

مثال‌های زیر عناصر Offer را نشان می‌دهند:

مثال 1

مثال زیر یک پیشنهاد ساده را نشان می دهد:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD"
}

مثال 2

پیشنهاد نمونه زیر در دسترس بودن را از ساعت 8 تا 10 صبح در تعطیلات آخر هفته نشان می دهد:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",  // Only available from 8-9:59:59 AM
  "availabilityEnds": "T10:00:00-07:00",
  "availableDay": ["Saturday", "Sunday"]  // Only on weekends.
}

مثال 3

مثال زیر در دسترس بودن را از ساعت 9 تا 10:59:59 در روزهای دوشنبه، چهارشنبه و جمعه، اما 8 تا 11:59:59 صبح در روزهای سه‌شنبه و پنج‌شنبه نشان می‌دهد:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T09:00:00-07:00",
  "availabilityEnds": "T11:00:00-07:00",
  "availableDay": ["Monday", "Wednesday", "Friday"]
}, {
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/141/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",
  "availabilityEnds": "T12:00:00-07:00",
  "availableDay": ["Tuesday", "Thursday"]
}

مثال 4

مثال زیر مجموعه مقدار واجد شرایط یک آیتم منوی افزودنی را نشان می دهد تا کاربر بتواند حداکثر 2 قسمت از آن مورد را سفارش دهد.

{
  "@type": "AddOnMenuItem",
  "@id": "https://www.example.com/1089/addon/a",
  "name": "Ranch",
  "offers": {
    "@type": "Offer",
    "@id": "https://www.example.com/1089/addon/a/offer",
    "price": "2.99",
    "priceCurrency": "USD"
    "eligibleQuantity": {
         "@type": "QuantitativeValue",
         "maxValue": 2
     }
  }
}

مثال 5

مثال زیر پیشنهاد تحویل در یک مکان خاص را نشان می دهد:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD",
  "applicableFulfillmentMethods": ["DELIVERY"],
  "offeredBy": [
    {
      "@type": "Restaurant",
      "@id": "https://www.provider.com/location/1",
    }
  ]
}

OpeningHoursSpecification

تعیین می کند که چه زمانی خدمات سفارش در دسترس است. به طور معمول، مقدار opens کمتر از مقدار closes است. دستورالعمل های زیر برای استفاده از ویژگی های opens و closes می شود:

  • خواص opens و closes اختیاری است اما به شدت توصیه می شود در هنگام سفارش در دسترس باشد. بهترین روش برای تعریف ساعات موجود شامل یک آرایه deliveryHours است که حاوی یک ServiceDeliveryHoursSpecification با ویژگی های opens و closes است. سپس می توانید اگر می خواهید یک پنجره محدودتر برای سفارش قبلی ارائه دهید ، می توانید یک شیء AdvanceServiceDeliveryHoursSpecification را در deliveryHours با ویژگی های opens و closes خود درج کنید.
  • اگر opens و closes به صراحت مشخص نشده است ، فرض می کنیم که سرویس سفارش هر روز در تمام ساعات روز در دسترس است.
  • زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار opens یا closes قرار ندهید. اگر یک منطقه زمانی مشخص شده باشد ، Google این اطلاعات را نادیده می گیرد.
  • اگر opens و closes ، پس فرض می کنیم که رستوران به مدت 0 دقیقه باز است.
  • اگر opens از closes بیشتر باشد ، ساعت بسته شدن در روز بعد تعبیر می شود. به عنوان مثال ، اگر ساعت افتتاحیه در تاریخ 1 ژانویه ساعت 5 بعد از ظهر تنظیم شود و ساعت بسته شدن ساعت 2 صبح باشد ، سپس رستوران در تاریخ 2 ژانویه ساعت 2 صبح تعبیر می شود.
  • زمان closes منحصر به فرد است. بنابراین ، اگر زمان باز و بسته برای این پنجره سفارش به ترتیب در ساعت 10 صبح و 4 بعد از ظهر تنظیم شود ، آخرین سفارش 3:59:59 بعد از ظهر است.

در جدول زیر خواص نوع OpeningHoursSpecification باز است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "افتتاحیه" است.
@id URL اختیاری شناسه برای OpeningHoursSpecification .
dayOfWeek مجموعه ای از DayOfWeek اختیاری

روز هفته ای که این ساعات کار معتبر است. ارزشهای قابل قبول "دوشنبه" ، "سه شنبه" ، "چهارشنبه" ، "پنجشنبه" ، "جمعه" ، "شنبه" و "یکشنبه" است. مثلا:

"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]

اگر هر روز از هفته را مشخص نکنید ، پس از OpeningHoursSpecification در همه روزها اعمال می شود.

opens Time اختیاری

هنگامی که در مشخصات Restaurant استفاده می شود ، این ملک نشانگر زمان افتتاح رستوران در روز (های) داده شده هفته است. به عنوان مثال ، 6:30 صبح به عنوان "T06: 30: 00" داده می شود.

هنگامی که در یک مشخصات Service استفاده می شود ، زمان خاصی از روز را که از آن می توان سفارشات کاربران را می توان قرار داد ، نشان می دهد. این زمان باز شدن سیستم آنلاین را مشخص می کند و به کاربران امکان می دهد سفارشات را قرار دهند. در آن ساعات باز و بسته شدن سیستم آنلاین ، می توانید از deliveryHours برای مشخص کردن ساعت های افتتاح/بسته شدن استفاده کنید که کاربران بتوانند انواع ویژه ای از تحویل ها را سفارش دهند.

زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار opens درج نکنید. اگر یک منطقه زمانی مشخص شده باشد ، Google این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

closes Time اختیاری

هنگامی که در یک مشخصات Service استفاده می شود ، این ویژگی زمان خاصی از روز را که فراتر از آن سفارشات کاربران نمی تواند قرار دهد ، نشان می دهد. این زمان بسته شدن سیستم آنلاین را مشخص می کند و به کاربران اجازه می دهد سفارشات را قرار دهند. در آن ساعات باز و بسته شدن سیستم آنلاین ، می توانید از deliveryHours برای مشخص کردن ساعت های افتتاح/بسته شدن استفاده کنید که کاربران بتوانند انواع ویژه ای از تحویل ها را سفارش دهند.

زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار closes قرار ندهید. اگر یک منطقه زمانی مشخص شده باشد ، Google این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

validFrom DateTime اختیاری

در صورت استفاده در مشخصات Restaurant ، این ملک نشانگر تاریخی است که ساعات کار مشخص شده توسط opens و closes رستوران معتبر است.

به عنوان مثال ، اگر ساعات داده شده در مورد تمام سال 2017 اعمال می شود ، شما را به عنوان "2017-01-01T00: 00: 00-07: 00" validFrom کرده اید و از این طریق validThrough "2017-12-31T23: 59: 59-07 : 00 ".

هنگامی که در یک مشخصات Service استفاده می شود ، validFrom از تاریخ آغاز شروع می شود که سفارشات کاربران می تواند قرار گیرد.

اگر این ویژگی در فید شما مشخص نشده باشد ، گوگل فرض می کند که روزانه رستوران یا سرویس در دسترس است.

علاوه بر تاریخ ، بخش زمان و منطقه زمانی مقدار مورد نیاز است.

برای منطقه زمانی ، از منطقه زمانی رستوران یا سرویس استفاده کنید.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

validThrough DateTime اختیاری

هنگامی که در یک Restaurant استفاده می شود ، تاریخی که پس از آن ساعت های آغازین مشخص شده توسط opens و closes معتبر نیست.

به عنوان مثال ، اگر ساعات داده شده در مورد تمام سال 2017 اعمال می شود ، شما را به عنوان "2017-01-01T00: 00: 00-07: 00" validFrom کرده اید و از این طریق validThrough "2017-12-31T23: 59: 59-07 : 00 ".

در صورت استفاده در مشخصات Service ، validThrough نشانگر تاریخ پایان فراتر از آن است که دیگر سفارشات کاربران را نمی توان قرار داد.

اگر این ویژگی در فید شما مشخص نشده باشد ، گوگل فرض می کند که روزانه رستوران یا سرویس در دسترس است.

علاوه بر تاریخ ، بخش زمان و منطقه زمانی DateTime مورد نیاز است.

برای منطقه زمانی ، از منطقه زمانی رستوران یا سرویس استفاده کنید.

زمان validThrough منحصر به فرد است. به عنوان مثال ، اگر آن زمان در ساعت 6 بعد از ظهر تنظیم شود ، زمان تا 5:59:59 بعد از ظهر معتبر است.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

deliveryHours مجموعه ای از ServiceDeliveryHoursSpecification یا مجموعه ای از AdvanceServiceDeliveryHoursSpecification مشروط

مشخصات تحویل یا زمان تحویل.

این پارامتر مورد نیاز است مگر اینکه رستوران بسته شود (به این معنی که opens و closes و با یکدیگر برابر است.

  • ServiceDeliveryHoursSpecification : در ساعت های افتتاحیه و بسته شدن ، می توانید ساعت ها را "باز" ​​و "بسته شدن" تنظیم کنید که کاربران بتوانند سفارشات ASAP را قرار دهند.
  • AdvanceServiceDeliveryHoursSpecification : در ساعات افتتاح/بسته شدن ، می توانید ساعت ها را "باز" ​​و "بسته شدن" تنظیم کنید که کاربران بتوانند سفارشات پیش رو را تنظیم کنند.

مثالهای زیر عناصر OpeningHoursSpecification را نشان می دهد:

مثال 1

// Ordering times for Monday through Friday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      "@type": "AdvanceServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T12:00:00", // Advance ordering begins at noon
      "closes": "T23:59:59", // Advance ordering ends at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    },
    {
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T10:00:00", // ASAP ordering begins at 10AM
      "closes": "T14:00:00", // ASAP ordering ends at 2PM
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
},

مثال 2

// Ordering times for Saturday and Sunday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      // In this case advance orders are unavailable on Saturday and Sunday
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "T12:00:00", // ASAP orders start at noon
      "closes": "T23:59:59", // ASAP orders end at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
}

مثال 3

"hoursAvailable": {
  "@type": "OpeningHoursSpecification",
  "validFrom": "2016-02-01T00:00:00-07:00",
  "validThrough": "2016-03-01T00:00:00-07:00",
  "opens": "T08:00:00",  // Ordering begins at 8:00AM and ends at 6:00PM.
                         // ASAP and and advance orders are restricted to this
                         // time frame since the user won't be able to place
                         // orders outside of this window.
  "closes": "T18:00:00",
  "deliveryHours": {
    "@type": "ServiceDeliveryHoursSpecification",
    "deliveryLeadTime": {
      "@type": "QuantitativeValue",
      "value": "60",
      "unitCode": "MIN"
    }
  }
},

مثال 4

// List hours available for 2017 and 2018
"hoursAvailable": [
  {
    "@type": "OpeningHoursSpecification",
    // Array containing advance order hours for each day
    "deliveryHours": [
      {
        // Open 10:00AM to 9:29:59PM on Mondays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Monday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Tuesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Tuesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Wednesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Wednesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Thursdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "dayOfWeek": [
          "Thursday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Fridays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Friday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Saturdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Saturday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 11:00AM to 6:59:59PM on Sundays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Sunday"
        ],
        "opens": "T11:00:00",
        "closes": "T19:00:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      }
    ]
  }
],

جزئیات بسته بندی

زمینه GS1 را برای استفاده از این نوع اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"] . و FoodBeverageTobaccoProduct به نوع MenuItem یا MenuItemOption اضافه کنید.

در جدول زیر خصوصیات نوع PackagingDetails شرح داده شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "PackagingDetails" است.
packagingRecyclingProcessType متن اختیاری بسته بندی نوع فرآیند بازیافت در هر GS1: PackageGrecyclingProcessTypecode . به عنوان مثال http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE یا http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails اختیاری جزئیات سپرده بسته قابل برگشت در هر GS1: بازگرداندن packagedepositdetails . به عنوان مثال ، بطری ها و قوطی ها دارای سپرده بسته قابل برگشت هستند.

مثال زیر استفاده از نوع PackagingDetails را نشان می دهد:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

PaymentChargeSpecification

در جدول زیر خصوصیات نوع PaymentChargeSpecification شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "پرداخت هزینه" است.
@id URL اختیاری شناسه PaymentChargeSpecification .
price عدد ضروری مقدار کل هزینه. به عنوان مثال ، "6.00" ، بدون نماد ارز.
priceCurrency متن ضروری کد ارز ISO 4217 3 حرف از قیمت. به عنوان مثال ، "USD".
eligibleTransactionVolume PriceSpecification اختیاری حجم معامله ، در یک واحد پولی ، که برای آن مشخصات پرداخت پرداخت معتبر است ، مانند نشان دادن حداقل حجم خرید.
eligibleQuantity QuantitativeValue اختیاری مقادیر سفارش که هزینه پرداخت آن معتبر است. به عنوان مثال ، می توانید از این ویژگی استفاده کنید تا به حداقل تعداد موارد به ترتیب نیاز داشته باشید.
validFrom DateTime اختیاری تاریخ و زمان (از جمله منطقه زمانی) هنگامی که هزینه پرداخت مشخص شده معتبر می شود. به عنوان مثال ، "2017-05-01T07: 00: 00-07: 00". برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.
validThrough DateTime اختیاری تاریخ و زمان (از جمله منطقه زمانی) هنگامی که هزینه پرداخت مشخص شده معتبر نیست. به عنوان مثال ، "2017-05-01T07: 30: 00-07: 00". زمان validThrough منحصر به فرد است: به عنوان مثال ، اگر آن زمان در ساعت 6 بعد از ظهر تنظیم شود ، زمان تا ساعت 5:59:59 بعد از ظهر معتبر است. برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

مثال زیر یک عنصر تخفیف پرداخت را نشان می دهد:

مثال

"priceSpecification": [{
  "@type": "PaymentChargeSpecification",
  "@id": "http://www.provider.com/paymentCharge/bar",
  "priceCurrency": "USD",
  "price": "6.00", // Charges $6 for processing fee
  "eligibleQuantity": {
    "@type": "QuantitativeValue",
    "minValue": 2 // Minimum of two items required
  }
}]

علاوه بر "@type": ["PaymentChargeSpecification"] ، می توان شیء را با تصحیح واحد ( "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"] ). این پسوند به دو خاصیت اضافی مورد نیاز برای هزینه خدمات محاسبه شده در درصد می دهد.

ویژگی تایپ کنید ضرورت شرح
referenceQuantity QuantitativeValue ضروری مقدار مرجع که قیمت خاصی برای آن اعمال می شود. به عنوان مثال ، referenceQuantity ارزش 10 با unitCode "P1" منجر به 10 ٪ از مقدار سفارش می شود. فقط unitCode "P1" در حال حاضر پشتیبانی می شود.
basePrice عدد اختیاری هزینه پایه علاوه بر referenceQuantity . به عنوان مثال ، referenceQuantity 10 با unitCode "P1" و basePrice 5 در USD منجر به 5 + 10 ٪ از مقدار سفارش می شود. مقدار پیش فرض 0 است.

نمونه های هزینه دریافت

Google به شما امکان می دهد انواع مختلفی از هزینه ها را برای کاربران پیش فرض با استفاده از Offer.PriceSpecification از خدمات سرویس مشخص کنید.

توجه داشته باشید که ما در حال حاضر فقط از یک PaymentChargeSpecification پشتیبانی می کنیم. همه نوع هزینه ها را در یک PaymentChargeSpecification واحد ترکیب کنید

اگر هزینه ای وجود نداشته باشد ، Offer.PriceSpecification حذف شده است.

  • مثال 1: هزینه خدمات 5 ٪ از سبد سبد خرید است
  • مثال 2: هزینه خدمات 5 دلار است
  • مثال 3: هزینه کیسه 0.1 دلار و هزینه خدمات 5 ٪ از سبد خرید است
  • مثال 4: هزینه کیسه 0.1 دلار و هزینه خدمات 1 دلار است
  • مثال 5: هزینه خدمات 5 ٪ و نکته مورد نیاز 10 ٪ از سبد سبد خرید است

مثال 1

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

مثال 2

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

مثال 3

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]

مثال 4

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]

مثال 5

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

محل

جدول زیر خصوصیات نوع Place را شرح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "مکان" است.
address PostalAddress ضروری آدرس یک مکان

مثال زیر یک عنصر مکانی را نشان می دهد:

مثال

{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

آدرس پستی

جدول زیر خصوصیات نوع PostalAddress را شرح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "postaladdress" است.
addressLocality متن ضروری* محل یا شهر. به عنوان مثال ، "سان فرانسیسکو".
addressRegion متن ضروری* منطقه یا ایالت به عنوان مثال ، "CA".
postalCode متن ضروری* کد پستی به عنوان مثال ، "94102".
streetAddress متن اختیاری آدرس خیابان به عنوان مثال ، "1600 آمفی تئاتر PKWY".
addressCountry متن ضروری کد کشور ISO 3166-1 ALPHA-2. به عنوان مثال ، "ما".

ارائه دهندگان تحویل می توانند این خصوصیات را برای تعیین یک Service.areaServed ذکر کنند. در جایی که یک سرویس ارائه می شود ، محافظت می شود.

در صورت استفاده در Restaurant.address ، تمام خواص ذکر شده در PostalAddress مورد نیاز است.

مثال زیر یک عنصر PostalAddress را نشان می دهد:

مثال

"address": {
  "@type": "PostalAddress",
  "streetAddress": "12345 Bar Avenue",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94124",
  "addressCountry": "US"
},

مشخصات قیمت

در جدول زیر خواص نوع PriceSpecification :

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "تأمین اعتبار" است.
@id URL اختیاری شناسه برای PriceSpecification .
minPrice عدد اختیاری اگر قیمت محدوده باشد ، کمترین قیمت.
maxPrice عدد اختیاری بالاترین قیمت اگر قیمت محدوده باشد.
priceCurrency متن ضروری کد ارز ISO 4217 3 حرف از قیمت. به عنوان مثال ، "USD".
eligibleQuantity QuantitativeValue اختیاری مقادیر سفارش برای مشخصات قیمت برای آن معتبر است. به عنوان مثال ، قیمت ممکن است 2 دلار در هر پوند یا 2 مورد برای یک دلار باشد.

مثال زیر یک عنصر PriceSpecification را نشان می دهد:

مثال 1

"eligibleTransactionVolume": {
  "@type": "PriceSpecification",
  "minPrice": "20.00", // Minimum order price for delivery is $20
  "priceCurrency": "USD"
}

PropertyValue

جفت ارزش خاصیت برای توصیف گزینه ها در MenuItemOption استفاده می شود.

در جدول زیر خواص مربوط به نوع PropertyValue ذکر شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "PropertValue" است.
name متن ضروری

نام یا نوع گزینه.

موارد زیر در هنگام استفاده در MenuItem نام های معتبر هستند:

  • "اندازه": اندازه MenuItem . به عنوان مثال ، کوچک ، متوسط ​​یا بزرگ.
  • "گزینه": هرگونه تغییر غیر از اندازه (مانند ظرف که به عنوان سالاد یا ساندویچ می آید). اگر نمی توانید بین "اندازه" و "گزینه" تمایز قائل شوید ، از "گزینه" استفاده کنید.

نامهای معتبر هنگام استفاده در AddOnMenuItem :

  • "Applicable_item_option": گزینه ای برای افزونه که فقط در صورت استفاده از MenuItem با "اندازه/گزینه" مربوطه قابل استفاده است.
  • "Pizza_side": مخصوص پیتزا ، این افزودنی فقط برای یک قسمت/پیتزا کامل (مانند تاپ های قارچ در سمت چپ ، سمت راست یا پیتزا کامل) معتبر است.
  • "اندازه": گزینه ای برای تعیین اندازه افزودنی (مانند سیب زمینی سرخ شده به عنوان یک افزودنی برای یک دسته کوچک موسیقی جاز).
  • "گزینه": هرگونه تغییر غیر از اندازه. اگر نمی توانید بین "اندازه" و "گزینه" تمایز قائل شوید ، از "گزینه" استفاده کنید.
value متن ضروری

مقدار برای گزینه. مقادیر می توانند هر رشته ای باشند و همانطور که هست نمایش داده می شود. موارد زیر مقادیر معتبر هستند:

  • "Pizza_side": مقدار مربوطه باید "pizza_side_left" ، "pizza_side_right" یا "pizza_side_whole" برای پیتزا باشد.
  • "Applicable_Item_Option": این مقدار باید در یکی از گزینه های مربوط به "گزینه/اندازه" مربوطه برای menuitemoptions MenuItem والدین وجود داشته باشد.

مقدار کمی

در جدول زیر خصوصیات نوع QuantitativeValue :

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "کمی Value" است.
value عدد اختیاری مقدار مقدار کمی یا گره مقدار خاصیت.
unitCode متن یا URL اختیاری

واحد اندازه گیری به عنوان کد مشترک UN/CEFACT یا URL.

کدهای غیر از کد مشترک UN/CEFACT ممکن است با پیشوند و به دنبال آن یک روده بزرگ استفاده شود.

maxValue عدد اختیاری ارزش بالایی برخی از ویژگی ها یا خاصیت.
minValue عدد اختیاری مقدار پایین برخی از ویژگی ها یا خاصیت.

مثالهای زیر استفاده از نوع QuantitativeValue را نشان می دهد:

مثال 1

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}

مثال 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

مثال 3

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

رستوران

در جدول زیر خواص نوع Restaurant ذکر شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "رستوران" است.
@id URL ضروری شناسه منحصر به فرد رستوران یا ارائه دهنده تحویل. به عنوان مثال ، "http://www.provider.com/326" ، جایی که "326" شناسه منحصر به فرد رستوران است.
name متن ضروری متنی که می تواند Restaurant را در طی مراحل سفارش شناسایی کند.
url URL ضروری URL در دامنه شما که نماینده رستوران است. به عنوان مثال ، "http://www.provider.com/somerestaurant".
sameAs URL اختیاری وب سایت رسمی رستوران. به عنوان مثال ، "http://www.somerestaurant.com".
email متن اختیاری با ایمیل رستوران تماس بگیرید.
description متن اختیاری شرح رستوران.
telephone متن ضروری

شماره تلفن در قالب زیر:

"[+][country_code][phone_#_with_area_code]"

به عنوان مثال ، "+16501234567".

priceRange متن اختیاری طیف وسیعی از قیمت گذاری. به عنوان مثال ، "$$" ($-Inexpensive, $$-moderate ، $$$-Expensive, $$$$-Very Expensive).
logo URL Optional Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png".
image URL Optional Image of the restaurant.
servesCuisine Array of Text Optional Food types that are served at the restaurant. For example, ["sushi","Asian fusion"].
address PostalAddress Required* Address of the restaurant.
geo GeoCoordinates Optional* Geographic coordinates of the restaurant.
suitableForDiet Array of RestrictedDiet Optional Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list.
aggregateRating AggregateRating Optional Overall rating, based on a collection of reviews or ratings of the restaurant.
additionalProperty Array of name value string pairs Optional

A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n".

For example "additionalProperty": [{"name": "imprint", "value": "first row\nsecondrow\n"},]

The following examples show the usage of the Restaurant type:

Example 1

{
  "@type": "Restaurant",
  "@id": "http://www.provider.com/somerestaurant",
  "url": "www.provider.com/somerestaurant",
  "name": "Some Restaurant",
  "sameAs": "http://www.somerestaurant.com",
  "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg",
  "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94105",
    "streetAddress": "345 Spear St",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "37.391115",
    "longitude": "-122.081099"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "reviewCount": "89"
  },
  "priceRange": "$$" ، "تلفن": "+16501234567" ، // کد کشور (+1) مورد نیاز "servescuisine" است: ["فیوژن هندی-مکزیکی"]} ،

مثال 2

{
  "@type": "Restaurant",
  "@id": "http://www.example.com/threebrotherstacos",
  "name": "Three Brothers Tacos",
  "address": {
        "@type": "PostalAddress",
        "addressLocality": "Mountain View",
        "addressRegion": "CA",
        "postalCode": "94041",
        "streetAddress": "123 Foo St",
        "addressCountry": "US"
  },
  "additionalProperty": [
    {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"}
  ]
}

برای نمونه های بیشتر از اشخاص Restaurant ، به نمونه های خوراک رستوران و منو مراجعه کنید.

ReturnablePackageDepositDetails

برای استفاده از این نوع ، متن GS1 را اضافه کنید: "context":

["http://gs1.org/voc/", "http://schema.org"]

سپس ، FoodBeverageTobaccoProduct به نوع MenuItem مناسب یا MenuItemOption اضافه کنید.

در جدول زیر خصوصیات نوع ReturnablePackageDepositDetails شرح داده شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "بازگرداندن packagedepositdetails" است.
returnablePackageDepositAmount gs1:PriceSpecification اختیاری مقدار سپرده برای این مورد در هر GS1: Pricespection . به عنوان مثال ، سپرده 0.25 دلار در هر قوطی.

مثال زیر استفاده از نوع ReturnablePackageDepositDetails را نشان می دهد:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

سرویس

تحویل یک اقدام پایان به پایان از یک رستوران به یک مکان جغرافیایی توسط یک سازمان تحویل را توصیف می کند.

جدول زیر خصوصیات نوع Service را شرح می دهد:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری

نوع خوراک

  • Service : از این نوع برای کلیه فیدهای سرویس فعال استفاده کنید.
  • DisabledService : فقط از این نوع استفاده کنید که به دلیل یک رویداد غیر منتظره باید یک سرویس خدمات را غیرفعال کنید ، و نمی دانید چه زمانی این سرویس برقرار خواهد شد.
@id URL ضروری شناسه خدمات تحقق. به عنوان مثال ، "http://www.provider.com/service/1".
description متن اختیاری توضیحات مورد
serviceType متن ضروری نوع خدمات ارائه شده مقادیر احتمالی "تحویل" یا "تصرف" است.
provider Restaurant ضروری اشاره ای به شناسه منحصر به فرد برای رستوران. به عنوان مثال ، "http://www.provider.com/somerestaurant".
areaServed آرایه ای از GeoShape ، Place یا GeoCircle مشروط منطقه جغرافیایی که در آن خدمات ارائه می شود. این قسمت به طور پیش فرض اختیاری است ، اما اگر serviceType "تحویل" باشد ، لازم است.
hoursAvailable آرایه ای از OpeningHoursSpecification ضروری ساعاتی که در طی آن این سرویس در دسترس است.
specialOpeningHoursSpecification آرایه ای از OpeningHoursSpecification ، ServiceDeliveryHoursSpecification ، یا AdvanceServiceDeliveryHoursSpecification اختیاری

زمانهایی که بر OpeningHoursSpecification عمومی تر و یا زمان تحقق غلبه می کنند. شما به طور معمول از این قسمت برای تعریف تعطیلات و انواع دیگر بسته شدن موقت یا تغییر در ساعت استفاده می کنید.

محدوده تاریخ ویژه را با استفاده از خصوصیات validFrom و validThrough تعریف کنید. زمان و منطقه زمانی هنگام مشخص کردن این خصوصیات مورد نیاز است.

offers آرایه Offer مشروط

جزئیات مربوط به ارائه تحویل برای یک رستوران مشخص. این قسمت به طور پیش فرض اختیاری است ، اما اگر serviceType "تحویل" باشد ، لازم است.

ویژگی Offer.priceSpecification . در اینجا هیچ ویژگی Offer دیگری استفاده نمی شود.

hasOfferCatalog [ Menu ، ارائه دهنده] ضروری

منوی این سرویس را مشخص می کند. شما می توانید برای هر یک از خدمات خود منوی متفاوتی داشته باشید (مانند انتخاب ، تحویل و پذیرایی).

شما باید هر دو Menu و OfferCatalog نوع را برای نوع مشخص کنید. مثلا:

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty آرایه {نام ، مقدار} اختیاری

اطلاعات پیکربندی خدمات اختیاری. انتظار می رود موارد با name کلید مربوط به نام فیلد اختیاری یک شی باشد. value کلیدی یک مقدار مرتبط با متن برای این زمینه است.

برای اطلاعات بیشتر در مورد نام ها و مقادیر خاص ، به مرجع ServingConfig مراجعه کنید.

"additionalProperty": [{
  "name": "disableOrderInstructions",
  "value": false
}, {
  "name": "disableMenuItemSpecialInstructions",
  "value": false
}, {
  "name": "disableTipWidget",
  "value": false
}, {
  "name": "disablePromoWidget",
  "value": false
}, {
  "name": "menuItemSpecialInstructionsMaxLength",
  "value": 256
}, {
  "name": "orderInstructionsMaxLength",
  "value": 256
}]
potentialAction URL اختیاری

حاوی URL برای یک سرویس تحویل/دریافت است که هنگام مهاجرت از تجربه سفارش غذای پایان به پایان برای تغییر مسیر استفاده می شود. به عنوان مثال ، "پتانسیل": {"url": "https://fopatestagent.com/ordering/restaurant-1/delivery"

مثال زیر استفاده از نوع سرویس را نشان می دهد:

مثال

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "serviceType": "DELIVERY",
  "provider": {
    "@type": "Restaurant",
    "@id": "http://www.provider.com/threebrotherstacos"
  },
  "potentialAction": {
    "url": "https://foprovider.com/ordering/restaurant-1/delivery"
  },
  "hoursAvailable": [
    // Ordering times for Monday through Friday
    {
      "@type": "OpeningHoursSpecification",
      "deliveryHours": [
        {
          "@type": "AdvanceServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "T12:00:00", // Advance ordering begins at noon
          "closes": "T23:59:59", // Advance ordering ends at midnight
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        },
        {
          "@type": "ServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "T10:00:00", // ASAP ordering begins at 10AM
          "closes": "T14:00:00", // ASAP ordering ends at 2PM
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        }
      ]
    },
    // Ordering times for Saturday and Sunday
    {
      "@type": "OpeningHoursSpecification",
      "deliveryHours": [
        {
          // In this case advance orders are unavailable on Saturday and Sunday
          "@type": "ServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Saturday",
            "Sunday"
          ],
          "opens": "T12:00:00", // ASAP orders start at noon
          "closes": "T23:59:59", // ASAP orders end at midnight
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        }
      ]
    }
  ],
  "hasOfferCatalog": {
    "@type": ["Menu", "OfferCatalog"],
    "@id": "https://www.provider.com/menu/1"
  },
  "areaServed": [{
      "@type": "GeoCircle", // area1
      "geoMidpoint": {
        "@type": "GeoCoordinates",
        "latitude": "42.362757",
        "longitude": "-71.087109"
      },
      "geoRadius": "10000"
    },
    {
      "@type": "Place", // area2
      "address": {
        "@type": "PostalAddress",
        "postalCode": "94041",
        "addressCountry": "US"
      }
    },
    {
      "@type": "GeoShape", // area3
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167"
    },
    {
      "@type": "GeoShape", // area4
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
    },
    {
      "@type": "GeoCircle", // area5
      "geoMidpoint": {
        "@type": "GeoCoordinates",
        "latitude": "37.7392607",
        "longitude": "-122.3895522"
      },
      "geoRadius": "4505"
    }
  ],
  "offers": {
    "@type": "Offer",
    "priceSpecification": [{
        "@type": "DeliveryChargeSpecification",
        "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
        "price": "8.00", // Charges $8 for area5
        "priceCurrency": "USD",
        "eligibleTransactionVolume": {
          "@type": "PriceSpecification",
          "minPrice": "20.00",
          "priceCurrency": "USD"
        },
        "eligibleRegion": [ // area5
          {
            "@type": "GeoCircle",
            "geoMidpoint": {
              "@type": "GeoCoordinates",
              "latitude": "37.7392607",
              "longitude": "-122.3895522"
            },
            "geoRadius": "4505"
          }
        ]
      },
      {
        "@type": "DeliveryChargeSpecification",
        "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
        "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
        "priceCurrency": "USD",
        "eligibleTransactionVolume": {
          "@type": "PriceSpecification",
          "minPrice": "20.00", // Minimum order price for delivery is $20
          "priceCurrency": "USD"
        }
      }
    ]
  }
},

برای نمونه های بیشتر از اشخاص خدماتی ، به نمونه های خوراک خدمات مراجعه کنید.

ServiceLiveryHoursSpection

ساعات تحقق کاربران را برای برنامه ریزی سفارشات ASAP برای تحویل و دریافت نشان می دهد.

به طور معمول ، مقدار opens کمتر از مقدار closes است. دستورالعمل های زیر برای استفاده از خواص opens و closes اعمال می شود:

  • خواص opens و closes برای ServiceDeliveryHoursSpecification اختیاری است ، اما ما اکیداً توصیه می کنیم که آنها را درج کنید.
  • زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار opens یا closes قرار ندهید. اگر یک منطقه زمانی مشخص شود ، Google اطلاعات منطقه زمانی را نادیده می گیرد.
  • اگر opens و closes به صراحت مشخص نشده است ، فرض می کنیم که سفارش ASAP هر روز در همه زمان ها در دسترس است.
  • اگر opens و closes ، پس فرض می کنیم که سفارش ASAP در دسترس نیست.
  • اگر opens از closes بیشتر باشد ، ساعت بسته شدن در روز بعد تعبیر می شود. به عنوان مثال ، اگر ساعت افتتاحیه در تاریخ 1 ژانویه ساعت 5 بعد از ظهر تنظیم شود و ساعت بسته شدن ساعت 2 صبح باشد ، سپس رستوران در تاریخ 2 ژانویه ساعت 2 صبح تعبیر می شود.

در جدول زیر خواص نوع ServiceDeliveryHoursSpecification :

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "سرویس دهی سرویس" است.
validFrom DateTime اختیاری

تاریخ و زمان (از جمله منطقه زمانی) هنگامی که می توان سفارشات ASAP کاربران را برآورده کرد. به عنوان مثال ، "2017-05-01T07: 00: 00-07: 00". اگر این خاصیت تنظیم نشده باشد ، فرض بر این است که هر روز معتبر است.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

validThrough DateTime اختیاری

تاریخ و زمان (از جمله منطقه زمانی) که پس از آن سفارشات ASAP کاربران قابل تحقق نیست. به عنوان مثال ، "2017-05-01T07: 00: 00-07: 00". اگر این خاصیت تنظیم نشده باشد ، فرض بر این است که هر روز معتبر است.

زمان validThrough منحصر به فرد است. به عنوان مثال ، اگر آن زمان در ساعت 6 بعد از ظهر تنظیم شود ، زمان تا 5:59:59 بعد از ظهر معتبر است.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

opens Time اختیاری

زمانی که سرویس تحویل برای انجام سفارشات ASAP کاربران شروع می شود. به عنوان مثال ، "T10: 30: 00".

زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار opens درج نکنید. اگر یک منطقه زمانی مشخص شده باشد ، Google این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

closes Time اختیاری

زمان تحویل سفارشات ASAP کاربران دیگر در دسترس نیست. به عنوان مثال ، "T23: 59: 59".

زمان closes منحصر به فرد است. بنابراین ، اگر باز کردن/بسته شدن برای این ServiceDeliveryHoursSpecification را به 10 صبح و 4 بعد از ظهر تنظیم کنید ، آنگاه آخرین سفارش 3:59:59 بعد از ظهر است.

زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار closes قرار ندهید. اگر یک منطقه زمانی مشخص شده باشد ، Google این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

dayOfWeek مجموعه ای از DayOfWeek اختیاری

روزهای هفته که این سرویس برای سفارشات ASAP کاربران در دسترس است. موارد زیر مقادیر معتبر هستند:

  • "دوشنبه"
  • "سهشنبه"
  • "چهار شنبه"
  • "پنج شنبه"
  • "جمعه"
  • "شنبه"
  • "یکشنبه"

اگر هر روز از هفته را مشخص نکنید ، پس از آن ServiceDeliveryHoursSpecification در تمام روزها اعمال می شود.

deliveryLeadTime QuantitativeValue اختیاری زمان تحویل تخمین زده می شود ، در عرض چند دقیقه ، پس از قرار دادن سفارش. ما اکیداً توصیه می کنیم که این ویژگی را تنظیم کنید. میدان QuantitativeValue value را روی تعداد دقیقه ها و unitCode قرار دهید.

مثال زیر یک عنصر ServiceDeliveryHoursSpecification را نشان می دهد:

مثال 1

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "value": "60", // If no exact deliveryLeadTime, put a maximum time
    "unitCode": "MIN"
  }
},

مثال 2

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

Enums

محدود

نوع RestrictedDiet مقادیر ممکن زیر را دارد:

  • http://schema.org/diabeticdiet
  • http://schema.org/glutenfreediet
  • http://schema.org/halaldiet
  • http://schema.org/hindudiet
  • http://schema.org/kosherdiet
  • http://schema.org/lowcaloriediet
  • http://schema.org/lowfatdiet
  • http://schema.org/lowlactosediet
  • http://schema.org/lowsaltdiet
  • http://schema.org/vegandiet
  • http://schema.org/vegetariandiet
،

فیدهای کاتالوگ مواد غذایی مبتنی بر موجودات schema.org DataFeed است. یک خوراک کاتالوگ غذا شامل جزئیات محلی رستوران مانند آدرس رستوران ، منو و مکان و همچنین جزئیات خدمات رستوران مانند هزینه های تحویل ، مناطق تحویل و موارد دیگر است که در زیر مشخص شده است.

DataFeed شامل مجموعه ای از عناصر است که هر یک از آنها یک مورد واحد را که در واژگان schema.org بیان شده است ، نشان می دهد. می توانید از نوع DataFeed برای انتشار تمام داده های ساخت یافته خود در قالب JSON-LD استفاده کنید.

برای کسب اطلاعات در مورد استفاده از این مشخصات برای ساخت فیدهای خود ، به نمای کلی ادغام موجودی مراجعه کنید.

DateTime و Formats Time

DateTime مبتنی بر نوع Schema.org است ، و مگر در مواردی که بیان شده باشد ، باید از فرمت ISO 8601 پیروی کند و تاریخ ، زمان و منطقه زمانی را شامل شود. برای DateTime از زیر نحو استفاده کنید:

// DateTime format:
YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]

مثلا:

2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z  // UTC time zone. The optional "Z" suffix represents the UTC time zone.

Time محلی برای یک رستوران معین یا منطقه زمانی محل خدمات است ، همچنین بر اساس نوع schema.org ساخته شده است و همچنین باید از فرمت ISO 8601 پیروی کند. زمان از نحو زیر استفاده می کند:

// Time format:
THH:MM:SS

مثلا:

T08:08:00 // 8:08 AM

به موارد زیر توجه کنید هر زمان که یک DateTime یا Time مشخص کنید:

  • پیشوند "T" قبل از زمان بخشی از قالب است و لازم است.
  • منطقه زمانی باید برای DATETIME مشخص شود. برای TIME لازم نیست.
  • زمان باید در زمان محلی برای رستوران یا خدمات مشخص شود.

پاكت نامه

کد شروع برای هر فید کاتالوگ مواد غذایی باید حاوی یک بخش "پاکت" باشد.

"پاکت" ساختار سطح بالایی هر فید است و باید با ویژگی های زیر DataFeed باشد:

ویژگی تایپ کنید ضرورت شرح
@context URL ضروری زمینه مورد استفاده ؛ به طور معمول "http://schema.googleapis.com".
@type متن ضروری این همیشه "DataFeed" است.
dateModified DateTime ضروری

آخرین DateTime اصلاح شده از فید داده ، در قالب ISO 8601.

تاریخ و زمان در فرمت ISO_OFFSET_DATE_TIME که موارد موجود در این فید اصلاح شده است. در صورت عدم وجود این زمینه ، فرض بر این است که زمان بروزرسانی زمانی است که پیام فشار (یا خزیدن اتفاق می افتد) در سرورهای Google دریافت می شود.

ما به شما توصیه می کنیم اگر از فشار و خزیدن با هم استفاده می کنید ، این کار را پیاده سازی کنید. این زمان بندی باید با یک منطقه زمانی و دانه بندی میلی ثانیه مشخص شود. به عنوان مثال "2016-12-28T06: 30: 00: 123-07: 00".

در فیدهای دسته ای شما ، نسخه های موجودیت از طریق قسمت dateModified در پاکت فید تعیین می شود.

dataFeedElement مجموعه ای از Menu یا Restaurant یا Service ضروری یک یا چند مورد که بخشی از این خوراک هستند. برای جزئیات به زیر مراجعه کنید.

مثال زیر پاکت را نشان می دهد:

مثال

{
  "@context": "http://schema.googleapis.com",
  "dateModified": "2016-12-28T06:30:00:123-07:00",
  "@type": "DataFeed",
  "dataFeedElement": [
    /* All items that are part of this feed go here */
  ]
}

additivedetails

برای استفاده از این نوع ، متن GS1 را اضافه کنید: "@context": ["http://gs1.org/voc/", "http://schema.org"]

سپس ، FoodBeverageTobaccoProduct به نوع MenuItem مناسب یا MenuItemOption اضافه کنید.

در جدول زیر خصوصیات نوع AdditiveDetails :

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "additivedetails" است.
additiveName متن اختیاری نام افزودنی.
additiveLevelOfContainment متن اختیاری کد مهار در هر GS1: LevelOfContainmentCode . به عنوان مثال http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ، http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ، یا http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .

مثال زیر استفاده از نوع AdditiveDetails را نشان می دهد:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/8",
  "name": "Energy Drink",
  "description": "A 0.25l can of energy drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-energy-drink",
    "price": "3.49",
    "priceCurrency": "USD"
  },
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AdditiveDetails",
      "additiveName": "phosphate",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

یدک

یک ماده غذایی یا نوشیدنی که در یک منوی افزودنی از یک MenuItem ذکر شده است.

در جدول زیر خصوصیات مربوط به نوع AddOnMenuItem ذکر شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "addonmenuitem" است.
@id URL ضروری یک شناسه منحصر به فرد از مورد منوی افزودنی.
name متن ضروری متنی که در هنگام مرور منو ، addonmenuitem را مشخص می کند.
description متن اختیاری توضیحات مورد منوی افزودنی.
image URL اختیاری

تصویر مورد منوی افزودنی که مطابق با دستورالعمل های زیر است:

  • نسبت ابعاد 3: 2
  • >
  • حداقل وضوح 600x400 پیکسل ، 72 dpi
  • >
  • وضوح توصیه شده 1400x960 پیکسل ، 72 dpi
offers آرایه Offer ضروری*

یک یا چند پیشنهاد برای ارائه این افزودنی.

توصیف می کند که چه زمانی و با چه قیمتی این افزودنی در دسترس است. فقط یک پیشنهاد باید در یک زمان خاص معتبر باشد. اگر قیمت یا در دسترس بودن بر اساس زمان روز تغییر کند ، می توانید پیشنهادات معتبر زیادی داشته باشید. هنگامی که افزودنی یا آیتم از طریق یک ویژگی پایه یا تغییر در خود مورد افزودنی (مانند سیب زمینی سرخ شده کوچک ، متوسط ​​و بزرگ به عنوان یک افزودنی) متفاوت است ، از خاصیت hasMenuItemOption استفاده کنید.

پیش فرض برای Offer.eligibleQuantity حداقل 0 ، حداکثر 1 است.

خواص Offer زیر در addonmenuitem استفاده می شود:

  • Offer.sku مورد نیاز است
  • Offer.price مورد نیاز
  • Offer.priceCurrency
  • Offer.availabilityStarts اختیاری
  • Offer.availabilityEnds
  • Offer.availableDay اختیاری
  • Offer.validFrom اختیاری
  • Offer.validThrough اختیاری
  • Offer.eligibleQuantity اختیاری
  • Offer.inventoryLevel اختیاری
hasMenuItemOptions مجموعه ای از MenuItemOption ضروری*

آرایه ای از ویژگی های پایه که توصیف تنوع در مورد افزودنی خود (مانند سیب زمینی سرخ شده کوچک ، متوسط ​​و بزرگ به عنوان یک افزودنی) برای این مورد منوی افزودنی است. از گزینه ها برای مشخص کردن تغییرات مختلف موجود برای این مورد منوی افزودنی استفاده کنید. دو سناریو وجود دارد که می تواند این اتفاق بیفتد:

  • تنوع پایه در خود مورد افزودنی است (مانند سیب زمینی سرخ شده کوچک ، متوسط ​​و بزرگ به عنوان افزودنی)
  • تنوع پایه برای مورد منو این افزودنی با آن همراه است (مانند پنیر اضافی به عنوان افزودنی برای یک پیتزا بزرگ)
suitableForDiet مجموعه ای از RestrictedDiet اختیاری این ظرف با محدودیت رژیم غذایی توصیف شده (مانند "glutenfreediet" یا "vegandiet") مطابقت دارد. این یک لیست ذکر شده از مقادیر ممکن است.
nutrition NutritionInformation اختیاری اطلاعات تغذیه ای برای ظرف ، مهمترین کالری.
menuAddOn مجموعه ای از AddOnMenuSection اختیاری AddOnmenuitem می تواند یک بخش منو داشته باشد که از موارد مجاز ساخته شده است که می توانند به عنوان افزودنی اضافه شوند.

مثال زیر AddOnMenuItem را نشان می دهد:

مثال 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small-pepperoni-pizza",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large-pepperoni-pizza",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ],
  "menuAddOn": [
    {
      "@type": "AddOnMenuSection",
      "name": "Choice of toppings",
      "@id": "https://www.example.com/1089/addon/1",
      "hasMenuItem": [
        {
          "@type": "AddOnMenuItem",
          "@id": "https://www.example.com/1089/addon/1/a",
          "name": "Shrimp",
          "hasMenuItemOptions": [
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],
              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-small",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-large",
                "price": "2.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-small",
                "price": "1.50",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-large",
                "price": "2.50",
                "priceCurrency": "USD"
              }
            }
          ]
        }
      ]
    }
  ]
}

تجویز مجدد

زیر گروه مواد غذایی یا نوشیدنی به عنوان بخش منوی افزودنی برای مورد منو.

در جدول زیر خصوصیات نوع AddOnMenuSection ذکر شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "افزودنی" است.
@id URL ضروری شناسه منحصر به فرد بخش منو.
name متن ضروری متنی که می تواند در هنگام مرور منو ، افزودنی را شناسایی کند.
description متن اختیاری توضیحات بخش منو.
eligibleQuantity QuantitativeValue اختیاری تعداد موارد مجاز به عنوان افزودنی برای این بخش منو را نشان می دهد. شما می توانید از این قسمت برای محدود کردن تعداد افزودنی ها ، مانند حداقل و حداکثر تعداد تاپ هایی که می توانید در پیتزا انتخاب کنید استفاده کنید.
image URL اختیاری تصویر بخش منو.
hasMenuItem آرایه AddOnMenuItem ضروری* موارد منوی افزودنی موجود در یک افزودنی.
offers آرایه Offer اختیاری

استفاده از Offer .availabilityStarts Offer .availabilityEnds دسترس بودن.

لیست زیر نشان می دهد که چه ویژگی هایی را Offer می دهد.

  • Offer.availabilityStarts اختیاری
  • Offer.availabilityEnds
  • Offer.availableDay اختیاری
  • Offer.validFrom اختیاری
  • Offer.validThrough اختیاری
hasMenuSection مجموعه ای از AddOnMenuSection ضروری* زیر گروه منطقی منوی افزودنی (مانند شام ، اشتها آور یا غذاهای ماهی).
defaultOption آرایه AddOnMenuItem اختیاری

موارد منوی افزودنی که به طور پیش فرض برای کاربران در AddOnMenuSection انتخاب می شوند. کاربران می توانند انتخاب نهایی را تغییر دهند. اگر هیچ defaultOption مشخص نشده باشد ، هیچ AddOnMenuItem انتخاب نشده است.

اشیاء AddOnMenuItem باید در hasMenuItem AddOnMenuSection وجود داشته باشند.

تعداد defaultOption نمی تواند از حداکثر eligibleQuantity AddOnMenuSection فراتر رود.

numberOfFreeAddOns عدد اختیاری تعداد افزودنی هایی را که کاربر می تواند بدون هیچ هزینه ای انتخاب کند ، نشان می دهد.

مثالهای زیر شامل اشیاء AddOnMenuSection :

مثال 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

مثال 3

یک مورد منو "ساندویچ پنیر" دارای "انتخاب پنیر" AddOnMenuSection با "سوئیس" و "موزارلا" است که به طور پیش فرض انتخاب شده است.

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "defaultOption": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a"
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b"
    }
  ],
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozzarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

پیشرفت

ساعات تحقق کاربران را برای برنامه ریزی سفارشات پیش رو برای تحویل و تهیه نشان می دهد.

به طور معمول ، مقدار opens کمتر از مقدار closes است. دستورالعمل های زیر برای استفاده از خواص opens و closes اعمال می شود:

  • ویژگی های opens و closes برای AdvanceServiceDeliveryHoursSpecification اختیاری است ، اما ما اکیداً توصیه می کنیم که آنها را درج کنید.
  • زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار opens یا closes قرار ندهید. مناطق زمانی مشخص شده نادیده گرفته می شوند.
  • اگر opens و closes به صراحت مشخص نشده است ، فرض می کنیم که سفارش پیشروی در همه روزها در همه زمان ها در دسترس است.
  • اگر opens و closes ، پس فرض می کنیم که سفارش پیشرفت در دسترس نیست.
  • اگر opens از closes بیشتر باشد ، ساعت بسته شدن در روز بعد تعبیر می شود. به عنوان مثال ، اگر ساعت افتتاحیه تا اول ژانویه ساعت 5 بعد از ظهر تنظیم شود و ساعت بسته شدن ساعت 2 صبح است ، سپس رستوران در تاریخ 2 ژانویه ساعت 2 صبح تعبیر می شود.
  • opens و closes به شکاف زمان آینده اشاره دارد. closes منحصر به فرد است. به عنوان مثال ، اگر opens 10 صبح باشد و closes 4 بعد از ظهر با serviceTimeInterval 15 دقیقه است ، اولین بار شکاف بار از ساعت 10 صبح شروع می شود و آخرین بار شکاف از ساعت 3:45 بعد از ظهر آغاز می شود.

در جدول زیر خواص نوع AdvanceServiceDeliveryHoursSpecification از نوع تنظیمات ارائه شده است:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری این همیشه "AdvancesElliveryHiveryHoursSpection" است.
validFrom DateTime مشروط

تاریخ ابتدایی که سفارشات قبلی کاربران را می توان تحقق بخشید. به عنوان مثال ، "2017-05-01T00: 00: 00-07: 00".

اگر این خاصیت تنظیم نشده باشد ، فرض بر این است که هر روز معتبر است. خصوصیات validFrom و validThrough باید وجود داشته باشد یا در کنار هم قرار بگیرند.

اگر این نوع به عنوان یک specialOpeningHoursSpecification در سطح Service مشخص شود ، این خاصیت validFrom در AdvanceServiceDeliveryHoursSpecification مورد نیاز است.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

validThrough DateTime اختیاری

تاریخ پایان آن فراتر از سفارشات پیش پرداخت کاربران دیگر نمی تواند برآورده شود. به عنوان مثال ، "2018-12-01T00: 00: 00-07: 00".

اگر این خاصیت تنظیم نشده باشد ، فرض بر این است که هر روز معتبر است. خصوصیات validFrom و validThrough باید وجود داشته باشد یا در کنار هم قرار بگیرند.

اگر این نوع به عنوان یک specialOpeningHoursSpecification در سطح Service مشخص شود ، املاک validThrough در AdvanceServiceDeliveryHoursSpecification لازم است.

زمان validThrough منحصر به فرد است. به عنوان مثال ، اگر آن زمان در ساعت 6 بعد از ظهر تنظیم شود ، زمان تا 5:59:59 بعد از ظهر معتبر است.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

opens Time اختیاری

در مورد اسلات تحویل یا گرفتن اعمال می شود.

زمان خاص روز که از آن می توان سفارشات پیش پرداخت کاربران را برآورده کرد. به عنوان مثال ، 6:30 صبح به عنوان "T06: 30: 00" داده می شود.

زمان باید در زمان محلی برای خدمات مشخص شود. یک منطقه زمانی را در یک مقدار opens درج نکنید. اگر یک منطقه زمانی مشخص شده باشد ، Google این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

closes Time اختیاری

در مورد اسلات تحویل یا گرفتن اعمال می شود.

زمان مشخصی از روز فراتر از آن که سفارشات پیشرفته کاربران را نمی توان تحقق بخشید. به عنوان مثال ، ساعت 9:00 بعد از ظهر به عنوان "T21: 00: 00" داده می شود. closes> منحصر به فرد است ، بنابراین تنظیم آن تا ساعت 9:00 برای serviceTimeInterval 15 دقیقه به این معنی است که آخرین شکاف زمان موجود از ساعت 8:45 بعد از ظهر آغاز می شود.

زمان باید در زمان محلی برای خدمات مشخص شود. یک منطقه زمانی را در یک مقدار closes قرار ندهید. اگر یک منطقه زمانی مشخص شده باشد ، Google این اطلاعات را نادیده می گیرد.

برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید.

dayOfWeek مجموعه ای از DayOfWeek اختیاری

روزهای هفته که ساعتهای تحویل قبل از آن در دسترس است. مقادیر معتبر عبارتند از:

  • "دوشنبه"
  • "سهشنبه"
  • "چهار شنبه"
  • "پنج شنبه"
  • "جمعه"
  • "شنبه"
  • "یکشنبه"

اگر هر روز از هفته را مشخص نکنید ، پس از آن AdvanceServiceDeliveryHoursSpecification برای همه روزها اعمال می شود.

serviceTimeInterval Duration ضروری

فاصله بین دو بار خدمات پی در پی.

به عنوان مثال: اگر opens و closes 8 صبح و 8 بعد از ظهر است و serviceTimeInterval 15 دقیقه است ، پس کاربر می تواند زمان تحقق 8 صبح ، 8:15 صبح ، 8:30 صبح ، 8:45 صبح و غیره را انتخاب کند. 8 بعد از ظهر.

Duration باید به عنوان مدت زمان ISO 8601 مشخص شود. به عنوان مثال: "P15M" به معنی فواصل 15 دقیقه ای است.

advanceBookingRequirement QuantitativeValue ضروری

تعداد دقایقی از زمان سفارش در هنگام تحقق سفارش قبلی.

The QuantitativeValue 's min and max values must be set to the number of minutes and the unitCode to "MIN".

For example, if an advance order needs at least 60 minutes to be fulfilled, and is restricted from being fulfilled more than 2 days later, then the min value is 60 and the max value is 2880.

The following example shows the usage of the AdvanceServiceDeliveryHoursSpecification type:

مثال 1

{
  "@type": "AdvanceServiceDeliveryHoursSpecification",
  "opens": "T10:00:00",  // Delivery between 10AM and 7:59:59PM
  "closes": "T20:00:00",
  "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601)
  "advanceBookingRequirement": {
    "minValue": 60,   // The slot should be at least 60 mins away
    "maxValue": 8640, // but not more than 6 days away
    "unitCode": "MIN"
  }
}

AllergenDetails

To use this type, add the gs1 context: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Then, add FoodBeverageTobaccoProduct to the type of the appropriate MenuItem or MenuItemOption .

The following table describes the properties of the AllergenDetails type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "AllergenDetails".
allergenType متن اختیاری Type of allergen per gs1:AllergenTypeCode . For example http://gs1.org/voc/AllergenTypeCode-PEANUTS .
allergenLevelOfContainmentCode متن اختیاری Containment code per gs1:LevelOfContainmentCode . For example http://gs1.org/voc/LevelOfContainmentCode-CONTAINS , http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM or http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .

The following example shows the usage of the AllergenDetails type:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/6",
  "name": "Strawberry joghurt drink",
  "description": "A 0.5l bottle of strawberry joghurt drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-joghurt-drink",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

مشخصات شارژ تحویل

The following table describes the properties of the DeliveryChargeSpecification type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "DeliveryChargeSpecification".
@id URL اختیاری Identifier for the delivery charge specification.
price عدد ضروری Total delivery cost as a numerical only value. Use the priceCurrency property to denote the type of currency instead of currency symbols. For example, "6.00", without the currency symbol.
priceCurrency متن ضروری The 3-letter ISO 4217 currency code. For example, "USD".
eligibleTransactionVolume PriceSpecification اختیاری The transaction volume, in a monetary unit, for which this delivery charge specification is valid. For example, to indicate a minimal purchasing volume, or to express that shipping is available at no additional charge above a certain order volume.
eligibleQuantity QuantitativeValue اختیاری The interval and unit of measurement of ordering quantities for which the delivery charge is valid. This lets you, for example, specify that a certain freight charge is valid only for a certain quantity.
eligibleRegion Array of GeoShape or Place or GeoCircle اختیاری The place, or the GeoShape/GeoCircle for the geo-political region(s) for which the offer or delivery charge specification is valid. Use this property only if delivery fees vary by the region.
validFrom DateTime اختیاری The date and time (including the time zone) when the delivery charge specified becomes valid. For example, "2017-05-01T06:30:00-07:00". For more information, see DateTime and Time formats .
validThrough DateTime اختیاری The date and time (including the time zone) after which the delivery charge specified is not valid. For example, "2017-05-01T06:30:00-07:00". The time for validThrough is exclusive: for example, if that time is set to 6 PM, the time is valid up to 5:59:59 PM. For more information, see DateTime and Time formats .

The following examples show DeliveryChargeSpecification elements:

مثال 1

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}

مثال 2

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

مثال 3

"priceSpecification": [{
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
    "price": "8.00", // Charges $8 for area5
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00",
      "priceCurrency": "USD"
    },
    "eligibleRegion": [ // area5
      {
        "@type": "GeoCircle",
        "geoMidpoint": {
          "@type": "GeoCoordinates",
          "latitude": "37.7392607",
          "longitude": "-122.3895522"
        },
        "geoRadius": "4505"
      }
    ]
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
    "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00", // Minimum order price for delivery is $20
      "priceCurrency": "USD"
    }
  }
]

In addition to "@type": ["DeliveryChargeSpecification"] , the object can be extended with UnitPriceSpecification :

"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]

The extension gives an additional two properties required for delivery fees calculated in percentages.

ویژگی تایپ کنید ضرورت شرح
referenceQuantity QuantitativeValue ضروری Reference quantity for which a certain price applies. For example, referenceQuantity of value 10 with unitCode of "P1" result in 10% of the order value. Only unitCode "P1" is supported at the moment.
basePrice عدد اختیاری The base charge in addition to the referenceQuantity . For example, referenceQuantity of 10 with unitCode of "P1" and basePrice of 5 in USD result in $5 + 10% of the order value. The default value is 0.

Delivery fee examples

Google allows you to specify a variety of fees to users upfront using Offer.PriceSpecification of the Service entity.

Note that Ordering End-to-End currently only supports one DeliveryChargeSpecification . Combine all types of fees into a single DeliveryChargeSpecification .

Refer to Service feed examples for how to specify delivery fees based on area, distance, and order value.

If there is no fee, Offer.PriceSpecification is omitted.

  • Example 1: Delivery fee is 5% of cart subtotal
  • Example 2: Delivery fee is $5
  • Example 3: Delivery fee is $5 + 10% of cart subtotal
  • Example 4: Delivery fee is $5 and bag fee is $0.1
  • Example 5: Delivery fee is 5% and convenience fee is 2% of cart subtotal
  • Example 6: Delivery fee is $5 and $1 per additional 1km distance

مثال 1

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

مثال 2

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

مثال 3

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "10.00", // 10%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "5.00" // User always pays $5 in addition to 10%
  }
]

مثال 4

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }

مثال 5

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]

مثال 6

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "basePrice": 5.00, // User always pays $5
    "price": 1.00, // An additional $1.00 is added per 1km
    "priceCurrency": "USD",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "unitCode": "MTR", // MTR == meter
      "value": "1000.0" // 1km
    }
  }
]

GeoCircle

The following table describes the properties of the GeoCircle type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "GeoCircle".
geoMidpoint GeoCoordinates ضروری Indicates the GeoCoordinates at the center of a GeoCircle .
geoRadius عدد ضروری Indicates the approximate radius (in meters) of a GeoCircle .

The following example shows a GeoCircle element:

مثال

{
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": "37.7392607",
    "longitude": "-122.3895522"
  },
  "geoRadius": "4505"
}

مختصات جغرافیایی

The following table describes the properties of the GeoCoordinates type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "GeoCoordinates".
latitude عدد ضروری

Latitude in degrees. Values are restricted to the range from -90 to 90, inclusive. If the value specified is less than -90, it is set to -90; if the value is greater than 90, it is set to 90.

The precision should be at least 5 decimal places.

longitude عدد ضروری

Longitude in degrees. Values outside the range of -180 to 180 are wrapped so that they fall within the range. For example, a value of -190 is converted to 170. A value of 190 is converted to -170. This reflects the fact that longitudes wrap around the globe.

The precision should be at least 5 decimal places.

The following example shows a GeoCoordinates element:

مثال

"geo": {
  "@type": "GeoCoordinates",
  "latitude": "35.7392607",
  "longitude": "-120.3895522"
}

GeoShape

The following table describes the properties of the GeoShape type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "GeoShape".
polygon Array of Text ضروری

A polygon or multipolygon expressed as a series of three or more space delimited points. It is recommended that the first and last points be the same, but it is not required.

Each point in a polygon or multipolygon is defined by a latitude point followed by a longitude point. You also must specify the points in a counter-clockwise direction.

In most cases you will have a single polygon. For more complex use cases, see the delivery service area documentation.

The following examples show GeoShape elements:

مثال 1

{
  "@type": "GeoShape", // area4
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
},

مثال 2

{
  "@type": "GeoShape", // A service area with a hole.
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”,
               “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”]
},

مثال 3

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "areaServed": [
    {
      "@type": "GeoShape",  // Richmond District delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474"
    },
    {
      "@type": "GeoShape",  // Haight-Ashbury delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417"
    }  ],
...
},

The following table lists the properties for the Menu type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "Menu".
@id URL ضروری Unique identifier for the menu.
name متن اختیاری Text that can identify the Menu when a user is browsing the menu.
description متن اختیاری Description of the menu.
disclaimer MenuDisclaimer اختیاری Disclaimer for the menu. For example, nutritional information disclosure and allergen disclosure.
hasMenuSection Single object or array of MenuSection اختیاری Logical sub-grouping of the menu (like Dinner, Appetizers, or Fish dishes).
hasMenuItem Single object or array of MenuItem اختیاری MenuItem objects contained in a Menu , typically when the Menu isn't subdivided by MenuSections .
inLanguage متن اختیاری Language of the menu content, as a language code from the IETF BCP 47 standard . For example, "en-US".

The following examples show the usage of the Menu type:

مثال 1

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "hasMenuSection": {
    "@type": "MenuSection",
    "@id": "http://www.provider.com/somerestaurant/menusection/1",
    "name": "Tacos",
    "description": "Tacos inspired by India cuisine.",
    "offers": {
      "@type": "Offer",
      "availabilityStarts": "T08:00:00", // Starts at 8:00AM
      "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM
    },
    "hasMenuItem": {
      "@type": "MenuItem",
      "@id": "http://www.provider.com/somerestaurant/menuitem/1",
      "name": "Aloo Gobi Taco",
      "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.",
      "offers": {
        "@type": "Offer",
        "sku": "offer-aloo-gobi-taco",
        "price": "3.50",
        "priceCurrency": "USD"
      },
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "170 Cal",
        "fatContent": "3 g",
        "fiberContent": "2 g",
        "proteinContent": "4 g"
      },
      "suitableForDiet": "http://schema.org/GlutenFreeDiet"
    }
  },
  "inLanguage": "English"
}

مثال 2

This example shows hasMenuItem as an array.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Main",
      "description": "Main course",
      "image": "http://www.provider.com/somerestaurant/main_dishes.jpg",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/1",
          "name": "Pizza",
          "description": "Pizza",
          "offers": {
            "@type": "Offer",
            "sku": "offer-pizza",
            "price": "7.49",
            "priceCurrency": "USD",
            "availabilityStarts": "T08:00:00", // Starts at 8:00AM
            "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
          }
        },
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/2",
          "name": "Pasta",
          "description": "Pasta",
          "offers": [
            {
              "@type": "Offer",
              "sku": "offer-pasta-lunch",
              "price": "7.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T08:00:00", // Starts at 8:00AM
              "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
            },
            {
              "@type": "Offer",
              "sku": "offer-pasta-dinner",
              "price": "10.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T18:00:00", // Starts at 6:00PM
              "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM
            }
          ]
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/2",
      "name": "Soups & Salads",
      "description": "Salads and a few choices of soup",
      "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/3",
        "name": "Pea Soup",
        "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-pea-soup",
          "price": "3.49",
          "priceCurrency": "USD"
        },
        "suitableForDiet": "http://schema.org/GlutenFreeDiet"
      }
    }
  ]
}

مثال 3

This example shows hasMenuSection as an array.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Dinner",
      "description": "Dinner dishes",
      "hasMenuSection": [
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/2",
          "name": "Starters",
          "description": "Appetizers and such",
          "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/1",
            "name": "Potato Skins",
            "description": "Small serving of stuffed potato skins.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-potato-skins",
              "price": "7.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/3",
          "name": "Soups & Salads",
          "description": "Salads and a few choices of soup",
          "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/2",
            "name": "Pea Soup",
            "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-pea-soup",
              "price": "3.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/4",
          "name": "Steak",
          "description": "Steak Dishes",
          "image": "https://steak.com/steak_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/3",
            "name": "Sirloin",
            "description": "Sirloin steak dish.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-sirloin-steak",
              "price": "15.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/5",
      "name": "Desserts",
      "description": "Dessert dishes.",
      "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/4",
        "name": "Chocolate Pie",
        "description": "A slice of chocolate pie.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chocolate-pie",
          "price": "3.49",
          "priceCurrency": "USD"
        }
      }
    }
  ]
}

For more examples of Menu entities, see Restaurant and Menu Feed Examples .

The following table lists the properties for the MenuDisclaimer type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "MenuDisclaimer".
@id URL ضروری Unique identifier for the menu disclaimer.
text متن ضروری Text of the disclaimer. For example, "The average adult daily energy intake is 8700 kJ."
url URL اختیاری URL pointing to a page providing more details on the disclaimer.

The following example shows the usage of the MenuDisclaimer type:

مثال

{
    "@type": "Menu",
    "@id": "menu_1",
    "disclaimer": {
        "@type": "MenuDisclaimer",
        "@id": "menu_1_disclaimer_1",
        "text": "The average adult daily energy intake is 8700 kJ",
        "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html"
    }
}

Menu item to represent the item in the menu. The following table lists the properties for the MenuItem type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "MenuItem".
@id URL ضروری Unique identifier of the menu item.
name متن ضروری Text that can identify the MenuItem when a user is browsing the menu.
description متن اختیاری Description of the menu item.
image URL اختیاری

Image of the menu item. Use the following image guidelines:

  • Aspect ratio 3:2
  • Minimum resolution 600x400 pixels, 72 dpi
  • Recommended resolution 1400x960 pixels 72 dpi
menuAddOn Array of AddOnMenuSection اختیاری Items in a menu section that can be added as add-ons to the menu item.
offers Array of Offer ضروری*

One or many offers to provide this MenuItem . Describes when and at what price this MenuItem is available. Only one offer should be valid at a particular time. Multiple offers can be provided if there is variation on price/availability based on time of day. If the food item differs through a base attribute, (for example, size for pizza), use menuItemOption . The default for Offer.eligibleQuantity is minimum of 0 with no upper limit.

The listing below shows which Offer properties are used in MenuItem .

  • Offer.sku required
  • Offer.price required
  • Offer.priceCurrency required
  • Offer.availabilityStarts optional
  • Offer.availabilityEnds optional
  • Offer.availableDay optional
  • Offer.validFrom optional
  • Offer.validThrough optional
  • Offer.eligibleQuantity optional
  • Offer.inventoryLevel optional
hasMenuItemOptions Array of MenuItemOption ضروری List of base options/variation for this menu item. Options should be used to specify various base variations available for the item, for example small, medium and large.
suitableForDiet Array of RestrictedDiet اختیاری The dish complies with the described dietary restriction (like "http://schema.org/GlutenFreeDiet" or "http://schema.org/VeganDiet". This is an enumerated list of possible values.
nutrition NutritionInformation اختیاری Nutrition information for the dish, most notably calories.
hasAllergen AllergenDetails اختیاری Allergens of the dish per gs1:AllergenDetails . Add the gs1 context to use this property: "@context": ["http://gs1.org/voc/", "http://schema.org"] . And add FoodBeverageTobaccoProduct to the type of the MenuItem .
additive Array of AdditiveDetails اختیاری The additives of the dish per gs1:AdditiveDetails . This is an enumerated list of possible values. Add the gs1 context to use this property: "@context": ["http://gs1.org/voc/", "http://schema.org"] . And add FoodBeverageTobaccoProduct to the type of the MenuItem .
packaging PackagingDetails اختیاری The packaging and recycling information of this MenuItem per gs1:PackagingDetails . Add the gs1 context to use this property: "@context": ["http://gs1.org/voc/", "http://schema.org"] . And add FoodBeverageTobaccoProduct to the type of the MenuItem .

The following examples show MenuItem elements:

مثال 1

"hasMenuItem": {
  "@type": "MenuItem",
  "@id": "http://www.provider.com/bar/menuitem/1",
  "name": "Potato Skins",
  "description": "Small serving of stuffed potato skins.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-potato-skins",
    "price": "7.49",
    "priceCurrency": "USD"
  },
  "suitableForDiet": "http://schema.org/GlutenFreeDiet"
}

مثال 2

"hasMenuItem": [
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170067",
    "name": "Veg Grill Burrito",
    "offers": {
      "@type": "Offer",
      "sku": "offer-veg-grill-burrito",
      "price": "12.99",
      "priceCurrency": "USD"
    },
    "menuAddOn": {
      "@type": "AddOnMenuSection",
      "name": "Cheese",
      "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
      "eligibleQuantity":
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 2 // Maximum of 2 cheeses are allowed
      }
    }
  },
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170018",
    "name": "Chicken Taco",
    "offers": {
      "@type": "Offer",
      "sku": "offer-chicken-taco",
      "price": "6.99",
      "priceCurrency": "USD"
    }
  }
]

مثال 3

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

مثال 4

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 5

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/9",
  "name": "Ice Coffee",
  "offers": {
    "@type": "Offer",
    "sku": "offer-ice-coffee",
    "price": "3.99",
    "priceCurrency": "USD"
  },
  "nutrition": {
    "@type": "NutritionInformation",
    "description": "Contains preservatives and artificial flavor"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN"
    }
  ],
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ],
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.10",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
}

For more examples of MenuItem entities, see Restaurant and Menu Feed Examples .

An option to represent choices that a user would be required to make when selecting a dish or combo. The user must select an option, otherwise the order is considered invalid. For example, choosing small, medium, or large in the case of a pizza.

For sample use cases of MenuItemOption , see our guide on customization using MenuItemOption .

The following table lists the properties for the MenuItemOption type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "MenuItemOption".
value PropertyValue ضروری PropertyValue containing a name/value pair representing the option.
offers Array of Offer ضروری

One or more offers to provide this MenuItemOption . Describes when and at what price this menu item option is available. Only one offer should be valid at a particular time. You can have many valid offers if the price/availability can change based on time of day. Do not use Offer.eligibleQuantity . MenuItemOption is mutually exclusive, so Offer.eligibleQuantity is ignored if provided.

The listing below shows which Offer properties are used in MenuItemOption .

  • Offer.sku required
  • Offer.price required
  • Offer.priceCurrency required
  • Offer.availabilityStarts optional
  • Offer.availabilityEnds optional
  • Offer.availableDay optional
  • Offer.validFrom optional
  • Offer.validThrough optional
  • Offer.eligibleQuantity optional
  • Offer.inventoryLevel optional
menuAddOn Array of AddOnMenuSection اختیاری Menu section of allowed items that can be added as an add-on. Only use this if add-ons are specific to a particular menu item option. Otherwise provide add-ons using the MenuItem .menuAddOn property.
suitableForDiet Array of RestrictedDiet اختیاری Enumerated list that indicates diets where this dish complies with the described dietary restriction (like "http://schema.org/GlutenFreeDiet" or "http://schema.org/VeganDiet").
nutrition NutritionInformation اختیاری Nutrition information for the dish, most notably calories.
hasAllergen AllergenDetails اختیاری Allergens of the dish per gs1:AllergenDetails . Add the gs1 context to use this property: "@context": ["http://gs1.org/voc/", "http://schema.org"] . And add FoodBeverageTobaccoProduct to the type of the MenuItemOption .
additive Array of AdditiveDetails اختیاری Additives of the dish per gs1:AdditiveDetails . This is an enumerated list of possible values. Add the gs1 context to use this property: "@context": ["http://gs1.org/voc/", "http://schema.org"] . And add FoodBeverageTobaccoProduct to the type of the MenuItemOption .
packaging PackagingDetails اختیاری Packaging and recycling information of this MenuItem per gs1:PackagingDetails Add the gs1 context to use this property: "@context": ["http://gs1.org/voc/", "http://schema.org"] . And add FoodBeverageTobaccoProduct to the type of the MenuItemOption .

The following example shows MenuItemOption elements:

مثال 1

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

مثال 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

Menu section to represent a particular section in the menu. The following table lists the properties for the MenuSection type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "MenuSection".
@id URL ضروری Unique identifier of the menu section.
name متن ضروری Text that can identify the MenuSection when a user browses the menu.
description متن اختیاری Description of the menu section.
hasMenuSection Array of MenuSection اختیاری Logical sub-grouping of the MenuSection . For example, the Dinner menu section can have multiple sub-MenuSections like "Poultry Dishes" or "Vegetarian".
hasMenuItem Array of MenuItem اختیاری Menu items contained in a MenuSection .
offers Array of Offer اختیاری

Use Offer.availabilityStarts and Offer.availabilityEnds to indicate the time period during which this MenuSection is served. Do not use Offer.eligibleQuantity .

The following list shows which Offer properties are used in MenuSection :

  • Offer.availabilityStarts optional
  • Offer.availabilityEnds optional
  • Offer.availableDay optional
  • Offer.validFrom optional
  • Offer.validThrough optional
image URL اختیاری Image of the menu section.

The following examples show MenuSection entities:

مثال 1

{
  "@type": "MenuSection",
  "@id": "http://www.provider.com/bar/menusection/4",
  "name": "Steak",
  "description": "Steak Dishes",
  "image": "https://steak.com/steak_dishes.jpg",
  "hasMenuItem": {
    "@type": "MenuItem",
    "@id": "http://www.provider.com/bar/menuitem/3",
    "name": "Sirloin",
    "description": "Sirloin steak dish.",
    "offers": {
      "@type": "Offer",
      "sku": "offer-sirloin-steak",
      "price": "15.49",
      "priceCurrency": "USD"
    },
    "suitableForDiet": "http://schema.org/GlutenFreeDiet"
  }
}

مثال 2

"hasMenuSection": [
  {
    "@type": "MenuSection",
    "@id": "https://www.example.com/1089/categorization/25114480",
    "name": "Main Items",
    "hasMenuItem": [
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170067",
        "name": "Veg Grill Burrito",
        "offers": {
          "@type": "Offer",
          "sku": "offer-veg-grill-burrito",
          "price": "12.99",
          "priceCurrency": "USD"
        },
        "menuAddOn": {
          "@type": "AddOnMenuSection",
          "name": "Cheese",
          "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
          "eligibleQuantity":
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2 // Maximum of 2 cheeses are allowed
          }
        }
      },
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170018",
        "name": "Chicken Taco",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chicken-taco",
          "price": "6.99",
          "priceCurrency": "USD"
        }
      }
    ]
  },
  {
    "@type": "AddOnMenuSection",
    "@id": "https://www.example.com/1089/addon/1",
    "name": "AddOnCheese",
    "hasMenuItem": [
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/a",
        "name": "Swiss",
        "offers": {
          "@type": "Offer",
          "sku": "offer-swiss",
          "price": "2.99",
          "priceCurrency": "USD"
        }
      },
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/b",
        "name": "Mozarella",
        "offers": {
          "@type": "Offer",
          "sku": "offer-mozzarella",
          "price": "1.99",
          "priceCurrency": "USD"
        }
      }
    ]
  }
]

For more examples of MenuSection entities, see Restaurant and Menu Feed Examples .

اطلاعات تغذیه

The following table describes the properties of the NutritionInformation type. Units of measurement are case-sensitive. For example, "Cal" is accepted, but "cal" is not.

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "NutritionInformation".
description متن اختیاری Nutrition information in free text. For example "Contains preservatives".
calories متن اختیاری

The number of calories in Cal, kcal, or kJ, using the following format:

number Cal_kcal_OR_kJ

For example, "240 Cal".

carbohydrateContent متن اختیاری

The amount of carbohydrates, typically in g, using the following format:

number g_OR_mg

For example, "7 g".

cholesterolContent متن اختیاری

The amount of cholesterol, typically in mg, using the following format:

number g_OR_mg

For example, "12 mg".

fatContent متن اختیاری

The amount of fat, typically in g, using the following format:

number g_OR_mg

For example, "42 g".

fiberContent متن اختیاری

The number of g or mg of fiber, using the following format:

number g_OR_mg
proteinContent متن اختیاری

The number of g or mg of protein, using the following format:

number g_OR_mg
saturatedFatContent متن اختیاری

The number of g or mg of saturated fat, using the following format:

number g_OR_mg
servingSize متن اختیاری The serving size in mL, L, g, or kg, in terms of the number of volume or mass.
sodiumContent متن اختیاری

The number of mg or g of sodium, using the following format:

number g_OR_mg
sugarContent متن اختیاری

The number of g or mg of sugar, using the following format:

number g_OR_mg
transFatContent متن اختیاری

The number of g or mg of trans fat, using the following format:

number g_OR_mg
unsaturatedFatContent متن اختیاری

The amount of unsaturated fat, typically in g, using the following format:

number g_OR_mg

The following examples show a NutritionInformation element:

مثال 1

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},

مثال 2

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/7",
  "name": "Peach Ice Tea",
  "description": "A 0.5l bottle of peach ice tea.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-peach-ice-tea",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "nutrition": {
              "@type": "NutritionInformation",
              "description": "Contains preservatives and artificial flavor"
  }
},

پیشنهاد

Offer for a menu item. The following table describes the properties of the Offer type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "Offer".
sku متن مشروط

Unique identifier of the offer. Can be any text value that's unique within the Offer . sku values are referenced in Checkout and Submit as the offerId in lineitem .

This property is only used in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price متن مشروط

Price of the offered item. For example, "6.00" without the currency symbol.

This property is only required in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

It is not used in the following offer types:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency متن مشروط

The currency (in 3-letter ISO 4217 format) of the price or a price component, when attached to PriceSpecification and its subtypes.

This property is only required in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

It is not used in the following offer types:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime or Time اختیاری The date and time or just the time from which the offer is available. For example, if pancakes are served beginning at 7:00 AM, then the value of this field can look like the following: "2017-05-01T07:00:00-07:00". For more information, see DateTime and Time formats .
availabilityEnds DateTime or Time اختیاری The date and time or just the time when the offer is unavailable. This time is exclusive. For example, if the availability for pancakes ends at 10 AM, then the last pancake can be served at 9:59:59 AM. The value of this field can then look like the following: "2017-05-01T10:00:00-07:00". For more information, see DateTime and Time formats .
availableDay Array of DayOfWeek اختیاری

Days of the week that this item is available. مقادیر معتبر عبارتند از:

  • "Monday"
  • "سهشنبه"
  • "چهار شنبه"
  • "پنج شنبه"
  • "جمعه"
  • "شنبه"
  • "Sunday"

If you have different availability for different days of the week, use more than one Offer object, as shown in the examples below .

validFrom DateTime اختیاری

The date and time (including the time zone) at which the specified price is valid. For example, the pasta is $8 during lunch and $10 at dinner. For more information, see DateTime and Time formats .

This property can be used in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

This property is not used in the following offer types:

  • Service.Offer
validThrough DateTime اختیاری

The date and time (including the time zone) after which the specified price is no longer valid. For example, the pasta is $8 during lunch and $10 at dinner. The time for validThrough is exclusive: for example, if that time is set to 6 PM, the time is valid up to 5:59:59 PM. For more information, see DateTime and Time formats .

This property can be used in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

This property is not used in the following offer types.

  • Service.Offer
eligibleQuantity مقدار کمی اختیاری

The ordering quantities for which this item is allowed. For example, a restaurant might require that at least 10 pizzas be ordered for a delivery.

این مقدار اختیاری است. By default, there is no maximum limit, but the restaurant can specify one. Minimum limits apply only when a user selects the item.

This property can be used in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

This property is not used in the following offer types.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating اختیاری

The overall rating, based on a collection of reviews or ratings of the item.

This property can be used in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

This property is not used in the following types.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel مقدار کمی اختیاری

The current approximate inventory level for the item or items.

This property can be used in the following offer types:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer

This property is not used in the following offer types:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Array of DeliveryChargeSpecification or array of PaymentChargeSpecification اختیاری

When used in Service.Offer , it indicates the details on the price of the delivery. If multiple DeliveryChargeSpecification objects are applicable, the most specific one is applied. Use mutually exclusive DeliveryChargeSpecification objects to avoid any ambiguity.

This property can be used in the following offer types:

  • Service.Offer

This property is not used in the following offer types:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Array of Restaurant ids اختیاری

Represents the restaurants this Offer is offered at.

If not specified, this Offer will be offered to all restaurants.

This property can be used in the following offer types:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

This property is not used in the following offer types:

  • Service.Offer
applicableFulfillmentMethod Array of Text اختیاری

Represents the service type this Offer is fulfilled by. Possible values are "DELIVERY" or "TAKEOUT".

If not specified, this Offer will be fulfilled by both delivery and takeout.

This property can be used in the following offer types:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

This property is not used in the following offer types:

  • Service.Offer
@id URL منسوخ Unique identifier of the offer. Deprecated as of 4/25/19, replace with sku as described above.

The following examples show Offer elements:

مثال 1

The following example shows a simple offer:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD"
}

مثال 2

The following example offer shows availability from 8-10 AM on weekends:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",  // Only available from 8-9:59:59 AM
  "availabilityEnds": "T10:00:00-07:00",
  "availableDay": ["Saturday", "Sunday"]  // Only on weekends.
}

مثال 3

The following example shows availability from 9-10:59:59 AM on Mondays, Wednesdays, and Fridays, but 8-11:59:59 AM on Tuesdays and Thursdays:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T09:00:00-07:00",
  "availabilityEnds": "T11:00:00-07:00",
  "availableDay": ["Monday", "Wednesday", "Friday"]
}, {
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/141/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",
  "availabilityEnds": "T12:00:00-07:00",
  "availableDay": ["Tuesday", "Thursday"]
}

مثال 4

The following example shows an add-on menu item's eligible quantity set so that the user can order a maximum of 2 portions of that item.:

{
  "@type": "AddOnMenuItem",
  "@id": "https://www.example.com/1089/addon/a",
  "name": "Ranch",
  "offers": {
    "@type": "Offer",
    "@id": "https://www.example.com/1089/addon/a/offer",
    "price": "2.99",
    "priceCurrency": "USD"
    "eligibleQuantity": {
         "@type": "QuantitativeValue",
         "maxValue": 2
     }
  }
}

مثال 5

The following example shows a delivery offer at a specific location:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD",
  "applicableFulfillmentMethods": ["DELIVERY"],
  "offeredBy": [
    {
      "@type": "Restaurant",
      "@id": "https://www.provider.com/location/1",
    }
  ]
}

OpeningHoursSpecification

Defines when ordering services are available. Typically, the value of opens is less than the value of closes . The following guidelines apply to using the opens and closes properties:

  • The opens and closes properties are optional but strongly recommended to denote when ordering is available. The best practice for defining available hours is to include a deliveryHours array that contains a ServiceDeliveryHoursSpecification with opens and closes properties. You can then include an AdvanceServiceDeliveryHoursSpecification object in deliveryHours with its own opens and closes properties, if you want to offer a more limited window for advance ordering.
  • If opens and closes are not explicitly specified, we assume that ordering service is available every day at all times of day.
  • The time must be specified in the local time for the service. Do not include a time zone in an opens or closes value. If a time zone is specified, Google ignores this information.
  • If opens and closes are the same, then we assume that the restaurant is open for 0 minutes.
  • If opens is greater than closes , the closing hour is interpreted to be on the following day. For example, if the opening hour is set to January 1 at 5 PM and the closing hour is 2 AM, then the restaurant is interpreted as closing on January 2 at 2 AM.
  • The time for closes is exclusive. Therefore, if the open and close times for this ordering window are set at 10 AM and 4 PM, respectively, then the last order is 3:59:59 PM.

The following table describes the properties of the OpeningHoursSpecification type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "OpeningHoursSpecification".
@id URL اختیاری Identifier for the OpeningHoursSpecification .
dayOfWeek Array of DayOfWeek اختیاری

The day of the week for which these opening hours are valid. Acceptable values are "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", and "Sunday". مثلا:

"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]

If you do not specify any days of week, then the OpeningHoursSpecification applies to all days.

opens Time اختیاری

When used in a Restaurant specification, this property indicates the opening time of the restaurant on the given day(s) of the week. For example, 6:30 AM is given as "T06:30:00".

When used in a Service specification, it indicates the specific time of day starting from which users' orders can be placed. It specifies the opening time for when the online system is up and allows users to place orders. Within those online system opening/closing hours, you can use deliveryHours to specify opening/closing hours when users can order special types of deliveries.

The time must be specified in the local time for the service. Do not include a time zone in an opens value. If a time zone is specified, Google ignores this information.

For more information, see DateTime and Time formats .

closes Time اختیاری

When used in a Service specification, this property indicates the specific time of day beyond which users' orders cannot be placed. It specifies the closing time for when the online system is up and allows users to place orders. Within those online system opening/closing hours, you can use deliveryHours to specify opening/closing hours when users can order special types of deliveries.

The time must be specified in the local time for the service. Do not include a time zone in a closes value. If a time zone is specified, Google ignores this information.

For more information, see DateTime and Time formats .

validFrom DateTime اختیاری

When used in a Restaurant specification, this property indicates the date when the opening hours specified by opens and closes for the restaurant are valid.

For example, if the hours given apply to all of the year 2017, you set set validFrom to "2017-01-01T00:00:00-07:00" and validThrough to "2017-12-31T23:59:59-07:00".

When used in a Service specification, validFrom indicates the beginning date starting from which users' orders can be placed.

If this property is not specified in your feed, Google assumes that the Restaurant or Service is available daily.

In addition to the date, the time and time zone portions of the value are required.

For the time zone, use the Restaurant's or Service's time zone.

For more information, see DateTime and Time formats .

validThrough DateTime اختیاری

When used in a Restaurant , the date after which the opening hours specified by opens and closes are not valid.

For example, if the hours given apply to all of the year 2017, you set set validFrom to "2017-01-01T00:00:00-07:00" and validThrough to "2017-12-31T23:59:59-07:00".

When used in a Service specification, validThrough indicates the ending date beyond which users' orders can no longer be placed.

If this property is not specified in your feed, Google assumes that the Restaurant or Service is available daily.

In addition to the date, the time and time zone portions of the DateTime are required.

For the time zone, use the Restaurant's or Service's time zone.

The time for validThrough is exclusive. For example, if that time is set to 6 PM, the time is valid up to 5:59:59 PM.

For more information, see DateTime and Time formats .

deliveryHours Array of ServiceDeliveryHoursSpecification or array of AdvanceServiceDeliveryHoursSpecification مشروط

The delivery or takeout time specification.

This parameter is required unless the restaurant is closed (meaning that the opens and closes are set and equal to each other.

  • ServiceDeliveryHoursSpecification : Within the opening/closing hours, you can set "opens" and "closes" hours when users can place ASAP orders.
  • AdvanceServiceDeliveryHoursSpecification : Within the opening/closing hours, you can set "opens" and "closes" hours when users can place advance orders.

The following examples show OpeningHoursSpecification elements:

مثال 1

// Ordering times for Monday through Friday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      "@type": "AdvanceServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T12:00:00", // Advance ordering begins at noon
      "closes": "T23:59:59", // Advance ordering ends at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    },
    {
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T10:00:00", // ASAP ordering begins at 10AM
      "closes": "T14:00:00", // ASAP ordering ends at 2PM
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
},

مثال 2

// Ordering times for Saturday and Sunday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      // In this case advance orders are unavailable on Saturday and Sunday
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "T12:00:00", // ASAP orders start at noon
      "closes": "T23:59:59", // ASAP orders end at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
}

مثال 3

"hoursAvailable": {
  "@type": "OpeningHoursSpecification",
  "validFrom": "2016-02-01T00:00:00-07:00",
  "validThrough": "2016-03-01T00:00:00-07:00",
  "opens": "T08:00:00",  // Ordering begins at 8:00AM and ends at 6:00PM.
                         // ASAP and and advance orders are restricted to this
                         // time frame since the user won't be able to place
                         // orders outside of this window.
  "closes": "T18:00:00",
  "deliveryHours": {
    "@type": "ServiceDeliveryHoursSpecification",
    "deliveryLeadTime": {
      "@type": "QuantitativeValue",
      "value": "60",
      "unitCode": "MIN"
    }
  }
},

مثال 4

// List hours available for 2017 and 2018
"hoursAvailable": [
  {
    "@type": "OpeningHoursSpecification",
    // Array containing advance order hours for each day
    "deliveryHours": [
      {
        // Open 10:00AM to 9:29:59PM on Mondays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Monday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Tuesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Tuesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Wednesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Wednesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Thursdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "dayOfWeek": [
          "Thursday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Fridays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Friday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Saturdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Saturday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 11:00AM to 6:59:59PM on Sundays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Sunday"
        ],
        "opens": "T11:00:00",
        "closes": "T19:00:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      }
    ]
  }
],

جزئیات بسته بندی

Add the gs1 context to use this type: "@context": ["http://gs1.org/voc/", "http://schema.org"] . And add FoodBeverageTobaccoProduct to the type of the MenuItem or MenuItemOption .

The following table describes the properties of the PackagingDetails type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "PackagingDetails".
packagingRecyclingProcessType متن اختیاری Packaging recycling process type per gs1:PackagingRecyclingProcessTypeCode . For example http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE or http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails اختیاری Returnable package deposit details per gs1:ReturnablePackageDepositDetails . For example, bottles and cans have returnable package deposits.

The following example shows the usage of the PackagingDetails type:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

PaymentChargeSpecification

The following table describes the properties of the PaymentChargeSpecification type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "PaymentChargeSpecification".
@id URL اختیاری Identifier for the PaymentChargeSpecification .
price عدد ضروری Total amount of the charge. For example, "6.00", without the currency symbol.
priceCurrency متن ضروری The 3-letter ISO 4217 currency code of the price. For example, "USD".
eligibleTransactionVolume PriceSpecification اختیاری Transaction volume, in a monetary unit, for which this payment charge specification is valid, like for indicating a minimal purchasing volume.
eligibleQuantity QuantitativeValue اختیاری The ordering quantities for which the payment charge is valid. For example, you can use this property to require a minimum number of items in an order.
validFrom DateTime اختیاری Date and time (including the time zone) when the payment charge specified becomes valid. For example, "2017-05-01T07:00:00-07:00". For more information, see DateTime and Time formats .
validThrough DateTime اختیاری Date and time (including the time zone) when the payment charge specified is not valid. For example, "2017-05-01T07:30:00-07:00". The time for validThrough is exclusive: for example, if that time is set to 6 PM, the time is valid up to 5:59:59 PM. For more information, see DateTime and Time formats .

The following example shows a PaymentChargeSpecification element:

مثال

"priceSpecification": [{
  "@type": "PaymentChargeSpecification",
  "@id": "http://www.provider.com/paymentCharge/bar",
  "priceCurrency": "USD",
  "price": "6.00", // Charges $6 for processing fee
  "eligibleQuantity": {
    "@type": "QuantitativeValue",
    "minValue": 2 // Minimum of two items required
  }
}]

In addition to "@type": ["PaymentChargeSpecification"] , the object can be extended with UnitPriceSpecification ( "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"] ). The extension gives an additional two properties required for service fees calculated in percentages.

ویژگی تایپ کنید ضرورت شرح
referenceQuantity QuantitativeValue ضروری Reference quantity for which a certain price applies. For example, referenceQuantity of value 10 with unitCode of "P1" result in 10% of the order value. Only unitCode "P1" is currently supported.
basePrice عدد اختیاری The base charge in addition to the referenceQuantity . For example, referenceQuantity of 10 with unitCode of "P1" and basePrice of 5 in USD result in $5 + 10% of the order value. The default value is 0.

Takeout fee examples

Google allows you to specify a variety of fees to users upfront using Offer.PriceSpecification of the Service entity.

Note that we currently only support one PaymentChargeSpecification . Combine all types of fees into a single PaymentChargeSpecification

If there is no fee, Offer.PriceSpecification is omitted.

  • Example 1: Service fee is 5% of cart subtotal
  • Example 2: Service fee is $5
  • Example 3: Bag fee is $0.1 and service fee is 5% of cart subtotal
  • Example 4: Bag fee is $0.1 and service fee is $1
  • Example 5: Service fee is 5% and required tip is 10% of cart subtotal

مثال 1

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

مثال 2

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

مثال 3

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]

مثال 4

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]

مثال 5

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

محل

The following table describes the properties of the Place type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "Place".
address PostalAddress ضروری Address of a place.

The following example shows a Place element:

مثال

{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

آدرس پستی

The following table describes the properties of the PostalAddress type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "PostalAddress".
addressLocality متن ضروری* The locality or city. For example, "San Francisco".
addressRegion متن ضروری* The region or state. For example, "CA".
postalCode متن ضروری* The postal code. For example, "94102".
streetAddress متن اختیاری The street address. For example, "1600 Amphitheatre Pkwy".
addressCountry متن ضروری Two-letter ISO 3166-1 alpha-2 country code . For example, "US".

Delivery providers can list these properties to designate a Service.areaServed where a service is provided.

When used in Restaurant.address , all the properties listed in PostalAddress are required.

The following example shows a PostalAddress element:

مثال

"address": {
  "@type": "PostalAddress",
  "streetAddress": "12345 Bar Avenue",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94124",
  "addressCountry": "US"
},

مشخصات قیمت

The following table describes the properties of the PriceSpecification type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "PriceSpecification".
@id URL اختیاری Identifier for the PriceSpecification .
minPrice عدد اختیاری The lowest price if the price is a range.
maxPrice عدد اختیاری The highest price if the price is a range.
priceCurrency متن ضروری The 3-letter ISO 4217 currency code of the price. For example, "USD".
eligibleQuantity QuantitativeValue اختیاری The ordering quantities for which the price specification is valid. For example, the price might be $2 per pound or 2 items for a dollar.

The following example shows a PriceSpecification element:

مثال 1

"eligibleTransactionVolume": {
  "@type": "PriceSpecification",
  "minPrice": "20.00", // Minimum order price for delivery is $20
  "priceCurrency": "USD"
}

PropertyValue

Property value pair used to describe options in MenuItemOption .

The following table lists the properties for the PropertyValue type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "PropertyValue".
name متن ضروری

Name or type of the option.

The following are valid names when used in MenuItem :

  • "SIZE": Size of the MenuItem . For example, small, medium, or large.
  • "OPTION": Any variation other than size (like a dish that comes either as a salad or a sandwich). If you can't distinguish between "SIZE" and "OPTION", then use "OPTION".

Valid names when used in AddOnMenuItem :

  • "APPLICABLE_ITEM_OPTION": An option for the addOn that is only applicable when used with the MenuItem with the respective "SIZE/OPTION".
  • "PIZZA_SIDE": Specific to pizzas, this add-on is only valid for a portion/whole pizza (like mushroom toppings on the left side, right side, or whole pizza).
  • "SIZE": An option to designate the size of the add-on (like large fries as an add-on for a meal combo).
  • "OPTION": Any variation other than size. If you can't distinguish between "SIZE" and "OPTION", then use "OPTION".
value متن ضروری

Value for the option. The values can be any string and are displayed as is. The following are valid values:

  • "PIZZA_SIDE": The corresponding value should be "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT", or "PIZZA_SIDE_WHOLE" for a pizza.
  • "APPLICABLE_ITEM_OPTION": This value should be present in one of the corresponding "OPTION/SIZE" choices for the parent MenuItem 's menuItemOptions.

مقدار کمی

The following table describes the properties of the QuantitativeValue type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "QuantitativeValue".
value عدد اختیاری The value of the quantitative value or property value node.
unitCode متن یا URL اختیاری

The unit of measurement as a UN/CEFACT Common Code or a URL.

Codes other than the UN/CEFACT Common Code may be used with a prefix followed by a colon.

maxValue عدد اختیاری The upper value of some characteristic or property.
minValue عدد اختیاری The lower value of some characteristic or property.

The following examples show the usage of the QuantitativeValue type:

مثال 1

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}

مثال 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

مثال 3

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

رستوران

The following table lists the properties for the Restaurant type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "Restaurant".
@id URL ضروری Unique identifier of the restaurant or delivery provider. For example, "http://www.provider.com/326", where "326" is the unique identifier of the restaurant.
name متن ضروری Text that can identify the Restaurant during the ordering process.
url URL ضروری URL on your domain that represents the restaurant. For example, "http://www.provider.com/somerestaurant".
sameAs URL اختیاری The official website for the restaurant. For example, "http://www.somerestaurant.com".
email متن اختیاری Contact email of the restaurant.
description متن اختیاری Description of the restaurant.
telephone متن ضروری

Telephone number in the following format:

"[+][country_code][phone_#_with_area_code]"

For example, "+16501234567".

priceRange متن اختیاری A range of pricing. For example, "$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive).
logo URL Optional Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png".
image URL Optional Image of the restaurant.
servesCuisine Array of Text Optional Food types that are served at the restaurant. For example, ["sushi","Asian fusion"].
address PostalAddress Required* Address of the restaurant.
geo GeoCoordinates Optional* Geographic coordinates of the restaurant.
suitableForDiet Array of RestrictedDiet Optional Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list.
aggregateRating AggregateRating Optional Overall rating, based on a collection of reviews or ratings of the restaurant.
additionalProperty Array of name value string pairs Optional

A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n".

For example "additionalProperty": [{"name": "imprint", "value": "first row\nsecondrow\n"},]

The following examples show the usage of the Restaurant type:

Example 1

{
  "@type": "Restaurant",
  "@id": "http://www.provider.com/somerestaurant",
  "url": "www.provider.com/somerestaurant",
  "name": "Some Restaurant",
  "sameAs": "http://www.somerestaurant.com",
  "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg",
  "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94105",
    "streetAddress": "345 Spear St",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "37.391115",
    "longitude": "-122.081099"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "reviewCount": "89"
  },
  "priceRange": "$$", "telephone": "+16501234567", // Country code (+1) is required "servesCuisine": [ "Indian-Mexican Fusion" ] } ،

مثال 2

{
  "@type": "Restaurant",
  "@id": "http://www.example.com/threebrotherstacos",
  "name": "Three Brothers Tacos",
  "address": {
        "@type": "PostalAddress",
        "addressLocality": "Mountain View",
        "addressRegion": "CA",
        "postalCode": "94041",
        "streetAddress": "123 Foo St",
        "addressCountry": "US"
  },
  "additionalProperty": [
    {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"}
  ]
}

For more examples of Restaurant entities, see Restaurant and Menu Feed Examples .

ReturnablePackageDepositDetails

To use this type, add the gs1 context: "@context":

["http://gs1.org/voc/", "http://schema.org"]

Then, add FoodBeverageTobaccoProduct to the type of the appropriate MenuItem or MenuItemOption .

The following table describes the properties of the ReturnablePackageDepositDetails type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "ReturnablePackageDepositDetails".
returnablePackageDepositAmount gs1:PriceSpecification اختیاری The amount of deposit for this item per gs1:PriceSpecification . For example, $0.25 deposit per can.

The following example shows the usage of the ReturnablePackageDepositDetails type:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

سرویس

Describes delivery of an Ordering End-to-End Action from a restaurant to a geographical location by a delivery organization.

The following table describes the properties of the Service type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری

The feed type.

  • Service : Use this type for all active Service feeds.
  • DisabledService : Only use this type when you must disable a Service entity due to an unexpected event, and you don't know when the service will be re-established.
@id URL ضروری Identifier for the fulfillment service. For example, "http://www.provider.com/service/1".
description متن اختیاری Description of the item.
serviceType متن ضروری Type of service being offered. Possible values are "DELIVERY" or "TAKEOUT".
provider Restaurant ضروری A reference to the unique identifier for the restaurant. For example, "http://www.provider.com/somerestaurant".
areaServed Array of GeoShape , Place , or GeoCircle مشروط Geographic area where a service is provided. This field is optional by default, but is required if serviceType is "DELIVERY".
hoursAvailable Array of OpeningHoursSpecification ضروری Hours during which this service is available.
specialOpeningHoursSpecification Array of OpeningHoursSpecification , ServiceDeliveryHoursSpecification , or AdvanceServiceDeliveryHoursSpecification اختیاری

Times that override the more general OpeningHoursSpecification or the fulfillment times. You typically use this field to define holidays and other types of temporary closures or changes in hours.

Define the special date range using the validFrom and validThrough properties. The time and time zone are required when specifying these properties.

offers Array of Offer مشروط

Details about the delivery offering for a specified restaurant. This field is optional by default, but required if serviceType is "DELIVERY".

The Offer.priceSpecification property is optional in Service. No other Offer properties are used here.

hasOfferCatalog [ Menu , OfferCatalog] ضروری

Specifies a menu for this service. You can have a different menu for each of your services (like takeout, delivery, and catering).

You must specify both Menu and OfferCatalog for the type. مثلا:

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty Array of {name, value} اختیاری

Optional service configuration information. Items are expected to be an object with the key name corresponding to the optional field name. The key value is a contextually-relevant value for the field.

See the ServingConfig reference for more information on the specific names and values.

"additionalProperty": [{
  "name": "disableOrderInstructions",
  "value": false
}, {
  "name": "disableMenuItemSpecialInstructions",
  "value": false
}, {
  "name": "disableTipWidget",
  "value": false
}, {
  "name": "disablePromoWidget",
  "value": false
}, {
  "name": "menuItemSpecialInstructionsMaxLength",
  "value": 256
}, {
  "name": "orderInstructionsMaxLength",
  "value": 256
}]
potentialAction URL اختیاری

Contains a URL for a delivery/takeout service that will be used while migrating from end-to-end food ordering experience to redirect. For example, "potentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" }

The following example shows the usage of the Service type:

مثال

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "serviceType": "DELIVERY",
  "provider": {
    "@type": "Restaurant",
    "@id": "http://www.provider.com/threebrotherstacos"
  },
  "potentialAction": {
    "url": "https://foprovider.com/ordering/restaurant-1/delivery"
  },
  "hoursAvailable": [
    // Ordering times for Monday through Friday
    {
      "@type": "OpeningHoursSpecification",
      "deliveryHours": [
        {
          "@type": "AdvanceServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "T12:00:00", // Advance ordering begins at noon
          "closes": "T23:59:59", // Advance ordering ends at midnight
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        },
        {
          "@type": "ServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "T10:00:00", // ASAP ordering begins at 10AM
          "closes": "T14:00:00", // ASAP ordering ends at 2PM
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        }
      ]
    },
    // Ordering times for Saturday and Sunday
    {
      "@type": "OpeningHoursSpecification",
      "deliveryHours": [
        {
          // In this case advance orders are unavailable on Saturday and Sunday
          "@type": "ServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Saturday",
            "Sunday"
          ],
          "opens": "T12:00:00", // ASAP orders start at noon
          "closes": "T23:59:59", // ASAP orders end at midnight
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        }
      ]
    }
  ],
  "hasOfferCatalog": {
    "@type": ["Menu", "OfferCatalog"],
    "@id": "https://www.provider.com/menu/1"
  },
  "areaServed": [{
      "@type": "GeoCircle", // area1
      "geoMidpoint": {
        "@type": "GeoCoordinates",
        "latitude": "42.362757",
        "longitude": "-71.087109"
      },
      "geoRadius": "10000"
    },
    {
      "@type": "Place", // area2
      "address": {
        "@type": "PostalAddress",
        "postalCode": "94041",
        "addressCountry": "US"
      }
    },
    {
      "@type": "GeoShape", // area3
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167"
    },
    {
      "@type": "GeoShape", // area4
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
    },
    {
      "@type": "GeoCircle", // area5
      "geoMidpoint": {
        "@type": "GeoCoordinates",
        "latitude": "37.7392607",
        "longitude": "-122.3895522"
      },
      "geoRadius": "4505"
    }
  ],
  "offers": {
    "@type": "Offer",
    "priceSpecification": [{
        "@type": "DeliveryChargeSpecification",
        "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
        "price": "8.00", // Charges $8 for area5
        "priceCurrency": "USD",
        "eligibleTransactionVolume": {
          "@type": "PriceSpecification",
          "minPrice": "20.00",
          "priceCurrency": "USD"
        },
        "eligibleRegion": [ // area5
          {
            "@type": "GeoCircle",
            "geoMidpoint": {
              "@type": "GeoCoordinates",
              "latitude": "37.7392607",
              "longitude": "-122.3895522"
            },
            "geoRadius": "4505"
          }
        ]
      },
      {
        "@type": "DeliveryChargeSpecification",
        "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
        "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
        "priceCurrency": "USD",
        "eligibleTransactionVolume": {
          "@type": "PriceSpecification",
          "minPrice": "20.00", // Minimum order price for delivery is $20
          "priceCurrency": "USD"
        }
      }
    ]
  }
},

For more examples of Service entities, see Service Feed Examples .

ServiceDeliveryHoursSpecification

Represents the fulfillment hours for users to schedule ASAP orders for delivery and takeout.

Typically, the value of opens is less than the value of closes . The following guidelines apply to using the opens and closes properties:

  • The opens and closes properties are optional for ServiceDeliveryHoursSpecification , but we strongly recommend that you include them.
  • The time must be specified in the local time for the service. Do not include a time zone in an opens or closes value. If a time zone is specified, Google ignores the time zone information.
  • If opens and closes are not explicitly specified, we assume that ASAP ordering is available every day at all times.
  • If opens and closes are the same, then we assume that ASAP ordering is unavailable.
  • If opens is greater than closes , the closing hour is interpreted to be on the following day. For example, if the opening hour is set to January 1 at 5 PM and the closing hour is 2 AM, then the restaurant is interpreted as closing on January 2 at 2 AM.

The following table describes the properties of the ServiceDeliveryHoursSpecification type:

ویژگی تایپ کنید ضرورت شرح
@type متن ضروری This is always "ServiceDeliveryHoursSpecification".
validFrom DateTime اختیاری

Date and time (including the time zone) when users' ASAP orders can be fulfilled. For example, "2017-05-01T07:00:00-07:00". If this property is not set, then it is assumed to be valid every day.

For more information, see DateTime and Time formats .

validThrough DateTime اختیاری

Date and time (including the time zone) after which users' ASAP orders cannot be fulfilled. For example, "2017-05-01T07:00:00-07:00". If this property is not set, then it is assumed to be valid every day.

The time for validThrough is exclusive. For example, if that time is set to 6 PM, the time is valid up to 5:59:59 PM.

For more information, see DateTime and Time formats .

opens Time اختیاری

Time at which delivery service starts for users' ASAP orders to be fulfilled. For example, "T10:30:00".

The time must be specified in the local time for the service. Do not include a time zone in an opens value. If a time zone is specified, Google ignores this information.

For more information, see DateTime and Time formats .

closes Time اختیاری

The time when delivery service for users' ASAP orders is no longer available. For example, "T23:59:59".

The time for closes is exclusive. Therefore, if you set opens/closes for this ServiceDeliveryHoursSpecification to 10 AM and 4 PM, then that last order is 3:59:59 PM.

The time must be specified in the local time for the service. Do not include a time zone in a closes value. If a time zone is specified, Google ignores this information.

For more information, see DateTime and Time formats .

dayOfWeek Array of DayOfWeek اختیاری

Days of the week that this service is available for users' ASAP orders. The following are valid values:

  • "Monday"
  • "سهشنبه"
  • "چهار شنبه"
  • "پنج شنبه"
  • "جمعه"
  • "شنبه"
  • "Sunday"

If you do not specify any days of week, then ServiceDeliveryHoursSpecification applies to all days.

deliveryLeadTime QuantitativeValue اختیاری Estimated delivery time, in minutes, once the order has been placed. We strongly recommend that you set this property. Set the value field of QuantitativeValue to the number of minutes and the unitCode to "MIN".

The following example shows a ServiceDeliveryHoursSpecification element:

مثال 1

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "value": "60", // If no exact deliveryLeadTime, put a maximum time
    "unitCode": "MIN"
  }
},

مثال 2

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

Enums

RestrictedDiet

The RestrictedDiet type has the following possible values:

  • http://schema.org/DiabeticDiet
  • http://schema.org/GlutenFreeDiet
  • http://schema.org/HalalDiet
  • http://schema.org/HinduDiet
  • http://schema.org/KosherDiet
  • http://schema.org/LowCalorieDiet
  • http://schema.org/LowFatDiet
  • http://schema.org/LowLactoseDiet
  • http://schema.org/LowSaltDiet
  • http://schema.org/VeganDiet
  • http://schema.org/VegetarianDiet