Inventarschema der Version 1

Lebensmittelkatalogfeeds basieren auf schema.org-Entitäten vom Typ DataFeed. Ein Lebensmittelkatalogfeed enthält Details zum Restaurant wie Adresse, Menü und Standort sowie Details zu den Dienstleistungen des Restaurants wie Liefergebühren, Liefergebiete und andere unten aufgeführte Elemente.

Ein DataFeed enthält eine Sammlung von Elementen, die jeweils ein einzelnes Element darstellen, das im schema.org-Vokabular ausgedrückt wird. Mit dem Typ DataFeed können Sie alle Ihre strukturierten Daten im JSON-LD-Format veröffentlichen.

Informationen zur Verwendung dieser Spezifikation zum Erstellen von Feeds finden Sie unter Inventarintegration – Übersicht.

DATETIME- und Uhrzeitformate

DateTime basiert auf dem schema.org-Typ und muss, sofern nicht anders angegeben, dem ISO 8601-Format entsprechen und das Datum, die Uhrzeit und die Zeitzone enthalten. Verwenden Sie für DateTime die folgende Syntax:

// DateTime format:
YYYY-MM-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 für die Zeitzone eines bestimmten Restaurants oder Dienstleistungsorts. Sie basiert ebenfalls auf dem schema.org-Typ und muss dem ISO 8601-Format entsprechen. Für die Zeit wird die folgende Syntax verwendet:

// Time format:
THH:MM:SS

Beispiel:

T08:08:00 // 8:08 AM

Beachten Sie Folgendes, wenn Sie DateTime oder Time angeben:

  • Das Präfix „T“ vor der Uhrzeit ist Teil des Formats und erforderlich.
  • Die Zeitzone muss für DATETIME angegeben werden. Für TIME ist sie nicht erforderlich.
  • Die Uhrzeit muss in der Ortszeit des Restaurants oder des Dienstes angegeben werden.

Umschlag

Der Startcode eines Lebensmittelkatalogfeeds muss einen Abschnitt „envelope“ enthalten.

Der „Envelope“ ist die oberste Strukturebene jedes Feeds und muss ein DataFeed mit den folgenden Properties sein:

Attribut Typ Notwendigkeit Beschreibung
@context URL Erforderlich Der verwendete Kontext, in der Regel „http://schema.googleapis.com“.
@type Text Erforderlich Dies ist immer „DataFeed“.
dateModified DateTime Erforderlich

Die letzte Änderung des DateTime des Datenfeeds im ISO 8601-Format.

Datum und Uhrzeit im ISO_OFFSET_DATE_TIME-Format, an dem die Artikel in diesem Feed geändert wurden. Wenn dieses Feld nicht vorhanden ist, wird davon ausgegangen, dass die Aktualisierungszeit die Uhrzeit ist, zu der die Push-Nachricht auf den Google-Servern empfangen (oder gecrawlt) wird.

Wir empfehlen Ihnen dringend, dies zu implementieren, wenn Sie sowohl Push- als auch Crawling-Daten verwenden. Dieser Zeitstempel sollte mit einer Zeitzone und einer Auflösung in Millisekunden angegeben werden, z. B. „2016-12-28T06:30:00:123-07:00“.

In Ihren Batchfeeds wird die Entitätsversionierung über das Feld dateModified im Envelope des Feeds bestimmt.

dataFeedElement Array von Menu oder Restaurant oder Service Erforderlich Mindestens ein Element, das Teil dieses Feeds ist. Weitere Informationen finden Sie unten.

Das folgende Beispiel zeigt den Umschlag:

{
  "@context": "http://schema.googleapis.com",
  "dateModified": "2016-12-28T06:30:00:123-07:00",
  "@type": "DataFeed",
  "dataFeedElement": [
    /* All items that are part of this feed go here */
  ]
}

AdditiveDetails

Wenn Sie diesen Typ verwenden möchten, fügen Sie den gs1-Kontext hinzu: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Fügen Sie dann dem Typ des entsprechenden MenuItem oder MenuItemOption FoodBeverageTobaccoProduct hinzu.

In der folgenden Tabelle werden die Eigenschaften des Typs AdditiveDetails beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „AdditiveDetails“.
additiveName Text Optional Name des Zusatzes.
additiveLevelOfContainment Text Optional Begrenzungscode gemäß gs1:LevelOfContainmentCode. Beispiel: http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM oder http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

Das folgende Beispiel zeigt die Verwendung des Typs AdditiveDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/8",
  "name": "Energy Drink",
  "description": "A 0.25l can of energy drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-energy-drink",
    "price": "3.49",
    "priceCurrency": "USD"
  },
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AdditiveDetails",
      "additiveName": "phosphate",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

AddOnMenuItem

Ein Lebensmittel- oder Getränkeartikel, der in einem Add-on-Menüpunkt einer MenuItem aufgeführt ist.

In der folgenden Tabelle sind die Properties für den Typ AddOnMenuItem aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „AddOnMenuItem“.
@id URL Erforderlich Eine eindeutige Kennung für den Add-on-Menüpunkt.
name Text Erforderlich Text, der das AddOnMenuItem identifiziert, wenn ein Nutzer das Menü durchsucht.
description Text Optional Beschreibung des Add-on-Menüpunkts.
image URL Optional

Bild des Add-on-Menüpunkts, das den folgenden Richtlinien entspricht:

  • Seitenverhältnis 3:2
  • >
  • Mindestauflösung: 600 × 400 Pixel, 72 dpi
  • >
  • Empfohlene Auflösung: 1.400 × 960 Pixel, 72 dpi
offers Array von Offer Erforderlich*

Ein oder mehrere Angebote für dieses AddOnMenuItem.

Hier wird beschrieben, wann und zu welchem Preis dieses AddOnMenuItem verfügbar ist. Es sollte jeweils nur ein Angebot gültig sein. Sie können viele gültige Angebote haben, wenn sich der Preis oder die Verfügbarkeit je nach Tageszeit ändern kann. Wenn sich das Add-on oder der Artikel durch ein Basisattribut oder eine Variante des Add-on-Artikels selbst unterscheidet (z. B. kleine, mittlere und große Pommes als Add-on), verwenden Sie das hasMenuItemOption-Attribut.

Der Standardwert für Offer.eligibleQuantity ist 0 (Minimum) und 1 (Maximum).

Die folgenden Offer-Properties 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 von MenuItemOption Erforderlich*

Array von Basisattributen, die eine Variante des Zubehörartikels selbst beschreiben (z. B. kleine, mittlere und große Pommes als Zubehör), für diesen Menüpunkt. Mit den Optionen können Sie verschiedene Varianten für diesen Menüpunkt angeben. Das kann in zwei Fällen passieren:

  • Die Basisvariante bezieht sich auf das Add-on selbst (z. B. kleine, mittlere und große Pommes als Add-on).
  • Die Basisvariante des Menüpunkts, mit dem dieses Add-on verknüpft ist (z. B. zusätzlicher Käse als Add-on für eine große Pizza)
suitableForDiet Array von RestrictedDiet Optional Das Gericht entspricht der beschriebenen Ernährungseinschränkung (z. B. „GlutenFreeDiet“ oder „VeganDiet“). Dies ist eine Aufzählung der möglichen Werte.
nutrition NutritionInformation Optional Die Nährwertinformationen für das Gericht, insbesondere die Kalorien.
menuAddOn Array von AddOnMenuSection Optional Das AddOnMenuItem kann einen Menüabschnitt mit zulässigen Elementen enthalten, die als Add-on hinzugefügt werden können.

Im folgenden Beispiel wird AddOnMenuItem verwendet:

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small-pepperoni-pizza",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large-pepperoni-pizza",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ],
  "menuAddOn": [
    {
      "@type": "AddOnMenuSection",
      "name": "Choice of toppings",
      "@id": "https://www.example.com/1089/addon/1",
      "hasMenuItem": [
        {
          "@type": "AddOnMenuItem",
          "@id": "https://www.example.com/1089/addon/1/a",
          "name": "Shrimp",
          "hasMenuItemOptions": [
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],
              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-small",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-large",
                "price": "2.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-small",
                "price": "1.50",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-large",
                "price": "2.50",
                "priceCurrency": "USD"
              }
            }
          ]
        }
      ]
    }
  ]
}

AddOnMenuSection

Eine Untergruppe von Speisen oder Getränken als zusätzlicher Menübereich für den Menüpunkt.

In der folgenden Tabelle sind die Properties für den Typ AddOnMenuSection aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „AddOnMenuSection“.
@id URL Erforderlich Die eindeutige Kennung des Menübereichs.
name Text Erforderlich Text, mit dem der AddOnMenuSection identifiziert werden kann, wenn ein Nutzer das Menü durchsucht.
description Text Optional Beschreibung des Menübereichs.
eligibleQuantity QuantitativeValue Optional Gibt die Anzahl der Artikel an, die für diesen Menübereich als Add-on zulässig sind. Mit diesem Feld können Sie die Anzahl der Add-ons begrenzen, z. B. die Mindest- und Höchstzahl der Beläge, die auf einer Pizza ausgewählt werden können.
image URL Optional Bild des Menübereichs
hasMenuItem Array von AddOnMenuItem Erforderlich* Add-on-Menüpunkte in einem AddOnMenuSection.
offers Array von Offer Optional

Mit Offer.availabilityStarts und Offer.availabilityEnds kannst du den Zeitraum angeben, in dem dieser AddOnMenuSection verfügbar ist.

In der folgenden Liste sehen Sie, welche Offer-Properties in „AddOnMenuSection“ verwendet werden.

  • Offer.availabilityStarts optional
  • Offer.availabilityEnds optional
  • Offer.availableDay optional
  • Offer.validFrom optional
  • Offer.validThrough optional
