Lebensmittelkatalogfeeds basieren auf DataFeed
-Entitäten von Schema.org. Ein Lebensmittelkatalog enthält Details zum Restaurantstandort wie die Adresse, Speisekarte und Standort des Restaurants sowie Servicedetails wie Liefergebühren, Liefergebiete und andere Elemente, wie unten beschrieben.
Ein DataFeed
enthält eine Sammlung von Elementen, die jeweils ein einzelnes Element darstellen, das im schema.org ausgedrückt wird. Mit dem Typ DataFeed
kannst du alle deine strukturierten Daten im JSON-LD-Format veröffentlichen.
Informationen zur Verwendung dieser Spezifikation zum Erstellen Ihrer Feeds finden Sie unter Übersicht über die Inventarintegration.
Datums-/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-DDTHH: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 in der Zeitzone eines bestimmten Restaurants oder Dienstleistungsorts, basiert ebenfalls auf dem Schema.org-Typ und muss außerdem dem Format ISO 8601 entsprechen. Die Zeit verwendet die folgende Syntax:
// 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 ist erforderlich.
- Die Zeitzone muss für
DATETIME
angegeben werden. Es ist fürTIME
nicht erforderlich. - Die Uhrzeit muss in der Ortszeit des Restaurants oder der Dienstleistung angegeben werden.
Umschlag
Der Startcode für einen Lebensmittelkatalogfeed sollte einen „Envelope“-Bereich enthalten.
Der „Umschlag“ ist die Struktur der obersten Ebene jedes Feeds und muss ein DataFeed
mit den folgenden Eigenschaften sein:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@context |
URL | Erforderlich | Der verwendete Kontext; normalerweise „http://schema.googleapis.com“. |
@type |
Text | Erforderlich | Dies ist immer „DataFeed“. |
dateModified |
DateTime |
Erforderlich |
Die zuletzt geänderte Das Datum und die Uhrzeit im ISO_OFFSET_DATE_TIME-Format, anhand derer die Elemente in diesem Feed geändert wurden. Wird dieses Feld nicht angegeben, wird davon ausgegangen, dass die Aktualisierungszeit der Zeitpunkt ist, zu dem 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 zusammen verwenden. Dieser Zeitstempel sollte mit einer Zeitzone und einem Detaillierungsgrad in Millisekunden angegeben werden, z. B. "2016-12-28T06:30:00:123-07:00". In Ihren Batchfeeds wird die Versionsverwaltung für Entitäten über das Feld |
dataFeedElement |
Array mit Menu , Restaurant oder Service |
Erforderlich | Ein oder mehrere Elemente, die Teil dieses Feeds sind. Weitere Informationen finden Sie unten. |
Das folgende Beispiel zeigt den Umschlag:
Beispiel
{ "@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
Fügen Sie den gs1-Kontext hinzu, um diesen Typ zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]
Fügen Sie dann FoodBeverageTobaccoProduct
zum Typ der entsprechenden MenuItem
oder MenuItemOption
hinzu.
In der folgenden Tabelle werden die Attribute des Typs AdditiveDetails
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AdditiveDetails“. |
additiveName |
Text | Optional | Name des Additivs. |
additiveLevelOfContainment |
Text | Optional | Begrenzungscode gemäß gs1:LevelOfBegrenzungCode.
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
Speisen oder Getränke, die in einem Add-on-Menüpunkt in einem MenuItem
aufgeführt sind.
In der folgenden Tabelle sind die Attribute für den Typ AddOnMenuItem
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AddOnMenuItem“. |
@id |
URL | Erforderlich | Eine eindeutige Kennung des Add-on-Menüpunkts. |
name |
Text | Erforderlich | Text, der das AddOnMenuItem-Element identifiziert, wenn ein Nutzer das Menü aufruft. |
description |
Text | Optional | Beschreibung des Add-on-Menüpunkts. |
image |
URL | Optional |
Bild des Add-on-Menüpunkts, der den folgenden Richtlinien entspricht:
|
offers |
Array mit Offer |
Erforderlich* |
Ein oder mehrere Angebote zur Bereitstellung dieses AddOnMenuItems. Beschreibt, wann und zu welchem Preis dieses AddOnMenuItem-Element verfügbar ist.
Zu einem bestimmten Zeitpunkt sollte immer nur ein Angebot gültig sein. Unter Umständen haben Sie viele gültige Angebote, 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 davon unterscheidet (z. B. kleine, mittlere und große Pommes frites als Add-on), verwende die Property Der Standardwert für Die folgenden
|
hasMenuItemOptions |
Array mit MenuItemOption |
Erforderlich* |
Array von Basisattributen, die eine Variante des Add-on-Elements für dieses Add-on-Menüelement beschreiben (z. B. kleine, mittelgroße und große Pommes frites als Add-on). Verwende die Optionen, um verschiedene Varianten für diesen Add-on-Menüpunkt anzugeben. Dies kann in zwei Szenarien vorkommen:
|
suitableForDiet |
Array mit RestrictedDiet |
Optional | Das Gericht entspricht den beschriebenen Ernährungseinschränkungen (wie „GlutenFreeDiet“ oder „VeganDiet“). Dies ist eine Aufzählungsliste möglicher Werte. |
nutrition |
NutritionInformation |
Optional | Die Nährwertinformationen für das Gericht, vor allem die Kalorien. |
menuAddOn |
Array mit 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 sehen Sie AddOnMenuItem
:
Beispiel 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Beispiel 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
Eine Untergruppe von Speisen und Getränken als Add-on-Menübereich für den Menüpunkt.
In der folgenden Tabelle sind die Attribute für den Typ AddOnMenuSection
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AddOnMenuSection“. |
@id |
URL | Erforderlich | Eindeutige Kennung des Speisekartenbereichs. |
name |
Text | Erforderlich | Text, der die AddOnMenuSection identifizieren kann, wenn ein Nutzer das Menü durchsucht. |
description |
Text | Optional | Beschreibung der Speisekarte. |
eligibleQuantity |
QuantitativeValue |
Optional | Gibt die Anzahl der Elemente an, die als Add-on für diesen Menüabschnitt zulässig sind. Sie können dieses Feld verwenden, um die Anzahl der Zusätze einzuschränken, z. B. die minimale und maximale Anzahl von Belägen, die Sie auf einer Pizza auswählen können. |
image |
URL | Optional | Abbildung des Abschnitts „Speisekarte“. |
hasMenuItem |
Array mit AddOnMenuItem |
Erforderlich* | Add-on-Menüelemente, die in einem „AddOnMenuSection“ enthalten sind. |
offers |
Array mit Offer |
Optional |
Verwende Die folgende Liste zeigt, welche
|
hasMenuSection |
Array mit AddOnMenuSection |
Erforderlich* | Logische Untergruppe des Add-on-Menüs (z. B. „Abendessen“, „Vorspeisen“ oder „Fischgerichte“). |
defaultOption |
Array mit AddOnMenuItem |
Optional |
Add-on-Menüpunkte, die für Nutzer in
Die Anzahl der |
numberOfFreeAddOns |
Zahl | Optional | Gibt die Anzahl der Add-ons an, die ein Nutzer kostenlos auswählen kann. |
Die folgenden Beispiele umfassen AddOnMenuSection
-Objekte:
Beispiel 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Beispiel 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Beispiel 3
Ein Menüpunkt auf der Speisekarte „Käsesandwich“ hat die AddOnMenuSection
-Option „Käseauswahl“ und „Schweizer“ und „Mozzarella“ sind standardmäßig ausgewählt.
{ "@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 Zeiten für die Auftragsausführung dar, in denen Nutzer Vorbestellungen für Lieferung und Essen zum Mitnehmen planen können.
In der Regel ist der Wert von opens
kleiner als der Wert von closes
. Für die Verwendung der Attribute opens
und closes
gelten die folgenden Richtlinien:
- Die Attribute
opens
undcloses
sind fürAdvanceServiceDeliveryHoursSpecification
optional. Wir empfehlen jedoch dringend, sie anzugeben. - Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Fügen Sie in einen
opens
- odercloses
-Wert keine Zeitzone ein. Angegebene Zeitzonen werden ignoriert. - Wenn
opens
undcloses
nicht explizit angegeben sind, gehen wir davon aus, dass eine Vorabbestellung jederzeit an allen Tagen möglich ist. - Wenn
opens
undcloses
gleich sind, gehen wir davon aus, dass keine Vorabbestellung möglich ist. - Ist
opens
größer alscloses
, wird die Schließungszeit als der folgende Tag interpretiert. Wenn beispielsweise als Öffnungszeit der 1. Januar um 17:00 Uhr festgelegt ist und die Geschäftszeit um 2:00 Uhr endet, wird das Restaurant so interpretiert, als schließt es am 2. Januar um 02:00 Uhr. opens
undcloses
beziehen sich auf den zukünftigen Slot.closes
ist exklusiv. Wennopens
beispielsweise 10:00 Uhr ist undcloses
16:00 Uhr mit einemserviceTimeInterval
von 15 Minuten ist, beginnt der erste Slot um 10:00 Uhr und der letzte Slot beginnt um 15:45 Uhr.
In der folgenden Tabelle werden die Attribute des Typs AdvanceServiceDeliveryHoursSpecification
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „AdvanceServiceDeliveryHoursSpecification“. |
validFrom |
DateTime |
Bedingt |
Das Startdatum, ab dem die 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 Attribute Wenn dieser Typ als Weitere Informationen finden Sie unter Formate von Datum/Uhrzeit. |
validThrough |
DateTime |
Optional |
Das Enddatum, nach dem die Vorbestellungen der Nutzer 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 Attribute Wenn dieser Typ als Die Zeit für Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
opens |
Time |
Optional |
Das gilt für Zeitfenster für Lieferungen oder Essen zum Mitnehmen. Die genaue Tageszeit, ab der die Vorbestellungen der Nutzer ausgeführt werden können. 6:30 Uhr wird beispielsweise als „T06:30:00“ ausgegeben. Die Uhrzeit muss in der Ortszeit des Betriebs angegeben werden. Fügen Sie in einen Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
closes |
Time |
Optional |
Das gilt für Zeitfenster für Lieferungen oder Essen zum Mitnehmen. Die Tageszeit, zu der die Vorbestellungen der Nutzer nicht mehr ausgeführt werden können. 21:00 Uhr wird beispielsweise als „T21:00:00“ angegeben.
Die Uhrzeit muss in der Ortszeit des Betriebs angegeben werden. Schließen Sie in einen Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
dayOfWeek |
Array mit DayOfWeek |
Optional |
Wochentage, an denen Zeiten für die Lieferung im Voraus verfügbar sind. Gültige Werte sind:
Wenn Sie keine Wochentage angeben, gilt |
serviceTimeInterval |
Duration |
Erforderlich |
Intervall zwischen zwei aufeinanderfolgenden Betriebszeiten. Beispiel: Wenn
|
advanceBookingRequirement |
QuantitativeValue |
Erforderlich |
Anzahl der Minuten ab der Bestellzeit, in denen die Vorausbestellung ausgeführt werden kann. Die Werte Wenn eine Vorabbestellung beispielsweise mindestens 60 Minuten zur Ausführung benötigt und nicht später als 2 Tage später ausgeführt werden darf, ist der Wert |
Das folgende Beispiel zeigt die Verwendung des Typs AdvanceServiceDeliveryHoursSpecification
:
Beispiel 1
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Fügen Sie den gs1-Kontext hinzu, um diesen Typ zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]
Fügen Sie dann FoodBeverageTobaccoProduct
zum Typ der entsprechenden MenuItem
oder MenuItemOption
hinzu.
In der folgenden Tabelle werden die Attribute des Typs AllergenDetails
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Das ist immer „AllergenDetails“. |
allergenType |
Text | Optional | Art des Allergens gemäß gs1:AllergenTypeCode
. z. B. http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Text | Optional | Begrenzungscode gemäß gs1:LevelOfBegrenzungCode.
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 Attribute des Typs DeliveryChargeSpecification
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „DeliveryChargeSpecification“. |
@id |
URL | Optional | Kennung für die Spezifikation der Liefergebühr. |
price |
Zahl | Erforderlich | Liefergesamtkosten in rein numerischer Form. Mit der Eigenschaft priceCurrency können Sie den Währungstyp anstelle von Währungssymbolen angeben. Beispiel: „6.00“ ohne das Währungssymbol. |
priceCurrency |
Text | Erforderlich | Der dreistellige ISO 4217-Währungscode. Beispiel: „USD“. |
eligibleTransactionVolume |
PriceSpecification |
Optional | Das Transaktionsvolumen in einer Geldeinheit, für die diese Spezifikation der Lieferkosten gilt. Beispielsweise um ein minimales Kaufvolumen anzugeben oder anzugeben, dass der Versand ab einem bestimmten Bestellvolumen kostenlos ist. |
eligibleQuantity |
QuantitativeValue |
Optional | Das Intervall und die Maßeinheit für Bestellmengen, für die die Liefergebühr gilt. So können Sie beispielsweise angeben, dass eine bestimmte Frachtgebühr nur für eine bestimmte Menge gilt. |
eligibleRegion |
Array mit GeoShape oder Place oder GeoCircle |
Optional | Der Ort oder die GeoShape/GeoCircle-Daten der geopolitischen Region(en), für die das Angebot oder die Liefergebühr gültig ist. Verwenden Sie diese Eigenschaft nur, wenn die Liefergebühren je nach Region variieren. |
validFrom |
DateTime |
Optional | Das Datum und die Uhrzeit (einschließlich Zeitzone), ab dem die angegebene Liefergebühr gültig ist. Beispiel: „2017-05-01T06:30:00-07:00“. Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
validThrough |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), nach dem die angegebene Liefergebühr ungültig ist. Beispiel: „2017-05-01T06:30:00-07:00“.
Die Zeit für validThrough ist exklusiv: Wenn sie beispielsweise auf 18:00 Uhr festgelegt ist, gilt sie bis 17:59:59 Uhr.
Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
Die folgenden Beispiele zeigen DeliveryChargeSpecification
-Elemente:
Beispiel 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
Beispiel 2
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Beispiel 3
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
Zusätzlich zu "@type": ["DeliveryChargeSpecification"]
kann das Objekt mit UnitPriceSpecification erweitert werden:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Die Erweiterung enthält zwei zusätzliche Eigenschaften, die für die in Prozent berechneten Liefergebühren erforderlich sind.
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Erforderlich | Referenzmenge, für die ein bestimmter Preis gilt. Beispiel: referenceQuantity mit dem Wert 10 und unitCode mit dem Wert „P1“ ergeben 10% des Bestellwerts. Derzeit wird nur unitCode „P1“ unterstützt. |
basePrice |
Zahl | Optional | Die Grundgebühr zusätzlich zu den referenceQuantity . Beispiel: referenceQuantity von 10 mit einem unitCode von „P1“ und basePrice von 5 in USD ergeben 5 $+ 10% des Bestellwerts. Der Standardwert ist 0. |
Beispiele für Liefergebühren
Google ermöglicht es dir, mithilfe von Offer.PriceSpecification
der Dienstentität im Voraus eine Reihe von Gebühren für Nutzer festzulegen.
Beachten Sie, dass die End-to-End-Reihenfolge derzeit nur eine DeliveryChargeSpecification
unterstützt. Fassen Sie alle Arten von Gebühren in einer einzigen DeliveryChargeSpecification
zusammen.
In den Beispielen für Dienstleistungsfeeds finden Sie Informationen dazu, wie Sie Liefergebühren nach Fläche, Entfernung und Bestellwert angeben.
Wenn keine Gebühr anfällt, wird Offer.PriceSpecification
weggelassen.
- Beispiel 1: Liefergebühr beträgt 5% der Zwischensumme des Einkaufswagens
- Beispiel 2: Liefergebühr beträgt 5 $
- Beispiel 3: Liefergebühr beträgt 5 € + 10% der Zwischensumme des Einkaufswagens
- Beispiel 4: Liefergebühr beträgt 5 €, Gepäckgebühr 0,10 €
- Beispiel 5: Die Liefergebühr beträgt 5% und die Zahlungsgebühr beträgt 2% der Zwischensumme des Einkaufswagens.
- Beispiel 6: Liefergebühr beträgt 5 € und 1 € für jede weitere Strecke von 1 km
Beispiel 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Beispiel 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Beispiel 3
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
Beispiel 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
Beispiel 5
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
Beispiel 6
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
In der folgenden Tabelle werden die Attribute des Typs GeoCircle
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „GeoCircle“. |
geoMidpoint |
GeoCoordinates |
Erforderlich | Gibt das GeoCoordinates in der Mitte von GeoCircle an. |
geoRadius |
Zahl | Erforderlich | Gibt den ungefähren Radius von GeoCircle in Metern an. |
Das folgende Beispiel zeigt ein GeoCircle
-Element:
Beispiel
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
In der folgenden Tabelle werden die Attribute des Typs GeoCoordinates
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer "GeoCoordinates". |
latitude |
Zahl | Erforderlich |
Breitengrad in Grad Die Werte reichen von -90 bis einschließlich 90. Ist der angegebene Wert kleiner als -90, wird er auf -90 gesetzt. Ist der Wert 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 den Bereich fallen. Beispielsweise wird -190 in 170 umgewandelt. Ein Wert von 190 wird in -170 umgerechnet. Dies spiegelt die Tatsache wider, dass sich die Längengrade um den Globus schlängeln. Er muss mit einer Genauigkeit von mindestens fünf Nachkommastellen angegeben werden. |
Das folgende Beispiel zeigt ein GeoCoordinates
-Element:
Beispiel
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
In der folgenden Tabelle werden die Attribute des Typs GeoShape
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „GeoShape“. |
polygon |
Text-Array | Erforderlich |
Ein Polygon oder Multipolygon, das als eine Reihe von drei oder mehr durch Leerzeichen voneinander getrennten Punkten ausgedrückt wird. Es wird empfohlen, den ersten und den letzten Punkt identisch zu sein. Dies ist jedoch nicht erforderlich. Jeder Punkt in einem Polygon oder Multipolygon wird durch einen Breitengradpunkt gefolgt von einem Längengradpunkt definiert. Die Punkte müssen gegen den Uhrzeigersinn angegeben werden. In den meisten Fällen haben Sie ein einzelnes Polygon. Informationen zu komplexeren Anwendungsfällen findest du in der Dokumentation zum Lieferdienstbereich. |
Die folgenden Beispiele zeigen GeoShape
-Elemente:
Beispiel 1
{ "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" },
Beispiel 2
{ "@type": "GeoShape", // A service area with a hole. // Specify latitude first (i.e., lat long lat long ...) "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”, “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”] },
Beispiel 3
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "areaServed": [ { "@type": "GeoShape", // Richmond District delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474" }, { "@type": "GeoShape", // Haight-Ashbury delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417" } ], ... },
Menü
In der folgenden Tabelle sind die Attribute für den Typ Menu
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Das 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ü aufruft. |
description |
Text | Optional | Beschreibung des Menüs. |
disclaimer |
MenuDisclaimer |
Optional | Haftungsausschluss für das Menü. z. B. Offenlegungen bei Nährwerten 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 die Menu nicht durch MenuSections unterteilt ist. |
inLanguage |
Text | Optional | Sprache des Menüinhalts als Sprachcode aus dem IETF-BCP-47-Standard. Zum Beispiel: "en-US". |
Die folgenden Beispiele zeigen die Verwendung des Typs Menu
:
Beispiel 1
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
Beispiel 2
In diesem Beispiel wird hasMenuItem
als Array verwendet.
{ "@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" } } ] }
Beispiel 3
In diesem Beispiel wird hasMenuSection
als Array verwendet.
{ "@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 Speisekartenfeeds.
MenuDisclaimer
In der folgenden Tabelle sind die Attribute für den Typ MenuDisclaimer
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „MenuHaftungsausschluss“. |
@id |
URL | Erforderlich | Eindeutige Kennung für den Haftungsausschluss für die Speisekarte. |
text |
Text | Erforderlich | Text des Haftungsausschlusses. Beispiel: „Die durchschnittliche tägliche Energieaufnahme eines Erwachsenen beträgt 8.700 kJ.“ |
url |
URL | Optional | URL, die auf eine Seite mit weiteren Details zum Haftungsausschluss verweist. |
Das folgende Beispiel zeigt die Verwendung des Typs MenuDisclaimer
:
Beispiel
{ "@type": "Menu", "@id": "menu_1", "disclaimer": { "@type": "MenuDisclaimer", "@id": "menu_1_disclaimer_1", "text": "The average adult daily energy intake is 8700 kJ", "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html" } }
MenuItem
Menüpunkt, der den Artikel im Menü darstellt. In der folgenden Tabelle sind die Attribute für den Typ MenuItem
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „MenuItem“. |
@id |
URL | Erforderlich | Eindeutige Kennung des Menüpunkts. |
name |
Text | Erforderlich | Text zur Identifizierung von MenuItem , wenn ein Nutzer das Menü aufruft. |
description |
Text | Optional | Beschreibung des Menüpunkts |
image |
URL | Optional |
Bild des Menüpunkts. Halten Sie sich an die folgenden Richtlinien für Bilder:
|
menuAddOn |
Array mit AddOnMenuSection |
Optional | Elemente in einem Menüabschnitt, die dem Menüpunkt als Add-ons hinzugefügt werden können. |
offers |
Array mit Offer |
Erforderlich* |
Ein oder mehrere Angebote, um dieses Die folgende Liste zeigt, welche
|
hasMenuItemOptions |
Array mit MenuItemOption |
Erforderlich | Liste der grundlegenden Optionen/Varianten für diesen Menüpunkt. Optionen sollten verwendet werden, um verschiedene Basisvarianten anzugeben, die für das Element verfügbar sind, z. B. klein, mittel und groß. |
suitableForDiet |
Array mit RestrictedDiet |
Optional | Das Gericht entspricht den beschriebenen Ernährungseinschränkungen (wie „http://schema.org/GlutenFreeDiet“ oder „http://schema.org/VeganDiet“). Dies ist eine Aufzählungsliste möglicher Werte. |
nutrition |
NutritionInformation |
Optional | Nährwertinformationen für das Gericht, insbesondere die Kalorien. |
hasAllergen |
AllergenDetails |
Optional | Allergene des Gerichts pro gs1:AllergenDetails .
Fügen Sie den gs1-Kontext hinzu, um dieses Attribut zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Und fügen Sie FoodBeverageTobaccoProduct zum Typ von MenuItem hinzu. |
additive |
Array von AdditiveDetails |
Optional | Die Zusätze des Gerichts gemäß gs1:AdditiveDetails .
Dies ist eine Aufzählungsliste möglicher Werte. Fügen Sie den gs1-Kontext hinzu, um dieses Attribut zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Und fügen Sie FoodBeverageTobaccoProduct zum Typ von MenuItem hinzu. |
packaging |
PackagingDetails |
Optional | Die Verpackungs- und Recyclinginformationen für diese MenuItem müssen gemäß den gs1:PackagingDetails angegeben werden.
Fügen Sie den gs1-Kontext hinzu, um dieses Attribut zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Und fügen Sie FoodBeverageTobaccoProduct zum Typ von MenuItem hinzu.
|
Die folgenden Beispiele zeigen MenuItem
-Elemente:
Beispiel 1
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
Beispiel 2
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
Beispiel 3
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
Beispiel 4
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Beispiel 5
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Weitere Beispiele für MenuItem
-Entitäten finden Sie unter Beispiele für Restaurant- und Speisekartenfeeds.
MenuItemOption
Eine Option zur Darstellung von Entscheidungen, die ein Nutzer bei der Auswahl eines Gerichts oder einer Kombination auswählen muss. Der Nutzer muss eine Option auswählen, da die Bestellung sonst als ungültig betrachtet wird. Wählen Sie beispielsweise für eine Pizza klein, mittel oder groß aus.
Beispielanwendungsfälle für MenuItemOption
finden Sie in unserem Leitfaden zur Anpassung mit MenuItemOption
.
In der folgenden Tabelle sind die Attribute für den Typ MenuItemOption
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „MenuItemOption“. |
value |
PropertyValue |
Erforderlich | PropertyValue mit einem Name/Wert-Paar für die Option. |
offers |
Array mit Offer |
Erforderlich |
Mindestens ein Angebot zur Bereitstellung von
Die folgende Liste zeigt, welche
|
menuAddOn |
Array of |
Optional | Menübereich mit zulässigen Artikeln, die als Add-on hinzugefügt werden können. Verwenden Sie diese Option nur, wenn Add-ons für eine bestimmte Menüoption spezifisch sind. Alternativ können Sie Add-ons mit der Property MenuItem .menuAddOn bereitstellen.
|
suitableForDiet |
Array mit RestrictedDiet |
Optional | Aufzählungsliste mit Ernährungsweisen, bei denen 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 die Kalorien. |
hasAllergen |
AllergenDetails |
Optional | Allergene des Gerichts pro gs1:AllergenDetails .
Fügen Sie den gs1-Kontext hinzu, um dieses Attribut zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Und fügen Sie FoodBeverageTobaccoProduct zum Typ von MenuItemOption hinzu.
|
additive |
Array von AdditiveDetails |
Optional | Zusätze des Gerichts gemäß gs1:AdditiveDetails .
Dies ist eine Aufzählungsliste möglicher Werte. Fügen Sie den gs1-Kontext hinzu, um dieses Attribut zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Und fügen Sie FoodBeverageTobaccoProduct zum Typ von MenuItemOption hinzu.
|
packaging |
PackagingDetails |
Optional | Verpackungs- und Recyclinginformationen für dieses MenuItem gemäß gs1:PackagingDetails
Fügen Sie den gs1-Kontext zur Verwendung dieser Eigenschaft hinzu: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Und fügen Sie FoodBeverageTobaccoProduct zum Typ von MenuItemOption hinzu.
|
Im folgenden Beispiel sehen Sie MenuItemOption
-Elemente:
Beispiel 1
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Beispiel 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
Menüabschnitt, um einen bestimmten Bereich der Speisekarte darzustellen. In der folgenden Tabelle sind die Attribute für den Typ MenuSection
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Das ist immer „MenuSection“. |
@id |
URL | Erforderlich | Eindeutige Kennung des Speisekartenbereichs. |
name |
Text | Erforderlich | Text zur Identifizierung von MenuSection , wenn ein Nutzer das Menü aufruft. |
description |
Text | Optional | Beschreibung der Speisekarte. |
hasMenuSection |
Array mit MenuSection |
Optional | Logische Untergruppe von MenuSection . Der Abschnitt „Abendessen“ kann beispielsweise mehrere Untermenüs wie „Geflügelgerichte“ oder „Vegetarisch“ enthalten. |
hasMenuItem |
Array mit MenuItem |
Optional | Menüpunkte in einem MenuSection . |
offers |
Array mit Offer |
Optional |
Verwenden Sie Die folgende Liste zeigt, welche
|
image |
URL | Optional | Abbildung des Abschnitts „Speisekarte“. |
Die folgenden Beispiele zeigen MenuSection
-Entitäten:
Beispiel 1
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
Beispiel 2
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
Weitere Beispiele für MenuSection
-Entitäten finden Sie unter Beispiele für Restaurant- und Speisekartenfeeds.
NutritionInformation
In der folgenden Tabelle werden die Attribute des Typs NutritionInformation
beschrieben. Bei Maßeinheiten wird zwischen Groß- und Kleinschreibung unterschieden. So wird z. B. „Cal“ akzeptiert,
aber „cal“ nicht.
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „NutritionInformation“. |
description |
Text | Optional | Ernährungsinformationen im Freitext. Beispiel: „Enthält Konservierungsstoffe“. |
calories |
Text | Optional |
Die Anzahl der Kalorien in kcal, kcal oder kJ im folgenden Format: number Cal_kcal_OR_kJ Zum Beispiel: „240 KCAL“. |
carbohydrateContent |
Text | Optional |
Die Menge an Kohlenhydraten, typischerweise in g, im folgenden Format: number g_OR_mg Beispiel: „7 g“. |
cholesterolContent |
Text | Optional |
Die Cholesterinmenge, typischerweise in mg, im folgenden Format: number g_OR_mg Beispiel: „12 mg“. |
fatContent |
Text | Optional |
Die Fettmenge, typischerweise in g, im folgenden Format: number g_OR_mg Beispiel: „42 g“. |
fiberContent |
Text | Optional |
Die Anzahl der Ballaststoffe in g oder mg im folgenden Format: number g_OR_mg |
proteinContent |
Text | Optional |
g oder mg Protein im folgenden Format: number g_OR_mg |
saturatedFatContent |
Text | Optional |
Die Anzahl gesättigter Fette in g oder mg im folgenden Format: number g_OR_mg |
servingSize |
Text | Optional | Die Portionsgröße in ml, L, g oder kg, bezogen auf das Volumen oder die Masse. |
sodiumContent |
Text | Optional |
Anzahl der mg oder g Natrium im folgenden Format: number g_OR_mg |
sugarContent |
Text | Optional |
Die Anzahl von g oder mg Zucker im folgenden Format: number g_OR_mg |
transFatContent |
Text | Optional |
Die Anzahl g oder mg Transfette im folgenden Format: number g_OR_mg |
unsaturatedFatContent |
Text | Optional |
Die Menge an ungesättigten Fetten, normalerweise in g, im folgenden Format: number g_OR_mg |
Die folgenden Beispiele zeigen ein NutritionInformation
-Element:
Beispiel 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
Beispiel 2
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
Angebot
Angebot für einen Artikel auf der Speisekarte. In der folgenden Tabelle werden die Attribute des Typs Offer
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „Angebot“. |
sku |
Text | Bedingt |
Eindeutige ID des Angebots. Kann ein beliebiger Textwert sein, der innerhalb von Diese Property wird nur in den folgenden Angebotstypen verwendet:
|
price |
Text | Bedingt |
Preis des angebotenen Artikels. Beispiel: „6.00“ ohne das Währungssymbol. Diese Property ist nur bei den folgenden Angebotstypen erforderlich:
Es wird bei den folgenden Angebotstypen nicht verwendet:
|
priceCurrency |
Text | Bedingt |
Die Währung des Preises oder einer Preiskomponente im dreistelligen ISO 4217-Format, wenn diese mit „PriceSpecification“ und deren Untertypen verknüpft sind. Diese Property ist nur bei den folgenden Angebotstypen erforderlich:
Es wird bei den folgenden Angebotstypen nicht verwendet:
|
availabilityStarts |
DateTime oder Time |
Optional | Datum und Uhrzeit oder nur der Zeitpunkt, ab dem das Angebot verfügbar ist. Wenn beispielsweise Pfannkuchen ab 07:00 Uhr serviert werden, kann der Wert dieses Felds so aussehen: „2017-05-01T07:00:00-07:00“. Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
availabilityEnds |
DateTime oder Time |
Optional | Das Datum und die Uhrzeit oder nur die Uhrzeit, zu der das Angebot nicht verfügbar ist. Dies ist eine exklusive Zeit. 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 Datum/Uhrzeit- und Uhrzeitformate. |
availableDay |
Array für DayOfWeek | Optional |
Wochentage, an denen dieser Artikel verfügbar ist. Gültige Werte sind:
Wenn du an verschiedenen Wochentagen unterschiedliche Verfügbarkeiten hast, verwende mehr als ein |
validFrom |
DateTime |
Optional |
Datum und Uhrzeit (einschließlich Zeitzone), zu der der angegebene Preis gültig ist. Zum Beispiel kostet die Pasta zum Mittagessen 8 $und zum Abendessen 10 $. Weitere Informationen finden Sie unter Datum/Uhrzeit- und 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 dem der angegebene Preis nicht mehr gültig ist. Zum Beispiel kostet die Pasta zum Mittagessen 8 $und zum Abendessen 10 $. Die Zeit für Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird in den folgenden Angebotstypen nicht verwendet.
|
eligibleQuantity |
QuantitativeValue | Optional |
Die Bestellmengen, für die dieser Artikel zulässig ist. Beispielsweise kann es sein, dass ein Restaurant mindestens 10 Pizzen für eine Lieferung bestellen muss. Dieser Wert ist optional. Standardmäßig gibt es keine Obergrenze, aber das Restaurant kann 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 in den folgenden Angebotstypen nicht verwendet.
|
aggregateRating |
AggregateRating | Optional |
Die Gesamtbewertung, basierend auf einer Sammlung von Rezensionen oder Bewertungen für den Artikel. Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Eigenschaft wird in den folgenden Typen nicht verwendet.
|
inventoryLevel |
QuantitativeValue | Optional |
Der aktuelle ungefähre Inventarstand 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 PaymentChargeSpecification | Optional |
Bei Verwendung in Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
offeredBy |
Array mit Restaurant -IDs |
Optional | Gibt die Restaurants an, in denen dieses Wenn keine Angabe erfolgt, wird dieses Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
applicableFulfillmentMethod |
Text-Array | Optional | Stellt den Diensttyp dar, für den diese Wenn keine Angabe erfolgt, gilt für diese Diese Property kann für die folgenden Angebotstypen verwendet werden:
Diese Property wird bei den folgenden Angebotstypen nicht verwendet:
|
@id |
URL | Eingestellte Funktionen | Eindeutige ID des Angebots. Am 25.04.2019 verworfen. Ersetzen Sie es wie oben beschrieben durch sku .
|
Die folgenden Beispiele zeigen Offer
-Elemente:
Beispiel 1
Das folgende Beispiel zeigt ein einfaches Angebot:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Beispiel 2
Das folgende Beispielangebot 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. }
Beispiel 3
Im folgenden Beispiel sehen Sie die Verfügbarkeit montags, mittwochs und freitags von 9:00 bis 10:59:59 Uhr, aber dienstags und donnerstags von 8:00 bis 11:59:59 Uhr:
{ "@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"] }
Beispiel 4
Das folgende Beispiel zeigt die zulässige Menge eines Add-on-Menüpunkts, sodass der Nutzer maximal 2 Teile 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 } } }
Beispiel 5
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
Definiert, wann Bestelldienste verfügbar sind. In der Regel ist der Wert von opens
kleiner als der Wert von closes
. Für die Verwendung der Attribute opens
und closes
gelten die folgenden Richtlinien:
- Die Attribute
opens
undcloses
sind optional, werden aber dringend empfohlen, um anzugeben, wenn eine Bestellung möglich ist. Die Best Practice zum Definieren der verfügbaren Öffnungszeiten besteht darin, eindeliveryHours
-Array einzufügen, das eineServiceDeliveryHoursSpecification
mit den Attributenopens
undcloses
enthält. Sie können dann indeliveryHours
einAdvanceServiceDeliveryHoursSpecification
-Objekt mit eigenen Eigenschaftenopens
undcloses
einfügen, wenn Sie einen kürzeren Zeitraum für Vorabbestellungen anbieten möchten. - Wenn
opens
undcloses
nicht explizit angegeben sind, gehen wir davon aus, dass der Bestellservice jeden Tag und zu jeder Tageszeit verfügbar ist. - Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Fügen Sie in einen
opens
- odercloses
-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen. - Wenn
opens
undcloses
gleich sind, gehen wir davon aus, dass das Restaurant 0 Minuten geöffnet ist. - Ist
opens
größer alscloses
, wird die Schließungszeit als der folgende Tag interpretiert. Wenn beispielsweise als Öffnungszeit der 1. Januar um 17:00 Uhr festgelegt ist und die Schließungszeit 2:00 Uhr ist, dann wird das Restaurant so verstanden, dass es am 2. Januar um 02:00 Uhr schließt. - Die Zeit für
closes
ist exklusiv. Wenn also die Öffnungs- und Schließzeiten für dieses Bestellfenster auf 10:00 Uhr bzw. 16:00 Uhr festgelegt sind, ist die letzte Reihenfolge 15:59:59 Uhr.
In der folgenden Tabelle werden die Attribute des Typs OpeningHoursSpecification
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „OpeningHoursSpecification“. |
@id |
URL | Optional | Kennung für 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 |
Bei Verwendung in einer Bei Verwendung in einer Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Schließen Sie in einen Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
closes |
Time |
Optional |
Wenn diese Eigenschaft in einer Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Schließen Sie in einen Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
validFrom |
DateTime |
Optional |
Bei Verwendung in einer Wenn die angegebenen Stunden beispielsweise für das gesamte Jahr 2017 gelten, setzen Sie Bei Verwendung in einer Ist diese Unterkunft nicht in Ihrem Feed angegeben, geht Google davon aus, dass das Restaurant oder der Service täglich verfügbar ist. Zusätzlich zum Datum sind die Zeit- und Zeitzonenteile des Werts erforderlich. Verwenden Sie die Zeitzone des Restaurants oder des Service. Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
validThrough |
DateTime |
Optional |
Bei Verwendung in einem Wenn die angegebenen Stunden beispielsweise für das gesamte Jahr 2017 gelten, setzen Sie Bei Verwendung in einer Ist diese Unterkunft nicht in Ihrem Feed angegeben, geht Google davon aus, dass das Restaurant oder der Service täglich verfügbar ist. Zusätzlich zum Datum sind die Zeit- und Zeitzonenteile von DateTime erforderlich. Verwenden Sie die Zeitzone des Restaurants oder des Service. Die Zeit für Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
deliveryHours |
Array von ServiceDeliveryHoursSpecification oder Array mit AdvanceServiceDeliveryHoursSpecification |
Bedingt |
Die angegebene Liefer- oder Abholzeit. Dieser Parameter ist erforderlich, es sei denn, das Restaurant ist geschlossen, d. h.,
|
Die folgenden Beispiele zeigen OpeningHoursSpecification
-Elemente:
Beispiel 1
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
Beispiel 2
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
Beispiel 3
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
Beispiel 4
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
Fügen Sie den gs1-Kontext für diesen Typ hinzu: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Fügen Sie außerdem FoodBeverageTobaccoProduct
zum Typ von MenuItem
oder MenuItemOption
hinzu.
In der folgenden Tabelle werden die Attribute des Typs PackagingDetails
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Das ist immer „PackagingDetails“. |
packagingRecyclingProcessType |
Text | Optional | Art des Recyclingverfahrens der Verpackung gemäß
gs1:PackagingRecyclingProcessTypeCode. Beispiel: http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE oder http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Optional | Details zur Anzahl zurückgegebener Pakete gemäß gs1:ReturnablePackageDepositDetails. Beispielsweise gibt es für Flaschen und Dosen ein Pfand für retournierbare Verpackungen. |
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 Attribute des Typs PaymentChargeSpecification
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „PaymentChargeSpecification“. |
@id |
URL | Optional | Kennung für PaymentChargeSpecification . |
price |
Zahl | Erforderlich | Gesamtbetrag der Belastung. Beispiel: „6.00“ ohne das Währungssymbol. |
priceCurrency |
Text | Erforderlich | Der dreistellige ISO 4217-Währungscode des Preises. Beispiel: „USD“. |
eligibleTransactionVolume |
PriceSpecification |
Optional | Transaktionsvolumen in einer Geldeinheit, für die diese Spezifikation der Zahlungsgebühr gilt, z. B. zur Angabe eines minimalen Kaufvolumens. |
eligibleQuantity |
QuantitativeValue |
Optional | Die Bestellmengen, für die die Zahlungsgebühr gilt. Sie können diese Property beispielsweise verwenden, um eine Mindestanzahl von Artikeln pro Bestellung anzufordern. |
validFrom |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), ab dem die angegebene Zahlungsgebühr gültig wird. Beispiel: „2017-05-01T07:00:00-07:00“. Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
validThrough |
DateTime |
Optional | Datum und Uhrzeit (einschließlich Zeitzone), wann die angegebene Zahlungsgebühr ungültig ist. Beispiel: „2017-05-01T07:30:00-07:00“.
Die Zeit für validThrough ist exklusiv: Wenn sie beispielsweise auf 18:00 Uhr festgelegt ist, gilt sie bis 17:59:59 Uhr.
Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
Das folgende Beispiel zeigt ein PaymentChargeSpecification-Element:
Beispiel
"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. Die Erweiterung enthält zwei weitere Properties, die für die in Prozent berechneten Servicegebühren erforderlich sind.
Property | Typ | Notwendigkeit | Beschreibung |
referenceQuantity |
QuantitativeValue |
Erforderlich | Referenzmenge, für die ein bestimmter Preis gilt. Beispiel: referenceQuantity mit dem Wert 10 und unitCode mit dem Wert „P1“ ergeben 10% des Bestellwerts. Derzeit wird nur unitCode „P1“ unterstützt. |
basePrice |
Zahl | Optional | Die Grundgebühr zusätzlich zu den referenceQuantity . Beispiel: referenceQuantity von 10 mit einem unitCode von „P1“ und basePrice von 5 in USD ergeben 5 $+ 10% des Bestellwerts. Der Standardwert ist 0. |
Beispiele für Versandkostenpauschalen
Google ermöglicht es dir, mithilfe von Offer.PriceSpecification
der Dienstentität im Voraus eine Reihe von Gebühren für Nutzer festzulegen.
Derzeit wird nur ein PaymentChargeSpecification
unterstützt. Alle Arten von Gebühren in einer einzigen PaymentChargeSpecification
kombinieren
Wenn keine Gebühr anfällt, wird Offer.PriceSpecification
weggelassen.
- Beispiel 1: Die Servicegebühr beträgt 5% der Zwischensumme des Einkaufswagens
- Beispiel 2: Servicegebühr beträgt 5 $
- Beispiel 3: Die Gepäckgebühr beträgt 0,10 € und die Servicegebühr 5% der Zwischensumme des Einkaufswagens
- Beispiel 4: Gepäckgebühr beträgt 0,10 € und Servicegebühr 1 €
- Beispiel 5: Die Servicegebühr beträgt 5% und das erforderliche Trinkgeld beträgt 10% der Zwischensumme des Einkaufswagens
Beispiel 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Beispiel 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Beispiel 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
Beispiel 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
Beispiel 5
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Ort
In der folgenden Tabelle werden die Attribute des Typs Place
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „Place“. |
address |
PostalAddress |
Erforderlich | Die Adresse eines Ortes. |
Das folgende Beispiel zeigt ein Place-Element:
Beispiel
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
In der folgenden Tabelle werden die Attribute des Typs PostalAddress
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Das ist immer „PostalAddress“. |
addressLocality |
Text | Erforderlich* | Der Ort oder die Stadt. Beispiel: „Hamburg“. |
addressRegion |
Text | Erforderlich* | Die Region oder das Bundesland. Beispiel: „CA“. |
postalCode |
Text | Erforderlich* | Die Postleitzahl. Beispiel: „94102“. |
streetAddress |
Text | Optional | Die Adresse. Beispiel: „1600 Amphitheatre Pkwy“. |
addressCountry |
Text | Erforderlich | Zweistelliger Ländercode gemäß ISO 3166-1 alpha-2 . Beispiel: „DE“. |
Lieferanbieter können diese Attribute auflisten, um eine Service.areaServed
festzulegen, für die ein Dienst bereitgestellt wird.
Bei Verwendung in Restaurant.address
sind alle in PostalAddress
aufgeführten Attribute erforderlich.
Das folgende Beispiel zeigt ein PostalAddress
-Element:
Beispiel
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
In der folgenden Tabelle werden die Attribute des Typs PriceSpecification
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „PriceSpecification“. |
@id |
URL | Optional | Kennung für PriceSpecification . |
minPrice |
Zahl | Optional | Der niedrigste Preis, wenn der Preis innerhalb einer Spanne liegt. |
maxPrice |
Zahl | Optional | Der höchste Preis, wenn der Preis einer Spanne entspricht. |
priceCurrency |
Text | Erforderlich | Der dreistellige ISO 4217-Währungscode des Preises. Beispiel: „USD“. |
eligibleQuantity |
QuantitativeValue |
Optional | Die Bestellmengen, für die die Preisspezifikation gilt. Beispiel: Der Preis kann 2 € pro Pfund oder 2 Artikel pro Euro betragen. |
Das folgende Beispiel zeigt ein PriceSpecification
-Element:
Beispiel 1
"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 Attribute für den Typ PropertyValue
aufgeführt:
Property | 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, wenn sie in
|
value |
Text | Erforderlich |
Wert für die Option. Die Werte können ein beliebiger String sein und werden unverändert angezeigt. Folgende Werte sind gültig:
|
QuantitativeValue
In der folgenden Tabelle werden die Attribute des Typs QuantitativeValue
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „QuantitativeValue“. |
value |
Zahl | Optional | Der Wert des Knotens mit dem quantitativen Wert oder Eigenschaftswert. |
unitCode |
Text oder URL | Optional |
Die Maßeinheit als UN/CEFACT Common Code oder eine URL. Andere Codes als der allgemeine UN/CEFACT-Code können mit einem Präfix gefolgt von einem Doppelpunkt verwendet werden. |
maxValue |
Zahl | Optional | Der höchste Wert eines Merkmals oder einer Eigenschaft. |
minValue |
Zahl | Optional | Der niedrigere Wert eines Merkmals oder einer Eigenschaft. |
Die folgenden Beispiele zeigen die Verwendung des Typs QuantitativeValue
:
Beispiel 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
Beispiel 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Beispiel 3
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Restaurant
In der folgenden Tabelle sind die Attribute für den Typ Restaurant
aufgeführt:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „Restaurant“. |
@id |
URL | Erforderlich | Eindeutige Kennung des Restaurants oder Lieferanbieters. Beispiel: „http://www.provider.com/326“, wobei „326“ die eindeutige Kennung des Restaurants ist. |
name |
Text | Erforderlich | Text, mit dem die Restaurant während des Bestellvorgangs identifiziert werden kann. |
url |
URL | Erforderlich | Eine URL auf Ihrer Domain, die das Restaurant repräsentiert. Beispiel: „http://www.provider.com/einrestaurant“. |
sameAs |
URL | Optional | Die offizielle Website des Restaurants. Beispiel: „http://www.beispielrestaurant.com“. |
email |
Text | Optional | Kontakt-E-Mail-Adresse des Restaurants. |
description |
Text | Optional | Beschreibung des Restaurants. |
telephone |
Text | Erforderlich |
Telefonnummer im folgenden Format: "[+][country_code][phone_#_with_area_code]" Beispiel: „+16501234567“. |
priceRange |
Text | Optional | Eine Reihe von Preisen. Beispiele: "$$" ($-Inexpensive, $$-Moderat, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
Example 1
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+49601234567", // Ländercode (+1) ist erforderlich "servesCuisine": [ "Indisch-mexikanische 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 Speisekartenfeeds.
ReturnablePackageDepositDetails
Fügen Sie den gs1-Kontext „@context“ hinzu, um diesen Typ zu verwenden:
["http://gs1.org/voc/", "http://schema.org"]
Fügen Sie dann
FoodBeverageTobaccoProduct
zum Typ der entsprechendenMenuItem
oderMenuItemOption
hinzu.In der folgenden Tabelle werden die Attribute des Typs
ReturnablePackageDepositDetails
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „ReturnablePackageDepositDetails“. |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Optional | Der Anzahlungbetrag für diesen Artikel gemäß gs1:PriceSpecification. Beispiel: 0, 25 € Anzahlung 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 Bestell-End-to-End-Aktion von einem Restaurant an einen geografischen Standort durch ein Lieferunternehmen.
In der folgenden Tabelle werden die Attribute des Typs Service
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich |
Der Feedtyp.
|
@id |
URL | Erforderlich | Kennzeichnung für den Auftragsausführungsdienst. Beispiel: „http://www.provider.com/service/1“. |
description |
Text | Optional | Beschreibung des Artikels |
serviceType |
Text | Erforderlich | Die Art der angebotenen Dienstleistung. Mögliche Werte sind "DELIVERY" und "TAKEOUT". |
provider |
Restaurant |
Erforderlich | Ein Verweis auf die eindeutige Kennung des Restaurants. Beispiel: „http://www.provider.com/einrestaurant“. |
areaServed |
Array mit GeoShape , Place oder GeoCircle |
Bedingt | Das Gebiet, in dem die Dienstleistung erbracht wird. Dieses Feld ist standardmäßig optional, aber erforderlich, wenn serviceType auf „DELIVERY“ gesetzt ist. |
hoursAvailable |
Array mit OpeningHoursSpecification |
Erforderlich | Zeiten, zu denen dieser Service verfügbar ist. |
specialOpeningHoursSpecification |
Array mit OpeningHoursSpecification , ServiceDeliveryHoursSpecification oder AdvanceServiceDeliveryHoursSpecification |
Optional |
Zeiten, die den allgemeineren Definieren Sie den speziellen Zeitraum mit den Properties |
offers |
Array mit Offer |
Bedingt |
Details zum Lieferangebot eines bestimmten Restaurants. Dieses Feld ist standardmäßig optional, aber erforderlich, wenn Das Attribut |
hasOfferCatalog |
[Menu , OfferCatalog] |
Erforderlich |
Gibt ein Menü für diesen Dienst an. Sie können für jede Dienstleistung (z. B. Essen zum Mitnehmen, Lieferservice oder Catering) eine andere Speisekarte haben. Sie müssen für den Typ sowohl "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Array mit {name, value} | Optional |
Optionale Informationen zur Dienstkonfiguration. Die Elemente müssen ein Objekt mit dem Schlüssel
Weitere Informationen zu den spezifischen Namen und Werten finden Sie in der Referenz zu "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- oder Abholservice, die bei der Migration von der End-to-End-Lebensmittelbestellung zur Weiterleitung verwendet wird. Beispiel: „potentialAction“: { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" } |
Das folgende Beispiel zeigt die Verwendung des Diensttyps:
Beispiel
{ "@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
Stellt die Zeiten für die Auftragsausführung dar, in denen Nutzer ASAP-Bestellungen für Lieferung und Essen zum Mitnehmen planen können.
In der Regel ist der Wert von opens
kleiner als der Wert von closes
. Für die Verwendung der Attribute opens
und closes
gelten die folgenden Richtlinien:
- Die Attribute
opens
undcloses
sind fürServiceDeliveryHoursSpecification
optional. Wir empfehlen jedoch dringend, sie anzugeben. - Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Fügen Sie in einen
opens
- odercloses
-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google die Zeitzoneninformationen. - Wenn
opens
undcloses
nicht explizit angegeben sind, gehen wir davon aus, dass die Option „ASAP“ jeden Tag zu jeder Zeit verfügbar ist. - Wenn
opens
undcloses
gleich sind, gehen wir davon aus, dass keine ASAP-Bestellung möglich ist. - Ist
opens
größer alscloses
, wird die Schließungszeit als der folgende Tag interpretiert. Wenn beispielsweise als Öffnungszeit der 1. Januar um 17:00 Uhr festgelegt ist und die Schließungszeit 2:00 Uhr ist, dann wird das Restaurant so verstanden, dass es am 2. Januar um 02:00 Uhr schließt.
In der folgenden Tabelle werden die Attribute des Typs ServiceDeliveryHoursSpecification
beschrieben:
Property | Typ | Notwendigkeit | Beschreibung |
---|---|---|---|
@type |
Text | Erforderlich | Dies ist immer „ServiceDeliveryHoursSpecification“. |
validFrom |
DateTime |
Optional |
Datum und Uhrzeit (einschließlich Zeitzone), wann die ASAP-Bestellungen der Nutzer ausgeführt werden können. Beispiel: „2017-05-01T07:00:00-07:00“. Wenn dieses Attribut nicht festgelegt ist, wird davon ausgegangen, dass es jeden Tag gültig ist. Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
validThrough |
DateTime |
Optional |
Datum und Uhrzeit (einschließlich Zeitzone), nach dem ASAP-Bestellungen der Nutzer nicht mehr ausgeführt werden können. Beispiel: „2017-05-01T07:00:00-07:00“. Wenn dieses Attribut nicht festgelegt ist, wird davon ausgegangen, dass es jeden Tag gültig ist. Die Zeit für Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
opens |
Time |
Optional |
Zeitpunkt, zu dem der Lieferservice für die ASAP-Bestellungen der Nutzer beginnt, die ausgeführt werden sollen. Beispiel: „T10:30:00“. Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Schließen Sie in einen Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
closes |
Time |
Optional |
Der Lieferservice für die „so bald wie möglich“-Bestellungen der Nutzer ist nicht mehr verfügbar. Beispiel: „T23:59:59“. Die Zeit für Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Schließen Sie in einen Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate. |
dayOfWeek |
Array mit DayOfWeek |
Optional |
Wochentage, an denen dieser Service für die ASAP-Bestellungen der Nutzer verfügbar ist. Folgende Werte sind gültig:
Wenn Sie keine Wochentage angeben, gilt |
deliveryLeadTime |
QuantitativeValue |
Optional | Die voraussichtliche Lieferdauer in Minuten nach Aufgabe der Bestellung. Wir empfehlen dringend, diese Eigenschaft festzulegen. Legen Sie das Feld value von QuantitativeValue auf die Anzahl der Minuten und unitCode auf „MIN“ fest. |
Das folgende Beispiel zeigt ein ServiceDeliveryHoursSpecification
-Element:
Beispiel 1
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } },
Beispiel 2
{ "@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
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-02-16 (UTC).