فیدهای کاتالوگ غذا بر اساس نهادهای 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 | ضروری | آخرین تاریخ و ساعت در قالب ISO_OFFSET_DATE_TIME که بر اساس آن موارد موجود در این فید اصلاح شدند. در غیاب این فیلد، فرض بر این است که زمان بهروزرسانی زمانی است که پیام فشار دریافت میشود (یا خزیدن اتفاق میافتد) در سرورهای Google. اگر از فشار و خزیدن با هم استفاده می کنید، اکیداً به شما توصیه می کنیم که این را اجرا کنید. این مهر زمانی باید با یک منطقه زمانی و دانه بندی میلی ثانیه مشخص شود. به عنوان مثال "2016-12-28T06:30:00:123-07:00". در فیدهای دسته ای شما، نسخه بندی موجودیت از طریق قسمت |
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 | اختیاری | تصویر آیتم منوی افزودنی که با دستورالعمل های زیر مطابقت دارد:
|
offers | آرایه Offer | ضروری* | یک یا چند پیشنهاد برای ارائه این AddOnMenuItem. توضیح می دهد که چه زمانی و با چه قیمتی این AddOnMenuItem در دسترس است. فقط یک پیشنهاد باید در یک زمان خاص معتبر باشد. اگر قیمت یا در دسترس بودن بر اساس زمان روز تغییر کند، میتوانید پیشنهادهای معتبر زیادی داشته باشید. هنگامی که افزونه یا مورد از طریق یک ویژگی پایه یا یک تغییر در خود مورد افزودنی متفاوت است (مانند سیب زمینی سرخ کرده کوچک، متوسط و بزرگ به عنوان یک افزودنی)، از ویژگی پیش فرض ویژگی های
|
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 | اختیاری | از فهرست زیر نشان می دهد که کدام ویژگی های
|
hasMenuSection | آرایه AddOnMenuSection | ضروری* | زیر گروه بندی منطقی منوی افزودنی (مانند شام، پیش غذا، یا غذاهای ماهی). |
defaultOption | آرایه AddOnMenuItem | اختیاری | آیتم های منوی افزودنی به طور پیش فرض برای کاربران در اشیاء تعداد |
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". اگر این ویژگی تنظیم نشده باشد، فرض می شود که هر روز معتبر است. خواص اگر این نوع به عنوان برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
validThrough | DateTime | اختیاری | تاریخ پایانی که پس از آن سفارشهای قبلی کاربران دیگر قابل انجام نیست. به عنوان مثال، "2018-12-01T00:00:00-07:00". اگر این ویژگی تنظیم نشده باشد، فرض می شود که هر روز معتبر است. خواص اگر این نوع به عنوان زمان برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
opens | Time | اختیاری | برای اسلات تحویل یا بیرونبر اعمال میشود. زمان مشخصی از روز که از آن زمان میتوان سفارشهای پیشروی کاربران را انجام داد. به عنوان مثال، 6:30 صبح به عنوان "T06:30:00" داده می شود. زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
closes | Time | اختیاری | برای اسلات تحویل یا بیرونبر اعمال میشود. زمان مشخصی از روز که پس از آن نمیتوان سفارشهای قبلی کاربران را انجام داد. به عنوان مثال، ساعت 9:00 به عنوان "T21:00:00" داده می شود. زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
dayOfWeek | آرایه DayOfWeek | اختیاری | روزهایی از هفته که ساعتهای تحویل از قبل در دسترس است. مقادیر معتبر عبارتند از:
اگر هیچ روزی از هفته را مشخص نکنید، |
serviceTimeInterval | Duration | ضروری | فاصله بین دو زمان سرویس متوالی. به عنوان مثال: اگر |
advanceBookingRequirement | QuantitativeValue | ضروری | تعداد دقیقه از زمان سفارش که می توان سفارش قبلی را انجام داد. به عنوان مثال، اگر یک سفارش اولیه حداقل به 60 دقیقه نیاز دارد تا انجام شود و انجام آن بیش از 2 روز بعد محدود شود، |
مثال زیر استفاده از نوع 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 | اختیاری | تصویر آیتم منو از دستورالعمل های تصویر زیر استفاده کنید:
|
menuAddOn | آرایه AddOnMenuSection | اختیاری | موارد موجود در بخش منو که می توانند به عنوان افزودنی به آیتم منو اضافه شوند. |
offers | آرایه Offer | ضروری* | یک یا چند پیشنهاد برای ارائه این فهرست زیر نشان میدهد که کدام ویژگیهای
|
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
را ببینید.
جدول زیر ویژگی های نوع MenuItemOption
را فهرست می کند:
ویژگی | تایپ کنید | ضرورت | شرح |
---|---|---|---|
@type | متن | ضروری | این همیشه "MenuItemOption" است. |
value | PropertyValue | ضروری | PropertyValue حاوی یک جفت نام/مقدار که گزینه را نشان می دهد. |
offers | آرایه Offer | ضروری | یک یا چند پیشنهاد برای ارائه این فهرست زیر نشان میدهد که کدام ویژگیهای
|
menuAddOn | Array of | اختیاری | بخش منو از موارد مجاز است که می تواند به عنوان یک افزودنی اضافه شود. فقط در صورتی از این مورد استفاده کنید که افزونه ها مختص یک گزینه منوی خاص باشند. در غیر این صورت با استفاده از ویژگی 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 | اختیاری | از لیست زیر نشان می دهد که کدام ویژگی های
|
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 | متن | مشروط | شناسه منحصر به فرد پیشنهاد. می تواند هر مقدار متنی باشد که در این ملک فقط در انواع پیشنهاد زیر استفاده می شود:
|
price | متن | مشروط | قیمت کالای ارائه شده به عنوان مثال، "6.00" بدون نماد ارز. این ویژگی فقط در انواع پیشنهادات زیر مورد نیاز است:
در انواع پیشنهاد زیر استفاده نمی شود:
|
priceCurrency | متن | مشروط | واحد پول (در قالب 3 حرف ایزو 4217) قیمت یا جزء قیمت، وقتی به PriceSpecification و انواع فرعی آن پیوست شود. این ویژگی فقط در انواع پیشنهادات زیر مورد نیاز است:
در انواع پیشنهاد زیر استفاده نمی شود:
|
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 | اختیاری | روزهای هفته که این مورد در دسترس است. مقادیر معتبر عبارتند از:
اگر برای روزهای مختلف هفته دسترسی متفاوتی دارید، از بیش از یک شیء |
validFrom | DateTime | اختیاری | تاریخ و ساعت (از جمله منطقه زمانی) که در آن قیمت مشخص شده معتبر است. به عنوان مثال، پاستا در هنگام ناهار 8 دلار و در شام 10 دلار است. برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ملک در انواع پیشنهادی زیر استفاده نمی شود:
|
validThrough | DateTime | اختیاری | تاریخ و ساعت (از جمله منطقه زمانی) که پس از آن قیمت مشخص شده دیگر معتبر نیست. به عنوان مثال، پاستا در هنگام ناهار 8 دلار و در شام 10 دلار است. زمان این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ویژگی در انواع پیشنهادی زیر استفاده نمی شود.
|
eligibleQuantity | مقدار کمی | اختیاری | مقادیر سفارشی که این مورد برای آنها مجاز است. به عنوان مثال، یک رستوران ممکن است نیاز داشته باشد که حداقل 10 پیتزا برای تحویل سفارش داده شود. این مقدار اختیاری است. به طور پیش فرض، حداکثر محدودیتی وجود ندارد، اما رستوران می تواند یکی را مشخص کند. حداقل زمانی اعمال می شود که کاربر موردی را انتخاب کند. این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ویژگی در انواع پیشنهادی زیر استفاده نمی شود.
|
aggregateRating | AggregateRating | اختیاری | رتبه بندی کلی، بر اساس مجموعه ای از بررسی ها یا رتبه بندی های مورد. این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ویژگی در انواع زیر استفاده نمی شود.
|
inventoryLevel | مقدار کمی | اختیاری | سطح موجودی تقریبی فعلی برای کالا یا اقلام. این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ملک در انواع پیشنهادی زیر استفاده نمی شود:
|
priceSpecification | Array of DeliveryChargeSpecification یا آرایه PaymentChargeSpecification | اختیاری | هنگامی که در این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ملک در انواع پیشنهادی زیر استفاده نمی شود:
|
offeredBy | مجموعه ای از شناسه های Restaurant | اختیاری | نشان دهنده رستوران هایی است که این اگر مشخص نشده باشد، این این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ملک در انواع پیشنهادی زیر استفاده نمی شود:
|
applicableFulfillmentMethod | آرایه متن | اختیاری | نشان دهنده نوع خدماتی است که این اگر مشخص نشده باشد، این این ملک در انواع پیشنهادی زیر قابل استفاده است:
این ملک در انواع پیشنهادی زیر استفاده نمی شود:
|
@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" ] اگر هر روز از هفته را مشخص نکنید ، پس از |
opens | Time | اختیاری | هنگامی که در مشخصات هنگامی که در یک مشخصات زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
closes | Time | اختیاری | هنگامی که در یک مشخصات زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
validFrom | DateTime | اختیاری | در صورت استفاده در مشخصات به عنوان مثال ، اگر ساعات داده شده در مورد تمام سال 2017 اعمال می شود ، شما را به عنوان "2017-01-01T00: 00: 00-07: 00" هنگامی که در یک مشخصات اگر این ویژگی در فید شما مشخص نشده باشد ، گوگل فرض می کند که روزانه رستوران یا سرویس در دسترس است. علاوه بر تاریخ ، بخش زمان و منطقه زمانی مقدار مورد نیاز است. برای منطقه زمانی ، از منطقه زمانی رستوران یا سرویس استفاده کنید. برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
validThrough | DateTime | اختیاری | هنگامی که در یک به عنوان مثال ، اگر ساعات داده شده در مورد تمام سال 2017 اعمال می شود ، شما را به عنوان "2017-01-01T00: 00: 00-07: 00" در صورت استفاده در مشخصات اگر این ویژگی در فید شما مشخص نشده باشد ، گوگل فرض می کند که روزانه رستوران یا سرویس در دسترس است. علاوه بر تاریخ ، بخش زمان و منطقه زمانی DateTime مورد نیاز است. برای منطقه زمانی ، از منطقه زمانی رستوران یا سرویس استفاده کنید. زمان برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
deliveryHours | مجموعه ای از ServiceDeliveryHoursSpecification یا مجموعه ای از 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 | متن | ضروری | نام یا نوع گزینه. موارد زیر در هنگام استفاده در
نامهای معتبر هنگام استفاده در
|
value | متن | ضروری | مقدار برای گزینه. مقادیر می توانند هر رشته ای باشند و همانطور که هست نمایش داده می شود. موارد زیر مقادیر معتبر هستند:
|
مقدار کمی
در جدول زیر خصوصیات نوع 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 |
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 | متن | ضروری | نوع خوراک
|
@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 | اختیاری | زمانهایی که بر محدوده تاریخ ویژه را با استفاده از خصوصیات |
offers | آرایه Offer | مشروط | جزئیات مربوط به ارائه تحویل برای یک رستوران مشخص. این قسمت به طور پیش فرض اختیاری است ، اما اگر ویژگی |
hasOfferCatalog | [ Menu ، ارائه دهنده] | ضروری | منوی این سرویس را مشخص می کند. شما می توانید برای هر یک از خدمات خود منوی متفاوتی داشته باشید (مانند انتخاب ، تحویل و پذیرایی). شما باید هر دو "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty | آرایه {نام ، مقدار} | اختیاری | اطلاعات پیکربندی خدمات اختیاری. انتظار می رود موارد با برای اطلاعات بیشتر در مورد نام ها و مقادیر خاص ، به مرجع "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". اگر این خاصیت تنظیم نشده باشد ، فرض بر این است که هر روز معتبر است. زمان برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
opens | Time | اختیاری | زمانی که سرویس تحویل برای انجام سفارشات ASAP کاربران شروع می شود. به عنوان مثال ، "T10: 30: 00". زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
closes | Time | اختیاری | زمان تحویل سفارشات ASAP کاربران دیگر در دسترس نیست. به عنوان مثال ، "T23: 59: 59". زمان زمان باید در زمان محلی برای سرویس مشخص شود. یک منطقه زمانی را در یک مقدار برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
dayOfWeek | مجموعه ای از DayOfWeek | اختیاری | روزهای هفته که این سرویس برای سفارشات ASAP کاربران در دسترس است. موارد زیر مقادیر معتبر هستند:
اگر هر روز از هفته را مشخص نکنید ، پس از آن |
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 | ضروری | آخرین تاریخ و زمان در فرمت ISO_OFFSET_DATE_TIME که موارد موجود در این فید اصلاح شده است. در صورت عدم وجود این زمینه ، فرض بر این است که زمان بروزرسانی زمانی است که پیام فشار (یا خزیدن اتفاق می افتد) در سرورهای Google دریافت می شود. ما به شما توصیه می کنیم اگر از فشار و خزیدن با هم استفاده می کنید ، این کار را پیاده سازی کنید. این زمان بندی باید با یک منطقه زمانی و دانه بندی میلی ثانیه مشخص شود. به عنوان مثال "2016-12-28T06: 30: 00: 123-07: 00". در فیدهای دسته ای شما ، نسخه های موجودیت از طریق قسمت |
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 | اختیاری | تصویر مورد منوی افزودنی که مطابق با دستورالعمل های زیر است:
|
offers | آرایه Offer | ضروری* | یک یا چند پیشنهاد برای ارائه این افزودنی. توصیف می کند که چه زمانی و با چه قیمتی این افزودنی در دسترس است. فقط یک پیشنهاد باید در یک زمان خاص معتبر باشد. اگر قیمت یا در دسترس بودن بر اساس زمان روز تغییر کند ، می توانید پیشنهادات معتبر زیادی داشته باشید. هنگامی که افزودنی یا آیتم از طریق یک ویژگی پایه یا تغییر در خود مورد افزودنی (مانند سیب زمینی سرخ شده کوچک ، متوسط و بزرگ به عنوان یک افزودنی) متفاوت است ، از خاصیت پیش فرض برای خواص
|
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 | اختیاری | استفاده از لیست زیر نشان می دهد که چه ویژگی هایی را
|
hasMenuSection | مجموعه ای از AddOnMenuSection | ضروری* | زیر گروه منطقی منوی افزودنی (مانند شام ، اشتها آور یا غذاهای ماهی). |
defaultOption | آرایه AddOnMenuItem | اختیاری | موارد منوی افزودنی که به طور پیش فرض برای کاربران در اشیاء تعداد |
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". اگر این خاصیت تنظیم نشده باشد ، فرض بر این است که هر روز معتبر است. خصوصیات اگر این نوع به عنوان یک برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
validThrough | DateTime | اختیاری | تاریخ پایان آن فراتر از سفارشات پیش پرداخت کاربران دیگر نمی تواند برآورده شود. به عنوان مثال ، "2018-12-01T00: 00: 00-07: 00". اگر این خاصیت تنظیم نشده باشد ، فرض بر این است که هر روز معتبر است. خصوصیات اگر این نوع به عنوان یک زمان برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
opens | Time | اختیاری | در مورد اسلات تحویل یا گرفتن اعمال می شود. زمان خاص روز که از آن می توان سفارشات پیش پرداخت کاربران را برآورده کرد. به عنوان مثال ، 6:30 صبح به عنوان "T06: 30: 00" داده می شود. زمان باید در زمان محلی برای خدمات مشخص شود. یک منطقه زمانی را در یک مقدار برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
closes | Time | اختیاری | در مورد اسلات تحویل یا گرفتن اعمال می شود. زمان مشخصی از روز فراتر از آن که سفارشات پیشرفته کاربران را نمی توان تحقق بخشید. به عنوان مثال ، ساعت 9:00 بعد از ظهر به عنوان "T21: 00: 00" داده می شود. زمان باید در زمان محلی برای خدمات مشخص شود. یک منطقه زمانی را در یک مقدار برای اطلاعات بیشتر ، به قالب های DateTime و Time مراجعه کنید. |
dayOfWeek | مجموعه ای از DayOfWeek | اختیاری | روزهای هفته که ساعتهای تحویل قبل از آن در دسترس است. مقادیر معتبر عبارتند از:
اگر هر روز از هفته را مشخص نکنید ، پس از آن |
serviceTimeInterval | Duration | ضروری | فاصله بین دو بار خدمات پی در پی. به عنوان مثال: اگر |
advanceBookingRequirement | QuantitativeValue | ضروری | تعداد دقایقی از زمان سفارش در هنگام تحقق سفارش قبلی. The 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 |
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 .
MenuDisclaimer
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:
|
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 The listing below shows which
|
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 .
MenuItemOption
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 The listing below shows which
|
menuAddOn | Array of | اختیاری | 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 The following list shows which
|
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 This property is only used in the following offer types:
|
price | متن | مشروط | Price of the offered item. For example, "6.00" without the currency symbol. This property is only required in the following offer types:
It is not used in the following offer types:
|
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:
It is not used in the following offer types:
|
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. مقادیر معتبر عبارتند از:
If you have different availability for different days of the week, use more than one |
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:
This property is not used in the following offer types:
|
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 This property can be used in the following offer types:
This property is not used in the following offer types.
|
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:
This property is not used in the following offer types.
|
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:
This property is not used in the following types.
|
inventoryLevel | مقدار کمی | اختیاری | The current approximate inventory level for the item or items. This property can be used in the following offer types:
This property is not used in the following offer types:
|
priceSpecification | Array of DeliveryChargeSpecification or array of PaymentChargeSpecification | اختیاری | When used in This property can be used in the following offer types:
This property is not used in the following offer types:
|
offeredBy | Array of Restaurant ids | اختیاری | Represents the restaurants this If not specified, this This property can be used in the following offer types:
This property is not used in the following offer types:
|
applicableFulfillmentMethod | Array of Text | اختیاری | Represents the service type this If not specified, this This property can be used in the following offer types:
This property is not used in the following offer types:
|
@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
andcloses
properties are optional but strongly recommended to denote when ordering is available. The best practice for defining available hours is to include adeliveryHours
array that contains aServiceDeliveryHoursSpecification
withopens
andcloses
properties. You can then include anAdvanceServiceDeliveryHoursSpecification
object indeliveryHours
with its ownopens
andcloses
properties, if you want to offer a more limited window for advance ordering. - If
opens
andcloses
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
orcloses
value. If a time zone is specified, Google ignores this information. - If
opens
andcloses
are the same, then we assume that the restaurant is open for 0 minutes. - If
opens
is greater thancloses
, 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 |
opens | Time | اختیاری | When used in a When used in a The time must be specified in the local time for the service. Do not include a time zone in an For more information, see DateTime and Time formats . |
closes | Time | اختیاری | When used in a The time must be specified in the local time for the service. Do not include a time zone in a For more information, see DateTime and Time formats . |
validFrom | DateTime | اختیاری | When used in a For example, if the hours given apply to all of the year 2017, you set set When used in a 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 For example, if the hours given apply to all of the year 2017, you set set When used in a 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 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
|
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
Valid names when used in
|
value | متن | ضروری | Value for the option. The values can be any string and are displayed as is. The following are valid values:
|
مقدار کمی
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 |
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.
|
@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 Define the special date range using the |
offers | Array of Offer | مشروط | Details about the delivery offering for a specified restaurant. This field is optional by default, but required if The |
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 "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 See the "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
andcloses
properties are optional forServiceDeliveryHoursSpecification
, 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
orcloses
value. If a time zone is specified, Google ignores the time zone information. - If
opens
andcloses
are not explicitly specified, we assume that ASAP ordering is available every day at all times. - If
opens
andcloses
are the same, then we assume that ASAP ordering is unavailable. - If
opens
is greater thancloses
, 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 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 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 The time must be specified in the local time for the service. Do not include a time zone in a 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:
If you do not specify any days of week, then |
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