hasMenuSection Array von AddOnMenuSection Erforderlich* Logische Untergruppe des Add-on-Menüs (z. B. „Abendessen“, „Vorspeisen“ oder „Fischgerichte“).
defaultOption Array von AddOnMenuItem Optional

Add-on-Menüpunkte, die standardmäßig für Nutzer in der AddOnMenuSection vorausgewählt werden sollen. Nutzer können die endgültigen Auswahlen ändern. Wenn kein defaultOption angegeben ist, wird kein AddOnMenuItem vorausgewählt.

Im hasMenuItem des AddOnMenuSection müssen AddOnMenuItem-Objekte vorhanden sein.

Die Anzahl der defaultOption darf die maximale eligibleQuantity der AddOnMenuSection nicht überschreiten.

numberOfFreeAddOns Zahl Optional Gibt an, wie viele Add-ons ein Nutzer kostenlos auswählen kann.

Die folgenden Beispiele enthalten AddOnMenuSection-Objekte:

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}
"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

Der Menüpunkt „Käsesandwich“ hat die Option „Käse auswählen“AddOnMenuSection, wobei „Emmentaler“ und „Mozzarella“ standardmäßig ausgewählt sind.

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "defaultOption": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a"
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b"
    }
  ],
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozzarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

AdvanceServiceDeliveryHoursSpecification

Stellt die Öffnungszeiten für die Auftragsausführung dar, zu denen Nutzer vorbestellte Lieferungen und Abholbestellungen planen können.

Normalerweise ist der Wert von opens kleiner als der Wert von closes. Für die Verwendung der Properties opens und closes gelten die folgenden Richtlinien:

  • Die Properties opens und closes sind für AdvanceServiceDeliveryHoursSpecification optional, werden aber dringend empfohlen.
  • Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem opens- oder closes-Wert keine Zeitzone hinzu. Angegebene Zeitzonen werden ignoriert.
  • Wenn opens und closes nicht explizit angegeben sind, gehen wir davon aus, dass die Vorbestellung an allen Tagen und zu allen Zeiten verfügbar ist.
  • Wenn opens und closes identisch sind, gehen wir davon aus, dass eine Vorbestellung nicht möglich ist.
  • Wenn opens größer als closes ist, wird die Schließungszeit für den nächsten Tag interpretiert. Wenn die Öffnungszeit beispielsweise auf den 1. Januar um 17:00 Uhr und die Schließungszeit auf 2:00 Uhr festgelegt ist, wird das Restaurant als am 2. Januar um 2:00 Uhr geschlossen interpretiert.
  • opens und closes beziehen sich auf den zukünftigen Zeitblock. closes ist ausschließend. Wenn opens beispielsweise 10:00 Uhr und closes 16:00 Uhr ist und serviceTimeInterval 15 Minuten beträgt, beginnt der erste Zeitblock um 10:00 Uhr und der letzte um 15:45 Uhr.

In der folgenden Tabelle werden die Eigenschaften des Typs AdvanceServiceDeliveryHoursSpecification beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „AdvanceServiceDeliveryHoursSpecification“.
validFrom DateTime Bedingt

Das Datum, ab dem Vorbestellungen von Nutzern ausgeführt werden können. Beispiel: „2017-05-01T00:00:00-07:00“.

Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist. Die Properties validFrom und validThrough dürfen entweder nicht vorhanden sein oder müssen zusammen vorhanden sein.

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

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

validThrough DateTime Optional

Das Enddatum, nach dem Vorbestellungen von Nutzern nicht mehr ausgeführt werden können. Beispiel: „2018-12-01T00:00:00-07:00“.

Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist. Die Properties validFrom und validThrough dürfen entweder nicht vorhanden sein oder müssen zusammen vorhanden sein.

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

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

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

opens Time Optional

Gilt für Liefer- oder Abholzeitfenster.

Die Uhrzeit, ab der die Vorbestellungen der Nutzer ausgeführt werden können. 6:30 Uhr wird beispielsweise als „T06:30:00“ angegeben.

Die Zeit muss in der lokalen Zeit angegeben werden. Fügen Sie einem opens-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, wird diese Information von Google ignoriert.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

closes Time Optional

Gilt für Liefer- oder Abholzeitfenster.

Die Uhrzeit, nach der Vorbestellungen von Nutzern nicht mehr ausgeführt werden können. 21:00 Uhr wird beispielsweise als „T21:00:00“ angegeben. closes> ist exklusiv. Wenn Sie also 21:00 Uhr für einen serviceTimeInterval von 15 Minuten festlegen, beginnt der letzte verfügbare Zeitblock um 20:45 Uhr.

Die Uhrzeit muss in der lokalen Zeit angegeben werden. Fügen Sie einem closes-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

dayOfWeek Array von DayOfWeek Optional

Wochentage, an denen die Lieferzeiten im Voraus festgelegt werden können. 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 Wartungszeiten.

Beispiel: Wenn opens und closes 8:00 Uhr und 20:00 Uhr sind und serviceTimeInterval 15 Minuten beträgt, kann der Nutzer Ausführungszeiten von 8:00 Uhr, 8:15 Uhr, 8:30 Uhr, 8:45 Uhr usw. bis 20:00 Uhr auswählen.

Duration muss als ISO 8601-Dauer angegeben werden. Beispiel: "P15M" steht für 15-minütige Intervalle.

advanceBookingRequirement QuantitativeValue Erforderlich

Anzahl der Minuten nach der Bestellzeit, zu der die Vorbestellung ausgeführt werden kann.

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

Wenn für die Bearbeitung einer Vorbestellung beispielsweise mindestens 60 Minuten erforderlich sind und die Bearbeitung nicht später als 2 Tage nach der Bestellung erfolgen darf, ist der Wert für min 60 und der Wert für max 2880.

Im folgenden Beispiel wird die Verwendung des Typs AdvanceServiceDeliveryHoursSpecification gezeigt:

{
  "@type": "AdvanceServiceDeliveryHoursSpecification",
  "opens": "T10:00:00",  // Delivery between 10AM and 7:59:59PM
  "closes": "T20:00:00",
  "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601)
  "advanceBookingRequirement": {
    "minValue": 60,   // The slot should be at least 60 mins away
    "maxValue": 8640, // but not more than 6 days away
    "unitCode": "MIN"
  }
}

AllergenDetails

Wenn Sie diesen Typ verwenden möchten, fügen Sie den gs1-Kontext hinzu: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Fügen Sie dann dem Typ des entsprechenden MenuItem oder MenuItemOption FoodBeverageTobaccoProduct hinzu.

In der folgenden Tabelle werden die Eigenschaften des Typs AllergenDetails beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „AllergenDetails“.
allergenType Text Optional Allergentyp gemäß gs1:AllergenTypeCode . z. B. http://gs1.org/voc/AllergenTypeCode-PEANUTS.
allergenLevelOfContainmentCode Text Optional Begrenzungscode gemäß gs1:LevelOfContainmentCode. Beispiel: http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM oder http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

Das folgende Beispiel zeigt die Verwendung des Typs AllergenDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/6",
  "name": "Strawberry joghurt drink",
  "description": "A 0.5l bottle of strawberry joghurt drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-joghurt-drink",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

DeliveryChargeSpecification

In der folgenden Tabelle werden die Eigenschaften des Typs DeliveryChargeSpecification beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „DeliveryChargeSpecification“.
@id URL Optional Kennung für die Lieferkostenspezifikation.
price Zahl Erforderlich Liefergesamtkosten in rein numerischer Form. Mit der Property priceCurrency können Sie den Währungstyp anstelle von Währungssymbolen angeben. Beispiel: „6,00“ ohne Währungssymbol.
priceCurrency Text Erforderlich Der dreistellige ISO 4217-Währungscode. Beispiel: „USD“.
eligibleTransactionVolume PriceSpecification Optional Das Transaktionsvolumen in einer Währungseinheit, für das diese Angabe zu Übermittlungsgebühren gilt. Sie können beispielsweise ein Mindestbestellvolumen angeben oder mitteilen, dass der Versand ab einem bestimmten Bestellvolumen kostenlos ist.
eligibleQuantity QuantitativeValue Optional Intervall und Maßeinheit der Bestellmengen, für die die Versandkostenpauschale gilt. So können Sie beispielsweise angeben, dass eine bestimmte Frachtpauschale nur für eine bestimmte Stückzahl gilt.
eligibleRegion Array von GeoShape oder Place oder GeoCircle Optional Der Ort oder die GeoShape/der GeoCircle für die geografisch-politischen Regionen, für die die Angebots- oder Versandkostenbeschreibung gültig ist. Verwenden Sie diese Property nur, wenn die Versandkosten je nach Region variieren.
validFrom DateTime Optional Datum und Uhrzeit (einschließlich Zeitzone), ab wann die angegebenen Versandkosten gültig sind. Beispiel: „2017-05-01T06:30:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
validThrough DateTime Optional Datum und Uhrzeit (einschließlich Zeitzone), nach dem die angegebene Versandkostenpauschale nicht mehr gültig ist. Beispiel: „2017-05-01T06:30:00-07:00“. Die Uhrzeit für validThrough ist exklusiv: Wenn diese Uhrzeit beispielsweise auf 18:00 Uhr festgelegt ist, ist sie bis 17:59:59 Uhr gültig. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

