Schéma d'inventaire v1

Les flux du catalogue alimentaire sont basés sur schema.org DataFeed. entités. Un flux de catalogue alimentaire comprend des informations sur les paramètres régionaux du restaurant, comme le l'adresse, le menu et l'emplacement du restaurant, ainsi que le service proposé des détails tels que les frais de livraison, les zones de livraison et d'autres articles tels que spécifiés ci-dessous.

Un DataFeed contient une collection d'éléments, chacun représentant un seul élément. exprimé dans le vocabulaire schema.org. Vous pouvez utiliser l'DataFeed pour publier toutes vos données structurées au format JSON-LD.

Pour savoir comment utiliser ces spécifications pour créer vos flux, consultez les Présentation de l'intégration de l'inventaire

Formats de date et d'heure

DateTime est basé sur le type schema.org, Sauf mention contraire, doivent respecter le format ISO 8601 et inclure les la date, l'heure et le fuseau horaire. Utilisez la syntaxe suivante pour DateTime:

// DateTime format:
YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]

Exemple :

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 est l'heure locale d'un restaurant donné. le fuseau horaire de l'emplacement de service, est également basé sur le type schema.org et doit également au format ISO 8601. L'heure utilise la syntaxe suivante:

// Time format:
THH:MM:SS

Exemple :

T08:08:00 // 8:08 AM

Notez les points suivants chaque fois que vous spécifiez un DateTime ou un Time:

  • Le "T" avant l'heure fait partie du format et est obligatoire.
  • Le fuseau horaire doit être spécifié pour DATETIME. Il n'est pas obligatoire pour TIME.
  • L'heure doit être spécifiée dans l'heure locale du restaurant ou du service.

Enveloppe

Le code de départ de tout flux de catalogue alimentaire doit contenir une "enveloppe" .

L'enveloppe correspond à la structure de premier niveau de chaque flux. Il doit s'agir DataFeed avec les propriétés suivantes:

Propriété Type Nécessité Description
@context URL Obligatoire Contexte utilisé généralement "http://schema.googleapis.com".
@type Texte Obligatoire Il s'agit toujours de "DataFeed".
dateModified DateTime Obligatoire

Dernière modification (DateTime) du flux de données, au format ISO 8601 .

