Lebensmittelkatalogfeeds basieren auf schema.org-Entitäten vom Typ DataFeed
. Ein Lebensmittelkatalogfeed enthält Details zum Restaurant wie Adresse, Menü und Standort sowie Details zu den Dienstleistungen des Restaurants wie Liefergebühren, Liefergebiete und andere unten aufgeführte Elemente.
Ein DataFeed
enthält eine Sammlung von Elementen, die jeweils ein einzelnes Element darstellen, das im schema.org-Vokabular ausgedrückt wird. Mit dem Typ DataFeed
können Sie alle Ihre strukturierten Daten im JSON-LD-Format veröffentlichen.
Informationen zur Verwendung dieser Spezifikation zum Erstellen von Feeds finden Sie unter Inventarintegration – Übersicht.
DATETIME- und Uhrzeitformate
DateTime
basiert auf dem schema.org-Typ und muss, sofern nicht anders angegeben, dem ISO 8601-Format entsprechen und das Datum, die Uhrzeit und die Zeitzone enthalten. Verwenden Sie für DateTime
die folgende Syntax:
// DateTime format:YYYY-MM-DD THH:MM:SS [∓HH:MM |Z]
Beispiel:
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
ist die Ortszeit für die Zeitzone eines bestimmten Restaurants oder Dienstleistungsorts. Sie basiert ebenfalls auf dem schema.org-Typ und muss dem ISO 8601-Format entsprechen. Für die Zeit wird die folgende Syntax verwendet:
// Time format: THH:MM:SS
Beispiel:
T08:08:00 // 8:08 AM
Beachten Sie Folgendes, wenn Sie DateTime
oder Time
angeben:
- Das Präfix „T“ vor der Uhrzeit ist Teil des Formats und erforderlich.
- Die Zeitzone muss für
DATETIME
angegeben werden. FürTIME
ist sie nicht erforderlich. - Die Uhrzeit muss in der Ortszeit des Restaurants oder des Dienstes angegeben werden.
Umschlag
Der Startcode eines Lebensmittelkatalogfeeds muss einen Abschnitt „envelope“ enthalten.
Der „Envelope“ ist die oberste Strukturebene jedes Feeds und muss ein DataFeed
mit den folgenden Properties sein:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@context |
URL | Erforderlich | Der verwendete Kontext, in der Regel „http://schema.googleapis.com“. |
@type |
Text | Erforderlich | Dies ist immer „DataFeed“. |
dateModified |
DateTime |
Erforderlich |
Die letzte Änderung des Datum und Uhrzeit im ISO_OFFSET_DATE_TIME-Format, an dem die Artikel in diesem Feed geändert wurden. Wenn dieses Feld nicht vorhanden ist, wird davon ausgegangen, dass die Aktualisierungszeit die Uhrzeit ist, zu der die Push-Nachricht auf den Google-Servern empfangen (oder gecrawlt) wird. Wir empfehlen Ihnen dringend, dies zu implementieren, wenn Sie sowohl Push- als auch Crawling-Daten verwenden. Dieser Zeitstempel sollte mit einer Zeitzone und einer Auflösung in Millisekunden angegeben werden, z. B. „2016-12-28T06:30:00:123-07:00“. In Ihren Batchfeeds wird die Entitätsversionierung über das Feld |
dataFeedElement |
Array von Menu oder
Restaurant
oder Service |
Erforderlich | Mindestens ein Element, das Teil dieses Feeds ist. Weitere Informationen finden Sie unten. |
Das folgende Beispiel zeigt den Umschlag:
{ "@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
Wenn Sie diesen Typ verwenden möchten, fügen Sie den gs1-Kontext hinzu:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Fügen Sie dann dem Typ des entsprechenden MenuItem
oder MenuItemOption
FoodBeverageTobaccoProduct
hinzu.
In der folgenden Tabelle werden die Eigenschaften des Typs AdditiveDetails
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AdditiveDetails“. |
additiveName |
Text | Optional | Name des Zusatzes. |
additiveLevelOfContainment |
Text | Optional | Begrenzungscode gemäß gs1:LevelOfContainmentCode.
Beispiel: http://gs1.org/voc/LevelOfContainmentCode-CONTAINS , http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM oder http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN . |
Das folgende Beispiel zeigt die Verwendung des Typs AdditiveDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/8", "name": "Energy Drink", "description": "A 0.25l can of energy drink.", "offers": { "@type": "Offer", "sku": "offer-energy-drink", "price": "3.49", "priceCurrency": "USD" }, "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AdditiveDetails", "additiveName": "phosphate", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
AddOnMenuItem
Ein Lebensmittel- oder Getränkeartikel, der in einem Add-on-Menüpunkt einer MenuItem
aufgeführt ist.
In der folgenden Tabelle sind die Properties für den Typ AddOnMenuItem
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AddOnMenuItem“. |
@id |
URL | Erforderlich | Eine eindeutige Kennung für den Add-on-Menüpunkt. |
name |
Text | Erforderlich | Text, der das AddOnMenuItem identifiziert, wenn ein Nutzer das Menü durchsucht. |
description |
Text | Optional | Beschreibung des Add-on-Menüpunkts. |
image |
URL | Optional |
Bild des Add-on-Menüpunkts, das den folgenden Richtlinien entspricht:
|
offers |
Array von Offer |
Erforderlich* |
Ein oder mehrere Angebote für dieses AddOnMenuItem. Hier wird beschrieben, wann und zu welchem Preis dieses AddOnMenuItem verfügbar ist.
Es sollte jeweils nur ein Angebot gültig sein. Sie können viele gültige Angebote haben, wenn sich der Preis oder die Verfügbarkeit je nach Tageszeit ändern kann. Wenn sich das Add-on oder der Artikel durch ein Basisattribut oder eine Variante des Add-on-Artikels selbst unterscheidet (z. B. kleine, mittlere und große Pommes als Add-on), verwenden Sie das Der Standardwert für Die folgenden
|
hasMenuItemOptions |
Array von MenuItemOption |
Erforderlich* |
Array von Basisattributen, die eine Variante des Zubehörartikels selbst beschreiben (z. B. kleine, mittlere und große Pommes als Zubehör), für diesen Menüpunkt. Mit den Optionen können Sie verschiedene Varianten für diesen Menüpunkt angeben. Das kann in zwei Fällen passieren:
|
suitableForDiet |
Array von RestrictedDiet |
Optional | Das Gericht entspricht der beschriebenen Ernährungseinschränkung (z. B. „GlutenFreeDiet“ oder „VeganDiet“). Dies ist eine Aufzählung der möglichen Werte. |
nutrition |
NutritionInformation |
Optional | Die Nährwertinformationen für das Gericht, insbesondere die Kalorien. |
menuAddOn |
Array von AddOnMenuSection |
Optional | Das AddOnMenuItem kann einen Menüabschnitt mit zulässigen Elementen enthalten, die als Add-on hinzugefügt werden können. |
Im folgenden Beispiel wird AddOnMenuItem
verwendet:
{ "@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" } } ] }
{ "@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
Eine Untergruppe von Speisen oder Getränken als zusätzlicher Menübereich für den Menüpunkt.
In der folgenden Tabelle sind die Properties für den Typ AddOnMenuSection
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AddOnMenuSection“. |
@id |
URL | Erforderlich | Die eindeutige Kennung des Menübereichs. |
name |
Text | Erforderlich | Text, mit dem der AddOnMenuSection identifiziert werden kann, wenn ein Nutzer das Menü durchsucht. |
description |
Text | Optional | Beschreibung des Menübereichs. |
eligibleQuantity |
QuantitativeValue |
Optional | Gibt die Anzahl der Artikel an, die für diesen Menübereich als Add-on zulässig sind. Mit diesem Feld können Sie die Anzahl der Add-ons begrenzen, z. B. die Mindest- und Höchstzahl der Beläge, die auf einer Pizza ausgewählt werden können. |
image |
URL | Optional | Bild des Menübereichs |
hasMenuItem |
Array von AddOnMenuItem |
Erforderlich* | Add-on-Menüpunkte in einem AddOnMenuSection. |
offers |
Array von Offer |
Optional |
Mit In der folgenden Liste sehen Sie, welche
|
hasMenuSection |
Array von AddOnMenuSection |
Erforderlich* | Logische Untergruppe des Add-on-Menüs (z. B. „Abendessen“, „Vorspeisen“ oder „Fischgerichte“). |
defaultOption |
Array von AddOnMenuItem |
Optional |
Add-on-Menüpunkte, die standardmäßig für Nutzer in der Im Die Anzahl der |
numberOfFreeAddOns |
Zahl | Optional | Gibt an, wie viele Add-ons ein Nutzer kostenlos auswählen kann. |
Die folgenden Beispiele enthalten AddOnMenuSection
-Objekte:
{ "@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" } } ] }
"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 } }
Der Menüpunkt „Käsesandwich“ hat die Option „Käse auswählen“AddOnMenuSection
, wobei „Emmentaler“ und „Mozzarella“ standardmäßig ausgewählt sind.
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "defaultOption": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a" }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b" } ], "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozzarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
AdvanceServiceDeliveryHoursSpecification
Stellt die Öffnungszeiten für die Auftragsausführung dar, zu denen Nutzer vorbestellte Lieferungen und Abholbestellungen planen können.
Normalerweise ist der Wert von opens
kleiner als der Wert von closes
. Für die Verwendung der Properties opens
und closes
gelten die folgenden Richtlinien:
- Die Properties
opens
undcloses
sind fürAdvanceServiceDeliveryHoursSpecification
optional, werden aber dringend empfohlen. - Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem
opens
- odercloses
-Wert keine Zeitzone hinzu. Angegebene Zeitzonen werden ignoriert. - Wenn
opens
undcloses
nicht explizit angegeben sind, gehen wir davon aus, dass die Vorbestellung an allen Tagen und zu allen Zeiten verfügbar ist. - Wenn
opens
undcloses
identisch sind, gehen wir davon aus, dass eine Vorbestellung nicht möglich ist. - Wenn
opens
größer alscloses
ist, wird die Schließungszeit für den nächsten Tag interpretiert. Wenn die Öffnungszeit beispielsweise auf den 1. Januar um 17:00 Uhr und die Schließungszeit auf 2:00 Uhr festgelegt ist, wird das Restaurant als am 2. Januar um 2:00 Uhr geschlossen interpretiert. opens
undcloses
beziehen sich auf den zukünftigen Zeitblock.closes
ist ausschließend. Wennopens
beispielsweise 10:00 Uhr undcloses
16:00 Uhr ist undserviceTimeInterval
15 Minuten beträgt, beginnt der erste Zeitblock um 10:00 Uhr und der letzte um 15:45 Uhr.
In der folgenden Tabelle werden die Eigenschaften des Typs AdvanceServiceDeliveryHoursSpecification
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AdvanceServiceDeliveryHoursSpecification“. |
validFrom |
DateTime |
Bedingt |
Das Datum, ab dem Vorbestellungen von Nutzern ausgeführt werden können. Beispiel: „2017-05-01T00:00:00-07:00“. Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist.
Die Properties Wenn dieser Typ auf Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
validThrough |
DateTime |
Optional |
Das Enddatum, nach dem Vorbestellungen von Nutzern nicht mehr ausgeführt werden können. Beispiel: „2018-12-01T00:00:00-07:00“. Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist.
Die Properties Wenn dieser Typ auf der Ebene Die Zeit für Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
opens |
Time |
Optional |
Gilt für Liefer- oder Abholzeitfenster. Die Uhrzeit, ab der die Vorbestellungen der Nutzer ausgeführt werden können. 6:30 Uhr wird beispielsweise als „T06:30:00“ angegeben. Die Zeit muss in der lokalen Zeit angegeben werden. Fügen Sie einem Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
closes |
Time |
Optional |
Gilt für Liefer- oder Abholzeitfenster. Die Uhrzeit, nach der Vorbestellungen von Nutzern nicht mehr ausgeführt werden können. 21:00 Uhr wird beispielsweise als „T21:00:00“ angegeben.
Die Uhrzeit muss in der lokalen Zeit angegeben werden. Fügen Sie einem Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
dayOfWeek |
Array von DayOfWeek |
Optional |
Wochentage, an denen die Lieferzeiten im Voraus festgelegt werden können. Gültige Werte sind:
Wenn Sie keine Wochentage angeben, gilt |
serviceTimeInterval |
Duration |
Erforderlich |
Intervall zwischen zwei aufeinanderfolgenden Wartungszeiten. Beispiel: Wenn
|
advanceBookingRequirement |
QuantitativeValue |
Erforderlich |
Anzahl der Minuten nach der Bestellzeit, zu der die Vorbestellung ausgeführt werden kann. Die Werte Wenn für die Bearbeitung einer Vorbestellung beispielsweise mindestens 60 Minuten erforderlich sind und die Bearbeitung nicht später als 2 Tage nach der Bestellung erfolgen darf, ist der Wert für |
Im folgenden Beispiel wird die Verwendung des Typs AdvanceServiceDeliveryHoursSpecification
gezeigt:
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Wenn Sie diesen Typ verwenden möchten, fügen Sie den gs1-Kontext hinzu:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Fügen Sie dann dem Typ des entsprechenden MenuItem
oder MenuItemOption
FoodBeverageTobaccoProduct
hinzu.
In der folgenden Tabelle werden die Eigenschaften des Typs AllergenDetails
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AllergenDetails“. |
allergenType |
Text | Optional | Allergentyp gemäß gs1:AllergenTypeCode
. z. B. http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Text | Optional | Begrenzungscode gemäß gs1:LevelOfContainmentCode.
Beispiel: http://gs1.org/voc/LevelOfContainmentCode-CONTAINS , http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM oder http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .
|
Das folgende Beispiel zeigt die Verwendung des Typs 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
In der folgenden Tabelle werden die Eigenschaften des Typs DeliveryChargeSpecification
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „DeliveryChargeSpecification“. |
@id |
URL | Optional | Kennung für die Lieferkostenspezifikation. |
price |
Zahl | Erforderlich | Liefergesamtkosten in rein numerischer Form. Mit der Property priceCurrency können Sie den Währungstyp anstelle von Währungssymbolen angeben. Beispiel: „6,00“ ohne Währungssymbol. |
priceCurrency |
Text | Erforderlich | Der dreistellige ISO 4217-Währungscode. Beispiel: „USD“. |
eligibleTransactionVolume |
PriceSpecification |
Optional | Das Transaktionsvolumen in einer Währungseinheit, für das diese Angabe zu Übermittlungsgebühren gilt. Sie können beispielsweise ein Mindestbestellvolumen angeben oder mitteilen, dass der Versand ab einem bestimmten Bestellvolumen kostenlos ist. |
eligibleQuantity |
QuantitativeValue |
Optional | Intervall und Maßeinheit der Bestellmengen, für die die Versandkostenpauschale gilt. So können Sie beispielsweise angeben, dass eine bestimmte Frachtpauschale nur für eine bestimmte Stückzahl gilt. |
eligibleRegion |
Array von GeoShape oder Place oder GeoCircle |
Optional | Der Ort oder die GeoShape/der GeoCircle für die geografisch-politischen Regionen, für die die Angebots- oder Versandkostenbeschreibung gültig ist. Verwenden Sie diese Property nur, wenn die Versandkosten je nach Region variieren. |
validFrom |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), ab wann die angegebenen Versandkosten gültig sind. Beispiel: „2017-05-01T06:30:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
validThrough |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), nach dem die angegebene Versandkostenpauschale nicht mehr gültig ist. Beispiel: „2017-05-01T06:30:00-07:00“.
Die Uhrzeit für validThrough ist exklusiv: Wenn diese Uhrzeit beispielsweise auf 18:00 Uhr festgelegt ist, ist sie bis 17:59:59 Uhr gültig.
Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
Die folgenden Beispiele zeigen DeliveryChargeSpecification
-Elemente:
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
"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 } } ]
"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" } } ]
Zusätzlich zu "@type": ["DeliveryChargeSpecification"]
kann das Objekt mit UnitPriceSpecification erweitert werden:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Die Erweiterung bietet zwei weitere Properties, die für die in Prozent berechneten Versandkosten erforderlich sind.
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Erforderlich | Referenzmenge, für die ein bestimmter Preis gilt. Beispiel: Mit referenceQuantity mit dem Wert 10 und unitCode mit „P1“ ergibt sich ein Wert von 10% des Bestellwerts. Derzeit wird nur unitCode „P1“ unterstützt. |
basePrice |
Zahl | Optional | Die Grundgebühr zusätzlich zu den referenceQuantity . Beispiel: Bei referenceQuantity = 10, unitCode = „P1“ und basePrice = 5 € ergibt sich ein Wert von 5 € + 10% des Bestellwerts. Der Standardwert ist 0. |
Beispiele für Liefergebühren
Google ermöglicht es Ihnen, Nutzern mithilfe von Offer.PriceSpecification
der Dienstentität vorab eine Vielzahl von Gebühren anzugeben.
Beachten Sie, dass die End-to-End-Bestellung derzeit nur eine DeliveryChargeSpecification
unterstützt. Fassen Sie alle Arten von Gebühren in einer einzigen DeliveryChargeSpecification
zusammen.
Beispiele für Servicefeeds: Hier erfahren Sie, wie Sie Liefergebühren basierend auf Region, Entfernung und Bestellwert angeben.
Wenn keine Gebühr anfällt, wird Offer.PriceSpecification
weggelassen.
- Beispiel 1: Versandkosten betragen 5% des Zwischensumme des Einkaufswagens
- Beispiel 2: Liefergebühr beträgt 5 €
- Beispiel 3: Die Versandkosten betragen 5 € + 10% des Zwischensumme des Einkaufswagens
- Beispiel 4: Die Liefergebühr beträgt 5 € und die Tragetaschengebühr 0,1 €.
- Beispiel 5: Die Liefergebühr beträgt 5% und die Bearbeitungsgebühr 2% des Zwischensumme des Einkaufswagens
- Beispiel 6: Die Liefergebühr beträgt 5 € und 1 € pro zusätzlichem Kilometer
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
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% } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
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
In der folgenden Tabelle werden die Eigenschaften des Typs GeoCircle
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „GeoCircle“. |
geoMidpoint |
GeoCoordinates |
Erforderlich | Gibt den GeoCoordinates in der Mitte eines GeoCircle an. |
geoRadius |
Zahl | Erforderlich | Der ungefähre Radius (in Metern) eines GeoCircle . |
Das folgende Beispiel zeigt ein GeoCircle
-Element:
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
In der folgenden Tabelle werden die Eigenschaften des Typs GeoCoordinates
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „GeoCoordinates“. |
latitude |
Zahl | Erforderlich |
Breitengrad in Grad Die Werte sind auf den Bereich von -90 bis 90 beschränkt. Wenn der angegebene Wert kleiner als -90 ist, wird er auf -90 gesetzt. Ist er größer als 90, wird er auf 90 gesetzt. Er muss mit einer Genauigkeit von mindestens fünf Nachkommastellen angegeben werden. |
longitude |
Zahl | Erforderlich |
Längengrad in Grad Werte außerhalb des Bereichs von -180 bis 180 werden so umgerechnet, dass sie in diesen Längengrad-Bereich fallen. Ein Wert von -190 wird beispielsweise in 170 umgewandelt. Ein Wert von 190 wird in -170 umgewandelt. Dies spiegelt die Tatsache wider, dass die Längengrade den Globus umrunden. Er muss mit einer Genauigkeit von mindestens fünf Nachkommastellen angegeben werden. |
Das folgende Beispiel zeigt ein GeoCoordinates
-Element:
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
In der folgenden Tabelle werden die Eigenschaften des Typs GeoShape
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „GeoShape“. |
polygon |
Text-Array | Erforderlich |
Ein Polygon oder Mehrfachpolygon, das durch eine Reihe von drei oder mehr räumlich voneinander getrennten Punkten ausgedrückt wird. Es wird empfohlen, dass der erste und der letzte Punkt identisch sind, dies ist aber nicht erforderlich. Jeder Punkt in einem Polygon oder Multipolygon wird durch einen Breitengradpunkt gefolgt von einem Längengradpunkt definiert. Außerdem müssen Sie die Punkte entgegen dem Uhrzeigersinn angeben. In den meisten Fällen handelt es sich um ein einzelnes Polygon. Weitere Informationen zu komplexeren Anwendungsfällen finden Sie in der Dokumentation zum Lieferservicebereich. |
Die folgenden Beispiele zeigen GeoShape
-Elemente:

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