Die folgenden Beispiele zeigen DeliveryChargeSpecification-Elemente:

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}
"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]
"priceSpecification": [{
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
    "price": "8.00", // Charges $8 for area5
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00",
      "priceCurrency": "USD"
    },
    "eligibleRegion": [ // area5
      {
        "@type": "GeoCircle",
        "geoMidpoint": {
          "@type": "GeoCoordinates",
          "latitude": "37.7392607",
          "longitude": "-122.3895522"
        },
        "geoRadius": "4505"
      }
    ]
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
    "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00", // Minimum order price for delivery is $20
      "priceCurrency": "USD"
    }
  }
]

Zusätzlich zu "@type": ["DeliveryChargeSpecification"] kann das Objekt mit UnitPriceSpecification erweitert werden:

"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]

Die Erweiterung bietet zwei weitere Properties, die für die in Prozent berechneten Versandkosten erforderlich sind.

Attribut Typ Notwendigkeit Beschreibung
referenceQuantity QuantitativeValue Erforderlich Referenzmenge, für die ein bestimmter Preis gilt. Beispiel: Mit referenceQuantity mit dem Wert 10 und unitCode mit „P1“ ergibt sich ein Wert von 10% des Bestellwerts. Derzeit wird nur unitCode „P1“ unterstützt.
basePrice Zahl Optional Die Grundgebühr zusätzlich zu den referenceQuantity. Beispiel: Bei referenceQuantity = 10, unitCode = „P1“ und basePrice = 5 € ergibt sich ein Wert von 5 € + 10% des Bestellwerts. Der Standardwert ist 0.

Beispiele für Liefergebühren

Google ermöglicht es Ihnen, Nutzern mithilfe von Offer.PriceSpecification der Dienstentität vorab eine Vielzahl von Gebühren anzugeben.

Beachten Sie, dass die End-to-End-Bestellung derzeit nur eine DeliveryChargeSpecification unterstützt. Fassen Sie alle Arten von Gebühren in einer einzigen DeliveryChargeSpecification zusammen.

Beispiele für Servicefeeds: Hier erfahren Sie, wie Sie Liefergebühren basierend auf Region, Entfernung und Bestellwert angeben.

Wenn keine Gebühr anfällt, wird Offer.PriceSpecification weggelassen.

  • Beispiel 1: Versandkosten betragen 5% des Zwischensumme des Einkaufswagens
  • Beispiel 2: Liefergebühr beträgt 5 €
  • Beispiel 3: Die Versandkosten betragen 5 € + 10% des Zwischensumme des Einkaufswagens
  • Beispiel 4: Die Liefergebühr beträgt 5 € und die Tragetaschengebühr 0,1 €.
  • Beispiel 5: Die Liefergebühr beträgt 5% und die Bearbeitungsgebühr 2% des Zwischensumme des Einkaufswagens
  • Beispiel 6: Die Liefergebühr beträgt 5 € und 1 € pro zusätzlichem Kilometer
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "10.00", // 10%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "5.00" // User always pays $5 in addition to 10%
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "basePrice": 5.00, // User always pays $5
    "price": 1.00, // An additional $1.00 is added per 1km
    "priceCurrency": "USD",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "unitCode": "MTR", // MTR == meter
      "value": "1000.0" // 1km
    }
  }
]

GeoCircle

In der folgenden Tabelle werden die Eigenschaften des Typs GeoCircle beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „GeoCircle“.
geoMidpoint GeoCoordinates Erforderlich Gibt den GeoCoordinates in der Mitte eines GeoCircle an.
geoRadius Zahl Erforderlich Der ungefähre Radius (in Metern) eines GeoCircle.

Das folgende Beispiel zeigt ein GeoCircle-Element:

Beispiel
{
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": "37.7392607",
    "longitude": "-122.3895522"
  },
  "geoRadius": "4505"
}

GeoCoordinates

In der folgenden Tabelle werden die Eigenschaften des Typs GeoCoordinates beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „GeoCoordinates“.
latitude Zahl Erforderlich

Breitengrad in Grad Die Werte sind auf den Bereich von -90 bis 90 beschränkt. Wenn der angegebene Wert kleiner als -90 ist, wird er auf -90 gesetzt. Ist er größer als 90, wird er auf 90 gesetzt.

Er muss mit einer Genauigkeit von mindestens fünf Nachkommastellen angegeben werden.

longitude Zahl Erforderlich

Längengrad in Grad Werte außerhalb des Bereichs von -180 bis 180 werden so umgerechnet, dass sie in diesen Längengrad-Bereich fallen. Ein Wert von -190 wird beispielsweise in 170 umgewandelt. Ein Wert von 190 wird in -170 umgewandelt. Dies spiegelt die Tatsache wider, dass die Längengrade den Globus umrunden.

Er muss mit einer Genauigkeit von mindestens fünf Nachkommastellen angegeben werden.

Das folgende Beispiel zeigt ein GeoCoordinates-Element:

Beispiel
"geo": {
  "@type": "GeoCoordinates",
  "latitude": "35.7392607",
  "longitude": "-120.3895522"
}

GeoShape

In der folgenden Tabelle werden die Eigenschaften des Typs GeoShape beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „GeoShape“.
polygon Text-Array Erforderlich

Ein Polygon oder Mehrfachpolygon, das durch eine Reihe von drei oder mehr räumlich voneinander getrennten Punkten ausgedrückt wird. Es wird empfohlen, dass der erste und der letzte Punkt identisch sind, dies ist aber nicht erforderlich.

Jeder Punkt in einem Polygon oder Multipolygon wird durch einen Breitengradpunkt gefolgt von einem Längengradpunkt definiert. Außerdem müssen Sie die Punkte entgegen dem Uhrzeigersinn angeben.

In den meisten Fällen handelt es sich um ein einzelnes Polygon. Weitere Informationen zu komplexeren Anwendungsfällen finden Sie in der Dokumentation zum Lieferservicebereich.

Die folgenden Beispiele zeigen GeoShape-Elemente:

{
  "@type": "GeoShape", // area4
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
},
{
  "@type": "GeoShape", // A service area with a hole.
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": [ 37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058,
               37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729]
},
{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "areaServed": [
    {
      "@type": "GeoShape",  // Richmond District delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474"
    },
    {
      "@type": "GeoShape",  // Haight-Ashbury delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417"
    }  ],
...
},

In der folgenden Tabelle sind die Properties für den Typ Menu aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „Menü“.
@id URL Erforderlich Eindeutige Kennung für das Menü.
name Text Optional Text, der die Menu identifizieren kann, wenn ein Nutzer das Menü durchsucht.
description Text Optional Beschreibung des Menüs.
disclaimer MenuDisclaimer Optional Haftungsausschluss für das Menü. Dazu gehören beispielsweise die Offenlegung von Nährwertinformationen und Allergenen.
hasMenuSection Einzelnes Objekt oder Array von MenuSection Optional Logische Untergruppen der Speisekarte (z. B. Abendessen, Vorspeisen oder Fischgerichte).
hasMenuItem Einzelnes Objekt oder Array von MenuItem Optional MenuItem-Objekte, die in einem Menu enthalten sind, in der Regel, wenn das Menu nicht nach MenuSections unterteilt ist.
inLanguage Text Optional Die Sprache der Menüinhalte als Sprachcode aus dem IETF BCP 47-Standard. Zum Beispiel: "en-US".

In den folgenden Beispielen wird die Verwendung des Typs Menu gezeigt:

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "hasMenuSection": {
    "@type": "MenuSection",
    "@id": "http://www.provider.com/somerestaurant/menusection/1",
    "name": "Tacos",
    "description": "Tacos inspired by India cuisine.",
    "offers": {
      "@type": "Offer",
      "availabilityStarts": "T08:00:00", // Starts at 8:00AM
      "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM
    },
    "hasMenuItem": {
      "@type": "MenuItem",
      "@id": "http://www.provider.com/somerestaurant/menuitem/1",
      "name": "Aloo Gobi Taco",
      "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.",
      "offers": {
        "@type": "Offer",
        "sku": "offer-aloo-gobi-taco",
        "price": "3.50",
        "priceCurrency": "USD"
      },
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "170 Cal",
        "fatContent": "3 g",
        "fiberContent": "2 g",
        "proteinContent": "4 g"
      },
      "suitableForDiet": "http://schema.org/GlutenFreeDiet"
    }
  },
  "inLanguage": "English"
}

In diesem Beispiel wird hasMenuItem als Array dargestellt.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Main",
      "description": "Main course",
      "image": "http://www.provider.com/somerestaurant/main_dishes.jpg",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/1",
          "name": "Pizza",
          "description": "Pizza",
          "offers": {
            "@type": "Offer",
            "sku": "offer-pizza",
            "price": "7.49",
            "priceCurrency": "USD",
            "availabilityStarts": "T08:00:00", // Starts at 8:00AM
            "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
          }
        },
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/2",
          "name": "Pasta",
          "description": "Pasta",
          "offers": [
            {
              "@type": "Offer",
              "sku": "offer-pasta-lunch",
              "price": "7.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T08:00:00", // Starts at 8:00AM
              "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
            },
            {
              "@type": "Offer",
              "sku": "offer-pasta-dinner",
              "price": "10.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T18:00:00", // Starts at 6:00PM
              "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM
            }
          ]
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/2",
      "name": "Soups & Salads",
      "description": "Salads and a few choices of soup",
      "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/3",
        "name": "Pea Soup",
        "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-pea-soup",
          "price": "3.49",
          "priceCurrency": "USD"
        },
        "suitableForDiet": "http://schema.org/GlutenFreeDiet"
      }
    }
  ]
}