Date et heure, au format ISO_OFFSET_DATE_TIME, auxquelles les éléments de ce flux ont été modifiés. En l'absence de ce champ, on considère que cette heure de mise à jour correspond à l'heure de réception du message push (ou lors de l'exploration) sur les serveurs Google.

Nous vous recommandons vivement de le faire si vous utilisez à la fois la méthode push et à explorer ensemble. Cet horodatage doit être spécifié avec un fuseau horaire en millisecondes, Exemple : "2016-12-28T06:30:00:123-07:00".

Dans vos flux par lot, la macro entity la gestion des versions est déterminée via la dateModified dans l'enveloppe du flux.

dataFeedElement Tableau de Menu ou Restaurant ou Service Obligatoire Un ou plusieurs éléments de ce flux. Voir ci-dessous pour plus de détails.

L'exemple suivant montre l'enveloppe:

Exemple

{
  "@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

Pour utiliser ce type, ajoutez le contexte gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Ajoutez ensuite FoodBeverageTobaccoProduct au type de MenuItem approprié. ou MenuItemOption.

Le tableau suivant décrit les propriétés du type AdditiveDetails:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "AdditiveDetails".
additiveName Texte Facultatif Nom de l'additif.
additiveLevelOfContainment Texte Facultatif Code de structuration par gs1:LevelOfContainmentCode Par exemple http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ou http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN

L'exemple suivant illustre l'utilisation du type 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

Un aliment ou une boisson listé dans un élément de menu complémentaire d'un MenuItem.

Le tableau suivant répertorie les propriétés du type AddOnMenuItem:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "AddOnMenuItem".
@id URL Obligatoire Identifiant unique de l'élément de menu du module complémentaire.
name Texte Obligatoire Texte qui identifie l'élément AddOnMenuItem lorsqu'un utilisateur parcourt le .
description Texte Facultatif Description de l'élément de menu du module complémentaire.
image URL Facultatif

Image de l'élément de menu du module complémentaire qui correspond aux consignes suivantes:

  • Proportions 3:2
  • >
  • Résolution minimale : 600 x 400 pixels, 72 ppp
  • >
  • Résolution recommandée : 1 400 x 960 pixels, 72 ppp
offers Tableau de Offer Obligatoire*

Une ou plusieurs offres pour fournir cet AddOnMenuItem.

Décrit quand et à quel prix cet AddOnMenuItem est disponible. Une seule offre doit être valide à la fois. Vous pouvez avoir de nombreuses offres valides si le prix ou la disponibilité peuvent varier l'heure de la journée. Lorsque le module complémentaire ou l'article diffère par un attribut de base ou une variante du module complémentaire lui-même (petit, moyen ou grand, par exemple). les frites en option), utilisez l'hasMenuItemOption .

La valeur par défaut pour Offer.eligibleQuantity est minimale de 0, au maximum de 1.

Les propriétés Offer suivantes sont utilisées dans AddOnMenuItem:

  • Minimum requis : Offer.sku
  • Minimum requis : Offer.price
  • Minimum requis : Offer.priceCurrency
  • Offer.availabilityStarts facultatif
  • Offer.availabilityEnds facultatif
  • Offer.availableDay facultatif
  • Offer.validFrom facultatif
  • Offer.validThrough facultatif
  • Offer.eligibleQuantity facultatif
  • Offer.inventoryLevel facultatif
hasMenuItemOptions Tableau de MenuItemOption Obligatoire*

Tableau d'attributs de base décrivant une variante du module complémentaire (petites, moyennes et grandes frites en accompagnement, par exemple), élément de menu du module complémentaire. Utiliser des options pour définir les différentes variantes disponibles pour cet élément de menu du module complémentaire. Il existe deux scénarios dans lesquels cela peut se produire:

  • La variante de base concerne le module complémentaire lui-même (petit, frites moyennes et grandes en accompagnement)
  • Variante de base de l'élément de menu associé à ce module complémentaire (par exemple, du fromage supplémentaire pour accompagner une grande pizza)
suitableForDiet Tableau de RestrictedDiet Facultatif Le plat respecte la restriction alimentaire décrite (par exemple, "Régime Sans gluten" ou « Régime végétalien »). Il s'agit d'une liste énumérée des valeurs.
nutrition NutritionInformation Facultatif Informations nutritionnelles du plat, en particulier les calories.
menuAddOn Tableau de AddOnMenuSection Facultatif AddOnMenuItem peut avoir une section de menu composée d'éléments autorisés que vous pouvez ajouter en tant que module complémentaire.

L'exemple suivant montre AddOnMenuItem:

Exemple 1

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

Exemple 2

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

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

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

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

AddOnMenuSection

Sous-groupe d'aliments ou de boissons comme section de menu complémentaire pour le l'élément de menu.

Le tableau suivant répertorie les propriétés du type AddOnMenuSection:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "AddOnMenuSection".
@id URL Obligatoire Identifiant unique de la section du menu.
name Texte Obligatoire Texte pouvant identifier l'AddOnMenuSection lorsqu'un utilisateur parcourt la .
description Texte Facultatif Description de la section de menu.
eligibleQuantity QuantitativeValue Facultatif Indique le nombre d'éléments autorisés en tant que module complémentaire pour ce menu . Vous pouvez utiliser ce champ pour limiter le nombre de modules complémentaires, par exemple nombre minimal et maximal de garnitures que vous pouvez choisir sur une pizza.
image URL Facultatif Image de la section de menu.
hasMenuItem Tableau de AddOnMenuItem Obligatoire* Éléments de menu du module complémentaire contenus dans une AddOnMenuSection.
offers Tableau de Offer Facultatif

Utiliser Offer.availabilityStarts et Offer.availabilityEnds pour indiquer la période pendant laquelle cet AddOnMenuSection est disponible.

La liste ci-dessous indique Offer d'établissements utilisée dans AddOnMenuSection.

  • Offer.availabilityStarts facultatif
  • Offer.availabilityEnds facultatif
  • Offer.availableDay facultatif
  • Offer.validFrom facultatif
  • Offer.validThrough facultatif
hasMenuSection Tableau de AddOnMenuSection Obligatoire* Sous-groupes logiques du menu des modules complémentaires (comme Dîner, Apéritifs ou Plats de poisson.
defaultOption Tableau de AddOnMenuItem Facultatif

Éléments de menu complémentaires à présélectionner par défaut pour les utilisateurs du AddOnMenuSection Les utilisateurs peuvent modifier les sélections finales. Si aucun élément defaultOption n'est spécifié, aucun AddOnMenuItem est présélectionné.

Les objets AddOnMenuItem doivent exister dans le hasMenuItem sur AddOnMenuSection.

Le nombre d'defaultOption ne peut pas dépasser le maximum eligibleQuantity sur AddOnMenuSection.

numberOfFreeAddOns Nombre Facultatif Indique le nombre de modules complémentaires qu'un utilisateur peut sélectionner sans frais.

Les exemples suivants incluent des objets AddOnMenuSection:

Exemple 1

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

Exemple 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

Exemple 3

Un "sandwich au fromage" l'élément de menu a un "Choix du fromage" AddOnMenuSection avec "Swiss" et "mozzarella" présélectionné par défaut.

{
  "@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

Représente les heures de traitement pour lesquelles les utilisateurs doivent planifier des commandes à l'avance pour livraison et vente à emporter.

En général, la valeur de opens est inférieure à la valeur de closes. La Les consignes suivantes s'appliquent à l'utilisation des propriétés opens et closes:

  • Les propriétés opens et closes sont facultatives pour AdvanceServiceDeliveryHoursSpecification, mais nous vous recommandons vivement les inclure.
  • L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de fuseau horaire dans une valeur opens ou closes. Les fuseaux horaires spécifiés sont ignorés.
  • Si opens et closes ne sont pas explicitement spécifiés, nous supposons que l'avance les commandes sont disponibles tous les jours et à tout moment.
  • Si les valeurs opens et closes sont identiques, nous supposons que la commande anticipée est indisponible.
  • Si opens est supérieur à closes, l'heure de fermeture est considérée comme ayant le dès le lendemain. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et l'heure de fermeture est 2h, alors le restaurant est considéré comme fermé le 2 janvier à 2h.
  • opens et closes font référence au futur créneau horaire. closes est exclusif. Pour Exemple : si opens correspond à 10 h et que closes à 16 h avec un serviceTimeInterval de 15 minutes, le premier créneau commence à 10h et le dernier le créneau commence à 15h45.

Le tableau suivant décrit les propriétés Type de AdvanceServiceDeliveryHoursSpecification:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "AdvanceServiceDeliveryHoursSpecification".
validFrom DateTime Conditionnel

Date de début à partir de laquelle les commandes à l'avance peuvent être satisfaite. Exemple : "2017-05-01T00:00:00-07:00".

Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours. Les propriétés validFrom et validThrough doivent être absents ou présents ensemble.

Si ce type est spécifié en tant que specialOpeningHoursSpecification au Service niveau, cette propriété validFrom dans Veuillez indiquer une valeur AdvanceServiceDeliveryHoursSpecification.

Pour en savoir plus, consultez <ph type="x-smartling-placeholder"></ph> Formats "Date/Heure" et "Heure".

validThrough DateTime Facultatif

Date de fin au-delà de laquelle les commandes à l'avance ne peuvent plus être satisfaite. Exemple : "2018-12-01T00:00:00-07:00".

Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours. Les propriétés validFrom et validThrough doivent être absents ou présents ensemble.

Si ce type est spécifié en tant que specialOpeningHoursSpecification au Service la propriété validThrough dans Veuillez indiquer une valeur AdvanceServiceDeliveryHoursSpecification.

Le temps imparti pour validThrough est exclusif. Par exemple, si que l'heure est définie sur 18h, l'heure est valide jusqu'à 17h59:59.

Pour en savoir plus, consultez Formats de date et d'heure.

opens Time Facultatif

S'applique aux créneaux de livraison ou à emporter.

L'heure précise de la journée à partir de laquelle les commandes anticipées peuvent être satisfaite. Par exemple, 6h30 est indiqué sous la forme "T06:30:00".

L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de fuseau horaire dans une valeur opens. Si un fuseau horaire est spécifié, Google ignore ces informations.

Pour en savoir plus, consultez Formats de date et d'heure.

closes Time Facultatif

S'applique aux créneaux de livraison ou à emporter.

L'heure précise de la journée au-delà de laquelle les commandes anticipées ne peuvent pas être satisfaite. Par exemple, 21h est indiqué sous la forme "T21:00:00". Le paramètre closes> étant exclusif, définissez-le sur 21h pour serviceTimeInterval de 15 minutes signifie que la dernière le créneau horaire disponible commence à 20h45.

L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire inclure un fuseau horaire dans une valeur closes. Si un fuseau horaire est est spécifiée, Google ignore cette information.

Pour en savoir plus, consultez Formats de date et d'heure.

dayOfWeek Tableau de DayOfWeek Facultatif

Jours de la semaine pendant lesquels les heures de livraison à l'avance sont disponibles. Valide sont les suivantes:

  • "Lundi"
  • "Mardi"
  • "Mercredi"
  • "Jeudi"
  • "Vendredi"
  • "Samedi"
  • "Dimanche"

Si vous n'indiquez aucun jour de la semaine, le AdvanceServiceDeliveryHoursSpecification s'applique à tous jours.

serviceTimeInterval Duration Obligatoire

Intervalle entre deux heures de service successives.

Par exemple, si opens et closes sont à 8h et à 20h et le serviceTimeInterval dure 15 minutes, l'utilisateur peut choisir les heures de traitement 8h00, 8h15, 8h30, 8h45, et ainsi de suite jusqu'à 20h.

Duration doit être spécifié en tant que durée ISO 8601. Pour Exemple: "P15M" correspond à des intervalles de 15 minutes.

advanceBookingRequirement QuantitativeValue Obligatoire

Nombre de minutes à partir de l'heure de la commande pendant lesquelles la commande anticipée peut être satisfaite.

Les min de QuantitativeValue et Les valeurs max doivent être définies sur le nombre de minutes et unitCode à "MIN".

Par exemple, si une commande anticipée nécessite au moins 60 minutes traitée et ne peut pas être traitée pendant plus de deux jours plus tard, la valeur min est de 60 et la valeur max la valeur est 2880.

L'exemple suivant illustre l'utilisation de la classe Type de AdvanceServiceDeliveryHoursSpecification:

Exemple 1

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

AllergenDetails

Pour utiliser ce type, ajoutez le contexte gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Ajoutez ensuite FoodBeverageTobaccoProduct au type de MenuItem approprié. ou MenuItemOption.

Le tableau suivant décrit les propriétés du type AllergenDetails:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "AllergenDetails".
allergenType Texte Facultatif Type d'allergène par gs1:AllergenTypeCode Exemple : http://gs1.org/voc/AllergenTypeCode-PEANUTS.
allergenLevelOfContainmentCode Texte Facultatif Code de structuration par gs1:LevelOfContainmentCode Par exemple http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ou http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN

L'exemple suivant illustre l'utilisation du type 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

Le tableau suivant décrit les propriétés Type de DeliveryChargeSpecification:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "DeliveryChargeSpecification".
@id URL Facultatif Identifiant de la spécification des frais de livraison.
price Nombre Obligatoire Coût total de livraison sous forme de valeur numérique uniquement. Utilisez les priceCurrency pour indiquer le type de devise. au lieu de symboles monétaires. Par exemple, "6.00", sans la devise .
priceCurrency Texte Obligatoire Code de devise ISO 4217 à trois lettres. Exemple : "EUR".
eligibleTransactionVolume PriceSpecification Facultatif Volume de transactions, en unité monétaire, pour lequel cette diffusion de facturation est valide. Par exemple, pour indiquer un montant d'achat minimal ou pour indiquer que la livraison est disponible sans frais supplémentaires au-delà d'un certain volume de commandes.
eligibleQuantity QuantitativeValue Facultatif Intervalle et unité de mesure des quantités commandées pour lesquelles les frais de livraison sont valides. Cela vous permet, par exemple, de spécifier qu'un certains frais de fret ne sont valides que pour une certaine quantité.
eligibleRegion Tableau de GeoShape ou Place ou GeoCircle Facultatif Le lieu, ou GeoShape/GeoCircle pour les régions géopolitiques pour laquelle l'offre ou les spécifications de frais de port sont valides. Utiliser ceci dans l'établissement uniquement si les frais de livraison varient en fonction de la région.
validFrom DateTime Facultatif La date et l'heure (y compris le fuseau horaire) auxquelles les frais de livraison spécifié devient valide. Exemple : "2017-05-01T06:30:00-07:00". Pour Pour en savoir plus, consultez Formats de date et d'heure.
validThrough DateTime Facultatif Date et heure (fuseau horaire compris) à l'issue desquelles la diffusion débit spécifié n'est pas valide. Exemple : "2017-05-01T06:30:00-07:00". L'heure de validThrough est exclusive: par exemple, si cette l'heure est définie sur 18h, l'heure est valide jusqu'à 17h59:59. Pour en savoir plus, consultez Formats de date et d'heure.

Les exemples suivants illustrent des éléments DeliveryChargeSpecification:

Exemple 1

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}

Exemple 2

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

Exemple 3

"priceSpecification": [{
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
    "price": "8.00", // Charges $8 for area5
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00",
      "priceCurrency": "USD"
    },
    "eligibleRegion": [ // area5
      {
        "@type": "GeoCircle",
        "geoMidpoint": {
          "@type": "GeoCoordinates",
          "latitude": "37.7392607",
          "longitude": "-122.3895522"
        },
        "geoRadius": "4505"
      }
    ]
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
    "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00", // Minimum order price for delivery is $20
      "priceCurrency": "USD"
    }
  }
]

