فیدهای کاتالوگ غذا بر اساس نهادهای 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
وارد نکنید. اگر منطقه زمانی مشخص شده باشد، گوگل این اطلاعات را نادیده می گیرد. - اگر
opens
وcloses
یکسان باشد، فرض می کنیم که رستوران برای 0 دقیقه باز است. - اگر
opens
بیشتر ازcloses
باشد، ساعت بسته شدن به روز بعد تعبیر می شود. به عنوان مثال، اگر ساعت کار روی 1 ژانویه در ساعت 5 بعد از ظهر تنظیم شده باشد و ساعت بسته شدن آن 2 بامداد باشد، رستوران به عنوان بسته شدن در 2 ژانویه در ساعت 2 بامداد تعبیر می شود. - زمان
closes
اختصاصی است. بنابراین اگر زمان باز و بسته شدن این پنجره سفارش به ترتیب 10 صبح و 16 بعد از ظهر تعیین شده باشد، آخرین سفارش ساعت 15:59:59 است.
جدول زیر ویژگی های نوع OpeningHoursSpecification
را توضیح می دهد:
اموال | تایپ کنید | ضرورت | توضیحات |
---|---|---|---|
@type | متن | مورد نیاز | این همیشه "OpeningHoursSpecification" است. |
@id | URL | اختیاری | شناسه برای OpeningHoursSpecification . |
dayOfWeek | آرایه DayOfWeek | اختیاری | روزی از هفته که این ساعات کاری برای آن معتبر است. مقادیر قابل قبول «دوشنبه»، «سه شنبه»، «چهارشنبه»، «پنجشنبه»، «جمعه»، «شنبه» و «یکشنبه» است. به عنوان مثال: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] اگر هیچ روزی از هفته را مشخص نکنید، |
opens | Time | اختیاری | هنگامی که در مشخصات هنگامی که در مشخصات زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
closes | Time | اختیاری | هنگامی که در مشخصات زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
validFrom | DateTime | اختیاری | وقتی در مشخصات برای مثال، اگر ساعات داده شده برای تمام سال 2017 اعمال شود، هنگامی که در مشخصات اگر این ویژگی در فید شما مشخص نشده باشد، Google فرض میکند که رستوران یا سرویس روزانه در دسترس است. علاوه بر تاریخ، بخشهای زمانی و منطقه زمانی مقدار مورد نیاز است. برای منطقه زمانی، از منطقه زمانی رستوران یا سرویس استفاده کنید. برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
validThrough | DateTime | اختیاری | زمانی که در برای مثال، اگر ساعات داده شده برای تمام سال 2017 اعمال شود، هنگامی که در مشخصات اگر این ویژگی در فید شما مشخص نشده باشد، Google فرض میکند که رستوران یا سرویس روزانه در دسترس است. علاوه بر تاریخ، بخشهای زمانی و منطقه زمانی DateTime مورد نیاز است. برای منطقه زمانی، از منطقه زمانی رستوران یا سرویس استفاده کنید. زمان برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
deliveryHours | Array of 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 | متن | مورد نیاز | این همیشه "جزئیات بسته بندی" است. |
packagingRecyclingProcessType | متن | اختیاری | نوع فرآیند بازیافت بسته بندی در gs1:PackagingRecyclingProcessTypeCode . برای مثال http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE یا http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE |
hasReturnablePackageDeposit | ReturnablePackageDepositDetails | اختیاری | جزئیات سپرده بسته قابل برگشت به ازای gs1:ReturnablePackageDepositDetails . به عنوان مثال، بطری ها و قوطی ها دارای سپرده های بسته قابل برگشت هستند. |
مثال زیر استفاده از نوع 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 | متن | مورد نیاز | این همیشه "PaymentChargeSpecification" است. |
@id | URL | اختیاری | شناسه برای PaymentChargeSpecification . |
price | شماره | مورد نیاز | مبلغ کل شارژ به عنوان مثال، "6.00"، بدون نماد ارز. |
priceCurrency | متن | مورد نیاز | کد ارز 3 حرفی ISO 4217 قیمت. به عنوان مثال، "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 مراجعه کنید. |
مثال زیر یک عنصر PaymentChargeSpecification را نشان می دهد:
مثال
"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"]
، شی را می توان با UnitPriceSpecification گسترش داد ( "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
). افزونه دو ویژگی اضافی مورد نیاز برای هزینه های خدمات محاسبه شده در درصد را ارائه می دهد.
دارایی | تایپ کنید | ضرورت | توضیحات |
referenceQuantity | QuantitativeValue | مورد نیاز | مقدار مرجعی که قیمت معینی برای آن اعمال می شود. برای مثال، referenceQuantity از مقدار 10 با unitCode از "P1" منجر به 10٪ از ارزش سفارش می شود. در حال حاضر فقط unitCode "P1" پشتیبانی می شود. |
basePrice | شماره | اختیاری | شارژ پایه علاوه بر referenceQuantity . به عنوان مثال، referenceQuantity 10 با unitCode "P1" و basePrice 5 به دلار منجر به 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 | مورد نیاز | آدرس یک مکان |
مثال زیر یک عنصر Place را نشان می دهد:
مثال
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
آدرس پستی
جدول زیر ویژگی های نوع PostalAddress
را توضیح می دهد:
اموال | تایپ کنید | ضرورت | توضیحات |
---|---|---|---|
@type | متن | مورد نیاز | این همیشه "PostAddress" است. |
addressLocality | متن | الزامی* | محل یا شهر. به عنوان مثال، "سان فرانسیسکو". |
addressRegion | متن | الزامی* | منطقه یا ایالت. به عنوان مثال، "CA". |
postalCode | متن | الزامی* | کد پستی. به عنوان مثال، "94102". |
streetAddress | متن | اختیاری | آدرس خیابان به عنوان مثال، "1600 Amphitheatre Pkwy". |
addressCountry | متن | مورد نیاز | کد کشور ISO 3166-1 آلفا-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 | متن | مورد نیاز | این همیشه "PriceSpecification" است. |
@id | URL | اختیاری | شناسه برای PriceSpecification . |
minPrice | شماره | اختیاری | کمترین قیمت اگر قیمت یک محدوده باشد. |
maxPrice | شماره | اختیاری | بالاترین قیمت اگر قیمت یک محدوده باشد. |
priceCurrency | متن | مورد نیاز | کد ارز 3 حرفی ISO 4217 قیمت. به عنوان مثال، "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 | متن | مورد نیاز | این همیشه "PropertyValue" است. |
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, $$-متوسط، $$$-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 | متن | مورد نیاز | این همیشه "ReturnablePackageDepositDetails" است. |
returnablePackageDepositAmount | gs1:PriceSpecification | اختیاری | مقدار سپرده برای این مورد به ازای هر gs1:PriceSpecification . به عنوان مثال، 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 "DELIVERY" باشد، ضروری است. |
hoursAvailable | آرایه OpeningHoursSpecification | مورد نیاز | ساعاتی که این سرویس در دسترس است. |
specialOpeningHoursSpecification | آرایه OpeningHoursSpecification ، ServiceDeliveryHoursSpecification ، یا AdvanceServiceDeliveryHoursSpecification | اختیاری | زمانهایی که محدوده تاریخ ویژه را با استفاده از ویژگی های |
offers | آرایه Offer | مشروط | جزئیات در مورد پیشنهاد تحویل برای یک رستوران مشخص. این فیلد به طور پیشفرض اختیاری است، اما اگر ویژگی |
hasOfferCatalog | [ Menu ، کاتالوگ پیشنهاد] | مورد نیاز | یک منو برای این سرویس مشخص می کند. میتوانید برای هر یک از خدمات خود (مانند بیرونبر، تحویل، و پذیرایی) منوی متفاوتی داشته باشید. شما باید هر دو "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty | آرایه از {name, value} | اختیاری | اطلاعات پیکربندی سرویس اختیاری. انتظار می رود آیتم ها یک شی با برای اطلاعات بیشتر در مورد نام ها و مقادیر خاص به مرجع "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 | اختیاری | حاوی یک نشانی وب برای سرویس تحویل/برداشت که هنگام انتقال از تجربه سفارش غذای انتها به انتها برای تغییر مسیر استفاده میشود. به عنوان مثال، "potentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" } |
مثال زیر استفاده از نوع Service را نشان می دهد:
مثال
{ "@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" } } ] } },
برای مثالهای بیشتر از موجودیتهای سرویس، به نمونههای فید سرویس مراجعه کنید.
ServiceDeliveryHoursSpecification
ساعات تکمیل را برای کاربران نشان می دهد تا سفارشات را در اسرع وقت برای تحویل و تحویل گرفتن برنامه ریزی کنند.
به طور معمول، مقدار opens
کمتر از مقدار closes
است. دستورالعمل های زیر برای استفاده از ویژگی های opens
و closes
می شود:
- ویژگی های
opens
وcloses
برایServiceDeliveryHoursSpecification
اختیاری هستند، اما ما قویاً توصیه می کنیم که آنها را اضافه کنید. - زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار
opens
یاcloses
وارد نکنید. اگر منطقه زمانی مشخص شده باشد، گوگل اطلاعات منطقه زمانی را نادیده می گیرد. - اگر
opens
وcloses
به صراحت مشخص نشده باشد، فرض می کنیم که سفارش ASAP هر روز و همیشه در دسترس است. - اگر
opens
وcloses
یکسان باشد، فرض می کنیم که سفارش ASAP در دسترس نیست. - اگر
opens
بیشتر ازcloses
باشد، ساعت بسته شدن به روز بعد تعبیر می شود. به عنوان مثال، اگر ساعت کار روی 1 ژانویه در ساعت 5 بعد از ظهر تنظیم شده باشد و ساعت بسته شدن آن 2 بامداد باشد، رستوران به عنوان بسته شدن در 2 ژانویه در ساعت 2 بامداد تعبیر می شود.
جدول زیر ویژگی های نوع ServiceDeliveryHoursSpecification
را توضیح می دهد:
اموال | تایپ کنید | ضرورت | توضیحات |
---|---|---|---|
@type | متن | مورد نیاز | این همیشه "ServiceDeliveryHoursSpecification" است. |
validFrom | DateTime | اختیاری | تاریخ و ساعت (از جمله منطقه زمانی) که میتوان سفارشات کاربران را در اسرع وقت انجام داد. به عنوان مثال، "2017-05-01T07:00:00-07:00". اگر این ویژگی تنظیم نشده باشد، فرض می شود که هر روز معتبر است. برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
validThrough | DateTime | اختیاری | تاریخ و ساعت (از جمله منطقه زمانی) که پس از آن سفارشات کاربران در اسرع وقت انجام نمی شود. به عنوان مثال، "2017-05-01T07:00:00-07:00". اگر این ویژگی تنظیم نشده باشد، فرض می شود که هر روز معتبر است. زمان برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
opens | Time | اختیاری | زمانی که در آن خدمات تحویل شروع می شود تا سفارشات کاربران در اسرع وقت انجام شود. به عنوان مثال، "T10:30:00". زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
closes | Time | اختیاری | زمانی که سرویس تحویل سفارشات ASAP کاربران دیگر در دسترس نیست. به عنوان مثال، "T23:59:59". زمان زمان سرویس باید در زمان محلی مشخص شود. منطقه زمانی را در مقدار برای اطلاعات بیشتر، به قالبهای DateTime و Time مراجعه کنید. |
dayOfWeek | آرایه DayOfWeek | اختیاری | روزهای هفته که این سرویس برای سفارشات ASAP کاربران در دسترس است. موارد زیر مقادیر معتبر هستند:
اگر هیچ روزی از هفته را مشخص نکنید، |
deliveryLeadTime | QuantitativeValue | اختیاری | زمان تخمینی تحویل، بر حسب دقیقه، پس از ثبت سفارش. ما قویاً توصیه می کنیم که این ویژگی را تنظیم کنید. فیلد value QuantitativeValue را به تعداد دقیقه و unitCode را روی "MIN" تنظیم کنید. |
مثال زیر یک عنصر 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