In diesem Beispiel wird hasMenuSection als Array dargestellt.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Dinner",
      "description": "Dinner dishes",
      "hasMenuSection": [
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/2",
          "name": "Starters",
          "description": "Appetizers and such",
          "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/1",
            "name": "Potato Skins",
            "description": "Small serving of stuffed potato skins.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-potato-skins",
              "price": "7.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/3",
          "name": "Soups & Salads",
          "description": "Salads and a few choices of soup",
          "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/2",
            "name": "Pea Soup",
            "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-pea-soup",
              "price": "3.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/4",
          "name": "Steak",
          "description": "Steak Dishes",
          "image": "https://steak.com/steak_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/3",
            "name": "Sirloin",
            "description": "Sirloin steak dish.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-sirloin-steak",
              "price": "15.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/5",
      "name": "Desserts",
      "description": "Dessert dishes.",
      "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/4",
        "name": "Chocolate Pie",
        "description": "A slice of chocolate pie.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chocolate-pie",
          "price": "3.49",
          "priceCurrency": "USD"
        }
      }
    }
  ]
}

Weitere Beispiele für Menu-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.

In der folgenden Tabelle sind die Properties für den Typ MenuDisclaimer aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „MenuDisclaimer“.
@id URL Erforderlich Eindeutige Kennung für den Haftungsausschluss im Menü.
text Text Erforderlich Text des Haftungsausschlusses Beispiel: „Der durchschnittliche Tagesenergiebedarf eines Erwachsenen beträgt 8.700 kJ.“
url URL Optional URL zu einer Seite mit weiteren Informationen zum Haftungsausschluss.

Das folgende Beispiel zeigt die Verwendung des Typs MenuDisclaimer:

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 Eigenschaften für den Typ MenuItem aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „MenuItem“.
@id URL Erforderlich Eindeutige Kennung des Menüpunkts.
name Text Erforderlich Text, der die MenuItem identifizieren kann, wenn ein Nutzer das Menü durchsucht.
description Text Optional Beschreibung des Menüpunkts.
image URL Optional

Bild des Menüpunkts. Beachten Sie die folgenden Richtlinien für Bilder:

  • Seitenverhältnis 3:2
  • Mindestauflösung: 600 × 400 Pixel, 72 dpi
  • Empfohlene Auflösung: 1.400 × 960 Pixel, 72 dpi
menuAddOn Array von AddOnMenuSection Optional Elemente in einem Menübereich, die dem Menüpunkt als Add-ons hinzugefügt werden können.
offers Array von Offer Erforderlich*

Ein oder mehrere Angebote zur Bereitstellung dieser MenuItem. Beschreibt, wann und zu welchem Preis diese MenuItem verfügbar ist. Es sollte jeweils nur ein Angebot gültig sein. Es können mehrere Angebote angegeben werden, wenn sich der Preis/die Verfügbarkeit je nach Tageszeit ändert. Wenn sich das Lebensmittel durch ein Basisattribut unterscheidet (z. B. Größe bei Pizza), verwenden Sie menuItemOption. Der Standardwert für Offer.eligibleQuantity ist mindestens 0, ohne Obergrenze.

In der folgenden Liste sehen Sie, 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 von MenuItemOption Erforderlich Liste der Basisoptionen/Varianten für diesen Menüpunkt. Mit Optionen sollten verschiedene Basisvarianten für den Artikel angegeben werden, z. B. klein, mittel und groß.
suitableForDiet Array von RestrictedDiet Optional Das Gericht entspricht der beschriebenen Ernährungseinschränkung (z. B. „http://schema.org/GlutenFreeDiet“ oder „http://schema.org/VeganDiet“). Dies ist eine Aufzählung der möglichen Werte.
nutrition NutritionInformation Optional Nährwertinformationen für das Gericht, insbesondere Kalorien.
hasAllergen AllergenDetails Optional Allergene des Gerichts pro gs1:AllergenDetails. Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Fügen Sie dem Typ der MenuItem FoodBeverageTobaccoProduct hinzu.
additive Array von AdditiveDetails Optional Die Zusatzstoffe des Gerichts pro gs1:AdditiveDetails. Dies ist eine Aufzählung der möglichen Werte. Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Fügen Sie dem Typ der MenuItem FoodBeverageTobaccoProduct hinzu.
packaging PackagingDetails Optional Die Verpackungs- und Recyclinginformationen dieses Artikels gemäß gs1:PackagingDetails. Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Fügen Sie dem Typ der MenuItem FoodBeverageTobaccoProduct hinzu.

Die folgenden Beispiele zeigen MenuItem-Elemente:

"hasMenuItem": {
  "@type": "MenuItem",
  "@id": "http://www.provider.com/bar/menuitem/1",
  "name": "Potato Skins",
  "description": "Small serving of stuffed potato skins.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-potato-skins",
    "price": "7.49",
    "priceCurrency": "USD"
  },
  "suitableForDiet": "http://schema.org/GlutenFreeDiet"
}
"hasMenuItem": [
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170067",
    "name": "Veg Grill Burrito",
    "offers": {
      "@type": "Offer",
      "sku": "offer-veg-grill-burrito",
      "price": "12.99",
      "priceCurrency": "USD"
    },
    "menuAddOn": {
      "@type": "AddOnMenuSection",
      "name": "Cheese",
      "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
      "eligibleQuantity":
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 2 // Maximum of 2 cheeses are allowed
      }
    }
  },
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170018",
    "name": "Chicken Taco",
    "offers": {
      "@type": "Offer",
      "sku": "offer-chicken-taco",
      "price": "6.99",
      "priceCurrency": "USD"
    }
  }
]
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}
{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/9",
  "name": "Ice Coffee",
  "offers": {
    "@type": "Offer",
    "sku": "offer-ice-coffee",
    "price": "3.99",
    "priceCurrency": "USD"
  },
  "nutrition": {
    "@type": "NutritionInformation",
    "description": "Contains preservatives and artificial flavor"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN"
    }
  ],
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ],
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.10",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
}

Weitere Beispiele für MenuItem-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.

Eine Option, um Optionen darzustellen, die ein Nutzer bei der Auswahl eines Gerichts oder einer Kombination treffen muss. Der Nutzer muss eine Option auswählen, andernfalls wird die Bestellung als ungültig betrachtet. Beispielsweise können Sie bei einer Pizza zwischen „Klein“, „Mittel“ und „Groß“ wählen.

Beispielanwendungsfälle für MenuItemOption finden Sie in unserem Leitfaden zur Anpassung mit MenuItemOption.

In der folgenden Tabelle sind die Properties für den Typ MenuItemOption aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „MenuItemOption“.
value PropertyValue Erforderlich PropertyValue mit einem Name/Wert-Paar, das die Option darstellt.
offers Array von Offer Erforderlich

Mindestens ein Angebot zur Bereitstellung dieser MenuItemOption. Hier wird beschrieben, wann und zu welchem Preis diese Menüpunktoption verfügbar ist. Es sollte jeweils nur ein Angebot gültig sein. Sie können mehrere gültige Angebote haben, wenn sich der Preis/die Verfügbarkeit je nach Tageszeit ändern kann. Verwenden Sie nicht Offer.eligibleQuantity. MenuItemOption schließt Offer.eligibleQuantity aus. Wenn also Offer.eligibleQuantity angegeben ist, wird es ignoriert.

In der folgenden Liste sehen Sie, 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 Elementen, die als Add-on hinzugefügt werden können. Verwenden Sie diese Option nur, wenn Add-ons für eine bestimmte Menüpunktoption spezifisch sind. Andernfalls können Sie Add-ons über die Property MenuItem.menuAddOn angeben.
suitableForDiet Array von RestrictedDiet Optional Aufzählungsliste, in der die Ernährungsformen angegeben sind, für die dieses Gericht den beschriebenen Ernährungseinschränkungen entspricht (z. B. „http://schema.org/GlutenFreeDiet“ oder „http://schema.org/VeganDiet“).
nutrition NutritionInformation Optional Nährwertinformationen für das Gericht, insbesondere Kalorien.
hasAllergen AllergenDetails Optional Allergene des Gerichts pro gs1:AllergenDetails. Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Fügen Sie dem Typ der MenuItemOption FoodBeverageTobaccoProduct hinzu.
additive Array von AdditiveDetails Optional Zusatzstoffe des Gerichts pro gs1:AdditiveDetails. Dies ist eine Aufzählung der möglichen Werte. Fügen Sie den GS1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Fügen Sie dem Typ der MenuItemOption FoodBeverageTobaccoProduct hinzu.
packaging PackagingDetails Optional Verpackungs- und Recyclinginformationen dieses Artikels gemäß gs1:PackagingDetails Fügen Sie den gs1-Kontext hinzu, um diese Property zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Fügen Sie dem Typ der MenuItemOption FoodBeverageTobaccoProduct hinzu.

Das folgende Beispiel zeigt MenuItemOption-Elemente:

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

Menübereich, der einen bestimmten Bereich im Menü darstellt. In der folgenden Tabelle sind die Properties für den Typ MenuSection aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „MenuSection“.
@id URL Erforderlich Die eindeutige Kennung des Menübereichs.
name Text Erforderlich Text, der die MenuSection identifizieren kann, wenn ein Nutzer das Menü durchsucht.
description Text Optional Beschreibung des Menübereichs.
hasMenuSection Array von MenuSection Optional Logische Untergruppe der MenuSection. Der Abschnitt „Abendessen“ kann beispielsweise mehrere untergeordnete Menübereiche wie „Geflügelgerichte“ oder „Vegetarisch“ haben.
hasMenuItem Array von MenuItem Optional Menüpunkte in einem MenuSection
offers Array von Offer Optional

Verwenden Sie Offer.availabilityStarts und Offer.availabilityEnds, um den Zeitraum anzugeben, in dem diese MenuSection ausgeliefert wird. Verwenden Sie nicht Offer.eligibleQuantity.

In der folgenden Liste sind die Offer-Properties aufgeführt, die in MenuSection verwendet werden:

  • Offer.availabilityStarts optional
  • Offer.availabilityEnds optional
  • Offer.availableDay optional
  • Offer.validFrom optional
  • Offer.validThrough optional
image URL Optional Bild des Menübereichs

Die folgenden Beispiele zeigen MenuSection-Entitäten:

{
  "@type": "MenuSection",
  "@id": "http://www.provider.com/bar/menusection/4",
  "name": "Steak",
  "description": "Steak Dishes",
  "image": "https://steak.com/steak_dishes.jpg",
  "hasMenuItem": {
    "@type": "MenuItem",
    "@id": "http://www.provider.com/bar/menuitem/3",
    "name": "Sirloin",
    "description": "Sirloin steak dish.",
    "offers": {
      "@type": "Offer",
      "sku": "offer-sirloin-steak",
      "price": "15.49",
      "priceCurrency": "USD"
    },
    "suitableForDiet": "http://schema.org/GlutenFreeDiet"
  }
}
"hasMenuSection": [
  {
    "@type": "MenuSection",
    "@id": "https://www.example.com/1089/categorization/25114480",
    "name": "Main Items",
    "hasMenuItem": [
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170067",
        "name": "Veg Grill Burrito",
        "offers": {
          "@type": "Offer",
          "sku": "offer-veg-grill-burrito",
          "price": "12.99",
          "priceCurrency": "USD"
        },
        "menuAddOn": {
          "@type": "AddOnMenuSection",
          "name": "Cheese",
          "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
          "eligibleQuantity":
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2 // Maximum of 2 cheeses are allowed
          }
        }
      },
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170018",
        "name": "Chicken Taco",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chicken-taco",
          "price": "6.99",
          "priceCurrency": "USD"
        }
      }
    ]
  },
  {
    "@type": "AddOnMenuSection",
    "@id": "https://www.example.com/1089/addon/1",
    "name": "AddOnCheese",
    "hasMenuItem": [
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/a",
        "name": "Swiss",
        "offers": {
          "@type": "Offer",
          "sku": "offer-swiss",
          "price": "2.99",
          "priceCurrency": "USD"
        }
      },
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/b",
        "name": "Mozarella",
        "offers": {
          "@type": "Offer",
          "sku": "offer-mozzarella",
          "price": "1.99",
          "priceCurrency": "USD"
        }
      }
    ]
  }
]