En plus de "@type": ["DeliveryChargeSpecification"], l'objet peut être étendu avec UnitPriceSpecification:

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

L'extension donne deux propriétés supplémentaires requises pour les frais de livraison calculé en pourcentages.

Propriété Type Nécessité Description
referenceQuantity QuantitativeValue Obligatoire Quantité de référence à laquelle un certain prix s'applique. Par exemple : referenceQuantity de la valeur 10 avec unitCode de "P1" correspondent à 10% de la valeur de la commande. Seul unitCode "P1" correspond à prises en charge actuellement.
basePrice Nombre Facultatif Frais de base en plus des referenceQuantity. Pour exemple, referenceQuantity sur 10 avec unitCode de "P1" et basePrice de 5 en USD génèrent 5 € + 10 % la valeur de la commande. La valeur par défaut est 0.

Exemples de frais de livraison

Google vous permet de spécifier à l'avance différents frais aux utilisateurs à l'aide de Offer.PriceSpecification de l'entité de service.

Notez que les commandes de bout en bout ne prennent actuellement en charge qu'un seul DeliveryChargeSpecification Combiner tous les types de frais en un seul DeliveryChargeSpecification

Consultez les exemples de flux de services pour savoir comment spécifier la diffusion. en fonction de la surface, de la distance et de la valeur de la commande.

En l'absence de frais, Offer.PriceSpecification est omis.

  • Exemple 1: Les frais de livraison s'élèvent à 5% du sous-total du panier
  • Exemple 2: Les frais de livraison sont de 5 $.
  • Exemple 3: Les frais de livraison sont de 5 $+ 10% du sous-total du panier
  • Exemple 4: Les frais de livraison s'élèvent à 5 € et les frais de bagage s'élèvent à 0,1 €.
  • Exemple 5: Les frais de livraison s'élèvent à 5% et les frais de commodité à 2% du sous-total du panier
  • Exemple 6: Les frais de livraison s'élèvent à 5 $et 1 $par distance supplémentaire de 1 km.

Exemple 1

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Exemple 2

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

Exemple 3

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "10.00", // 10%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "5.00" // User always pays $5 in addition to 10%
  }
]

Exemple 4

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }

Exemple 5

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]

Exemple 6

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "basePrice": 5.00, // User always pays $5
    "price": 1.00, // An additional $1.00 is added per 1km
    "priceCurrency": "USD",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "unitCode": "MTR", // MTR == meter
      "value": "1000.0" // 1km
    }
  }
]

GeoCircle

Le tableau suivant décrit les propriétés du type GeoCircle:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "GeoCircle".
geoMidpoint GeoCoordinates Obligatoire Indique le GeoCoordinates au centre d'un GeoCircle
geoRadius Nombre Obligatoire Indique le rayon approximatif (en mètres) d'un GeoCircle

L'exemple suivant montre un élément GeoCircle:

Exemple

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

GeoCoordinates

Le tableau suivant décrit les propriétés du type GeoCoordinates:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "GeoCoordinates".
latitude Nombre Obligatoire

Latitude en degrés. Les valeurs sont comprises entre -90 et 90, inclusifs. Si la valeur spécifiée est inférieure à -90, elle est définie sur -90. si la valeur est supérieure à 90, elle est définie sur 90.

La précision doit être d'au moins cinq décimales.

longitude Nombre Obligatoire

Longueur en degrés. Les valeurs situées en dehors de la plage -180 à 180 sont enveloppés afin qu'ils soient dans la plage. Par exemple, une valeur de -190 est convertie en 170. Une valeur de 190 est convertie en -170. Ce reflète le fait que les longitudes couvrent le monde entier.

La précision doit être d'au moins cinq décimales.

L'exemple suivant montre un élément GeoCoordinates:

Exemple

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

GeoShape

Le tableau suivant décrit les propriétés du type GeoShape:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "GeoShape".
polygon Tableau de texte Obligatoire

Polygone ou multipolygone exprimé sous la forme d'une série de trois espaces ou plus délimités. Nous vous recommandons de renseigner le premier et le dernier points identique, mais ce n'est pas obligatoire.

Chaque point d'un polygone ou d'un multipolygone est défini par un point de latitude. suivi d'un point de longitude. Vous devez également spécifier les points dans une dans le sens inverse des aiguilles d'une montre.

Dans la plupart des cas, vous n'aurez qu'un seul polygone. Pour une utilisation plus complexe consultez la Zone desservie.

Les exemples suivants illustrent des éléments GeoShape:

Exemple 1

{
  "@type": "GeoShape", // area4
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
},

Exemple 2

{
  "@type": "GeoShape", // A service area with a hole.
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”,
               “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”]
},

Exemple 3

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "areaServed": [
    {
      "@type": "GeoShape",  // Richmond District delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474"
    },
    {
      "@type": "GeoShape",  // Haight-Ashbury delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417"
    }  ],
...
},

Le tableau suivant répertorie les propriétés du type Menu:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "Menu".
@id URL Obligatoire Identifiant unique du menu.
name Texte Facultatif Texte pouvant identifier le Menu lorsqu'un utilisateur parcourt la .
description Texte Facultatif Description du menu.
disclaimer MenuDisclaimer Facultatif Clause de non-responsabilité concernant le menu. Par exemple, la divulgation d'informations nutritionnelles et la divulgation des allergènes.
hasMenuSection Objet unique ou tableau de MenuSection Facultatif Sous-groupes logiques du menu (comme Dîner, Hors-d'œuvre ou Poisson) plats).
hasMenuItem Objet unique ou tableau de MenuItem Facultatif les objets MenuItem contenus dans un élément Menu ; en général, lorsque le champ Menu n'est pas subdivisé par MenuSections
inLanguage Texte Facultatif Langue du contenu du menu, en tant que code de langue du Norme IETF BCP 47 : Exemple : "en-US".

Les exemples suivants illustrent l'utilisation du type Menu:

Exemple 1

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

Exemple 2

Cet exemple montre hasMenuItem sous forme de tableau.

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

Exemple 3

Cet exemple montre hasMenuSection sous forme de tableau.

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

Pour plus d'exemples sur les entités Menu, consultez Exemples de flux de restaurants et de menus

Le tableau suivant répertorie les propriétés du type MenuDisclaimer:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "Menudisclaimer".
@id URL Obligatoire Identifiant unique de la clause de non-responsabilité du menu.
text Texte Obligatoire Texte de la clause de non-responsabilité. Par exemple, « L'énergie quotidienne moyenne d'un adulte est de 8 700 kJ. »
url URL Facultatif URL pointant vers une page fournissant plus d'informations sur la clause de non-responsabilité.

L'exemple suivant illustre l'utilisation du type MenuDisclaimer:

Exemple

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

Élément de menu représentant l'élément de menu. Le tableau suivant répertorie les Propriétés du type MenuItem:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "MenuItem".
@id URL Obligatoire Identifiant unique de l'élément du menu.
name Texte Obligatoire Texte pouvant identifier le MenuItem lorsqu'un utilisateur navigue le menu.
description Texte Facultatif Description de l'élément de menu.
image URL Facultatif

Image de l'élément de menu. Respectez les consignes suivantes concernant les images:

  • Proportions 3:2
  • Résolution minimale : 600 x 400 pixels, 72 ppp
  • Résolution recommandée : 1 400 x 960 pixels, 72 ppp
menuAddOn Tableau de AddOnMenuSection Facultatif Éléments d'une section de menu pouvant être ajoutés en tant que modules complémentaires au l'élément de menu.
offers Tableau de Offer Obligatoire*

Une ou plusieurs offres pour fournir ce MenuItem. Décrit quand et le prix de disponibilité de ce MenuItem. Une seule offre doit être valide à un moment donné. Vous pouvez proposer plusieurs offres si le prix ou la disponibilité varient selon l'heure de la journée. Si le L'aliment se distingue par un attribut de base (par exemple, la taille pour la pizza), utilisez menuItemOption. Par défaut, Offer.eligibleQuantity est au minimum de 0 sans valeur supérieure limite.

La liste ci-dessous indique Offer d'établissements utilisée dans MenuItem.

  • Minimum requis : Offer.sku
  • Minimum requis : Offer.price
  • Minimum requis : Offer.priceCurrency
  • Offer.availabilityStarts facultatif
  • Offer.availabilityEnds facultatif
  • Offer.availableDay facultatif
  • Offer.validFrom facultatif
  • Offer.validThrough facultatif
  • Offer.eligibleQuantity facultatif
  • Offer.inventoryLevel facultatif
hasMenuItemOptions Tableau de MenuItemOption Obligatoire Liste des options/variantes de base de cet élément de menu. Les options doivent être utilisée pour spécifier les différentes variantes de base disponibles pour l'élément, par exemple petit, moyen et grand.
suitableForDiet Tableau de RestrictedDiet Facultatif Le plat respecte la restriction alimentaire décrite (par exemple, &quot;http://schema.org/GlutenFreeDiet&quot; ou "http://schema.org/VeganDiet". Ce est une liste énumérée de valeurs possibles.
nutrition NutritionInformation Facultatif Informations nutritionnelles du plat, en particulier les calories.
hasAllergen AllergenDetails Facultatif Allergènes du plat par gs1:AllergenDetails. Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type MenuItem
additive Tableau AdditiveDetails Facultatif Additifs du plat par gs1:AdditiveDetails. Il s'agit d'une liste de valeurs possibles. Ajouter le contexte gs1 à utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type MenuItem
packaging PackagingDetails Facultatif Informations sur l'emballage et le recyclage de cet élément de menu par gs1:PackagingDetails Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type MenuItem

Les exemples suivants illustrent des éléments MenuItem:

Exemple 1

"hasMenuItem": {
  "@type": "MenuItem",
  "@id": "http://www.provider.com/bar/menuitem/1",
  "name": "Potato Skins",
  "description": "Small serving of stuffed potato skins.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-potato-skins",
    "price": "7.49",
    "priceCurrency": "USD"
  },
  "suitableForDiet": "http://schema.org/GlutenFreeDiet"
}

Exemple 2

"hasMenuItem": [
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170067",
    "name": "Veg Grill Burrito",
    "offers": {
      "@type": "Offer",
      "sku": "offer-veg-grill-burrito",
      "price": "12.99",
      "priceCurrency": "USD"
    },
    "menuAddOn": {
      "@type": "AddOnMenuSection",
      "name": "Cheese",
      "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
      "eligibleQuantity":
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 2 // Maximum of 2 cheeses are allowed
      }
    }
  },
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170018",
    "name": "Chicken Taco",
    "offers": {
      "@type": "Offer",
      "sku": "offer-chicken-taco",
      "price": "6.99",
      "priceCurrency": "USD"
    }
  }
]

