V1-Inventarschema

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ür TIME 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 DateTime des Datenfeeds im ISO-8601-Format.

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 dateModified im Umschlag des Feeds festgelegt.

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:

  • Seitenverhältnis 3:2
  • >
  • Mindestauflösung: 600 × 400 Pixel, 72 dpi
  • >
  • Empfohlene Auflösung: 1.400 x 960 Pixel, 72 dpi
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 hasMenuItemOption.

Der Standardwert für Offer.eligibleQuantity ist der Mindestwert 0, der Höchstwert 1.

Die folgenden Offer-Attribute werden in AddOnMenuItem verwendet:

  • Offer.sku erforderlich
  • Offer.price erforderlich
  • Offer.priceCurrency erforderlich
  • Offer.availabilityStarts (optional)
  • Offer.availabilityEnds (optional)
  • Offer.availableDay (optional)
  • Offer.validFrom (optional)
  • Offer.validThrough (optional)
  • Offer.eligibleQuantity (optional)
  • Offer.inventoryLevel (optional)
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:

  • Die Basisvariation bezieht sich auf das Add-on selbst (z. B. kleine, mittlere und große Pommes frites als Add-on).
  • Die Basisvariante des Menüpunkts, mit dem dieses Add-on verknüpft ist (z. B. extra Käse als Zusatz für eine große Pizza)
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 Offer.availabilityStarts und Offer.availabilityEnds, um den Zeitraum anzugeben, in dem dieser AddOnMenuSection-Bereich verfügbar ist.

Die folgende Liste zeigt, welche Offer-Properties in „AddOnMenuSection“ verwendet werden.

  • Offer.availabilityStarts (optional)
  • Offer.availabilityEnds (optional)
  • Offer.availableDay (optional)
  • Offer.validFrom (optional)
  • Offer.validThrough (optional)
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 AddOnMenuSection standardmäßig vorausgewählt sind. Nutzer können die endgültige Auswahl ändern. Wenn kein defaultOption angegeben ist, ist kein AddOnMenuItem vorausgewählt.

AddOnMenuItem-Objekte müssen im hasMenuItem von AddOnMenuSection vorhanden sein.

Die Anzahl der defaultOption darf den maximalen eligibleQuantity von AddOnMenuSection nicht überschreiten.

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 und closes sind für AdvanceServiceDeliveryHoursSpecification optional. Wir empfehlen jedoch dringend, sie anzugeben.
  • Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Fügen Sie in einen opens- oder closes-Wert keine Zeitzone ein. Angegebene Zeitzonen werden ignoriert.
  • Wenn opens und closes nicht explizit angegeben sind, gehen wir davon aus, dass eine Vorabbestellung jederzeit an allen Tagen möglich ist.
  • Wenn opens und closes gleich sind, gehen wir davon aus, dass keine Vorabbestellung möglich ist.
  • Ist opens größer als closes, 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 und closes beziehen sich auf den zukünftigen Slot. closes ist exklusiv. Wenn opens beispielsweise 10:00 Uhr ist und closes 16:00 Uhr mit einem serviceTimeInterval 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 validFrom und validThrough müssen fehlen oder zusammen vorhanden sein.

Wenn dieser Typ als specialOpeningHoursSpecification auf Service-Ebene angegeben wird, ist diese validFrom-Property in AdvanceServiceDeliveryHoursSpecification erforderlich.

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 validFrom und validThrough müssen fehlen oder zusammen vorhanden sein.

Wenn dieser Typ als specialOpeningHoursSpecification auf Service-Ebene angegeben wird, ist die Property validThrough in AdvanceServiceDeliveryHoursSpecification erforderlich.

Die Zeit für validThrough ist exklusiv. Wenn sie beispielsweise auf 18:00 Uhr festgelegt ist, gilt die Zeit bis 17:59:59 Uhr.

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 opens-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

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. closes> ist exklusiv. Wenn Sie also für einen serviceTimeInterval von 15 Minuten 21:00 Uhr festlegen, beginnt der letzte verfügbare Slot um 20:45 Uhr.