Weitere Beispiele für MenuSection-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.

NutritionInformation

In der folgenden Tabelle werden die Eigenschaften des Typs NutritionInformation beschrieben. Bei Maßeinheiten wird zwischen Groß- und Kleinschreibung unterschieden. „Cal“ ist beispielsweise zulässig, „cal“ jedoch nicht.

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „NutritionInformation“.
description Text Optional Nährwertangaben im Freitext Beispiel: „Enthält Konservierungsstoffe“.
calories Text Optional

Die Anzahl der Kalorien in Kalorien, Kilokalorien oder Kilojoule im folgenden Format:

number Cal_kcal_OR_kJ

Beispiel: „240 kcal“.

carbohydrateContent Text Optional

Die Menge an Kohlenhydraten, in der Regel in g, im folgenden Format:

number g_OR_mg

Beispiel: „7 g“.

cholesterolContent Text Optional

Die Cholesterinmenge, in der Regel in mg, im folgenden Format:

number g_OR_mg

Beispiel: „12 mg“.

fatContent Text Optional

Die Fettmenge, in der Regel in g, im folgenden Format:

number g_OR_mg

Beispiel: „42 g“.

fiberContent Text Optional

Die Anzahl der Gramm oder Milligramm an Ballaststoffen im folgenden Format:

number g_OR_mg
proteinContent Text Optional

Die Anzahl der Gramm oder Milligramm Protein im folgenden Format:

number g_OR_mg
saturatedFatContent Text Optional

Die Anzahl der Gramm oder Milligramm gesättigten Fetts 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

Die Anzahl der mg oder g Natrium im folgenden Format:

number g_OR_mg
sugarContent Text Optional

Die Anzahl der Gramm oder Milligramm Zucker im folgenden Format:

number g_OR_mg
transFatContent Text Optional

Die Anzahl der Gramm oder Milligramm Transfett im folgenden Format:

number g_OR_mg
unsaturatedFatContent Text Optional

Die Menge an ungesättigten Fetten, in der Regel in g, im folgenden Format:

number g_OR_mg

Die folgenden Beispiele zeigen ein NutritionInformation-Element:

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},
{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/7",
  "name": "Peach Ice Tea",
  "description": "A 0.5l bottle of peach ice tea.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-peach-ice-tea",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "nutrition": {
              "@type": "NutritionInformation",
              "description": "Contains preservatives and artificial flavor"
  }
},

Angebot

Angebot für ein Gericht In der folgenden Tabelle werden die Eigenschaften des Typs Offer beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dieser Wert ist immer „Angebot“.
sku Text Bedingt

Eindeutige Kennung des Angebots. Kann ein beliebiger Textwert sein, der innerhalb von Offer eindeutig ist. sku-Werte werden auf der Zahlungsseite und beim Senden als offerId in lineitem referenziert.

Dieses Attribut wird nur für die folgenden Angebotstypen verwendet:

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

Preis des angebotenen Artikels. Beispiel: „6,00“ ohne Währungssymbol.

Dieses Attribut ist nur für die folgenden Angebotstypen erforderlich:

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

Sie wird nicht für die folgenden Angebotstypen verwendet:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency Text Bedingt

Die Währung (im dreistelligen ISO 4217-Format) des Preises oder einer Preiskomponente, wenn sie mit „PriceSpecification“ und den zugehörigen Untertypen verknüpft ist.

Dieses Attribut ist nur für die folgenden Angebotstypen erforderlich:

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

Sie wird nicht für die folgenden Angebotstypen verwendet:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime oder Time Optional Das Datum und die Uhrzeit oder nur die Uhrzeit, ab der das Angebot verfügbar ist. Wenn Pfannkuchen beispielsweise ab 7:00 Uhr serviert werden, kann der Wert dieses Felds so aussehen: „2017-05-01T07:00:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
availabilityEnds DateTime oder Time Optional Das Datum und die Uhrzeit oder nur die Uhrzeit, zu der das Angebot nicht verfügbar ist. Diese Zeit ist exklusiv. Wenn die Verfügbarkeit von Pfannkuchen beispielsweise um 10:00 Uhr endet, kann der letzte Pfannkuchen um 9:59:59 Uhr serviert werden. Der Wert dieses Felds kann dann so aussehen: „2017-05-01T10:00:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
availableDay Array von DayOfWeek Optional

Wochentage, an denen dieser Artikel verfügbar ist. Gültige Werte sind:

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

Wenn die Verfügbarkeit für verschiedene Wochentage unterschiedlich ist, verwenden Sie mehrere Offer-Objekte, wie in den Beispielen unten gezeigt.

validFrom DateTime Optional

Das Datum und die Uhrzeit (einschließlich der Zeitzone), zu dem der angegebene Preis gilt. Beispiel: Die Pasta kostet zum Mittagessen 8 € und zum Abendessen 10 €. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

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

  • 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 denen der angegebene Preis nicht mehr gültig ist. Beispiel: Die Pasta kostet zum Mittagessen 8 € und zum Abendessen 10 €. Die Uhrzeit für validThrough ist exklusiv: Ist sie beispielsweise auf 18:00 Uhr festgelegt, ist sie bis 17:59:59 Uhr gültig. Weitere Informationen finden Sie unter Datums-/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
eligibleQuantity QuantitativeValue Optional

Die Bestellmengen, für die dieser Artikel zulässig ist. Ein Restaurant kann beispielsweise vorschreiben, dass für eine Lieferung mindestens 10 Pizzas bestellt werden müssen.

Dieser Wert ist optional. Standardmäßig gibt es keine Obergrenze, das Restaurant kann jedoch eine festlegen. Mindestlimits gelten nur, wenn ein Nutzer den Artikel auswählt.

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

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

Diese Property wird bei den folgenden Angebotstypen nicht verwendet.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating Optional

Die Gesamtbewertung, die auf einer Sammlung von Rezensionen oder Bewertungen des Artikels basiert.

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

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Diese Eigenschaft wird bei den folgenden Typen nicht verwendet.

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

Der aktuelle ungefähre Lagerbestand 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 Array von PaymentChargeSpecification Optional

Wenn es in Service.Offer verwendet wird, gibt es Details zum Preis der Lieferung an. Wenn mehrere DeliveryChargeSpecification-Objekte zutreffen, wird das spezifischeste angewendet. Verwenden Sie sich gegenseitig ausschließende DeliveryChargeSpecification-Objekte, um Unklarheiten 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 von Restaurant-IDs Optional

Stellt die Restaurants dar, in denen diese Offer angeboten wird.

Wenn nicht angegeben, wird diese 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 Textarray Optional

Der Diensttyp, der für diese Offer erfüllt wird. Mögliche Werte sind „DELIVERY“ oder „TAKEOUT“.

Wenn nicht angegeben, wird diese Offer sowohl für Lieferung als auch für Mitnahme erfüllt.

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 Verworfen Eindeutige Kennung des Angebots. Seit dem 25. April 2019 nicht mehr unterstützt. Ersetzen Sie den Parameter durch sku, wie oben beschrieben.

Die folgenden Beispiele zeigen Offer-Elemente:

Das folgende Beispiel zeigt ein einfaches Angebot:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD"
}

Das folgende Beispiel zeigt die Verfügbarkeit an Wochenenden von 8:00 bis 10:00 Uhr:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",  // Only available from 8-9:59:59 AM
  "availabilityEnds": "T10:00:00-07:00",
  "availableDay": ["Saturday", "Sunday"]  // Only on weekends.
}