Exemple 3

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

Exemple 4

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

Exemple 5

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/9",
  "name": "Ice Coffee",
  "offers": {
    "@type": "Offer",
    "sku": "offer-ice-coffee",
    "price": "3.99",
    "priceCurrency": "USD"
  },
  "nutrition": {
    "@type": "NutritionInformation",
    "description": "Contains preservatives and artificial flavor"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN"
    }
  ],
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ],
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.10",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
}

Pour obtenir plus d'exemples d'entités MenuItem, consultez Exemples de flux de restaurants et de menus.

une option pour représenter les choix qu'un utilisateur devrait faire lorsqu'il en sélectionnant un plat ou une combinaison. L'utilisateur doit sélectionner une option. Dans le cas contraire, la commande est considéré comme non valide. Par exemple, choisir "petite", "moyenne" ou "grande" dans le cas d'une pizza.

Pour obtenir des exemples de cas d'utilisation de MenuItemOption, consultez notre guide sur personnalisation à l'aide de MenuItemOption.

Le tableau suivant répertorie les propriétés du type MenuItemOption:

Propriété Type Nécessité Description
@type Texte Obligatoire La valeur est toujours "MenuItemOption".
value PropertyValue Obligatoire PropertyValue contenant une paire nom/valeur représentant le .
offers Tableau de Offer Obligatoire

Une ou plusieurs offres pour fournir cet MenuItemOption. Décrit quand et à quel prix cette option de menu est disponible. Une seule offre doit être valide à la fois. Vous pouvez disposer si le prix ou la disponibilité peuvent varier en fonction de l'heure. N'utilisez pas Offer.eligibleQuantity. Les MenuItemOption s'excluent mutuellement. Le champ Offer.eligibleQuantity est ignoré s'il est fourni.

La liste ci-dessous indique Offer d'établissements utilisée dans MenuItemOption.

  • Minimum requis : Offer.sku
  • Minimum requis : Offer.price
  • Minimum requis : Offer.priceCurrency
  • Offer.availabilityStarts facultatif
  • Offer.availabilityEnds facultatif
  • Offer.availableDay facultatif
  • Offer.validFrom facultatif
  • Offer.validThrough facultatif
  • Offer.eligibleQuantity facultatif
  • Offer.inventoryLevel facultatif
menuAddOn Array of AddOnMenuSection Facultatif Section de menu des éléments autorisés pouvant être ajoutés en tant que module complémentaire. Utiliser uniquement si les modules complémentaires sont spécifiques à une option d'élément de menu particulière. Sinon, fournissent des modules complémentaires à l'aide de la propriété MenuItem.menuAddOn.
suitableForDiet Tableau de RestrictedDiet Facultatif Liste énumérée indiquant les régimes auxquels ce plat est conforme la restriction alimentaire décrite (comme &quot;http://schema.org/GlutenFreeDiet&quot; ou "http://schema.org/VeganDiet").
nutrition NutritionInformation Facultatif Informations nutritionnelles du plat, en particulier les calories.
hasAllergen AllergenDetails Facultatif Allergènes du plat par gs1:AllergenDetails. Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type MenuItemOption
additive Tableau AdditiveDetails Facultatif Additifs du plat par gs1:AdditiveDetails. Il s'agit d'une liste de valeurs possibles. Ajouter le contexte gs1 à utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type MenuItemOption
packaging PackagingDetails Facultatif Informations sur l'emballage et le recyclage de cet élément de menu par gs1:PackagingDetails Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type MenuItemOption

L'exemple suivant montre les éléments MenuItemOption:

Exemple 1

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

Exemple 2

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

Section de menu pour représenter une section particulière du menu. Le tableau suivant liste les propriétés du type MenuSection:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "MenuSection".
@id URL Obligatoire Identifiant unique de la section du menu.
name Texte Obligatoire Texte pouvant identifier le MenuSection lorsqu'un utilisateur parcourt le Web le menu.
description Texte Facultatif Description de la section de menu.
hasMenuSection Tableau de MenuSection Facultatif Sous-groupement logique de MenuSection. Par exemple, La section du menu "Dîner" peut comporter plusieurs sous-sections, comme "Volaille Plats" ou "végétarien".
hasMenuItem Tableau de MenuItem Facultatif Éléments de menu contenus dans un élément MenuSection.
offers Tableau de Offer Facultatif

Utiliser Offer.availabilityStarts et Offer.availabilityEnds pour indiquer la période au cours de dans lequel ce MenuSection est diffusé. Ne pas utiliser Offer.eligibleQuantity

La liste suivante indique les propriétés Offer utilisé dans MenuSection:

  • Offer.availabilityStarts facultatif
  • Offer.availabilityEnds facultatif
  • Offer.availableDay facultatif
  • Offer.validFrom facultatif
  • Offer.validThrough facultatif
image URL Facultatif Image de la section de menu.

Les exemples suivants illustrent des entités MenuSection:

Exemple 1

{
  "@type": "MenuSection",
  "@id": "http://www.provider.com/bar/menusection/4",
  "name": "Steak",
  "description": "Steak Dishes",
  "image": "https://steak.com/steak_dishes.jpg",
  "hasMenuItem": {
    "@type": "MenuItem",
    "@id": "http://www.provider.com/bar/menuitem/3",
    "name": "Sirloin",
    "description": "Sirloin steak dish.",
    "offers": {
      "@type": "Offer",
      "sku": "offer-sirloin-steak",
      "price": "15.49",
      "priceCurrency": "USD"
    },
    "suitableForDiet": "http://schema.org/GlutenFreeDiet"
  }
}

Exemple 2

"hasMenuSection": [
  {
    "@type": "MenuSection",
    "@id": "https://www.example.com/1089/categorization/25114480",
    "name": "Main Items",
    "hasMenuItem": [
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170067",
        "name": "Veg Grill Burrito",
        "offers": {
          "@type": "Offer",
          "sku": "offer-veg-grill-burrito",
          "price": "12.99",
          "priceCurrency": "USD"
        },
        "menuAddOn": {
          "@type": "AddOnMenuSection",
          "name": "Cheese",
          "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
          "eligibleQuantity":
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2 // Maximum of 2 cheeses are allowed
          }
        }
      },
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170018",
        "name": "Chicken Taco",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chicken-taco",
          "price": "6.99",
          "priceCurrency": "USD"
        }
      }
    ]
  },
  {
    "@type": "AddOnMenuSection",
    "@id": "https://www.example.com/1089/addon/1",
    "name": "AddOnCheese",
    "hasMenuItem": [
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/a",
        "name": "Swiss",
        "offers": {
          "@type": "Offer",
          "sku": "offer-swiss",
          "price": "2.99",
          "priceCurrency": "USD"
        }
      },
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/b",
        "name": "Mozarella",
        "offers": {
          "@type": "Offer",
          "sku": "offer-mozzarella",
          "price": "1.99",
          "priceCurrency": "USD"
        }
      }
    ]
  }
]