Die Uhrzeit muss in der Ortszeit des Betriebs angegeben werden. Schließen Sie in einen closes-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

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:

  • „Montag“
  • „Dienstag“
  • „Mittwoch“
  • „Donnerstag“
  • „Freitag“
  • „Samstag“
  • „Sonntag“

Wenn Sie keine Wochentage angeben, gilt AdvanceServiceDeliveryHoursSpecification für alle Tage.

serviceTimeInterval Duration Erforderlich

Intervall zwischen zwei aufeinanderfolgenden Betriebszeiten.

Beispiel: Wenn opens und closes auf 8:00 Uhr und 20:00 Uhr festgelegt sind und als serviceTimeInterval 15 Minuten gilt, kann der Nutzer die Ausführungszeiten 8:00 Uhr, 8:15 Uhr, 8:30 Uhr, 8:45 Uhr und so weiter bis 20:00 Uhr auswählen.

Duration muss als Dauer gemäß ISO 8601 angegeben werden. Beispiel: "P15M" bedeutet Intervalle von 15 Minuten.

advanceBookingRequirement QuantitativeValue Erforderlich

Anzahl der Minuten ab der Bestellzeit, in denen die Vorausbestellung ausgeführt werden kann.

Die Werte min und max von QuantitativeValue müssen auf die Anzahl der Minuten und der unitCode auf „MIN“ festgelegt werden.

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 min auf 60 und der Wert max auf 2.880 festgelegt.

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"
    }  ],
...
},

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.

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"
    }
}

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:

  • Seitenverhältnis 3:2
  • Mindestauflösung: 600 × 400 Pixel, 72 dpi
  • Empfohlene Auflösung: 1.400 x 960 Pixel, 72 dpi
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 MenuItem bereitzustellen. Beschreibt, wann und zu welchem Preis diese MenuItem verfügbar ist. Es sollte jeweils nur ein Angebot gültig sein. Wenn Preis/Verfügbarkeit je nach Tageszeit variiert, können mehrere Angebote erstellt werden. Wenn sich die Speise durch ein Basisattribut unterscheidet (z. B. die Größe der Pizza), verwenden Sie menuItemOption. Der Standardwert für Offer.eligibleQuantity ist der Mindestwert 0 ohne Obergrenze.

Die folgende Liste zeigt, welche Offer-Properties in MenuItem verwendet werden.

  • Offer.sku erforderlich
  • Offer.price erforderlich
  • Offer.priceCurrency erforderlich
  • Offer.availabilityStarts (optional)
  • Offer.availabilityEnds (optional)
  • Offer.availableDay (optional)
  • Offer.validFrom (optional)
  • Offer.validThrough (optional)
  • Offer.eligibleQuantity (optional)
  • Offer.inventoryLevel (optional)
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.

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 MenuItemOption. Beschreibt, wann und zu welchem Preis diese Menüoption 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 Preis und Verfügbarkeit je nach Tageszeit ändern können. Offer.eligibleQuantity nicht verwenden. MenuItemOption schließt sich gegenseitig aus, sodass Offer.eligibleQuantity ignoriert wird, falls angegeben.

Die folgende Liste zeigt, welche Offer-Properties in MenuItemOption verwendet werden.

  • Offer.sku erforderlich
  • Offer.price erforderlich
  • Offer.priceCurrency erforderlich
  • Offer.availabilityStarts (optional)
  • Offer.availabilityEnds (optional)
  • Offer.availableDay (optional)
  • Offer.validFrom (optional)
  • Offer.validThrough (optional)
  • Offer.eligibleQuantity (optional)
  • Offer.inventoryLevel (optional)
menuAddOn Array of AddOnMenuSection 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 --
          ]
        }
      ]
    }
  ]
}

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 Offer.availabilityStarts und Offer.availabilityEnds, um den Zeitraum anzugeben, in dem diese MenuSection bereitgestellt wird. Verwende Offer.eligibleQuantity nicht.

Die folgende Liste zeigt, welche Offer-Attribute in MenuSection verwendet werden:

  • Offer.availabilityStarts (optional)
  • Offer.availabilityEnds (optional)
  • Offer.availableDay (optional)
  • Offer.validFrom (optional)
  • Offer.validThrough (optional)
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 Offer eindeutig ist. sku-Werte werden in „Checkout“ und „Senden“ als offerId in lineitem referenziert.