Im folgenden Beispiel ist die Verfügbarkeit montags, mittwochs und freitags von 9:00 bis 10:59:59 Uhr und dienstags und donnerstags von 8:00 bis 11:59:59 Uhr angegeben:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T09:00:00-07:00",
  "availabilityEnds": "T11:00:00-07:00",
  "availableDay": ["Monday", "Wednesday", "Friday"]
}, {
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/141/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",
  "availabilityEnds": "T12:00:00-07:00",
  "availableDay": ["Tuesday", "Thursday"]
}

Im folgenden Beispiel ist die zulässige Menge für einen Menüpunkt festgelegt, sodass der Nutzer maximal zwei Portionen dieses Artikels bestellen kann:

{
  "@type": "AddOnMenuItem",
  "@id": "https://www.example.com/1089/addon/a",
  "name": "Ranch",
  "offers": {
    "@type": "Offer",
    "@id": "https://www.example.com/1089/addon/a/offer",
    "price": "2.99",
    "priceCurrency": "USD"
    "eligibleQuantity": {
         "@type": "QuantitativeValue",
         "maxValue": 2
     }
  }
}

Das folgende Beispiel zeigt ein Lieferangebot an einem bestimmten Standort:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD",
  "applicableFulfillmentMethods": ["DELIVERY"],
  "offeredBy": [
    {
      "@type": "Restaurant",
      "@id": "https://www.provider.com/location/1",
    }
  ]
}

OpeningHoursSpecification

Hier wird festgelegt, wann die Bestellung von Diensten möglich ist. Normalerweise ist der Wert von opens kleiner als der Wert von closes. Für die Verwendung der Properties opens und closes gelten die folgenden Richtlinien:

  • Die Properties opens und closes sind optional, werden aber dringend empfohlen, um anzugeben, wann eine Bestellung möglich ist. Am besten definieren Sie die verfügbaren Zeiten in einem deliveryHours-Array, das eine ServiceDeliveryHoursSpecification mit den Eigenschaften opens und closes enthält. Wenn Sie ein kürzeres Vororder-Fenster anbieten möchten, können Sie ein AdvanceServiceDeliveryHoursSpecification-Objekt mit eigenen opens- und closes-Attributen in deliveryHours einfügen.
  • Wenn opens und closes nicht explizit angegeben sind, gehen wir davon aus, dass der Bestellservice jeden Tag zu jeder Tageszeit verfügbar ist.
  • Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem opens- oder closes-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.
  • Wenn opens und closes übereinstimmen, gehen wir davon aus, dass das Restaurant 0 Minuten geöffnet ist.
  • Wenn opens größer als closes ist, wird die Schließungszeit für den nächsten Tag interpretiert. Wenn die Öffnungszeit beispielsweise auf den 1. Januar um 17:00 Uhr und die Schließungszeit auf 2:00 Uhr festgelegt ist, wird das Restaurant als am 2. Januar um 2:00 Uhr geschlossen interpretiert.
  • Die Zeit für closes ist exklusiv. Wenn die Öffnungszeiten für dieses Bestellfenster also auf 10:00 Uhr und 16:00 Uhr festgelegt sind, ist die letzte Bestellung um 15:59:59 Uhr möglich.

In der folgenden Tabelle werden die Eigenschaften des Typs OpeningHoursSpecification beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „OpeningHoursSpecification“.
@id URL Optional Kennung für die OpeningHoursSpecification.
dayOfWeek Array von DayOfWeek Optional

Der Wochentag, für den diese Öffnungszeiten gelten. Zulässige Werte sind „Montag“, „Dienstag“, „Mittwoch“, „Donnerstag“, „Freitag“, „Samstag“ und „Sonntag“. Beispiel:

"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]

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

opens Time Optional

Wenn diese Property in einer Restaurant-Spezifikation verwendet wird, gibt sie die Öffnungszeiten des Restaurants an den angegebenen Wochentagen an. Beispiel: 6:30 Uhr wird als „T06:30:00“ angegeben.

Wenn es in einer Service-Spezifikation verwendet wird, gibt es an, ab welcher Uhrzeit Bestellungen aufgegeben werden können. Sie gibt die Öffnungszeit an, zu der das Onlinesystem verfügbar ist und Nutzer Bestellungen aufgeben können. Innerhalb dieser Öffnungszeiten des Onlinesystems können Sie mit deliveryHours Öffnungszeiten angeben, zu denen Nutzer spezielle Lieferarten bestellen können.

Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem opens-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

closes Time Optional

Wenn diese Property in einer Service-Spezifikation verwendet wird, gibt sie die Uhrzeit an, nach der Bestellungen von Nutzern nicht mehr aufgegeben werden können. Sie gibt die Schließungszeit an, zu der das Onlinesystem aktiv ist und Nutzer Bestellungen aufgeben können. Innerhalb dieser Öffnungszeiten des Onlinesystems können Sie mit deliveryHours Öffnungszeiten angeben, an denen Nutzer spezielle Lieferarten bestellen können.

Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem closes-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

validFrom DateTime Optional

Wenn diese Property in einer Restaurant-Spezifikation verwendet wird, gibt sie das Datum an, an dem die mit opens und closes für das Restaurant angegebenen Öffnungszeiten gültig sind.

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

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

Wenn dieses Attribut in Ihrem Feed nicht angegeben ist, geht Google davon aus, dass das Restaurant oder der Dienst täglich geöffnet ist.

Neben dem Datum sind auch die Uhrzeit und die Zeitzone erforderlich.

Verwenden Sie für die Zeitzone die Zeitzone des Restaurants oder des Dienstes.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

validThrough DateTime Optional

Bei Verwendung in einer Restaurant ist dies das Datum, nach dem die mit opens und closes angegebenen Öffnungszeiten nicht mehr gültig sind.

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

In einer Service-Spezifikation gibt validThrough das Enddatum an, nach dem Bestellungen von Nutzern nicht mehr aufgegeben werden können.

Wenn dieses Attribut in Ihrem Feed nicht angegeben ist, geht Google davon aus, dass das Restaurant oder der Dienst täglich geöffnet ist.

Neben dem Datum sind auch die Uhrzeit und die Zeitzone erforderlich.

Verwenden Sie für die Zeitzone die Zeitzone des Restaurants oder des Dienstes.

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

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

deliveryHours Array von ServiceDeliveryHoursSpecification oder Array von AdvanceServiceDeliveryHoursSpecification Bedingt

Die Liefer- oder Abholzeit.

Dieser Parameter ist erforderlich, es sei denn, das Restaurant ist geschlossen. Das bedeutet, dass opens und closes festgelegt und gleich sind.

  • ServiceDeliveryHoursSpecification: Innerhalb der Öffnungszeiten können Sie „Öffnungszeiten“ und „Schließzeiten“ festlegen, zu denen Nutzer ASAP-Bestellungen aufgeben können.
  • AdvanceServiceDeliveryHoursSpecification: Innerhalb der Öffnungszeiten können Sie „Öffnungszeiten“ und „Schließzeiten“ festlegen, zu denen Nutzer Vorbestellungen aufgeben können.

Die folgenden Beispiele zeigen OpeningHoursSpecification-Elemente:

// Ordering times for Monday through Friday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      "@type": "AdvanceServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T12:00:00", // Advance ordering begins at noon
      "closes": "T23:59:59", // Advance ordering ends at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    },
    {
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T10:00:00", // ASAP ordering begins at 10AM
      "closes": "T14:00:00", // ASAP ordering ends at 2PM
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
},
// Ordering times for Saturday and Sunday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      // In this case advance orders are unavailable on Saturday and Sunday
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "T12:00:00", // ASAP orders start at noon
      "closes": "T23:59:59", // ASAP orders end at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
}
"hoursAvailable": {
  "@type": "OpeningHoursSpecification",
  "validFrom": "2016-02-01T00:00:00-07:00",
  "validThrough": "2016-03-01T00:00:00-07:00",
  "opens": "T08:00:00",  // Ordering begins at 8:00AM and ends at 6:00PM.
                         // ASAP and and advance orders are restricted to this
                         // time frame since the user won't be able to place
                         // orders outside of this window.
  "closes": "T18:00:00",
  "deliveryHours": {
    "@type": "ServiceDeliveryHoursSpecification",
    "deliveryLeadTime": {
      "@type": "QuantitativeValue",
      "value": "60",
      "unitCode": "MIN"
    }
  }
},
// List hours available for 2017 and 2018
"hoursAvailable": [
  {
    "@type": "OpeningHoursSpecification",
    // Array containing advance order hours for each day
    "deliveryHours": [
      {
        // Open 10:00AM to 9:29:59PM on Mondays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Monday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Tuesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Tuesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Wednesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Wednesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Thursdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "dayOfWeek": [
          "Thursday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Fridays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Friday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Saturdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Saturday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 11:00AM to 6:59:59PM on Sundays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Sunday"
        ],
        "opens": "T11:00:00",
        "closes": "T19:00:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      }
    ]
  }
],

PackagingDetails

Fügen Sie den GS1-Kontext hinzu, um diesen Typ zu verwenden: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Fügen Sie dem Typ von MenuItem oder MenuItemOption FoodBeverageTobaccoProduct hinzu.

In der folgenden Tabelle werden die Eigenschaften des Typs PackagingDetails beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „PackagingDetails“.
packagingRecyclingProcessType Text Optional Art des Verpackungsrecyclingverfahrens gemäß gs1:PackagingRecyclingProcessTypeCode. Beispiel: http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE oder http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails Optional Details zur Kaution für ein wiederverwendbares Paket gemäß gs1:ReturnablePackageDepositDetails. Für Flaschen und Dosen gibt es beispielsweise Pfand.