Pour plus d'exemples sur les entités MenuSection, consultez Exemples de flux de restaurants et de menus

NutritionInformation

Le tableau suivant décrit les propriétés de NutritionInformation. de mots clés. Les unités de mesure sont sensibles à la casse. Exemple : "Cal" est accepté, mais "cal" ce n'est pas le cas.

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "NutritionInformation".
description Texte Facultatif Informations nutritionnelles en texte libre. Par exemple, "Contient et conservateurs.
calories Texte Facultatif

Nombre de calories en cal, kcal ou kJ, selon les valeurs suivantes : format:

number Cal_kcal_OR_kJ

Exemple : "240 cal".

carbohydrateContent Texte Facultatif

Quantité de glucides, généralement exprimée en g, à l'aide des valeurs suivantes : format:

number g_OR_mg

Exemple : "7 g".

cholesterolContent Texte Facultatif

La quantité de cholestérol, généralement en mg, à l'aide du le format suivant:

number g_OR_mg

Exemple : "12 mg".

fatContent Texte Facultatif

Quantité de matières grasses, généralement exprimée en g, au format suivant:

number g_OR_mg

Exemple : "42 g".

fiberContent Texte Facultatif

Nombre de g ou mg de fibre, au format suivant:

number g_OR_mg
proteinContent Texte Facultatif

Nombre de g ou mg de protéines, au format suivant:

number g_OR_mg
saturatedFatContent Texte Facultatif

Nombre de g ou mg de graisses saturées, au format suivant:

number g_OR_mg
servingSize Texte Facultatif Portion en mL, L, g ou kg en termes de volume ou masse.
sodiumContent Texte Facultatif

Nombre de mg ou g de sodium, au format suivant:

number g_OR_mg
sugarContent Texte Facultatif

Nombre de g ou mg de sucre, au format suivant:

number g_OR_mg
transFatContent Texte Facultatif

Nombre de g ou mg de graisses trans, au format suivant:

number g_OR_mg
unsaturatedFatContent Texte Facultatif

Quantité de graisses insaturées, généralement en g, à l'aide des valeurs suivantes : format:

number g_OR_mg

Les exemples suivants illustrent un élément NutritionInformation:

Exemple 1

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},

Exemple 2

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

Offre

Offre pour un élément de menu. Le tableau suivant décrit les propriétés Type de Offer:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "Offre".
sku Texte Conditionnel

Identifiant unique de l'offre. Il peut s'agir de n'importe quelle valeur textuelle unique. dans les Offer. Les valeurs sku sont référencées dans Règlement et envoi en tant que offerId dans lineitem.

Cette propriété n'est utilisée que dans les types d'offres suivants:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price Texte Conditionnel

Prix de l'article proposé. Exemple : "6.00" sans la devise .

Cette propriété n'est obligatoire que pour les types d'offres suivants:

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

Il n'est pas utilisé dans les types d'offres suivants:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency Texte Conditionnel

La devise (au format ISO 4217 à trois lettres) du prix ou d'un prix , lorsqu'il est associé à "PriceSpecification" et à ses sous-types.

Cette propriété n'est obligatoire que pour les types d'offres suivants:

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

Il n'est pas utilisé dans les types d'offres suivants:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime ou Time Facultatif La date et l'heure, ou uniquement l'heure à partir de laquelle l'offre est disponible. Par exemple, si des pancakes sont servis à partir de 7h00, la valeur de ce champ peut se présenter comme suit : "2017-05-01T07:00:00-07:00". Pour en savoir plus, consultez Formats de date et d'heure.
availabilityEnds DateTime ou Time Facultatif La date et l'heure, ou uniquement l'heure à laquelle l'offre n'est pas disponible. Ce le temps est exclusif. Par exemple, si la vente de pancakes se termine à 10h, la dernière crêpe peut être servie à 9:59:59. La valeur ce champ peut alors ressembler à ceci : "2017-05-01T10:00:00-07:00". Pour en savoir plus, consultez Formats de date et d'heure.
availableDay Tableau DayOfWeek Facultatif

Jours de la semaine pendant lesquels cet article est disponible. Les valeurs valides sont les suivantes :

  • "Lundi"
  • "Mardi"
  • "Mercredi"
  • "Jeudi"
  • "Vendredi"
  • "Samedi"
  • "Dimanche"

Si vous avez des disponibilités différentes selon les jours de la semaine, utilisez plusieurs objets Offer, comme indiqué dans les exemples ci-dessous.

validFrom DateTime Facultatif

Date et heure (y compris le fuseau horaire) auxquelles l'événement le prix est valide. Par exemple, le prix des pâtes est de 8 $au déjeuner et de 10 $. pendant le dîner. Pour en savoir plus, consultez Formats de date et d'heure.

Cette propriété peut être utilisée dans les types d'offres suivants:

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

Cette propriété n'est pas utilisée dans les types d'offres suivants:

  • Service.Offer
validThrough DateTime Facultatif

Date et heure (y compris le fuseau horaire) à partir desquelles la valeur Le prix n'est plus valide. Par exemple, le prix des pâtes est de 8 $au déjeuner. et 10 $au dîner. Le temps réservé à validThrough est exclusif: Par exemple, si cette heure est définie sur 18h, l'heure est valable jusqu'à 17:59:59. Pour en savoir plus, consultez Formats de date et d'heure.

Cette propriété peut être utilisée dans les types d'offres suivants:

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

Cette propriété n'est pas utilisée dans les types d'offres suivants.

  • Service.Offer
eligibleQuantity QuantitativeValue Facultatif

Quantités commandées pour lesquelles cet article est autorisé. Par exemple : un restaurant peut exiger qu'au moins 10 pizzas soient commandées la livraison.

Cette valeur est facultative. Par défaut, il n'y a pas de limite maximale, mais le restaurant peut en spécifier une. Les limites minimales s'appliquent uniquement lorsqu'un utilisateur sélectionne l'élément.

Cette propriété peut être utilisée dans les types d'offres suivants:

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

Cette propriété n'est pas utilisée dans les types d'offres suivants.

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

Note globale, basée sur un ensemble d'avis ou de notes concernant le élément.

Cette propriété peut être utilisée dans les types d'offres suivants:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Cette propriété n'est pas utilisée dans les types suivants.

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

Niveau d'inventaire approximatif du ou des articles.

Cette propriété peut être utilisée dans les types d'offres suivants:

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

Cette propriété n'est pas utilisée dans les types d'offres suivants:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Tableau de DeliveryChargeSpecification ou un tableau de PaymentChargeSpecification Facultatif

Lorsqu'il est utilisé dans Service.Offer, il indique les détails sur le prix de la livraison. Si plusieurs DeliveryChargeSpecification sont applicables, le plus spécifique est appliqué. Utilisation mutuelle des objets DeliveryChargeSpecification exclusifs pour éviter toute ambiguïté.

Cette propriété peut être utilisée dans les types d'offres suivants:

  • Service.Offer

Cette propriété n'est pas utilisée dans les types d'offres suivants:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Tableau d'ID Restaurant Facultatif

Représente les restaurants dont est situé ce Offer proposés.

S'il n'est pas spécifié, cet Offer sera proposé dans tous les restaurants.

Cette propriété peut être utilisée dans les types d'offres suivants:

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

Cette propriété n'est pas utilisée dans les types d'offres suivants:

  • Service.Offer
applicableFulfillmentMethod Tableau de texte Facultatif

Représente le type de service de ce Offer remplis. Les valeurs possibles sont "DELIVERY". ou "À RETENIR".

Si aucune valeur n'est spécifiée, cet Offer sera traité par livraison et à emporter.

Cette propriété peut être utilisée dans les types d'offres suivants:

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

Cette propriété n'est pas utilisée dans les types d'offres suivants:

  • Service.Offer
@id URL Obsolète Identifiant unique de l'offre. Obsolète depuis le 25/04/19, remplacer par sku comme décrit ci-dessus.

Les exemples suivants illustrent des éléments Offer:

Exemple 1

L'exemple suivant illustre une offre simple:

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

Exemple 2

Dans l'exemple suivant, l'offre indique une disponibilité de 8h à 10h le week-ends:

{
  "@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.
}

Exemple 3

L'exemple suivant indique la disponibilité de 9 h à 10 h 59 et 59 s le lundi, mercredi et vendredi, mais de 8:00 à 23:59:59 les mardis et jeudis :

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

Exemple 4

