Фиды каталогов продуктов питания основаны на объектах DataFeed
Schema.org. Фид каталога продуктов питания состоит из региональных сведений о ресторане, таких как адрес ресторана, меню и местоположение, а также сведений об услугах ресторана, таких как стоимость доставки, районы доставки и другие элементы, как указано ниже.
DataFeed
содержит коллекцию элементов, каждый из которых представляет отдельный элемент, выраженный в словаре Schema.org . Вы можете использовать тип DataFeed
для публикации всех структурированных данных в формате JSON-LD .
Информацию об использовании этой спецификации для создания фидов см. в обзоре интеграции инвентаря .
Форматы DateTime и времени
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, когда были изменены элементы в этом фиде. При отсутствии этого поля предполагается, что время обновления — это время получения push-сообщения (или сканирования) на серверах Google. Мы настоятельно рекомендуем вам реализовать это, если вы используете как push, так и сканирование одновременно. Эта временная метка должна быть указана с часовым поясом и точностью до миллисекунд; например «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 | Необходимый* | Одно или несколько предложений предоставить этот AddOnMenuItem. Описывает, когда и по какой цене будет доступен этот 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
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@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
Пункт меню «Сэндвич с сыром» имеет 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" } } ] }
AdvanceServiceДоставкаЧасыСпецификация
Представляет часы выполнения, позволяющие пользователям планировать предварительные заказы на доставку и вынос.
Обычно значение opens
меньше значения closes
. Следующие рекомендации применимы к использованию свойств opens
и closes
:
- Свойства
opens
иcloses
не являются обязательными дляAdvanceServiceDeliveryHoursSpecification
, но мы настоятельно рекомендуем их включить. - Время должно быть указано по местному времени для услуги. Не включайте часовой пояс в значения
opens
илиcloses
. Указанные часовые пояса игнорируются. - Если
opens
иcloses
явно не указано, мы предполагаем, что предварительный заказ доступен во все дни и в любое время. - Если
opens
иcloses
совпадают, то мы предполагаем, что предварительный заказ недоступен. - Если
opens
больше, чемcloses
, час закрытия интерпретируется как следующий день. Например, если час открытия установлен на 1 января в 17:00, а час закрытия — 2 часа ночи, то ресторан интерпретируется как закрытие 2 января в 2 часа ночи. -
opens
иcloses
относятся к будущему временному интервалу.closes
является эксклюзивным. Например, еслиopens
происходит в 10:00, аcloses
— в 16:00 с интерваломserviceTimeInterval
, равным 15 минутам, то первый временной интервал начинается в 10:00, а последний временной интервал — в 15:45.
В следующей таблице описаны свойства типа AdvanceServiceDeliveryHoursSpecification
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «AdvanceServiceDeliveryHoursSpecification». |
validFrom | DateTime | Условный | Начальная дата, начиная с которой могут выполняться предварительные заказы пользователей. Например, «2017-05-01T00:00:00-07:00». Если это свойство не установлено, предполагается, что оно действует каждый день. Свойства Если этот тип указан как Дополнительные сведения см. в разделе Форматы DateTime и времени . |
validThrough | DateTime | Необязательный | Конечная дата, после которой предварительные заказы пользователей больше не могут быть выполнены. Например, «2018-12-01T00:00:00-07:00». Если это свойство не установлено, предполагается, что оно действует каждый день. Свойства Если этот тип указан как Время Дополнительные сведения см. в разделе Форматы DateTime и времени . |
opens | Time | Необязательный | Применяется к слотам доставки или выноса. Конкретное время суток, начиная с которого могут выполняться предварительные заказы пользователей. Например, 6:30 утра указывается как «T06:30:00». Время должно быть указано по местному времени для обслуживания. Не включайте часовой пояс в значение Дополнительные сведения см. в разделе Форматы DateTime и времени . |
closes | Time | Необязательный | Применяется к слотам доставки или выноса. Определенное время суток, после которого предварительные заказы пользователей не могут быть выполнены. Например, 21:00 указывается как «T21:00:00». Время должно быть указано по местному времени для обслуживания. Не включайте часовой пояс в значение Дополнительные сведения см. в разделе Форматы DateTime и времени . |
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 | Текст | Необходимый | Это всегда «AllergenDetails». |
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 | Текст | Необходимый | Трехбуквенный код валюты ISO 4217. Например, «доллар США». |
eligibleTransactionVolume | PriceSpecification | Необязательный | Объем транзакции в денежной единице, для которого действительна данная спецификация стоимости доставки. Например, чтобы указать минимальный объем закупки или указать, что доставка доступна без дополнительной оплаты сверх определенного объема заказа. |
eligibleQuantity | QuantitativeValue | Необязательный | Интервал и единица измерения объемов заказа, для которых действительна стоимость доставки. Это позволяет, например, указать, что определенная плата за перевозку действительна только для определенного количества. |
eligibleRegion | Массив GeoShape или Place или GeoCircle | Необязательный | Место или GeoShape/GeoCircle для геополитического региона(ов), для которого действует предложение или указание стоимости доставки. Используйте это свойство, только если стоимость доставки зависит от региона. |
validFrom | DateTime | Необязательный | Дата и время (включая часовой пояс), когда указанная стоимость доставки вступает в силу. Например, «2017-05-01T06:30:00-07:00». Дополнительные сведения см. в разделе Форматы DateTime и времени . |
validThrough | DateTime | Необязательный | Дата и время (включая часовой пояс), после которого указанная стоимость доставки становится недействительной. Например, «2017-05-01T06:30:00-07:00». Время для validThrough является исключительным: например, если для этого времени установлено значение 18:00, время действительно до 17:59:59. Дополнительные сведения см. в разделе Форматы DateTime и времени . |
В следующих примерах показаны элементы 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
сущности Service.
Обратите внимание, что сквозной заказ в настоящее время поддерживает только одну 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
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «GeoCircle». |
geoMidpoint | GeoCoordinates | Необходимый | Указывает GeoCoordinates в центре GeoCircle . |
geoRadius | Число | Необходимый | Указывает приблизительный радиус (в метрах) GeoCircle . |
В следующем примере показан элемент GeoCircle
:
Пример
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
Геокоординаты
В следующей таблице описаны свойства типа GeoCoordinates
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «Геокоординаты». |
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
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@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 | Текст | Необходимый | Это всегда «MenuDisclaimer». |
@id | URL-адрес | Необходимый | Уникальный идентификатор заявления об отказе от ответственности в меню. |
text | Текст | Необходимый | Текст заявления об отказе от ответственности. Например: «Среднее ежедневное потребление энергии взрослым составляет 8700 кДж». |
url | 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 | Необязательный | Информация об упаковке и переработке этого MenuItem согласно gs1:PackagingDetails . Добавьте контекст gs1, чтобы использовать это свойство: "@context": ["http://gs1.org/voc/", "http://schema.org"] . И добавьте FoodBeverageTobaccoProduct к типу MenuItem . |
В следующих примерах показаны элементы MenuItem
:
Пример 1
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
Пример 2
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
Пример 3
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
Пример 4
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Пример 5
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Дополнительные примеры сущностей MenuItem
см. в разделе Примеры фидов ресторанов и меню .
Менюитемопция
Возможность представить варианты, которые пользователь должен будет сделать при выборе блюда или комбинации. Пользователь должен выбрать опцию, в противном случае заказ считается недействительным. Например, в случае с пиццей можно выбрать маленький, средний или большой размер.
Примеры использования MenuItemOption
см. в нашем руководстве по настройке с помощью MenuItemOption
.
В следующей таблице перечислены свойства типа MenuItemOption
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «MenuItemOption». |
value | PropertyValue | Необходимый | PropertyValue содержащий пару имя/значение, представляющую параметр. |
offers | Массив Offer | Необходимый | Одно или несколько предложений предоставить этот В листинге ниже показано, какие свойства
|
menuAddOn | Array of | Необязательный | Раздел меню разрешенных элементов, которые можно добавить в качестве дополнения. Используйте это только в том случае, если надстройки предназначены для определенного пункта меню. В противном случае добавьте надстройки, используя свойство MenuItem . |
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
. Единицы измерения чувствительны к регистру. Например, «Cal» принимается, а «cal» — нет.
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «Информация о питании». |
description | Текст | Необязательный | Информация о питании в произвольном тексте. Например «Содержит консерванты». |
calories | Текст | Необязательный | Количество калорий в кал, ккал или кДж в следующем формате: number Cal_kcal_OR_kJ Например, «240 Кал». |
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 | Текст | Необязательный | Размер порции в мл, л, г или кг в пересчете на объем или массу. |
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 | Текст | Условный | Валюта (в трехбуквенном формате ISO 4217) цены или компонента цены, если она прикреплена к PriceSpecification и ее подтипам. Это свойство требуется только в следующих типах предложений:
Он не используется в следующих типах предложений:
|
availabilityStarts | DateTime или Time | Необязательный | Дата и время или просто время, с которого предложение доступно. Например, если блины подаются начиная с 7:00, то значение этого поля может выглядеть следующим образом: «2017-05-01T07:00:00-07:00». Дополнительные сведения см. в разделе Форматы DateTime и времени . |
availabilityEnds | DateTime или Time | Необязательный | Дата и время или просто время, когда предложение недоступно. Этот раз эксклюзивный. Например, если возможность блинов заканчивается в 10 утра, то последний блин можно будет подать в 9:59:59. Значение этого поля может выглядеть следующим образом: «2017-05-01T10:00:00-07:00». Дополнительные сведения см. в разделе Форматы DateTime и времени . |
availableDay | Массив DayOfWeek | Необязательный | Дни недели, в которые товар доступен. Допустимые значения:
Если у вас разная доступность для разных дней недели, используйте более одного объекта |
validFrom | DateTime | Необязательный | Дата и время (включая часовой пояс), на которые действительна указанная цена. Например, паста стоит 8 долларов во время обеда и 10 долларов за ужин. Дополнительные сведения см. в разделе Форматы DateTime и времени . Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах предложений:
|
validThrough | DateTime | Необязательный | Дата и время (включая часовой пояс), после которого указанная цена перестанет действовать. Например, паста стоит 8 долларов во время обеда и 10 долларов за ужин. Время для Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах предложений.
|
eligibleQuantity | Количественное значение | Необязательный | Количество заказа, для которого разрешен этот товар. Например, ресторан может потребовать, чтобы для доставки было заказано не менее 10 пицц. Это значение является необязательным. По умолчанию максимального лимита нет, но ресторан может его указать. Минимальные ограничения применяются только тогда, когда пользователь выбирает элемент. Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах предложений.
|
aggregateRating | Совокупный рейтинг | Необязательный | Общий рейтинг, основанный на совокупности обзоров или оценок элемента. Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах.
|
inventoryLevel | Количественное значение | Необязательный | Текущий приблизительный уровень запасов для предмета или предметов. Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах предложений:
|
priceSpecification | Массив DeliveryChargeSpecification или массив PaymentChargeSpecification | Необязательный | При использовании в Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах предложений:
|
offeredBy | Массив идентификаторов Restaurant | Необязательный | Обозначает рестораны, в которых действует данное Если не указано иное, данное Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах предложений:
|
applicableFulfillmentMethod | Массив текста | Необязательный | Представляет тип услуги, с помощью которой выполняется данное Если не указано иное, данная Это свойство можно использовать в следующих типах предложений:
Это свойство не используется в следующих типах предложений:
|
@id | URL-адрес | Устарело | Уникальный идентификатор предложения. Устарело с 25 апреля 2019 г., замените на 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", } ] }
Часы работыСпецификация
Определяет, когда заказы услуг доступны. Как правило, значение 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 часов утра и 16:00 соответственно, то последний заказ - 15:59:59.
В следующей таблице описываются свойства типа OpeningHoursSpecification
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «Открывающая чашка». |
@id | URL-адрес | Необязательный | Идентификатор для OpeningHoursSpecification . |
dayOfWeek | Множество DayOfWeek | Необязательный | День недели, для которого эти часы работы действительны. Приемлемые ценности - «понедельник», «вторник», «среда», «четверг», «пятница», «суббота» и «воскресенье». Например: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Если вы не указываете никаких дней недели, то |
opens | Time | Необязательный | При использовании в спецификации При использовании в спецификации Время должно быть указано в местное время для обслуживания. Не включайте часовой пояс в Для получения дополнительной информации см. DateTime и форматы времени . |
closes | Time | Необязательный | При использовании в спецификации Время должно быть указано в местное время для обслуживания. Не включайте часовой пояс в Для получения дополнительной информации см. DateTime и форматы времени . |
validFrom | DateTime | Необязательный | При использовании в спецификации Например, если применяемые часы применимы ко всему 2017 году, вы установили настройку При использовании в спецификации Если это свойство не указано в вашем канале, Google предполагает, что ресторан или услуга доступны ежедневно. В дополнение к дате требуются части времени и часового пояса значения. Для часового пояса используйте часовой пояс ресторана или обслуживания. Для получения дополнительной информации см. DateTime и форматы времени . |
validThrough | DateTime | Необязательный | При использовании в Например, если применяемые часы применимы ко всему 2017 году, вы установили настройку При использовании в спецификации Если это свойство не указано в вашем канале, Google предполагает, что ресторан или услуга доступны ежедневно. В дополнение к дате требуются части времени и часового пояса DateTime. Для часового пояса используйте часовой пояс ресторана или обслуживания. Время для Для получения дополнительной информации см. DateTime и форматы времени . |
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 | Текст | Необходимый | Это всегда "упаковочные засыпания". |
packagingRecyclingProcessType | Текст | Необязательный | Тип процесса переработки упаковки на GS1: PackagingRecylingProcessTypecode . Например, 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
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «платежная картинка». |
@id | URL-адрес | Необязательный | Идентификатор для PaymentChargeSpecification . |
price | Число | Необходимый | Общая сумма платы. Например, «6.00», без символа валюты. |
priceCurrency | Текст | Необходимый | 3-буквенный ISO 4217 валютный код цены. Например, «доллар США». |
eligibleTransactionVolume | PriceSpecification | Необязательный | Объем транзакций в денежно -кредитной единице, для которой эта спецификация платежа действительна, как для указания минимального объема закупок. |
eligibleQuantity | QuantitativeValue | Необязательный | Количество заказов, для которых действительна плата за оплату. Например, вы можете использовать это свойство, чтобы потребовать минимальное количество элементов в заказе. |
validFrom | DateTime | Необязательный | Дата и время (включая часовой пояс), когда указанная плата оплата становится действительной. Например, «2017-05-01T07: 00: 00-07: 00». Для получения дополнительной информации см. DateTime и форматы времени . |
validThrough | DateTime | Необязательный | Дата и время (включая часовой пояс), когда указанная плата за оплату не является действительной. Например, "2017-05-01T07: 30: 00-07: 00". Время для validThrough является эксклюзивным: например, если это время установлено в 6 часов вечера, время до 5:59:59. Для получения дополнительной информации см. DateTime и форматы времени . |
В следующем примере показан элемент платежной картины:
Пример
"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"]
, объект может быть расширен с помощью Unitpricespeciation ( "@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
. Определение PRICESECECITICATION опущено.
- Пример 1: Плата за обслуживание составляет 5% от CART Subtotal
- Пример 2: плата за обслуживание составляет 5 долларов США
- Пример 3: Плата за сумки составляет 0,1 долл. США, а плата за обслуживание составляет 5% от CART Subtotal
- Пример 4: Плата за сумки составляет 0,1 долл. США, а плата за обслуживание составляет 1 доллар США
- Пример 5: Плата за обслуживание составляет 5%, а требуемый совет составляет 10% от 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" } ]
Место
В следующей таблице описываются свойства типа Place
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда "место". |
address | PostalAddress | Необходимый | Адрес места. |
В следующем примере показан элемент места:
Пример
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
Pestaladdress
В следующей таблице описываются свойства типа PostalAddress
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда "почталдресс". |
addressLocality | Текст | Необходимый* | Местность или город. Например, «Сан -Франциско». |
addressRegion | Текст | Необходимый* | Регион или штат. Например, "CA". |
postalCode | Текст | Необходимый* | Почтовый код. Например, "94102". |
streetAddress | Текст | Необязательный | Уличный адрес. Например, «1600 амфитеатр pkwy». |
addressCountry | Текст | Необходимый | Двухбуктный ISO 3166-1 Альфа-2 код страны. Например, «нас». |
Поставщики доставки могут перечислить эти свойства для обозначения Service.areaServed
.
При использовании в Restaurant.address
. 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 | Текст | Необходимый | 3-буквенный ISO 4217 валютный код цены. Например, «доллар США». |
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
В следующей таблице описываются свойства типа QuantitativeValue
:
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда «QuantitativeValue». |
value | Число | Необязательный | Значение количественного значения или узла значения свойства. |
unitCode | Текст или URL | Необязательный | Единица измерения как общий код ООН/CEFACT или URL. Коды, отличные от общего кода ООН/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) требуется "Сервизин" : [ "Индийский мексиканский слияние" ] },
Пример 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: цену . Определение. Например, залог в размере 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 , OfferCatalog] | Необходимый | Определяет меню для этой услуги. У вас может быть другое меню для каждой из ваших услуг (например, на вынос, доставка и питание). Вы должны указать как "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-адрес | Необязательный | Содержит 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" } } ] } },
Для получения дополнительных примеров сервисных объектов см. Примеры подачи обслуживания .
ServiceDeliveryHoursSpeciation
Представляет часы выполнения для пользователей, чтобы назначить заказы как можно скорее на доставку и вынос.
Как правило, значение opens
меньше значения closes
. Следующие рекомендации применяются к использованию opens
и closes
свойств:
-
opens
иcloses
свойства являются необязательными для обслуживанияServiceDeliveryHoursSpecification
, но мы настоятельно рекомендуем вам включить их. - Время должно быть указано в местное время для обслуживания. Не включайте часовой пояс в
opens
илиcloses
стоимости. Если указан часовой пояс, Google игнорирует информацию о часовом поясе. - Если
opens
иcloses
явно не указаны, мы предполагаем, что как можно скорее упорядочение всегда доступно каждый день. - Если
opens
иcloses
одинаковы, то мы предполагаем, что как можно скорее упорядочение недоступно. - Если
opens
больше, чемcloses
, час закрытия интерпретируется как на следующий день. Например, если час открытия установлен до 1 января в 5 часов вечера, а час закрытия - 2 часа ночи, то ресторан интерпретируется как закрытие 2 января в 2 часа ночи.
В следующей таблице описываются свойства типа ServiceDeliveryHoursSpecification
.
Свойство | Тип | Необходимость | Описание |
---|---|---|---|
@type | Текст | Необходимый | Это всегда "обслуживаемое разрешение на освификацию". |
validFrom | DateTime | Необязательный | Дата и время (включая часовой пояс), когда заказы пользователей ASAP могут быть выполнены. Например, «2017-05-01T07: 00: 00-07: 00». Если это свойство не установлено, то считается, что оно является действительным с каждым днем. Для получения дополнительной информации см. DateTime и форматы времени . |
validThrough | DateTime | Необязательный | Дата и время (включая часовой пояс), после чего заказы пользователей ASAP не могут быть выполнены. Например, «2017-05-01T07: 00: 00-07: 00». Если это свойство не установлено, то считается, что оно является действительным с каждым днем. Время для Для получения дополнительной информации см. DateTime и форматы времени . |
opens | Time | Необязательный | Время, в которое начинается служба доставки для выполнения заказов ASAP пользователей. Например, "T10: 30: 00". Время должно быть указано в местное время для обслуживания. Не включайте часовой пояс в Для получения дополнительной информации см. DateTime и форматы времени . |
closes | Time | Необязательный | Время, когда служба доставки для заказов ASAP пользователям больше не доступно. Например, "T23: 59: 59". Время для Время должно быть указано в местное время для обслуживания. Не включайте часовой пояс в Для получения дополнительной информации см. DateTime и форматы времени . |
dayOfWeek | Множество DayOfWeek | Необязательный | Дни недели, когда эта служба доступна для заказов пользователей. Ниже приведены допустимые значения:
Если вы не указываете никаких дней недели, то |
deliveryLeadTime | QuantitativeValue | Необязательный | Расчетное время доставки, в минуты, после того, как заказ был размещен. Мы настоятельно рекомендуем вам установить это свойство. Установите поле value QuantitativeValue на количество минут, а 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" } }
Перечисление
Ограниченная
Тип 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