Das folgende Beispiel zeigt die Verwendung des Typs PackagingDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

PaymentChargeSpecification

In der folgenden Tabelle werden die Eigenschaften des Typs PaymentChargeSpecification beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „PaymentChargeSpecification“.
@id URL Optional Kennung für die PaymentChargeSpecification.
price Zahl Erforderlich Gesamtbetrag der Abbuchung. Beispiel: „6,00“ ohne Währungssymbol.
priceCurrency Text Erforderlich Der dreistellige ISO 4217-Währungscode des Preises. Beispiel: „USD“.
eligibleTransactionVolume PriceSpecification Optional Transaktionsvolumen in einer Währungseinheit, für die diese Zahlungsangaben gelten, z. B. für die Angabe eines Mindestbestellwerts.
eligibleQuantity QuantitativeValue Optional Die Bestellmengen, für die die Zahlungsbelastung gilt. Sie können diese Property beispielsweise verwenden, um eine Mindestbestellmenge festzulegen.
validFrom DateTime Optional Datum und Uhrzeit (einschließlich Zeitzone), zu dem die angegebene Zahlungsgebühr gültig wird. Beispiel: „2017-05-01T07:00:00-07:00“. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.
validThrough DateTime Optional Datum und Uhrzeit (einschließlich Zeitzone), zu dem die angegebene Abbuchung nicht gültig ist. Beispiel: „2017-05-01T07:30:00-07:00“. Die Uhrzeit für validThrough ist exklusiv: Wenn diese Uhrzeit beispielsweise auf 18:00 Uhr festgelegt ist, ist sie bis 17:59:59 Uhr gültig. Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

Das folgende Beispiel zeigt ein Element „PaymentChargeSpecification“:

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. Mit dieser Erweiterung stehen zwei weitere Properties für in Prozent berechnete Servicegebühren zur Verfügung.

Property Typ Notwendigkeit Beschreibung
referenceQuantity QuantitativeValue Erforderlich Referenzmenge, für die ein bestimmter Preis gilt. Beispiel: Mit referenceQuantity mit dem Wert 10 und unitCode mit „P1“ ergibt sich ein Wert von 10% des Bestellwerts. Derzeit wird nur unitCode „P1“ unterstützt.
basePrice Zahl Optional Die Grundgebühr zusätzlich zu den referenceQuantity. Beispiel: Bei referenceQuantity = 10, unitCode = „P1“ und basePrice = 5 € ergibt sich ein Wert von 5 € + 10% des Bestellwerts. Der Standardwert ist 0.

Beispiele für Gebühren für Datenexporte

Google ermöglicht es Ihnen, Nutzern mithilfe von Offer.PriceSpecification der Dienstentität vorab eine Vielzahl von Gebühren anzugeben.

Derzeit wird nur eine PaymentChargeSpecification unterstützt. Alle Arten von Gebühren in einer einzigen PaymentChargeSpecification zusammenfassen

Wenn keine Gebühr anfällt, wird Offer.PriceSpecification weggelassen.

  • Beispiel 1: Die Servicegebühr beträgt 5% des Warenkorbgesamtbetrags
  • Beispiel 2: Die Servicegebühr beträgt 5 €
  • Beispiel 3: Die Tragetaschengebühr beträgt 0,10 €, die Servicegebühr 5% des Warenkorbgesamtbetrags.
  • Beispiel 4: Tragetaschengebühr 0,10 € und Servicegebühr 1,00 €
  • Beispiel 5: Die Servicegebühr beträgt 5% und das erforderliche Trinkgeld 10% des Warenkorbgesamtbetrags
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Ort

In der folgenden Tabelle werden die Eigenschaften des Typs Place beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „Ort“.
address PostalAddress Erforderlich Adresse eines Orts.

Das folgende Beispiel zeigt ein Ortselement:

Beispiel
{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

PostalAddress

In der folgenden Tabelle werden die Eigenschaften des Typs PostalAddress beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „PostalAddress“.
addressLocality Text Erforderlich* Der Ort oder die Stadt. Beispiel: „San Francisco“.
addressRegion Text Erforderlich* Die Region oder der Bundesstaat. Beispiel: „CA“.
postalCode Text Erforderlich* Die Postleitzahl. Beispiel: „94102“.
streetAddress Text Optional Die Adresse. Beispiel: „1600 Amphitheatre Pkwy“.
addressCountry Text Erforderlich Zweistelliger Ländercode nach ISO 3166-1 Alpha-2 . Beispiel: „DE“.

Lieferanbieter können diese Unterkünfte auflisten, um ein Service.areaServed anzugeben, in dem ein Dienst erbracht wird.

Bei Verwendung in Restaurant.address sind alle in PostalAddress aufgeführten Properties erforderlich.

Das folgende Beispiel zeigt ein PostalAddress-Element:

Beispiel
"address": {
  "@type": "PostalAddress",
  "streetAddress": "12345 Bar Avenue",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94124",
  "addressCountry": "US"
},

PriceSpecification

In der folgenden Tabelle werden die Eigenschaften des Typs PriceSpecification beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „PriceSpecification“.
@id URL Optional Kennung für die PriceSpecification.
minPrice Zahl Optional Der niedrigste Preis, wenn es sich um einen Preisbereich handelt.
maxPrice Zahl Optional Der höchste Preis, wenn es sich um eine Preisspanne handelt.
priceCurrency Text Erforderlich Der dreistellige ISO 4217-Währungscode des Preises. Beispiel: „USD“.
eligibleQuantity QuantitativeValue Optional Die Bestellmengen, für die die Preisangabe gilt. Der Preis könnte beispielsweise 2 € pro Kilogramm oder 2 Artikel für einen Euro betragen.

Das folgende Beispiel zeigt ein PriceSpecification-Element:

"eligibleTransactionVolume": {
  "@type": "PriceSpecification",
  "minPrice": "20.00", // Minimum order price for delivery is $20
  "priceCurrency": "USD"
}

PropertyValue

Property-Wert-Paar, das zum Beschreiben von Optionen in MenuItemOption verwendet wird.

In der folgenden Tabelle sind die Properties für den Typ PropertyValue aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „PropertyValue“.
name Text Erforderlich

Name oder Typ der Option.

Die folgenden Namen sind in MenuItem zulässig:

  • „SIZE“: Größe der MenuItem. Beispiel: „Klein“, „Mittel“ oder „Groß“.
  • „OPTION“: Alle anderen Varianten als Größe (z. B. ein Gericht, das entweder als Salat oder als Sandwich angeboten wird). Wenn Sie nicht zwischen „SIZE“ und „OPTION“ unterscheiden können, verwenden Sie „OPTION“.

Gültige Namen für die Verwendung in AddOnMenuItem:

  • „APPLICABLE_ITEM_OPTION“: Eine Option für das Add-on, die nur gilt, wenn sie mit MenuItem und der entsprechenden „SIZE/OPTION“ verwendet wird.
  • „PIZZA_SIDE“: Dieses Add-on ist nur für Pizzen gültig und nur für eine Portion/eine ganze Pizza (z. B. Pilze auf der linken oder rechten Seite oder auf der ganzen Pizza).
  • „SIZE“: Eine Option, um die Größe des Add-ons anzugeben (z. B. große Pommes als Add-on für ein Menü).
  • „OPTION“: Alle anderen Varianten außer 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 beliebige Strings sein und werden unverändert angezeigt. Folgende Werte sind zulässig:

  • „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 muss in einer der entsprechenden „OPTION/SIZE“-Auswahlmöglichkeiten für die „menuItemOptions“ des übergeordneten Elements MenuItem vorhanden sein.

QuantitativeValue

In der folgenden Tabelle werden die Eigenschaften des Typs QuantitativeValue beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „QuantitativeValue“.
value Zahl Optional Der Wert des Knotens „Quantitativer Wert“ oder „Eigenschaftswert“.
unitCode Text oder URL Optional

Die Maßeinheit als UN/CEFACT Common Code oder URL.

Andere Codes als der UN/CEFACT-Allgemeincode können mit einem Präfix und einem Doppelpunkt verwendet werden.

maxValue Zahl Optional Der Höchstwert einer Eigenschaft oder eines Merkmals.
minValue Zahl Optional Der untere Wert einer Eigenschaft oder eines Merkmals.

In den folgenden Beispielen wird die Verwendung des Typs QuantitativeValue gezeigt:

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}
"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}
"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

Restaurant

In der folgenden Tabelle sind die Properties für den Typ Restaurant aufgeführt:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dieser Wert ist immer „Restaurant“.
@id URL Erforderlich Eindeutige Kennung des Restaurants oder Lieferservice. Beispiel: „http://www.anbieter.de/326“, wobei „326“ die eindeutige Kennung des Restaurants ist.
name Text Erforderlich Text, mit dem sich die Restaurant während des Bestellvorgangs identifizieren lässt.
url URL Erforderlich URL in Ihrer Domain, die das Restaurant repräsentiert. Beispiel: „http://www.anbieter.de/ein-restaurant“.
sameAs URL Optional Die offizielle Website des Restaurants. Beispiel: „http://www.beispielrestaurant.de“.
email Text Optional E-Mail-Adresse des Restaurants.
description Text Optional Beschreibung des Restaurants.
telephone Text Erforderlich

Telefonnummer im folgenden Format:

"[+][country_code][phone_#_with_area_code]"

Beispiel: „+16501234567“.