Diese Property wird nur in den folgenden Angebotstypen verwendet:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price Text Bedingt

Preis des angebotenen Artikels. Beispiel: „6.00“ ohne das Währungssymbol.

Diese Property ist nur bei den folgenden Angebotstypen erforderlich:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Es wird bei den folgenden Angebotstypen nicht verwendet:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Es wird bei den folgenden Angebotstypen nicht verwendet:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • „Montag“
  • „Dienstag“
  • „Mittwoch“
  • „Donnerstag“
  • „Freitag“
  • „Samstag“
  • „Sonntag“

Wenn du an verschiedenen Wochentagen unterschiedliche Verfügbarkeiten hast, verwende mehr als ein Offer-Objekt, wie in den Beispielen unten gezeigt.

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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Diese Property wird bei den folgenden Angebotstypen nicht verwendet:

  • Service.Offer
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 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.

Diese Property kann für die folgenden Angebotstypen verwendet werden:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Diese Property wird in den folgenden Angebotstypen nicht verwendet.

  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Diese Property wird in den folgenden Angebotstypen nicht verwendet.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Diese Eigenschaft wird in den folgenden Typen nicht verwendet.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel QuantitativeValue Optional

Der aktuelle ungefähre Inventarstand für den oder die Artikel.

Diese Property kann für die folgenden Angebotstypen verwendet werden:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer

Diese Property wird bei den folgenden Angebotstypen nicht verwendet:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Array von DeliveryChargeSpecification oder PaymentChargeSpecification Optional

Bei Verwendung in Service.Offer gibt es Details zum Preis der Lieferung an. Wenn mehrere DeliveryChargeSpecification-Objekte anwendbar sind, wird das spezifischste angewendet. Verwenden Sie sich gegenseitig ausschließende DeliveryChargeSpecification-Objekte, um Mehrdeutigkeiten zu vermeiden.

Diese Property kann für die folgenden Angebotstypen verwendet werden:

  • Service.Offer

Diese Property wird bei den folgenden Angebotstypen nicht verwendet:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Array mit Restaurant-IDs Optional

Gibt die Restaurants an, in denen dieses Offer angeboten wird.

Wenn keine Angabe erfolgt, wird dieses Offer allen Restaurants angeboten.

Diese Property kann für die folgenden Angebotstypen verwendet werden:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Diese Property wird bei den folgenden Angebotstypen nicht verwendet:

  • Service.Offer
applicableFulfillmentMethod Text-Array Optional

Stellt den Diensttyp dar, für den diese Offer ausgeführt wird. Mögliche Werte sind "DELIVERY" und "TAKEOUT".

Wenn keine Angabe erfolgt, gilt für diese Offer sowohl ein Lieferservice als auch ein Datenexport.

Diese Property kann für die folgenden Angebotstypen verwendet werden:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Diese Property wird bei den folgenden Angebotstypen nicht verwendet:

  • Service.Offer
@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 und closes 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, ein deliveryHours-Array einzufügen, das eine ServiceDeliveryHoursSpecification mit den Attributen opens und closes enthält. Sie können dann in deliveryHours ein AdvanceServiceDeliveryHoursSpecification-Objekt mit eigenen Eigenschaften opens und closes einfügen, wenn Sie einen kürzeren Zeitraum für Vorabbestellungen anbieten möchten.
  • Wenn opens und closes 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- oder closes-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.
  • Wenn opens und closes gleich sind, gehen wir davon aus, dass das Restaurant 0 Minuten geöffnet ist.
  • Ist opens größer als closes, 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 OpeningHoursSpecification für alle Tage.

opens Time Optional

Bei Verwendung in einer Restaurant-Spezifikation gibt diese Eigenschaft die Öffnungszeit des Restaurants an den angegebenen Wochentagen an. 6:30 Uhr wird beispielsweise als „T06:30:00“ angegeben.