L'exemple suivant montre qu'un élément de menu complémentaire est éligible de sorte que l'utilisateur puisse commander jusqu'à 2 portions cet élément :

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

Exemple 5

L'exemple suivant présente une offre de livraison dans un lieu spécifique:

{
  "@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

Définit le moment où les services de commande sont disponibles. Généralement, la valeur de opens est inférieur à la valeur de closes. Les consignes suivantes s'appliquent à l'utilisation du Propriétés opens et closes:

  • Les propriétés opens et closes sont facultatives, mais vivement recommandées pour indiquer quand la commande est disponible. La meilleure pratique pour définir "hours" consiste à inclure un tableau deliveryHours contenant un ServiceDeliveryHoursSpecification avec les propriétés opens et closes. Toi Vous pouvez ensuite inclure un objet AdvanceServiceDeliveryHoursSpecification dans deliveryHours avec ses propres propriétés opens et closes, si vous souhaitez offrir une période plus limitée pour les commandes anticipées.
  • Si opens et closes ne sont pas explicitement spécifiés, nous supposons que l'ordre est disponible tous les jours à tout moment de la journée.
  • L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de fuseau horaire dans une valeur opens ou closes. Si un fuseau horaire est spécifié, Google ignore ces informations.
  • Si les valeurs opens et closes sont identiques, nous supposons que le restaurant est ouvert pendant 0 minute.
  • Si opens est supérieur à closes, l'heure de fermeture est considérée comme ayant le dès le lendemain. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et l'heure de fermeture est 2h, alors le restaurant est interprété comme la fermeture le 2 janvier à 2h du matin.
  • Le temps imparti pour closes est exclusif. Par conséquent, si les heures d'ouverture et de fermeture pour ce créneau de commande est défini à 10 h et à 16 h, respectivement, commande est 15:59:59.

Le tableau suivant décrit les propriétés de OpeningHoursSpecification. type:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "OpeningHoursSpecification".
@id URL Facultatif Identifiant de OpeningHoursSpecification.
dayOfWeek Tableau DayOfWeek Facultatif

Jour de la semaine pour lequel ces horaires d'ouverture sont valides. Autorisé : les valeurs sont "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "samedi" et "dimanche". Exemple :

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

Si vous n'indiquez aucun jour de la semaine, le OpeningHoursSpecification s'applique à tous les jours.

opens Time Facultatif

Lorsqu'elle est utilisée dans une spécification Restaurant, cette propriété indique L'heure d'ouverture du restaurant pour le ou les jours donnés de la semaine. Pour Par exemple, 6h30 est indiqué sous la forme "T06:30:00".

Lorsqu'elle est utilisée dans une spécification Service, elle indique la valeur l'heure à partir de laquelle commandes peuvent être passées. Il spécifie l'heure d'ouverture pendant laquelle le système en ligne est opérationnel et permet aux utilisateurs de passer des commandes. Pendant ces horaires d'ouverture/fermeture en ligne, vous pouvez spécifier les horaires d'ouverture/fermeture à l'aide de deliveryHours lorsque les utilisateurs peuvent commander des types de livraisons spéciaux.

L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire Incluez un fuseau horaire dans une valeur opens. Si un fuseau horaire est est spécifiée, Google ignore cette information.

Pour en savoir plus, consultez Formats de date et d'heure.

closes Time Facultatif

Lorsqu'elle est utilisée dans une spécification Service, cette propriété indique un moment précis de la journée au-delà duquel ne peuvent pas être passées. Il spécifie l'heure de fermeture pour le moment où le système en ligne est opérationnel et permet aux utilisateurs de passer des commandes. Pendant ces horaires d'ouverture/fermeture en ligne, vous pouvez spécifier les horaires d'ouverture/fermeture à l'aide de deliveryHours lorsque les utilisateurs peuvent commander des types de livraisons spéciaux.

L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire inclure un fuseau horaire dans une valeur closes. Si un fuseau horaire est est spécifiée, Google ignore cette information.

Pour en savoir plus, consultez Formats de date et d'heure.

validFrom DateTime Facultatif

Lorsqu'elle est utilisée dans une spécification Restaurant, cette propriété indique la date à laquelle les horaires d'ouverture spécifiés par opens et closes pour le restaurant sont valides.

Par exemple, si les heures indiquées s'appliquent à toute l'année 2017, vous définissez Définissez validFrom sur "2017-01-01T00:00:00-07:00". et validThrough à "2017-12-31T23:59:59-07:00".

En cas d'utilisation dans une spécification Service, validFrom indique la date de début à partir de laquelle les données peuvent être n'est pas placé.

Si cet établissement n'est pas spécifié dans votre flux, Google considère que le restaurant ou le service est disponible tous les jours.

Outre la date, l'heure et le fuseau horaire sont requises.

Pour le fuseau horaire, utilisez celui du restaurant ou du service.

Pour en savoir plus, consultez Formats de date et d'heure.

validThrough DateTime Facultatif

Dans le cas d'une Restaurant, date après laquelle les horaires d'ouverture spécifiées par opens et closes ne sont pas valide.

Par exemple, si les heures indiquées s'appliquent à toute l'année 2017, vous définissez Définissez validFrom sur "2017-01-01T00:00:00-07:00". et validThrough à "2017-12-31T23:59:59-07:00".

En cas d'utilisation dans une spécification Service, validThrough indique la date de fin au-delà de laquelle les commandes ne peuvent plus être n'est pas placé.

Si cet établissement n'est pas spécifié dans votre flux, Google considère que le restaurant ou le service est disponible tous les jours.

Outre la date, l'heure et le fuseau horaire Veuillez renseigner le champ DateTime.

Pour le fuseau horaire, utilisez celui du restaurant ou du service.

Le temps imparti pour validThrough est exclusif. Par exemple : si cette heure est définie sur 18h, elle est valable jusqu'à 17h59:59.

Pour en savoir plus, consultez Formats de date et d'heure.

deliveryHours Tableau de ServiceDeliveryHoursSpecification ou tableau de AdvanceServiceDeliveryHoursSpecification Conditionnel

Spécification du délai de livraison ou de retrait.

Ce paramètre est obligatoire, sauf si le restaurant est fermé (c'est-à-dire que opens et closes sont définis et égaux ; les uns aux autres.

  • ServiceDeliveryHoursSpecification: dans le vous pouvez définir les horaires d'ouverture et "ferme" heures lorsque les utilisateurs peuvent passer des commandes dès que possible.
  • AdvanceServiceDeliveryHoursSpecification: dans le vous pouvez définir les horaires d'ouverture et "ferme" heures lorsque les utilisateurs peuvent passer des commandes à l'avance.

Les exemples suivants illustrent des éléments OpeningHoursSpecification:

Exemple 1

// Ordering times for Monday through Friday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      "@type": "AdvanceServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T12:00:00", // Advance ordering begins at noon
      "closes": "T23:59:59", // Advance ordering ends at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    },
    {
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T10:00:00", // ASAP ordering begins at 10AM
      "closes": "T14:00:00", // ASAP ordering ends at 2PM
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
},

Exemple 2

// Ordering times for Saturday and Sunday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      // In this case advance orders are unavailable on Saturday and Sunday
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "T12:00:00", // ASAP orders start at noon
      "closes": "T23:59:59", // ASAP orders end at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
}

Exemple 3

"hoursAvailable": {
  "@type": "OpeningHoursSpecification",
  "validFrom": "2016-02-01T00:00:00-07:00",
  "validThrough": "2016-03-01T00:00:00-07:00",
  "opens": "T08:00:00",  // Ordering begins at 8:00AM and ends at 6:00PM.
                         // ASAP and and advance orders are restricted to this
                         // time frame since the user won't be able to place
                         // orders outside of this window.
  "closes": "T18:00:00",
  "deliveryHours": {
    "@type": "ServiceDeliveryHoursSpecification",
    "deliveryLeadTime": {
      "@type": "QuantitativeValue",
      "value": "60",
      "unitCode": "MIN"
    }
  }
},

Exemple 4

// List hours available for 2017 and 2018
"hoursAvailable": [
  {
    "@type": "OpeningHoursSpecification",
    // Array containing advance order hours for each day
    "deliveryHours": [
      {
        // Open 10:00AM to 9:29:59PM on Mondays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Monday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Tuesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Tuesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Wednesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Wednesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Thursdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "dayOfWeek": [
          "Thursday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Fridays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Friday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Saturdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Saturday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 11:00AM to 6:59:59PM on Sundays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Sunday"
        ],
        "opens": "T11:00:00",
        "closes": "T19:00:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      }
    ]
  }
],

PackagingDetails

Ajoutez le contexte gs1 pour utiliser ce type: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez également FoodBeverageTobaccoProduct au type de MenuItem ou de MenuItemOption.

Le tableau suivant décrit les propriétés du type PackagingDetails:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "PackagingDetails".
packagingRecyclingProcessType Texte Facultatif Type de processus de recyclage des emballages selon <ph type="x-smartling-placeholder"></ph> gs1:PackagingRecyclingProcessTypeCode Exemple : http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE ou http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails Facultatif Détails de la consigne de colis à retourner par gs1:ReturnablePackageDepositDetails, Par exemple, les bouteilles et les boîtes de conserve peuvent contenir des dépôts de colis à retourner.

L'exemple suivant illustre l'utilisation du type 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

Le tableau suivant décrit les propriétés de PaymentChargeSpecification. type:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "PaymentChargeSpecification".
@id URL Facultatif Identifiant de PaymentChargeSpecification.
price Nombre Obligatoire Montant total des frais. Par exemple, "6.00", sans la devise .
priceCurrency Texte Obligatoire Code de devise ISO 4217 à trois lettres du prix. Par exemple : "EUR".
eligibleTransactionVolume PriceSpecification Facultatif Volume de transactions, dans une unité monétaire, pour lesquels ce paiement est facturé est valide, par exemple pour indiquer un montant d'achat minimal le volume.
eligibleQuantity QuantitativeValue Facultatif Quantités commandées pour lesquelles les frais de paiement sont valides. Pour Par exemple, vous pouvez utiliser cette propriété pour exiger un nombre minimal d'éléments dans une commande.
validFrom DateTime Facultatif Date et heure (y compris le fuseau horaire) auxquelles les frais doivent être réglés spécifié devient valide. Par exemple, "2017-05-01T07:00:00-07:00". Pour Pour en savoir plus, consultez Formats de date et d'heure.
validThrough DateTime Facultatif La date et l'heure (y compris le fuseau horaire) à laquelle le paiement débit spécifié n'est pas valide. Exemple : "2017-05-01T07:30:00-07:00". L'heure de validThrough est exclusive: par exemple, si que l'heure est définie sur 18h, l'heure est valide jusqu'à 17h59:59. Pour en savoir plus, consultez Formats de date et d'heure.

L'exemple suivant illustre un élément PaymentChargeSpecification:

Exemple

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

En plus de "@type": ["PaymentChargeSpecification"], l'objet peut être étendu avec UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]). L'extension donne deux propriétés supplémentaires requises pour les frais de service calculé en pourcentages.

propriété Type Nécessité Description
referenceQuantity QuantitativeValue Obligatoire Quantité de référence à laquelle un certain prix s'applique. Par exemple : referenceQuantity de la valeur 10 avec unitCode de "P1" correspondent à 10% de la valeur de la commande. Seul unitCode "P1" correspond à actuellement disponibles.
basePrice Nombre Facultatif Frais de base en plus des referenceQuantity. Pour exemple, referenceQuantity sur 10 avec unitCode de "P1" et basePrice de 5 en USD génèrent 5 $+ 10% de la valeur de la commande. La valeur par défaut est 0.

Exemples de frais à emporter

Google vous permet de spécifier à l'avance différents frais aux utilisateurs à l'aide de Offer.PriceSpecification de l'entité de service.

Notez qu'actuellement, un seul PaymentChargeSpecification est accepté. Combiner tous les types de frais dans un seul élément PaymentChargeSpecification

En l'absence de frais, Offer.PriceSpecification est omis.

  • Exemple 1: Les frais de service s'élèvent à 5% du sous-total du panier
  • Exemple 2: Les frais de service sont de 5 $.
  • Exemple 3: les frais de bagage sont de 0,1 $et les frais de service sont de 5% du sous-total du panier
  • Exemple 4: Les frais de bagage sont de 0,1 $et les frais de service sont de 1 $.
  • Exemple 5: Les frais de service s'élèvent à 5% et le pourboire obligatoire est de 10% du sous-total du panier

Exemple 1

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Exemple 2

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

Exemple 3

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]