priceRange Text Optional Eine Preisspanne. Beispiel: „$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive).
logo URL Optional Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png".
image URL Optional Image of the restaurant.
servesCuisine Array of Text Optional Food types that are served at the restaurant. For example, ["sushi","Asian fusion"].
address PostalAddress Required* Address of the restaurant.
geo GeoCoordinates Optional* Geographic coordinates of the restaurant.
suitableForDiet Array of RestrictedDiet Optional Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list.
aggregateRating AggregateRating Optional Overall rating, based on a collection of reviews or ratings of the restaurant.
additionalProperty Array of name value string pairs Optional

A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n".

For example "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":
    "+16501234567", // Country code (+1) is required
  "servesCuisine": [
    "Indian-Mexican Fusion"
  ]
},
  
  

Beispiel 2

{
  "@type": "Restaurant",
  "@id": "http://www.example.com/threebrotherstacos",
  "name": "Three Brothers Tacos",
  "address": {
        "@type": "PostalAddress",
        "addressLocality": "Mountain View",
        "addressRegion": "CA",
        "postalCode": "94041",
        "streetAddress": "123 Foo St",
        "addressCountry": "US"
  },
  "additionalProperty": [
    {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"}
  ]
}

Weitere Beispiele für Restaurant-Entitäten finden Sie unter Beispiele für Restaurant- und Menüfeeds.

ReturnablePackageDepositDetails

Wenn Sie diesen Typ verwenden möchten, fügen Sie den GS1-Kontext hinzu: „@context“:

["http://gs1.org/voc/", "http://schema.org"]

Fügen Sie dann dem Typ des entsprechenden MenuItem oder MenuItemOption FoodBeverageTobaccoProduct hinzu.

In der folgenden Tabelle werden die Eigenschaften des Typs ReturnablePackageDepositDetails beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „ReturnablePackageDepositDetails“.
returnablePackageDepositAmount gs1:PriceSpecification Optional Die Höhe der Anzahlung für diesen Artikel gemäß gs1:PriceSpecification. Beispiel: 0, 25 $ Pfand pro Dose.

Das folgende Beispiel zeigt die Verwendung des Typs ReturnablePackageDepositDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

Dienst

Beschreibt die Lieferung einer Bestellung – Ende-zu-Ende-Aktion – von einem Restaurant an einen geografischen Standort durch ein Lieferunternehmen.

In der folgenden Tabelle werden die Eigenschaften des Typs Service beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich

Der Feedtyp.

  • Service: Verwenden Sie diesen Typ für alle aktiven Dienstfeeds.
  • DisabledService: Verwenden Sie diesen Typ nur, wenn Sie eine Dienstentität aufgrund eines unerwarteten Ereignisses deaktivieren müssen und nicht wissen, wann der Dienst wiederhergestellt wird.
@id URL Erforderlich Kennung für den Fulfillment-Dienst. Beispiel: „http://www.anbieter.de/service/1“.
description Text Optional Beschreibung des Artikels.
serviceType Text Erforderlich Art der angebotenen Dienstleistung. Mögliche Werte sind „DELIVERY“ oder „TAKEOUT“.
provider Restaurant Erforderlich Ein Verweis auf die eindeutige Kennung des Restaurants. Beispiel: „http://www.anbieter.de/ein-restaurant“.
areaServed Array von GeoShape, Place oder GeoCircle Bedingt Geografisches Gebiet, in dem ein Dienst erbracht wird. Dieses Feld ist standardmäßig optional, aber erforderlich, wenn serviceType „DELIVERY“ (LIEFERUNG) ist.
hoursAvailable Array von OpeningHoursSpecification Erforderlich Öffnungszeiten des Geschäftsstandorts
specialOpeningHoursSpecification Array von OpeningHoursSpecification, ServiceDeliveryHoursSpecification oder AdvanceServiceDeliveryHoursSpecification Optional

Zeiten, die die allgemeineren OpeningHoursSpecification oder die Erfüllungszeiten überschreiben. In der Regel verwenden Sie dieses Feld, um Feiertage und andere Arten von vorübergehenden Schließungen oder Änderungen der Öffnungszeiten zu definieren.

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

offers Array von Offer Bedingt

Details zum Lieferangebot für ein bestimmtes Restaurant. Dieses Feld ist standardmäßig optional, aber erforderlich, wenn serviceType „DELIVERY“ ist.

Das Attribut Offer.priceSpecification ist im Bereich „Dienst“ optional. Hier werden keine anderen Offer-Properties verwendet.

hasOfferCatalog [Menu, OfferCatalog] Erforderlich

Gibt ein Menü für diesen Dienst an. Sie können für jeden Ihrer angebotenen Services (z. B. Essen zum Mitnehmen, Lieferung und Catering) ein eigenes Menü haben.

Sie müssen sowohl Menu als auch OfferCatalog für den Typ angeben. Beispiel:

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty Array von {name, value} Optional

Optionale Informationen zur Dienstkonfiguration. Elemente müssen ein Objekt mit dem Schlüssel name sein, der dem optionalen Feldnamen entspricht. Der Schlüssel value ist ein kontextbezogener Wert für das Feld.

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

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

Enthält eine URL für einen Liefer-/Abholservice, die während der Migration von der End-to-End-Bestellfunktion zur Weiterleitung verwendet wird. Beispiel: „potentialAction“: { „url“: „https://fopatestagent.com/ordering/restaurant-1/delivery“ }

Das folgende Beispiel zeigt die Verwendung des Diensttyps:

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

Die Stunden, in denen Nutzer Bestellungen für Lieferung und Abholung planen können, die so schnell wie möglich ausgeführt werden sollen.

Normalerweise ist der Wert von opens kleiner als der Wert von closes. Für die Verwendung der Properties opens und closes gelten die folgenden Richtlinien:

  • Die Properties opens und closes sind für ServiceDeliveryHoursSpecification optional, werden aber dringend empfohlen.
  • Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem opens- oder closes-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, werden die Zeitzoneninformationen von Google ignoriert.
  • Wenn opens und closes nicht explizit angegeben sind, gehen wir davon aus, dass die Bestellung so schnell wie möglich jeden Tag und jederzeit verfügbar ist.
  • Wenn opens und closes übereinstimmen, gehen wir davon aus, dass eine Lieferung „So bald wie möglich“ nicht verfügbar ist.
  • Wenn opens größer als closes ist, wird die Schließungszeit für den nächsten Tag interpretiert. Wenn die Öffnungszeit beispielsweise auf den 1. Januar um 17:00 Uhr und die Schließungszeit auf 2:00 Uhr festgelegt ist, wird das Restaurant als am 2. Januar um 2:00 Uhr geschlossen interpretiert.

In der folgenden Tabelle werden die Eigenschaften des Typs ServiceDeliveryHoursSpecification beschrieben:

Attribut Typ Notwendigkeit Beschreibung
@type Text Erforderlich Dies ist immer „ServiceDeliveryHoursSpecification“.
validFrom DateTime Optional

Datum und Uhrzeit (einschließlich Zeitzone), zu der die ASAP-Bestellungen der Nutzer ausgeführt werden können. Beispiel: „2017-05-01T07:00:00-07:00“. Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

validThrough DateTime Optional

Datum und Uhrzeit (einschließlich Zeitzone), nach dem Bestellungen mit dem Zusatz „Sofort“ nicht mehr ausgeführt werden können. Beispiel: „2017-05-01T07:00:00-07:00“. Wenn diese Property nicht festgelegt ist, wird davon ausgegangen, dass sie jeden Tag gültig ist.

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

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

opens Time Optional

Die Uhrzeit, zu der der Lieferservice für die Lieferung von Bestellungen mit dem Zusatz „Sofort“ beginnt. Beispiel: „T10:30:00“.

Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem opens-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

closes Time Optional

Die Uhrzeit, zu der der Lieferservice für Bestellungen von Nutzern, die so bald wie möglich geliefert werden sollen, nicht mehr verfügbar ist. Beispiel: „T23:59:59“.

Die Zeit für closes ist exklusiv. Wenn Sie also die Öffnungszeiten für diese ServiceDeliveryHoursSpecification auf 10:00 Uhr und 16:00 Uhr festlegen, ist 16:59:59 Uhr die letzte Bestellung.

Die Uhrzeit muss in der Ortszeit für den Dienst angegeben werden. Fügen Sie einem closes-Wert keine Zeitzone hinzu. Wenn eine Zeitzone angegeben ist, ignoriert Google diese Informationen.

Weitere Informationen finden Sie unter Datums-/Uhrzeitformate.

dayOfWeek Array von DayOfWeek Optional

Wochentage, an denen dieser Service für die Bestellungen von Nutzern verfügbar ist. Folgende Werte sind zulässig:

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

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

deliveryLeadTime QuantitativeValue Optional Geschätzte Lieferdauer in Minuten nach der Bestellung. Wir empfehlen dringend, diese Property festzulegen. Legen Sie für das Feld value von QuantitativeValue die Anzahl der Minuten und für unitCode den Wert „MIN“ fest.

Das folgende Beispiel zeigt ein ServiceDeliveryHoursSpecification-Element:

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "value": "60", // If no exact deliveryLeadTime, put a maximum time
    "unitCode": "MIN"
  }
},
{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

Enums

RestrictedDiet

Der Typ RestrictedDiet hat folgende mögliche Werte:

  • http://schema.org/DiabeticDiet
  • http://schema.org/GlutenFreeDiet
  • http://schema.org/HalalDiet
  • http://schema.org/HinduDiet
  • http://schema.org/KosherDiet
  • http://schema.org/LowCalorieDiet
  • http://schema.org/LowFatDiet
  • http://schema.org/LowLactoseDiet
  • http://schema.org/LowSaltDiet
  • http://schema.org/VeganDiet
  • http://schema.org/VegetarianDiet