{ "@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" } ], ... },
Menü
In der folgenden Tabelle sind die Properties für den Typ Menu
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „Menü“. |
@id |
URL | Erforderlich | Eindeutige Kennung für das Menü. |
name |
Text | Optional | Text, der die Menu identifizieren kann, wenn ein Nutzer das Menü durchsucht. |
description |
Text | Optional | Beschreibung des Menüs. |
disclaimer |
MenuDisclaimer |
Optional | Haftungsausschluss für das Menü. Dazu gehören beispielsweise die Offenlegung von Nährwertinformationen und Allergenen. |
hasMenuSection |
Einzelnes Objekt oder Array von MenuSection |
Optional | Logische Untergruppen der Speisekarte (z. B. Abendessen, Vorspeisen oder Fischgerichte). |
hasMenuItem |
Einzelnes Objekt oder Array von MenuItem |
Optional | MenuItem -Objekte, die in einem Menu enthalten sind, in der Regel, wenn das Menu nicht nach MenuSections unterteilt ist. |
inLanguage |
Text | Optional | Die Sprache der Menüinhalte als Sprachcode aus dem IETF BCP 47-Standard. Zum Beispiel: "en-US". |
In den folgenden Beispielen wird die Verwendung des Typs Menu
gezeigt:
{ "@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" }
In diesem Beispiel wird hasMenuItem
als Array dargestellt.
{ "@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" } } ] }
In diesem Beispiel wird hasMenuSection
als Array dargestellt.
{ "@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" } } } ] }
Weitere Beispiele für Menu
-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.
MenuDisclaimer
In der folgenden Tabelle sind die Properties für den Typ MenuDisclaimer
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „MenuDisclaimer“. |
@id |
URL | Erforderlich | Eindeutige Kennung für den Haftungsausschluss im Menü. |
text |
Text | Erforderlich | Text des Haftungsausschlusses Beispiel: „Der durchschnittliche Tagesenergiebedarf eines Erwachsenen beträgt 8.700 kJ.“ |
url |
URL | Optional | URL zu einer Seite mit weiteren Informationen zum Haftungsausschluss. |
Das folgende Beispiel zeigt die Verwendung des Typs 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" } }
Menübefehl
Menüpunkt, der den Artikel im Menü darstellt. In der folgenden Tabelle sind die Eigenschaften für den Typ MenuItem
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „MenuItem“. |
@id |
URL | Erforderlich | Eindeutige Kennung des Menüpunkts. |
name |
Text | Erforderlich | Text, der die MenuItem identifizieren kann, wenn ein Nutzer das Menü durchsucht. |
description |
Text | Optional | Beschreibung des Menüpunkts. |
image |
URL | Optional |
Bild des Menüpunkts. Beachten Sie die folgenden Richtlinien für Bilder:
|
menuAddOn |
Array von AddOnMenuSection |
Optional | Elemente in einem Menübereich, die dem Menüpunkt als Add-ons hinzugefügt werden können. |
offers |
Array von Offer |
Erforderlich* |
Ein oder mehrere Angebote zur Bereitstellung dieser In der folgenden Liste sehen Sie, welche
|
hasMenuItemOptions |
Array von MenuItemOption |
Erforderlich | Liste der Basisoptionen/Varianten für diesen Menüpunkt. Mit Optionen sollten verschiedene Basisvarianten für den Artikel angegeben werden, z. B. klein, mittel und groß. |
suitableForDiet |
Array von RestrictedDiet |
Optional | Das Gericht entspricht der beschriebenen Ernährungseinschränkung (z. B. „http://schema.org/GlutenFreeDiet“ oder „http://schema.org/VeganDiet“). Dies ist eine Aufzählung der möglichen Werte. |
nutrition |
NutritionInformation |
Optional | Nährwertinformationen für das Gericht, insbesondere Kalorien. |
hasAllergen |
AllergenDetails |
Optional | Allergene des Gerichts pro gs1:AllergenDetails .
Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Fügen Sie dem Typ der MenuItem FoodBeverageTobaccoProduct hinzu. |
additive |
Array von AdditiveDetails |
Optional | Die Zusatzstoffe des Gerichts pro gs1:AdditiveDetails .
Dies ist eine Aufzählung der möglichen Werte. Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Fügen Sie dem Typ der MenuItem FoodBeverageTobaccoProduct hinzu. |
packaging |
PackagingDetails |
Optional | Die Verpackungs- und Recyclinginformationen dieses Artikels gemäß gs1:PackagingDetails .
Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Fügen Sie dem Typ der MenuItem FoodBeverageTobaccoProduct hinzu.
|
Die folgenden Beispiele zeigen MenuItem
-Elemente:
"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" }
"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": "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 -- ] } ] } ] }
{ "@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" } } ] }
{ "@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" } } } }
Weitere Beispiele für MenuItem
-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.
MenuItemOption
Eine Option, um Optionen darzustellen, die ein Nutzer bei der Auswahl eines Gerichts oder einer Kombination treffen muss. Der Nutzer muss eine Option auswählen, andernfalls wird die Bestellung als ungültig betrachtet. Beispielsweise können Sie bei einer Pizza zwischen „Klein“, „Mittel“ und „Groß“ wählen.
Beispielanwendungsfälle für MenuItemOption
finden Sie in unserem Leitfaden zur Anpassung mit MenuItemOption
.
In der folgenden Tabelle sind die Properties für den Typ MenuItemOption
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „MenuItemOption“. |
value |
PropertyValue |
Erforderlich | PropertyValue mit einem Name/Wert-Paar, das die Option darstellt. |
offers |
Array von Offer |
Erforderlich |
Mindestens ein Angebot zur Bereitstellung dieser
In der folgenden Liste sehen Sie, welche
|
menuAddOn |
Array of |
Optional | Menübereich mit zulässigen Elementen, die als Add-on hinzugefügt werden können. Verwenden Sie diese Option nur, wenn Add-ons für eine bestimmte Menüpunktoption spezifisch sind. Andernfalls können Sie Add-ons über die Property MenuItem .menuAddOn angeben.
|
suitableForDiet |
Array von RestrictedDiet |
Optional | Aufzählungsliste, in der die Ernährungsformen angegeben sind, für die dieses Gericht den beschriebenen Ernährungseinschränkungen entspricht (z. B. „http://schema.org/GlutenFreeDiet“ oder „http://schema.org/VeganDiet“). |
nutrition |
NutritionInformation |
Optional | Nährwertinformationen für das Gericht, insbesondere Kalorien. |
hasAllergen |
AllergenDetails |
Optional | Allergene des Gerichts pro gs1:AllergenDetails .
Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Fügen Sie dem Typ der MenuItemOption FoodBeverageTobaccoProduct hinzu.
|
additive |
Array von AdditiveDetails |
Optional | Zusatzstoffe des Gerichts pro gs1:AdditiveDetails .
Dies ist eine Aufzählung der möglichen Werte. Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Fügen Sie dem Typ der MenuItemOption FoodBeverageTobaccoProduct hinzu.
|
packaging |
PackagingDetails |
Optional | Verpackungs- und Recyclinginformationen dieses Artikels gemäß gs1:PackagingDetails
Fügen Sie den gs1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Fügen Sie dem Typ der MenuItemOption FoodBeverageTobaccoProduct hinzu.
|
Das folgende Beispiel zeigt MenuItemOption
-Elemente:
{ "@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" } } ] }
{ "@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
Menübereich, der einen bestimmten Bereich im Menü darstellt. In der folgenden Tabelle sind die Properties für den Typ MenuSection
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „MenuSection“. |
@id |
URL | Erforderlich | Die eindeutige Kennung des Menübereichs. |
name |
Text | Erforderlich | Text, der die MenuSection identifizieren kann, wenn ein Nutzer das Menü durchsucht. |
description |
Text | Optional | Beschreibung des Menübereichs. |
hasMenuSection |
Array von MenuSection |
Optional | Logische Untergruppe der MenuSection . Der Abschnitt „Abendessen“ kann beispielsweise mehrere untergeordnete Menübereiche wie „Geflügelgerichte“ oder „Vegetarisch“ haben. |
hasMenuItem |
Array von MenuItem |
Optional | Menüpunkte in einem MenuSection |
offers |
Array von Offer |
Optional |
Verwenden Sie In der folgenden Liste sind die
|
image |
URL | Optional | Bild des Menübereichs |
Die folgenden Beispiele zeigen MenuSection
-Entitäten:
{ "@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" } }
"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" } } ] } ]
Weitere Beispiele für MenuSection
-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.
NutritionInformation
In der folgenden Tabelle werden die Eigenschaften des Typs NutritionInformation
beschrieben. Bei Maßeinheiten wird zwischen Groß- und Kleinschreibung unterschieden. „Cal“ ist beispielsweise zulässig, „cal“ jedoch nicht.
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „NutritionInformation“. |
description |
Text | Optional | Nährwertangaben im Freitext Beispiel: „Enthält Konservierungsstoffe“. |
calories |
Text | Optional |
Die Anzahl der Kalorien in Kalorien, Kilokalorien oder Kilojoule im folgenden Format:
Beispiel: „240 kcal“. |
carbohydrateContent |
Text | Optional |
Die Menge an Kohlenhydraten, in der Regel in g, im folgenden Format:
Beispiel: „7 g“. |
cholesterolContent |
Text | Optional |
Die Cholesterinmenge, in der Regel in mg, im folgenden Format:
Beispiel: „12 mg“. |
fatContent |
Text | Optional |
Die Fettmenge, in der Regel in g, im folgenden Format:
Beispiel: „42 g“. |
fiberContent |
Text | Optional |
Die Anzahl der Gramm oder Milligramm an Ballaststoffen im folgenden Format:
|
proteinContent |
Text | Optional |
Die Anzahl der Gramm oder Milligramm Protein im folgenden Format:
|
saturatedFatContent |
Text | Optional |
Die Anzahl der Gramm oder Milligramm gesättigten Fetts im folgenden Format:
|
servingSize |
Text | Optional | Die Portionsgröße in ml, l, g oder kg, bezogen auf das Volumen oder die Masse. |
sodiumContent |
Text | Optional |
Die Anzahl der mg oder g Natrium im folgenden Format:
|
sugarContent |
Text | Optional |
Die Anzahl der Gramm oder Milligramm Zucker im folgenden Format:
|
transFatContent |
Text | Optional |
Die Anzahl der Gramm oder Milligramm Transfett im folgenden Format:
|
unsaturatedFatContent |
Text | Optional |
Die Menge an ungesättigten Fetten, in der Regel in g, im folgenden Format:
|
Die folgenden Beispiele zeigen ein NutritionInformation
-Element:
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
{ "@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" } },
Angebot
Angebot für ein Gericht In der folgenden Tabelle werden die Eigenschaften des Typs Offer
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dieser Wert ist immer „Angebot“. |
sku |
Text | Bedingt |
Eindeutige Kennung des Angebots. Kann ein beliebiger Textwert sein, der innerhalb von Dieses Attribut wird nur für die folgenden Angebotstypen verwendet:
|
price |
Text | Bedingt |
Preis des angebotenen Artikels. Beispiel: „6,00“ ohne Währungssymbol. Dieses Attribut ist nur für die folgenden Angebotstypen erforderlich:
Sie wird nicht für die folgenden Angebotstypen verwendet:
|
priceCurrency |
Text | Bedingt |
Die Währung (im dreistelligen ISO 4217-Format) des Preises oder einer Preiskomponente, wenn sie mit „PriceSpecification“ und den zugehörigen Untertypen verknüpft ist. Dieses Attribut ist nur für die folgenden Angebotstypen erforderlich:
Sie wird nicht für die folgenden Angebotstypen verwendet:
|
availabilityStarts |
DateTime oder Time |
Optional | Das Datum und die Uhrzeit oder nur die Uhrzeit, ab der das Angebot verfügbar ist. Wenn Pfannkuchen beispielsweise ab 7:00 Uhr serviert werden, kann der Wert dieses Felds so aussehen: „2017-05-01T07:00:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
availabilityEnds |
DateTime oder Time |
Optional | Das Datum und die Uhrzeit oder nur die Uhrzeit, zu der das Angebot nicht verfügbar ist. Diese Zeit ist exklusiv. Wenn die Verfügbarkeit von Pfannkuchen beispielsweise um 10:00 Uhr endet, kann der letzte Pfannkuchen um 9:59:59 Uhr serviert werden. Der Wert dieses Felds kann dann so aussehen: „2017-05-01T10:00:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
availableDay |
Array von DayOfWeek | Optional |
Wochentage, an denen dieser Artikel verfügbar ist. Gültige Werte sind:
Wenn die Verfügbarkeit für verschiedene Wochentage unterschiedlich ist, verwenden Sie mehrere |
validFrom |
DateTime |
Optional |
Das Datum und die Uhrzeit (einschließlich der Zeitzone), zu dem der angegebene Preis gilt. Beispiel: Die Pasta kostet zum Mittagessen 8 € und zum Abendessen 10 €. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
validThrough |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), nach denen der angegebene Preis nicht mehr gültig ist. Beispiel: Die Pasta kostet zum Mittagessen 8 € und zum Abendessen 10 €. Die Uhrzeit für Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet.
|
eligibleQuantity |
QuantitativeValue | Optional |
Die Bestellmengen, für die dieser Artikel zulässig ist. Ein Restaurant kann beispielsweise vorschreiben, dass für eine Lieferung mindestens 10 Pizzas bestellt werden müssen. Dieser Wert ist optional. Standardmäßig gibt es keine Obergrenze, das Restaurant kann jedoch eine festlegen. Mindestlimits gelten nur, wenn ein Nutzer den Artikel auswählt. Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet.
|
aggregateRating |
AggregateRating | Optional |
Die Gesamtbewertung, die auf einer Sammlung von Rezensionen oder Bewertungen des Artikels basiert. Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Eigenschaft wird bei den folgenden Typen nicht verwendet.
|
inventoryLevel |
QuantitativeValue | Optional |
Der aktuelle ungefähre Lagerbestand für den oder die Artikel. Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
priceSpecification |
Array von DeliveryChargeSpecification oder Array von PaymentChargeSpecification | Optional |
Wenn es in Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
offeredBy |
Array von Restaurant -IDs |
Optional | Stellt die Restaurants dar, in denen diese Wenn nicht angegeben, wird diese Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
applicableFulfillmentMethod |
Textarray | Optional | Der Diensttyp, der für diese Wenn nicht angegeben, wird diese Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
@id |
URL | Verworfen | Eindeutige Kennung des Angebots. Seit dem 25. April 2019 nicht mehr unterstützt. Ersetzen Sie den Parameter durch sku , wie oben beschrieben.
|
Die folgenden Beispiele zeigen Offer
-Elemente:
Das folgende Beispiel zeigt ein einfaches Angebot:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Das folgende Beispiel zeigt die Verfügbarkeit an Wochenenden von 8:00 bis 10:00 Uhr:
{ "@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. }
Im folgenden Beispiel ist die Verfügbarkeit montags, mittwochs und freitags von 9:00 bis 10:59:59 Uhr und dienstags und donnerstags von 8:00 bis 11:59:59 Uhr angegeben:
{ "@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"] }
Im folgenden Beispiel ist die zulässige Menge für einen Menüpunkt festgelegt, sodass der Nutzer maximal zwei Portionen dieses Artikels bestellen kann:
{ "@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 } } }
Das folgende Beispiel zeigt ein Lieferangebot an einem bestimmten Standort:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD", "applicableFulfillmentMethods": ["DELIVERY"], "offeredBy": [ { "@type": "Restaurant", "@id": "https://www.provider.com/location/1", } ] }
OpeningHoursSpecification
Hier wird festgelegt, wann die Bestellung von Diensten möglich ist. Normalerweise ist der Wert von opens
kleiner als der Wert von closes
. Für die Verwendung der Properties opens
und closes
gelten die folgenden Richtlinien:
- Die Properties
opens
undcloses
sind optional, werden aber dringend empfohlen, um anzugeben, wann eine Bestellung möglich ist. Am besten definieren Sie die verfügbaren Zeiten in einemdeliveryHours
-Array, das eineServiceDeliveryHoursSpecification
mit den Eigenschaftenopens
undcloses
enthält. Wenn Sie ein kürzeres Vororder-Fenster anbieten möchten, können Sie einAdvanceServiceDeliveryHoursSpecification
-Objekt mit eigenenopens
- undcloses
-Attributen indeliveryHours
einfügen. - Wenn
opens
undcloses
nicht explizit angegeben sind, gehen wir davon aus, dass der Bestellservice jeden Tag zu jeder Tageszeit verfügbar ist. - Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem
opens
- odercloses
-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen. - Wenn
opens
undcloses
übereinstimmen, gehen wir davon aus, dass das Restaurant 0 Minuten geöffnet ist. - Wenn
opens
größer alscloses
ist, wird die Schließungszeit für den nächsten Tag interpretiert. Wenn die Öffnungszeit beispielsweise auf den 1. Januar um 17:00 Uhr und die Schließungszeit auf 2:00 Uhr festgelegt ist, wird das Restaurant als am 2. Januar um 2:00 Uhr geschlossen interpretiert. - Die Zeit für
closes
ist exklusiv. Wenn die Öffnungszeiten für dieses Bestellfenster also auf 10:00 Uhr und 16:00 Uhr festgelegt sind, ist die letzte Bestellung um 15:59:59 Uhr möglich.
In der folgenden Tabelle werden die Eigenschaften des Typs OpeningHoursSpecification
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „OpeningHoursSpecification“. |
@id |
URL | Optional | Kennung für die OpeningHoursSpecification . |
dayOfWeek |
Array von DayOfWeek |
Optional |
Der Wochentag, für den diese Öffnungszeiten gelten. Zulässige Werte sind „Montag“, „Dienstag“, „Mittwoch“, „Donnerstag“, „Freitag“, „Samstag“ und „Sonntag“. Beispiel: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Wenn Sie keine Wochentage angeben, gilt |
opens |
Time |
Optional |
Wenn diese Property in einer Wenn es in einer Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
closes |
Time |
Optional |
Wenn diese Property in einer Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
validFrom |
DateTime |
Optional |
Wenn diese Property in einer Wenn die angegebenen Zeiten beispielsweise für das gesamte Jahr 2017 gelten, legen Sie In einer Wenn dieses Attribut in Ihrem Feed nicht angegeben ist, geht Google davon aus, dass das Restaurant oder der Dienst täglich geöffnet ist. Neben dem Datum sind auch die Uhrzeit und die Zeitzone erforderlich. Verwenden Sie für die Zeitzone die Zeitzone des Restaurants oder des Dienstes. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
validThrough |
DateTime |
Optional |
Bei Verwendung in einer Wenn die angegebenen Zeiten beispielsweise für das gesamte Jahr 2017 gelten, legen Sie In einer Wenn dieses Attribut in Ihrem Feed nicht angegeben ist, geht Google davon aus, dass das Restaurant oder der Dienst täglich geöffnet ist. Neben dem Datum sind auch die Uhrzeit und die Zeitzone erforderlich. Verwenden Sie für die Zeitzone die Zeitzone des Restaurants oder des Dienstes. Die Zeit für Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
deliveryHours |
Array von ServiceDeliveryHoursSpecification oder Array von AdvanceServiceDeliveryHoursSpecification |
Bedingt |
Die Liefer- oder Abholzeit. Dieser Parameter ist erforderlich, es sei denn, das Restaurant ist geschlossen. Das bedeutet, dass
|
Die folgenden Beispiele zeigen OpeningHoursSpecification
-Elemente:
// 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" } ] }
"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" } } },
// 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" } ] } ],
PackagingDetails
Fügen Sie den GS1-Kontext hinzu, um diesen Typ zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Fügen Sie dem Typ von MenuItem
oder MenuItemOption
FoodBeverageTobaccoProduct
hinzu.
In der folgenden Tabelle werden die Eigenschaften des Typs PackagingDetails
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „PackagingDetails“. |
packagingRecyclingProcessType |
Text | Optional | Art des Verpackungsrecyclingverfahrens gemäß
gs1:PackagingRecyclingProcessTypeCode. Beispiel: http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE oder http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Optional | Details zur Kaution für ein wiederverwendbares Paket gemäß gs1:ReturnablePackageDepositDetails. Für Flaschen und Dosen gibt es beispielsweise Pfand. |
Das folgende Beispiel zeigt die Verwendung des Typs 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
In der folgenden Tabelle werden die Eigenschaften des Typs PaymentChargeSpecification
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „PaymentChargeSpecification“. |
@id |
URL | Optional | Kennung für die PaymentChargeSpecification . |
price |
Zahl | Erforderlich | Gesamtbetrag der Abbuchung. Beispiel: „6,00“ ohne Währungssymbol. |
priceCurrency |
Text | Erforderlich | Der dreistellige ISO 4217-Währungscode des Preises. Beispiel: „USD“. |
eligibleTransactionVolume |
PriceSpecification |
Optional | Transaktionsvolumen in einer Währungseinheit, für die diese Zahlungsangaben gelten, z. B. für die Angabe eines Mindestbestellwerts. |
eligibleQuantity |
QuantitativeValue |
Optional | Die Bestellmengen, für die die Zahlungsbelastung gilt. Sie können diese Property beispielsweise verwenden, um eine Mindestbestellmenge festzulegen. |
validFrom |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), zu dem die angegebene Zahlungsgebühr gültig wird. Beispiel: „2017-05-01T07:00:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
validThrough |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), zu dem die angegebene Abbuchung nicht gültig ist. Beispiel: „2017-05-01T07:30:00-07:00“.
Die Uhrzeit für validThrough ist exklusiv: Wenn diese Uhrzeit beispielsweise auf 18:00 Uhr festgelegt ist, ist sie bis 17:59:59 Uhr gültig.
Weitere Informationen finden Sie unter Datums-/Uhrzeitformate. |
Das folgende Beispiel zeigt ein Element „PaymentChargeSpecification“:
"priceSpecification": [{ "@type": "PaymentChargeSpecification", "@id": "http://www.provider.com/paymentCharge/bar", "priceCurrency": "USD", "price": "6.00", // Charges $6 for processing fee "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 2 // Minimum of two items required } }]
Zusätzlich zu "@type": ["PaymentChargeSpecification"]
kann das Objekt mit UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
) erweitert werden. Mit dieser Erweiterung stehen zwei weitere Properties für in Prozent berechnete Servicegebühren zur Verfügung.
Property | Typ | Notwendigkeit | Beschreibung |
referenceQuantity |
QuantitativeValue |
Erforderlich | Referenzmenge, für die ein bestimmter Preis gilt. Beispiel: Mit referenceQuantity mit dem Wert 10 und unitCode mit „P1“ ergibt sich ein Wert von 10% des Bestellwerts. Derzeit wird nur unitCode „P1“ unterstützt. |
basePrice |
Zahl | Optional | Die Grundgebühr zusätzlich zu den referenceQuantity . Beispiel: Bei referenceQuantity = 10, unitCode = „P1“ und basePrice = 5 € ergibt sich ein Wert von 5 € + 10% des Bestellwerts. Der Standardwert ist 0. |
Beispiele für Gebühren für Datenexporte
Google ermöglicht es Ihnen, Nutzern mithilfe von Offer.PriceSpecification
der Dienstentität vorab eine Vielzahl von Gebühren anzugeben.
Derzeit wird nur eine PaymentChargeSpecification
unterstützt. Alle Arten von Gebühren in einer einzigen PaymentChargeSpecification
zusammenfassen
Wenn keine Gebühr anfällt, wird Offer.PriceSpecification
weggelassen.
- Beispiel 1: Die Servicegebühr beträgt 5% des Warenkorbgesamtbetrags
- Beispiel 2: Die Servicegebühr beträgt 5 €
- Beispiel 3: Die Tragetaschengebühr beträgt 0,10 €, die Servicegebühr 5% des Warenkorbgesamtbetrags.
- Beispiel 4: Tragetaschengebühr 0,10 € und Servicegebühr 1,00 €
- Beispiel 5: Die Servicegebühr beträgt 5% und das erforderliche Trinkgeld 10% des Warenkorbgesamtbetrags
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Ort
In der folgenden Tabelle werden die Eigenschaften des Typs Place
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „Ort“. |
address |
PostalAddress |
Erforderlich | Adresse eines Orts. |
Das folgende Beispiel zeigt ein Ortselement:
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
In der folgenden Tabelle werden die Eigenschaften des Typs PostalAddress
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „PostalAddress“. |
addressLocality |
Text | Erforderlich* | Der Ort oder die Stadt. Beispiel: „San Francisco“. |
addressRegion |
Text | Erforderlich* | Die Region oder der Bundesstaat. Beispiel: „CA“. |
postalCode |
Text | Erforderlich* | Die Postleitzahl. Beispiel: „94102“. |
streetAddress |
Text | Optional | Die Adresse. Beispiel: „1600 Amphitheatre Pkwy“. |
addressCountry |
Text | Erforderlich | Zweistelliger Ländercode nach ISO 3166-1 Alpha-2 . Beispiel: „DE“. |
Lieferanbieter können diese Unterkünfte auflisten, um ein Service.areaServed
anzugeben, in dem ein Dienst erbracht wird.
Bei Verwendung in Restaurant.address
sind alle in PostalAddress
aufgeführten Properties erforderlich.
Das folgende Beispiel zeigt ein PostalAddress
-Element:
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
In der folgenden Tabelle werden die Eigenschaften des Typs PriceSpecification
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „PriceSpecification“. |
@id |
URL | Optional | Kennung für die PriceSpecification . |
minPrice |
Zahl | Optional | Der niedrigste Preis, wenn es sich um einen Preisbereich handelt. |
maxPrice |
Zahl | Optional | Der höchste Preis, wenn es sich um eine Preisspanne handelt. |
priceCurrency |
Text | Erforderlich | Der dreistellige ISO 4217-Währungscode des Preises. Beispiel: „USD“. |
eligibleQuantity |
QuantitativeValue |
Optional | Die Bestellmengen, für die die Preisangabe gilt. Der Preis könnte beispielsweise 2 € pro Kilogramm oder 2 Artikel für einen Euro betragen. |
Das folgende Beispiel zeigt ein PriceSpecification
-Element:
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Property-Wert-Paar, das zum Beschreiben von Optionen in MenuItemOption
verwendet wird.
In der folgenden Tabelle sind die Properties für den Typ PropertyValue
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „PropertyValue“. |
name |
Text | Erforderlich |
Name oder Typ der Option. Die folgenden Namen sind in
Gültige Namen für die Verwendung in
|
value |
Text | Erforderlich |
Wert für die Option. Die Werte können beliebige Strings sein und werden unverändert angezeigt. Folgende Werte sind zulässig:
|
QuantitativeValue
In der folgenden Tabelle werden die Eigenschaften des Typs QuantitativeValue
beschrieben:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „QuantitativeValue“. |
value |
Zahl | Optional | Der Wert des Knotens „Quantitativer Wert“ oder „Eigenschaftswert“. |
unitCode |
Text oder URL | Optional |
Die Maßeinheit als UN/CEFACT Common Code oder URL. Andere Codes als der UN/CEFACT-Allgemeincode können mit einem Präfix und einem Doppelpunkt verwendet werden. |
maxValue |
Zahl | Optional | Der Höchstwert einer Eigenschaft oder eines Merkmals. |
minValue |
Zahl | Optional | Der untere Wert einer Eigenschaft oder eines Merkmals. |
In den folgenden Beispielen wird die Verwendung des Typs QuantitativeValue
gezeigt:
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
"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 } }
"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
In der folgenden Tabelle sind die Properties für den Typ Restaurant
aufgeführt:
Attribut | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dieser Wert ist immer „Restaurant“. |
@id |
URL | Erforderlich | Eindeutige Kennung des Restaurants oder Lieferservice. Beispiel: „http://www.anbieter.de/326“, wobei „326“ die eindeutige Kennung des Restaurants ist. |
name |
Text | Erforderlich | Text, mit dem sich die Restaurant während des Bestellvorgangs identifizieren lässt. |
url |
URL | Erforderlich | URL in Ihrer Domain, die das Restaurant repräsentiert. Beispiel: „http://www.anbieter.de/ein-restaurant“. |
sameAs |
URL | Optional | Die offizielle Website des Restaurants. Beispiel: „http://www.beispielrestaurant.de“. |
email |
Text | Optional | E-Mail-Adresse des Restaurants. |
description |
Text | Optional | Beschreibung des Restaurants. |
telephone |
Text | Erforderlich |
Telefonnummer im folgenden Format: "[+][ Beispiel: „+16501234567“. |
priceRange |
Text | Optional | Eine Preisspanne. Beispiel: „$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+16501234567", // Country code (+1) is required "servesCuisine": [ "Indian-Mexican Fusion" ] },Beispiel 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"} ] }Weitere Beispiele für
Restaurant
-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.
ReturnablePackageDepositDetails
Wenn Sie diesen Typ verwenden möchten, fügen Sie den GS1-Kontext hinzu: „@context“:
["http://gs1.org/voc/", "http://schema.org"]
Fügen Sie dann dem Typ des entsprechenden
MenuItem
oderMenuItemOption
FoodBeverageTobaccoProduct
hinzu.In der folgenden Tabelle werden die Eigenschaften des Typs
ReturnablePackageDepositDetails
beschrieben:
Attribut Typ Notwendigkeit Beschreibung @type
Text Erforderlich Dies ist immer „ReturnablePackageDepositDetails“. returnablePackageDepositAmount
gs1:PriceSpecification
Optional Die Höhe der Anzahlung für diesen Artikel gemäß gs1:PriceSpecification. Beispiel: 0, 25 $ Pfand pro Dose. Das folgende Beispiel zeigt die Verwendung des Typs
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" } } } },Dienst
Beschreibt die Lieferung einer Bestellung – Ende-zu-Ende-Aktion – von einem Restaurant an einen geografischen Standort durch ein Lieferunternehmen.
In der folgenden Tabelle werden die Eigenschaften des Typs
Service
beschrieben:
Attribut Typ Notwendigkeit Beschreibung @type
Text Erforderlich Der Feedtyp.
Service
: Verwenden Sie diesen Typ für alle aktiven Dienstfeeds.DisabledService
: Verwenden Sie diesen Typ nur, wenn Sie eine Dienstentität aufgrund eines unerwarteten Ereignisses deaktivieren müssen und nicht wissen, wann der Dienst wiederhergestellt wird.@id
URL Erforderlich Kennung für den Fulfillment-Dienst. Beispiel: „http://www.anbieter.de/service/1“. description
Text Optional Beschreibung des Artikels. serviceType
Text Erforderlich Art der angebotenen Dienstleistung. Mögliche Werte sind „DELIVERY“ oder „TAKEOUT“. provider
Restaurant
Erforderlich Ein Verweis auf die eindeutige Kennung des Restaurants. Beispiel: „http://www.anbieter.de/ein-restaurant“. areaServed
Array von GeoShape
,Place
oderGeoCircle
Bedingt Geografisches Gebiet, in dem ein Dienst erbracht wird. Dieses Feld ist standardmäßig optional, aber erforderlich, wenn serviceType
„DELIVERY“ (LIEFERUNG) ist.hoursAvailable
Array von OpeningHoursSpecification
Erforderlich Öffnungszeiten des Geschäftsstandorts specialOpeningHoursSpecification
Array von OpeningHoursSpecification
,ServiceDeliveryHoursSpecification
oderAdvanceServiceDeliveryHoursSpecification
Optional Zeiten, die die allgemeineren
OpeningHoursSpecification
oder die Erfüllungszeiten überschreiben. In der Regel verwenden Sie dieses Feld, um Feiertage und andere Arten von vorübergehenden Schließungen oder Änderungen der Öffnungszeiten zu definieren.Definieren Sie den speziellen Zeitraum mit den Properties
validFrom
undvalidThrough
. Die Uhrzeit und die Zeitzone sind erforderlich, wenn Sie diese Properties angeben.offers
Array von Offer
Bedingt Details zum Lieferangebot für ein bestimmtes Restaurant. Dieses Feld ist standardmäßig optional, aber erforderlich, wenn
serviceType
„DELIVERY“ ist.Das Attribut
Offer.priceSpecification
ist im Bereich „Dienst“ optional. Hier werden keine anderenOffer
-Properties verwendet.hasOfferCatalog
[ Menu
, OfferCatalog]Erforderlich Gibt ein Menü für diesen Dienst an. Sie können für jeden Ihrer angebotenen Services (z. B. Essen zum Mitnehmen, Lieferung und Catering) ein eigenes Menü haben.
Sie müssen sowohl
Menu
als auchOfferCatalog
für den Typ angeben. Beispiel: "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" }additionalProperty
Array von {name, value} Optional Optionale Informationen zur Dienstkonfiguration. Elemente müssen ein Objekt mit dem Schlüssel
name
sein, der dem optionalen Feldnamen entspricht. Der Schlüsselvalue
ist ein kontextbezogener Wert für das Feld.Weitere Informationen zu den einzelnen Namen und Werten finden Sie in der Referenz
ServingConfig
. "additionalProperty": [{ "name": "disableOrderInstructions", "value": false }, { "name": "disableMenuItemSpecialInstructions", "value": false }, { "name": "disableTipWidget", "value": false }, { "name": "disablePromoWidget", "value": false }, { "name": "menuItemSpecialInstructionsMaxLength", "value": 256 }, { "name": "orderInstructionsMaxLength", "value": 256 }]potentialAction
URL Optional Enthält eine URL für einen Liefer-/Abholservice, die während der Migration von der End-to-End-Bestellfunktion zur Weiterleitung verwendet wird. Beispiel: „potentialAction“: { „url“: „https://fopatestagent.com/ordering/restaurant-1/delivery“ }
Das folgende Beispiel zeigt die Verwendung des Diensttyps:
{ "@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" } } ] } },Weitere Beispiele für Dienstentitäten finden Sie unter Beispiele für Dienstfeeds.
ServiceDeliveryHoursSpecification
Die Stunden, in denen Nutzer Bestellungen für Lieferung und Abholung planen können, die so schnell wie möglich ausgeführt werden sollen.
Normalerweise ist der Wert von
opens
kleiner als der Wert voncloses
. Für die Verwendung der Propertiesopens
undcloses
gelten die folgenden Richtlinien:
- Die Properties
opens
undcloses
sind fürServiceDeliveryHoursSpecification
optional, werden aber dringend empfohlen.- Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem
opens
- odercloses
-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, werden die Zeitzoneninformationen von Google ignoriert.- Wenn
opens
undcloses
nicht explizit angegeben sind, gehen wir davon aus, dass die Bestellung so schnell wie möglich jeden Tag und jederzeit verfügbar ist.- Wenn
opens
undcloses
übereinstimmen, gehen wir davon aus, dass eine Lieferung „So bald wie möglich“ nicht verfügbar ist.- Wenn
opens
größer alscloses
ist, wird die Schließungszeit für den nächsten Tag interpretiert. Wenn die Öffnungszeit beispielsweise auf den 1. Januar um 17:00 Uhr und die Schließungszeit auf 2:00 Uhr festgelegt ist, wird das Restaurant als am 2. Januar um 2:00 Uhr geschlossen interpretiert.In der folgenden Tabelle werden die Eigenschaften des Typs
ServiceDeliveryHoursSpecification
beschrieben:
Attribut Typ Notwendigkeit Beschreibung @type
Text Erforderlich Dies ist immer „ServiceDeliveryHoursSpecification“. validFrom
DateTime
Optional Datum und Uhrzeit (einschließlich Zeitzone), zu der die ASAP-Bestellungen der Nutzer ausgeführt werden können. Beispiel: „2017-05-01T07:00:00-07:00“. Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist.
Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
validThrough
DateTime
Optional Datum und Uhrzeit (einschließlich Zeitzone), nach dem Bestellungen mit dem Zusatz „Sofort“ nicht mehr ausgeführt werden können. Beispiel: „2017-05-01T07:00:00-07:00“. Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist.
Die Zeit für
validThrough
ist exklusiv. Wenn diese Zeit beispielsweise auf 18:00 Uhr festgelegt ist, ist sie bis 17:59:59 Uhr gültig.Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
opens
Time
Optional Die Uhrzeit, zu der der Lieferservice für die Lieferung von Bestellungen mit dem Zusatz „Sofort“ beginnt. Beispiel: „T10:30:00“.
Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem
opens
-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
closes
Time
Optional Die Uhrzeit, zu der der Lieferservice für Bestellungen von Nutzern, die so bald wie möglich geliefert werden sollen, nicht mehr verfügbar ist. Beispiel: „T23:59:59“.
Die Zeit für
closes
ist exklusiv. Wenn Sie also die Öffnungszeiten für dieseServiceDeliveryHoursSpecification
auf 10:00 Uhr und 16:00 Uhr festlegen, ist 16:59:59 Uhr die letzte Bestellung.Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem
closes
-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
dayOfWeek
Array von DayOfWeek
Optional Wochentage, an denen dieser Service für die Bestellungen von Nutzern verfügbar ist. Folgende Werte sind zulässig:
- „Montag“
- „Dienstag“
- „Mittwoch“
- Donnerstag
- „Freitag“
- Samstag
- „Sonntag“
Wenn Sie keine Wochentage angeben, gilt
ServiceDeliveryHoursSpecification
für alle Tage.deliveryLeadTime
QuantitativeValue
Optional Geschätzte Lieferdauer in Minuten nach der Bestellung. Wir empfehlen dringend, diese Property festzulegen. Legen Sie für das Feld value
vonQuantitativeValue
die Anzahl der Minuten und fürunitCode
den Wert „MIN“ fest.Das folgende Beispiel zeigt ein
ServiceDeliveryHoursSpecification
-Element: { "@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" } }, { "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }Enums
RestrictedDiet
Der Typ
RestrictedDiet
hat folgende mögliche Werte:
- 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