Exemple 4

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]

Exemple 5

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Lieu

Le tableau suivant décrit les propriétés du type Place:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "Lieu".
address PostalAddress Obligatoire Adresse d'un lieu.

L'exemple suivant illustre un élément Place:

Exemple

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

PostalAddress

Le tableau suivant décrit les propriétés du type PostalAddress:

Propriété Type Nécessité Description
@type Texte Obligatoire La valeur est toujours "PostalAddress".
addressLocality Texte Obligatoire* Localité ou ville. Exemple : "San Francisco".
addressRegion Texte Obligatoire* Région ou État. Exemple : "CA".
postalCode Texte Obligatoire* Code postal. Exemple : "94102".
streetAddress Texte Facultatif Adresse postale. Exemple : "1600 Amphitheatre Pkwy".
addressCountry Texte Obligatoire Code pays ISO 3166-1 alpha-2 à deux lettres . Exemple : "US".

Les fournisseurs de services de livraison peuvent répertorier ces propriétés pour désigner un Service.areaServed. lorsqu'un service est fourni.

Lorsqu'elles sont utilisées dans Restaurant.address, toutes les propriétés répertoriées dans Veuillez indiquer des PostalAddress.

L'exemple suivant montre un élément PostalAddress:

Exemple

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

PriceSpecification

Le tableau suivant décrit les propriétés de PriceSpecification. type:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "PriceSpecification".
@id URL Facultatif Identifiant de PriceSpecification.
minPrice Nombre Facultatif Prix le plus bas s'il s'agit d'une gamme de prix
maxPrice Nombre Facultatif Prix le plus élevé s'il s'agit d'une gamme de prix
priceCurrency Texte Obligatoire Code de devise ISO 4217 à trois lettres du prix. Par exemple : "EUR".
eligibleQuantity QuantitativeValue Facultatif Quantités triées pour lesquelles la spécification de prix est valide. Par exemple, le prix peut être de 2 $la livre ou de deux articles pour un dollar.

L'exemple suivant montre un élément PriceSpecification:

Exemple 1

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

PropertyValue

Paire de valeurs de propriété utilisée pour décrire les options dans MenuItemOption.

Le tableau suivant répertorie les propriétés du type PropertyValue:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "PropertyValue".
name Texte Obligatoire

Nom ou type de l'option.

Voici des noms valides lorsqu'ils sont utilisés dans MenuItem:

  • "SIZE" : taille de l'élément MenuItem. Par exemple, petit, moyen ou de grande taille.
  • "OPTION" : toute variante autre que la taille (par exemple, un plat préparé comme une salade ou un sandwich). Si vous ne pouvez pas faire la distinction entre SIZE et "OPTION", puis utilisez "OPTION".

Noms valides en cas d'utilisation dans AddOnMenuItem:

  • "APPLICABLE_ITEM_OPTION" : option pour le module complémentaire qui n'est applicable lorsqu'il est utilisé avec le MenuItem avec les "SIZE/OPTION".
  • "PIZZA_SIDE" : cet ajout spécifique aux pizzas n'est valable que portion/pizza entière (comme des garnitures aux champignons sur le côté gauche, ou d'une pizza entière).
  • "SIZE" : option permettant de spécifier la taille du module complémentaire. (comme des grosses frites en accompagnement d'un repas).
  • "OPTION" : toute variante autre que la taille. Si vous ne pouvez pas distinguer "SIZE" et "OPTION", puis utilisez "OPTION".
value Texte Obligatoire

Valeur de l'option. Les valeurs peuvent être de n'importe quelle chaîne et s'affichent sous la forme l'adresse IP interne. Les valeurs suivantes sont valides:

  • "PIZZA_SIDE" : la valeur correspondante doit être "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT" ou "PIZZA_SIDE_WHOLE" pour une pizza.
  • "APPLICABLE_ITEM_OPTION" : cette valeur doit être présente dans l'un des "OPTION/SIZE" correspondant choix pour les MenuItem parents menuItemOptions.

QuantitativeValue

Le tableau suivant décrit les propriétés du type QuantitativeValue:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "QuantitativeValue".
value Nombre Facultatif Valeur du nœud de valeur quantitative ou de valeur de propriété.
unitCode Texte ou URL Facultatif

L’unité de mesure en tant que Code commun de l'ONU/CEFACT ou une URL.

Les codes autres que le code commun UN/CEFACT peuvent être utilisés avec un préfixe suivi du signe deux-points.

maxValue Nombre Facultatif Valeur supérieure d'une caractéristique ou d'une propriété.
minValue Nombre Facultatif Valeur inférieure d'une caractéristique ou d'une propriété.

Les exemples suivants illustrent l'utilisation du type QuantitativeValue:

Exemple 1

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}

Exemple 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

Exemple 3

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

Restaurant