Bei Verwendung in einer Service-Spezifikation gibt sie die bestimmte Tageszeit an, ab der die Bestellungen der Nutzer aufgegeben werden können. Sie gibt die Öffnungszeiten des Onlinesystems an und ermöglicht Nutzern, Bestellungen aufzugeben. Innerhalb dieser Öffnungszeiten kannst du mit deliveryHours Öffnungszeiten angeben, zu denen Nutzer spezielle Lieferungen bestellen können.

Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Schließen Sie in einen opens-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate.

closes Time Optional

Wenn diese Eigenschaft in einer Service-Spezifikation verwendet wird, gibt sie eine bestimmte Tageszeit an, zu der Nutzer keine Bestellungen aufgeben können. Sie gibt die Schließzeit des Onlinesystems an und ermöglicht Nutzern, Bestellungen aufzugeben. Innerhalb dieser Öffnungszeiten kannst du mit deliveryHours Öffnungszeiten angeben, zu denen Nutzer spezielle Lieferungen bestellen können.

Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Schließen Sie in einen closes-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

Weitere Informationen finden Sie unter Datum/Uhrzeit- und Uhrzeitformate.

validFrom DateTime Optional

Bei Verwendung in einer Restaurant-Spezifikation gibt diese Eigenschaft das Datum an, an dem die durch opens und closes für das Restaurant angegebenen Öffnungszeiten gültig sind.

Wenn die angegebenen Stunden beispielsweise für das gesamte Jahr 2017 gelten, setzen Sie validFrom auf „2017-01-01T00:00:00-07:00“ und validThrough auf „2017-12-31T23:59:59-07:00“.

Bei Verwendung in einer Service-Spezifikation gibt validFrom das Startdatum an, ab dem die Bestellungen von Nutzern aufgegeben werden können.

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 Restaurant das Datum, nach dem die durch opens und closes angegebenen Öffnungszeiten ungültig sind.

Wenn die angegebenen Stunden beispielsweise für das gesamte Jahr 2017 gelten, setzen Sie validFrom auf „2017-01-01T00:00:00-07:00“ und validThrough auf „2017-12-31T23:59:59-07:00“.

Bei Verwendung in einer Service-Spezifikation gibt validThrough das Enddatum an, nach dem keine Bestellungen mehr von Nutzern aufgegeben werden können.

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 validThrough ist exklusiv. Wenn als Uhrzeit beispielsweise 18:00 Uhr festgelegt wurde, gilt die Zeit bis 17:59:59 Uhr.

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., opens und closes sind festgelegt und sind gleich.

  • ServiceDeliveryHoursSpecification: Innerhalb der Öffnungs-/Schließzeiten können Sie die Öffnungszeiten „geöffnet“ und „geschlossen“ festlegen, in denen Nutzer ASAP-Bestellungen aufgeben können.
  • AdvanceServiceDeliveryHoursSpecification: Innerhalb der Öffnungszeiten kannst du festlegen, wann Nutzer Vorbestellungen aufgeben können.

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 MenuItem gültig:

  • "SIZE": Größe von MenuItem. Beispiel: klein, mittel oder groß.
  • „OPTION“: Jede Variante, bei der es sich nicht um die Größe handelt (z. B. ein Gericht, das als Salat oder Sandwich erhältlich ist). Wenn Sie nicht zwischen „SIZE“ und „OPTION“ unterscheiden können, verwenden Sie „OPTION“.