Le tableau suivant répertorie les propriétés du type Restaurant:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "Restaurant".
@id URL Obligatoire Identifiant unique du restaurant ou du fournisseur de services de livraison. Par exemple : "http://www.fournisseur.com/326", où "326" est l'identifiant unique le restaurant.
name Texte Obligatoire Texte pouvant identifier le Restaurant lors du tri processus.
url URL Obligatoire URL de votre domaine qui représente le restaurant. Par exemple : &quot;http://www.provider.com/somerestaurant&quot;.
sameAs URL Facultatif Le site Web officiel du restaurant. Par exemple : "http://www.unrestaurant.com".
email Texte Facultatif Adresse e-mail de contact du restaurant.
description Texte Facultatif Description du restaurant.
telephone Texte Obligatoire

Numéro de téléphone au format suivant:

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

Exemple : "+16501234567".

priceRange Texte Facultatif Une gamme de prix. Par exemple, "$$" ($-Inexpensive, $$-Modéré, $$$-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", // L'indicatif du pays (+1) est obligatoire
  "servesCuisine": [
    "Fusion indo-mexicaine"
  
},
  
  <ph type="x-smartling-placeholder">
</ph>

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

Pour plus d'exemples sur les entités Restaurant, consultez Exemples de flux de restaurants et de menus

ReturnablePackageDepositDetails

Pour utiliser ce type, ajoutez le contexte gs1 : "@context" :

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

Ajoutez ensuite FoodBeverageTobaccoProduct au type de MenuItem approprié. ou MenuItemOption.

Le tableau suivant décrit les propriétés Type de ReturnablePackageDepositDetails:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "ReturnablePackageDepositDetails".
returnablePackageDepositAmount gs1:PriceSpecification Facultatif Le montant de l'acompte associé à cet article par <ph type="x-smartling-placeholder"></ph> gs1:PriceSpecification Par exemple, un virement de 0,25 € par boîte de conserve.

L'exemple suivant illustre l'utilisation de ReturnablePackageDepositDetails type:

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

Service

Décrit la livraison d'une action de commande de bout en bout d'un restaurant à un l'emplacement géographique par un organisme de livraison.

Le tableau suivant décrit les propriétés du type Service:

Propriété Type Nécessité Description
@type Texte Obligatoire

Type de flux.

  • Service: utilisez ce type pour tous les flux de service actifs.
  • DisabledService: n'utilisez ce type que lorsque vous devez désactiver une entité de service en raison d'un événement inattendu et que vous ne savez pas quand le service sera rétabli.
@id URL Obligatoire Identifiant du service de fulfillment. Par exemple : &quot;http://www.provider.com/service/1&quot;.
description Texte Facultatif Description de l'article.
serviceType Texte Obligatoire Type de service proposé. Les valeurs possibles sont "DELIVERY". ou "À RETENIR".
provider Restaurant Obligatoire Référence à l'identifiant unique du restaurant. Par exemple : &quot;http://www.provider.com/somerestaurant&quot;.
areaServed Tableau de GeoShape, Place ou GeoCircle Conditionnel Zone géographique où un service est fourni. Ce champ est facultatif par par défaut, mais obligatoire si serviceType est défini sur "DELIVERY".
hoursAvailable Tableau de OpeningHoursSpecification Obligatoire Heures pendant lesquelles ce service est disponible.
specialOpeningHoursSpecification Tableau de OpeningHoursSpecification, ServiceDeliveryHoursSpecification ou AdvanceServiceDeliveryHoursSpecification Facultatif

Heures qui remplacent la valeur plus générale OpeningHoursSpecification ou les délais de traitement. Ce champ sert généralement à définir les jours fériés et d'autres types de fermetures temporaires ou de changements d'horaires.

Définissez la plage de dates spéciale à l'aide des propriétés validFrom et validThrough. L'heure et le fuseau horaire sont obligatoire lorsque vous spécifiez ces propriétés.

offers Tableau de Offer Conditionnel

Détails concernant l'offre de livraison pour un restaurant spécifié. Ce le champ est facultatif par défaut, mais obligatoire si serviceType est "DELIVERY".

La propriété Offer.priceSpecification est facultative dans de service. Aucune autre propriété Offer n'est utilisée ici.

hasOfferCatalog [Menu, OfferCatalog] Obligatoire

Spécifie un menu pour ce service. Vous pouvez avoir un menu différent pour chacun de vos services (comme la vente à emporter, la livraison et la restauration).

Vous devez spécifier Menu et OfferCatalog. pour le type. Exemple :

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

Informations de configuration de service facultatives. Les éléments devraient être un objet dont la clé name correspond à la clé nom du champ. La clé value est une valeur contextuelle. pour ce domaine.

Consultez le ServingConfig pour en savoir plus sur les noms et les valeurs spécifiques.

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

Contient une URL pour un service de livraison/à emporter qui sera utilisé lors de la migration de l'expérience de commande de repas de bout en bout vers la redirection. Par exemple, "potentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" }

L'exemple suivant illustre l'utilisation du type de service:

Exemple

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

Pour obtenir plus d'exemples d'entités de service, consultez la section Exemples de flux de service.

ServiceDeliveryHoursSpecification

Représente les heures de traitement pour que les utilisateurs puissent planifier la livraison d'une commande dès que possible et la vente à emporter.

En général, la valeur de opens est inférieure à la valeur de closes. La Les consignes suivantes s'appliquent à l'utilisation des propriétés opens et closes:

  • Les propriétés opens et closes sont facultatives pour ServiceDeliveryHoursSpecification, mais nous vous recommandons vivement vous les incluez.
  • L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de fuseau horaire dans une valeur opens ou closes. Si un fuseau horaire est spécifié, Google ignore les informations de fuseau horaire.
  • Si opens et closes ne sont pas explicitement spécifiés, nous supposons que "Dès que possible" les commandes sont disponibles tous les jours et à tout moment.
  • Si les valeurs opens et closes sont identiques, nous partons du principe que l'ordre "Dès que possible" est indisponible.
  • Si opens est supérieur à closes, l'heure de fermeture est considérée comme ayant le dès le lendemain. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et l'heure de fermeture est 2h, alors le restaurant est interprété comme la fermeture le 2 janvier à 2h du matin.

Le tableau suivant décrit les propriétés Type de ServiceDeliveryHoursSpecification:

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "ServiceDeliveryHoursSpecification".
validFrom DateTime Facultatif

Date et heure (y compris le fuseau horaire) auxquelles les utilisateurs Les commandes « Dès que possible » peuvent être satisfaite. Par exemple, "2017-05-01T07:00:00-07:00". Si cette propriété est non défini, il est considéré comme valide tous les jours.

Pour en savoir plus, consultez Formats de date et d'heure.

validThrough DateTime Facultatif

Date et heure (y compris le fuseau horaire) à partir desquelles les utilisateurs Commandes "Dès que possible" ne peut pas être satisfaite. Par exemple, "2017-05-01T07:00:00-07:00". Si Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours.

Le temps imparti pour validThrough est exclusif. Par exemple, si que l'heure est définie sur 18h, l'heure est valide jusqu'à 17h59:59.

Pour en savoir plus, consultez Formats de date et d'heure.

opens Time Facultatif

Heure à laquelle le service de livraison démarre pour les utilisateurs Commandes « Dès que possible » à être satisfaite. Exemple : "T10:30:00".

L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire Incluez un fuseau horaire dans une valeur opens. Si un fuseau horaire est est spécifiée, Google ignore cette information.

Pour en savoir plus, consultez Formats de date et d'heure.

closes Time Facultatif

Le moment où le service de livraison pour les utilisateurs Les commandes « ASAP » ne sont plus disponibles. Exemple : "T23:59:59".

Le temps imparti pour closes est exclusif. Par conséquent, si vous définissez ouvertures/fermetures pour ce/cette ServiceDeliveryHoursSpecification à 10h et 16h, la dernière commande est 15:59:59.

L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire inclure un fuseau horaire dans une valeur closes. Si un fuseau horaire est est spécifiée, Google ignore cette information.

Pour en savoir plus, consultez Formats de date et d'heure.

dayOfWeek Tableau de DayOfWeek Facultatif

Jours de la semaine pendant lesquels ce service est disponible pour les utilisateurs Commandes rapides. Les valeurs suivantes sont valides:

  • "Lundi"
  • "Mardi"
  • "Mercredi"
  • "Jeudi"
  • "Vendredi"
  • "Samedi"
  • "Dimanche"

Si vous n'indiquez aucun jour de la semaine, alors ServiceDeliveryHoursSpecification s'applique à tous les jours.

deliveryLeadTime QuantitativeValue Facultatif Délai de livraison estimé, en minutes, une fois la commande reçue n'est pas placé. Nous vous recommandons vivement de définir cette propriété. Définissez le paramètre Champ value de QuantitativeValue au nombre de minutes et le unitCode à "MIN".

L'exemple suivant montre un élément ServiceDeliveryHoursSpecification:

Exemple 1

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

Exemple 2

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

Enums

RestrictedDiet

Le type RestrictedDiet peut avoir les valeurs suivantes:

  • 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