Gültige Namen, wenn sie in AddOnMenuItem verwendet werden:

  • „APPLICABLE_ITEM_OPTION“: Eine Option für das AddOn, die nur bei Verwendung mit MenuItem mit der entsprechenden „SIZE/OPTION“ anwendbar ist.
  • "PIZZA_SIDE": Dieses Add-on gilt speziell für Pizza und ist nur für eine Portion oder ganze Pizza gültig, z. B. mit Pilzen auf der linken Seite, auf der rechten Seite oder für die ganze Pizza.
  • „SIZE“: Eine Option zum Festlegen der Größe des Add-ons (z. B. Pommes frites als Add-on für eine Mahlzeitkombination).
  • "OPTION": Alle Varianten, mit Ausnahme der Größe. Wenn Sie nicht zwischen „SIZE“ und „OPTION“ unterscheiden können, verwenden Sie „OPTION“.
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:

  • "PIZZA_SIDE": Der entsprechende Wert sollte "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT" oder "PIZZA_SIDE_WHOLE" für eine Pizza sein.
  • „APPLICABLE_ITEM_OPTION“: Dieser Wert sollte in einer der entsprechenden „OPTION/SIZE“-Optionen für die „menüItemOptions“ des übergeordneten MenuItem vorhanden sein.

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 "additionalProperty": [{"name": "imprint", "value": "first row\nsecondrow\n"},]

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 entsprechenden MenuItem oder MenuItemOption 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.

  • Service: Verwenden Sie diesen Typ für alle aktiven Dienstleistungsfeeds.
  • DisabledService: Verwenden Sie diesen Typ nur, wenn Sie eine Dienstentität aufgrund eines unerwarteten Ereignisses deaktivieren müssen und nicht wissen, wann der Dienst wiederhergestellt wird.
@id URL Erforderlich 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 OpeningHoursSpecification oder die Auftragsausführungszeiten überschreiben. In der Regel definieren Sie in diesem Feld Feiertage und andere Arten vorübergehender Schließungen oder Änderungen der Öffnungszeiten.

Definieren Sie den speziellen Zeitraum mit den Properties validFrom und validThrough. Die Uhrzeit und die Zeitzone sind erforderlich, wenn diese Attribute angegeben werden.

offers Array mit Offer Bedingt

Details zum Lieferangebot eines bestimmten Restaurants. Dieses Feld ist standardmäßig optional, aber erforderlich, wenn serviceType „DELIVERY“ ist.

Das Attribut Offer.priceSpecification ist beim Dienst optional. Hier werden keine anderen Offer-Properties verwendet.

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 Menu als auch OfferCatalog angeben. Beispiel:

"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 name sein, der dem optionalen Feldnamen entspricht. Der Schlüssel value ist ein kontextrelevanter Wert für das Feld.

Weitere Informationen zu den spezifischen Namen und Werten finden Sie in der Referenz zu ServingConfig.

"additionalProperty": [{
  "name": "disableOrderInstructions",
  "value": false
}, {
  "name": "disableMenuItemSpecialInstructions",
  "value": false
}, {
  "name": "disableTipWidget",
  "value": false
}, {
  "name": "disablePromoWidget",
  "value": false
}, {
  "name": "menuItemSpecialInstructionsMaxLength",
  "value": 256
}, {
  "name": "orderInstructionsMaxLength",
  "value": 256
}]
potentialAction URL Optional

Enthält eine URL für einen Liefer- 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 und closes sind für ServiceDeliveryHoursSpecification optional. Wir empfehlen jedoch dringend, sie anzugeben.
  • Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Fügen Sie in einen opens- oder closes-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google die Zeitzoneninformationen.
  • Wenn opens und closes nicht explizit angegeben sind, gehen wir davon aus, dass die Option „ASAP“ jeden Tag zu jeder Zeit verfügbar ist.
  • Wenn opens und closes gleich sind, gehen wir davon aus, dass keine ASAP-Bestellung möglich ist.
  • Ist opens größer als closes, 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 validThrough ist exklusiv. Wenn sie beispielsweise auf 18:00 Uhr festgelegt ist, gilt die Zeit bis 17:59:59 Uhr.

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 opens-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

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 closes ist exklusiv. Wenn Sie also für diese ServiceDeliveryHoursSpecification ein Öffnen/Schließen auf 10:00 und 16:00 Uhr festlegen, ist die letzte Bestellung 15:59:59 Uhr.

Die Uhrzeit muss in der Ortszeit des Dienstes angegeben werden. Schließen Sie in einen closes-Wert keine Zeitzone ein. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

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:

  • „Montag“
  • „Dienstag“
  • „Mittwoch“
  • „Donnerstag“
  • „Freitag“
  • „Samstag“
  • „Sonntag“

Wenn Sie keine Wochentage angeben, gilt ServiceDeliveryHoursSpecification für alle Tage.

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