Schéma d'inventaire v1

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

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

Si vous souhaitez en savoir plus sur l'utilisation de cette spécification pour créer vos flux, consultez la page Présentation de l'intégration de l'inventaire.

Formats Date/Heure

DateTime est basé sur le type schema.org et, sauf indication contraire, doit respecter le format ISO 8601 et inclure 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 du fuseau horaire d'un restaurant ou d'un lieu de service donné. Elle est également basée sur le type de schema.org et doit également respecter le format ISO 8601. Time utilise la syntaxe suivante:

// Time format:
THH:MM:SS

Exemple :

T08:08:00 // 8:08 AM

Tenez compte des points suivants chaque fois que vous spécifiez DateTime ou Time:

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

Enveloppe

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

L'"enveloppe" correspond à la structure de premier niveau de chaque flux. Il doit s'agir d'un 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, nous partons du principe que l'heure de mise à jour correspond à l'heure à laquelle le message push est reçu (ou à l'exploration) sur les serveurs Google.

Nous vous recommandons vivement de le mettre en œuvre si vous utilisez à la fois la transmission et l'exploration. Cet horodatage doit être spécifié avec un fuseau horaire et une précision en millisecondes (par exemple, "2016-12-28T06:30:00:123-07:00").

Dans vos flux par lot, la gestion des versions des entités est déterminée par le champ dateModified de l'enveloppe du flux.

dataFeedElement Tableau Menu, Restaurant ou Service Obligatoire Un ou plusieurs articles faisant partie de ce flux. Pour en savoir plus, consultez les informations ci-dessous.

L'exemple suivant illustre 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 l'élément MenuItem ou MenuItemOption approprié.

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 conteneur selon 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 plat ou une boisson répertorié dans un élément de menu complémentaire d'un MenuItem.

Le tableau suivant répertorie les propriétés pour le 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 complémentaire.
name Texte Obligatoire Texte qui identifie l'élément AddOnMenuItem lorsqu'un utilisateur parcourt le menu.
description Texte Facultatif Description de l'élément de menu complémentaire.
image URL Facultatif

Image de l'élément de menu complémentaire qui respecte les consignes suivantes:

  • Format 3:2
  • >
  • Résolution minimale : 600 x 400 pixels, 72 ppp
  • >
  • Résolution recommandée : 1 400 x 960 pixels, 72 ppp
offers Tableau 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 proposer de nombreuses offres valides si le prix ou la disponibilité peuvent changer en fonction de l'heure. Lorsque le module complémentaire ou l'élément diffère par un attribut de base ou une variante de l'élément complémentaire lui-même (petites, moyennes et grosses frites, par exemple), utilisez la propriété hasMenuItemOption.

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

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 MenuItemOption Obligatoire*

Tableau d'attributs de base décrivant une variante de l'élément complémentaire lui-même (comme des frites petites, moyennes et grandes) pour cet élément de menu complémentaire. Utilisez des options pour spécifier les différentes variantes disponibles pour cet élément de menu complémentaire. Cela peut se produire dans deux scénarios:

  • La variante de base dépend de l'élément complémentaire lui-même (comme des frites petites, moyennes et grandes)
  • Variante de base de l'élément de menu auquel ce module complémentaire est associé (comme du fromage supplémentaire en complément pour une grande pizza)
suitableForDiet Tableau RestrictedDiet Facultatif Le plat respecte les restrictions alimentaires décrites (comme "GlutenFreeDiet" ou "VeganDiet"). Il s'agit d'une liste énumérée des valeurs possibles.
nutrition NutritionInformation Facultatif Informations nutritionnelles du plat, en particulier les calories.
menuAddOn Tableau AddOnMenuSection Facultatif AddOnMenuItem peut avoir une section de menu composée d'éléments autorisés qui peuvent être ajoutés 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 sous forme de section de menu complémentaire pour l'élément de menu.

Le tableau suivant répertorie les propriétés pour le 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 permettant d'identifier la classe AddOnMenuSection lorsqu'un utilisateur parcourt le menu.
description Texte Facultatif Description de la section du menu.
eligibleQuantity QuantitativeValue Facultatif Indique le nombre d'éléments autorisés en tant que module complémentaire pour cette section de menu. Vous pouvez utiliser ce champ pour limiter le nombre de garnitures que vous pouvez choisir, comme le nombre minimal et maximal de garnitures.
image URL Facultatif Image de la section du menu.
hasMenuItem Tableau AddOnMenuItem Obligatoire* Éléments de menu complémentaire contenus dans une section AddOnMenuSection.
offers Tableau Offer Facultatif

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

La liste ci-dessous indique les propriétés Offer utilisées dans AddOnMenuSection.

  • Offer.availabilityStarts facultatif
  • Offer.availabilityEnds facultatif
  • Offer.availableDay facultatif
  • Offer.validFrom facultatif
  • Offer.validThrough facultatif
hasMenuSection Tableau AddOnMenuSection Obligatoire* Sous-groupe logique du menu complémentaire (par exemple, Dîner, Apéritif ou Plats de poisson).
defaultOption Tableau AddOnMenuItem Facultatif

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

Les objets AddOnMenuItem doivent exister dans le hasMenuItem de AddOnMenuSection.

Le nombre d'defaultOption ne peut pas dépasser la valeur eligibleQuantity maximale de la 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 élément de menu "sandwich au fromage" comporte un élément AddOnMenuSection "Choix du fromage" avec "Suisse" et "Mozzarella" présélectionnés 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 permettant aux utilisateurs de programmer des commandes anticipées pour la livraison et la vente à emporter.

En général, la valeur de opens est inférieure à celle de closes. 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 de les inclure.
  • L'heure doit être spécifiée dans le fuseau horaire local 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 la commande à l'avance est disponible tous les jours à tout moment.
  • Si opens et closes sont identiques, nous supposons que la commande à l'avance n'est pas disponible.
  • Si opens est supérieur à closes, l'heure de fermeture est interprétée comme correspondant au jour suivant. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et que l'heure de fermeture est 2h, le restaurant est considéré comme fermant le 2 janvier à 2h.
  • opens et closes font référence au prochain créneau horaire. closes est exclusif. Par exemple, si opens correspond à 10h et que closes est à 16h avec un serviceTimeInterval de 15 minutes, le premier créneau horaire commence à 10h et le dernier à 15h45.

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

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

Date de début à partir de laquelle les commandes anticipées des utilisateurs peuvent être traitées. 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 absentes ou présentes ensemble.

Si ce type est spécifié en tant que specialOpeningHoursSpecification au niveau de Service, cette propriété validFrom dans AdvanceServiceDeliveryHoursSpecification est obligatoire.

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

validThrough DateTime Facultatif

Date de fin au-delà de laquelle les commandes anticipées des utilisateurs ne peuvent plus être honorées. 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 absentes ou présentes ensemble.

Si ce type est spécifié en tant que specialOpeningHoursSpecification au niveau de Service, la propriété validThrough dans AdvanceServiceDeliveryHoursSpecification est obligatoire.

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

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

opens Time Facultatif

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

Heure spécifique de la journée à partir de laquelle les commandes anticipées des utilisateurs peuvent être traitées. Par exemple, 6:30 est remplacé par "T06:30:00".

L'heure doit être spécifiée au format local pour le service. N'incluez pas de fuseau horaire dans une valeur opens. Si un fuseau horaire est spécifié, Google ignore cette information.

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

closes Time Facultatif

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

Heure spécifique de la journée au-delà de laquelle les commandes anticipées des utilisateurs ne peuvent pas être traitées. Par exemple, 21:00 est indiqué comme "T21:00:00". closes> est exclusif. Par conséquent, si vous le définissez sur 21h pour une serviceTimeInterval de 15 minutes, le dernier créneau disponible commencera à 20h45.

L'heure doit être spécifiée au format local pour le service. N'incluez pas de fuseau horaire dans une valeur closes. Si un fuseau horaire est spécifié, Google ignore ces informations.

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

dayOfWeek Tableau DayOfWeek Facultatif

Jours de la semaine où les heures de livraison anticipée sont disponibles. Les valeurs possibles sont les suivantes:

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

Si vous ne spécifiez aucun jour de la semaine, la valeur AdvanceServiceDeliveryHoursSpecification s'applique à tous les jours.

serviceTimeInterval Duration Obligatoire

Intervalle entre deux heures de service successives.

Par exemple, si opens et closes sont définis sur 8h et 20h et que serviceTimeInterval est de 15 minutes, l'utilisateur peut choisir les heures de traitement suivantes : 8h, 8h15, 8h30, 8h45, etc.

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

advanceBookingRequirement QuantitativeValue Obligatoire

Nombre de minutes à compter de l'heure de commande où la commande anticipée peut être traitée.

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

Par exemple, si une commande anticipée doit être traitée dans un délai d'au moins 60 minutes et qu'elle ne peut pas être traitée plus de deux jours plus tard, la valeur min est de 60 et la valeur max est de 2 880.

L'exemple suivant illustre l'utilisation du type 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 l'élément MenuItem ou MenuItemOption approprié.

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 conformément à gs1:AllergenTypeCode . Exemple : http://gs1.org/voc/AllergenTypeCode-PEANUTS.
allergenLevelOfContainmentCode Texte Facultatif Code de conteneur selon gs1:LevelOfContainmentCode Exemples : 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 du type 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 la propriété priceCurrency pour indiquer le type de devise au lieu de symboles de devise. Par exemple, "6.00", sans le symbole de la devise.
priceCurrency Texte Obligatoire Code de devise ISO 4217 à trois lettres. Exemple : "EUR".
eligibleTransactionVolume PriceSpecification Facultatif Volume de la transaction, dans une unité monétaire, pour laquelle cette spécification de frais de livraison est valide. Par exemple, pour indiquer un volume d'achats 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 certain type de frais de fret n'est valable que pour une certaine quantité.
eligibleRegion Tableau GeoShape, Place ou GeoCircle Facultatif Lieu, ou GeoShape/GeoCircle pour la ou les régions géopolitiques pour lesquelles l'offre ou la spécification des frais de livraison sont valides. N'utilisez cet établissement que si les frais de livraison varient selon la région.
validFrom DateTime Facultatif Date et heure (y compris le fuseau horaire) de validité des frais de livraison spécifiés. Exemple : "2017-05-01T06:30:00-07:00". Pour en savoir plus, consultez la section Formats de date et d'heure.
validThrough DateTime Facultatif Date et heure (y compris le fuseau horaire) au-delà desquelles les frais de livraison spécifiés ne sont plus valides. Exemple : "2017-05-01T06:30:00-07:00". L'heure de validThrough est exclusive: par exemple, si cette heure est définie sur 18h, elle est valide jusqu'à 17:59:59. Pour en savoir plus, consultez la section Formats de date et d'heure.

Les exemples suivants montrent 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 fournit deux propriétés supplémentaires requises pour les frais de livraison calculés en pourcentage.

Propriété Type Nécessité Description
referenceQuantity QuantitativeValue Obligatoire Quantité de référence à laquelle un certain prix est appliqué. Par exemple, referenceQuantity de valeur 10 avec unitCode défini sur "P1" correspond à 10% du montant de la commande. Seule la valeur unitCode "P1" est acceptée pour le moment.
basePrice Nombre Facultatif Les frais de base en plus des referenceQuantity. Par exemple, referenceQuantity de 10 avec unitCode de "P1" et basePrice de 5 en USD donnent 5 $+ 10% du montant de la commande. La valeur par défaut est 0.

Exemples de frais de livraison

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

Notez que le service de commande de bout en bout n'accepte actuellement qu'un seul DeliveryChargeSpecification. Combinez tous les types de frais dans un seul DeliveryChargeSpecification.

Consultez les exemples de flux de services pour découvrir comment spécifier des frais de livraison en fonction de la zone, de la distance et du montant de la commande.

Si aucuns frais ne s'appliquent, Offer.PriceSpecification est omis.

  • Exemple 1: Les frais de livraison correspondent à 5% du sous-total du panier
  • Exemple 2: Les frais de livraison s'élèvent à 5 €
  • Exemple 3: les frais de livraison sont de 5 $+ 10% du sous-total du panier
  • Exemple 4: Les frais de livraison sont de 5 $et les frais de bagages s'élèvent à 0,1 $
  • Exemple 5: Les frais de livraison sont de 5% et les frais de commodité s'élèvent à 2% du sous-total du panier.
  • Exemple 6: Les frais de livraison sont de 5 $et de 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 l'GeoCoordinates au centre d'un GeoCircle.
geoRadius Nombre Obligatoire Indique le rayon approximatif (en mètres) d'un GeoCircle.

L'exemple suivant illustre 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 limitées à une plage comprise entre -90 et 90 inclus. 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 en dehors de la plage comprise entre -180 et 180 sont encapsulées de sorte qu'elles soient comprises dans la plage. Par exemple, une valeur de -190 est convertie en 170. Une valeur de 190 est convertie en -170. Cela 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 illustre 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é par une série de trois points ou plus délimités par un espace. Il est recommandé que les premier et dernier points soient identiques, 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 le sens inverse des aiguilles d'une montre.

Dans la plupart des cas, vous n'aurez qu'un seul polygone. Pour les cas d'utilisation plus complexes, consultez la documentation sur les zones desservies.

Les exemples suivants montrent 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 pour le 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 permettant d'identifier l'élément Menu lorsqu'un utilisateur parcourt le menu.
description Texte Facultatif Description du menu.
disclaimer MenuDisclaimer Facultatif Clause de non-responsabilité concernant le menu. (par exemple, divulgation d'informations nutritionnelles et concernant les allergènes).
hasMenuSection Objet unique ou tableau de MenuSection Facultatif Sous-groupe logique du menu (par exemple, Dîner, Apéritif ou Plats de poisson).
hasMenuItem Objet unique ou tableau de MenuItem Facultatif Objets MenuItem contenus dans une Menu, généralement lorsque l'Menu n'est pas subdivisée par MenuSections.
inLanguage Texte Facultatif Langue du contenu du menu, sous forme de code de langue de la norme IETF BCP 47. Exemple : "fr-FR".

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 d'entités Menu, consultez Exemples de flux de restaurants et de menu.

Le tableau suivant répertorie les propriétés pour le 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, "La consommation d'énergie quotidienne moyenne d'un adulte est de 8 700 kJ".
url URL Facultatif URL renvoyant vers une page fournissant plus de détails 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 du 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 de menu.
name Texte Obligatoire Texte permettant d'identifier l'élément MenuItem lorsqu'un utilisateur parcourt 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 pour les images:

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

Une ou plusieurs offres pour proposer ce MenuItem. Décrit quand et à quel prix ce MenuItem est disponible. Une seule offre doit être valide à la fois. Vous pouvez proposer plusieurs offres si le prix ou la disponibilité varient en fonction de l'heure. Si le plat diffère par un attribut de base (par exemple, la taille pour une pizza), utilisez menuItemOption. La valeur par défaut pour Offer.eligibleQuantity est une valeur minimale de 0 sans limite supérieure.

La liste ci-dessous indique les propriétés Offer utilisées 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 MenuItemOption Obligatoire Liste des options/variantes de base pour cet élément de menu. Vous devez utiliser des options pour spécifier différentes variantes de base disponibles pour l'élément (petite, moyenne et grande, par exemple).
suitableForDiet Tableau RestrictedDiet Facultatif Le plat est conforme aux restrictions alimentaires décrites (par exemple, "http://schema.org/GlutenFreeDiet" ou "http://schema.org/VeganDiet"). Il s'agit d'une liste énumérée de valeurs possibles.
nutrition NutritionInformation Facultatif Informations nutritionnelles du plat, notamment 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 de MenuItem.
additive Tableau AdditiveDetails Facultatif Additifs du plat par gs1:AdditiveDetails. Il s'agit d'une liste énumérée des valeurs possibles. Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type de MenuItem.
packaging PackagingDetails Facultatif Informations sur l'emballage et le recyclage de ce MenuItem conformément aux gs1:PackagingDetails. Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type de MenuItem.

Les exemples suivants montrent 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 plus d'exemples d'entités MenuItem, consultez Exemples de flux de restaurants et de menus.

Option permettant de représenter les choix qu'un utilisateur doit faire lorsqu'il sélectionne un plat ou un mélange. L'utilisateur doit sélectionner une option. Sinon, la commande est considérée comme non valide. Par exemple, choisir "petite", "moyenne" ou "grande" pour une pizza.

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

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

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "MenuItemOption".
value PropertyValue Obligatoire PropertyValue contenant une paire nom/valeur représentant l'option.
offers Tableau Offer Obligatoire

Une ou plusieurs offres pour proposer ce MenuItemOption. Décrit quand et à quel prix cet élément de menu est disponible. Une seule offre doit être valide à la fois. Vous pouvez proposer de nombreuses offres valides si le prix/la disponibilité peut changer en fonction de l'heure de la journée. N'utilisez pas Offer.eligibleQuantity. MenuItemOption s'excluant mutuellement, Offer.eligibleQuantity est ignoré s'il est fourni.

La liste ci-dessous indique les propriétés Offer utilisées 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 Menu des éléments autorisés pouvant être ajoutés en tant que module complémentaire. N'utilisez cette option que si les modules complémentaires sont spécifiques à une option d'élément de menu particulière. Sinon, fournissez des modules complémentaires à l'aide de la propriété MenuItem.menuAddOn.
suitableForDiet Tableau RestrictedDiet Facultatif Liste énumérée indiquant les régimes alimentaires pour lesquels ce plat respecte la restriction alimentaire décrite (par exemple, "http://schema.org/GlutenFreeDiet" ou "http://schema.org/VeganDiet").
nutrition NutritionInformation Facultatif Informations nutritionnelles du plat, notamment 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 de MenuItemOption.
additive Tableau AdditiveDetails Facultatif Additifs du plat par gs1:AdditiveDetails. Il s'agit d'une liste énumérée des valeurs possibles. Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type de MenuItemOption.
packaging PackagingDetails Facultatif Informations sur l'emballage et le recyclage de cet élément MenuItem conformément à gs1:PackagingDetails Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Ajoutez FoodBeverageTobaccoProduct au type de 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 répertorie 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 permettant d'identifier l'élément MenuSection lorsqu'un utilisateur parcourt le menu.
description Texte Facultatif Description de la section du menu.
hasMenuSection Tableau MenuSection Facultatif Sous-groupe logique de MenuSection. Par exemple, la section du menu "Dîner" peut comporter plusieurs sous-MenuSections telles que "Plats à base de volaille" ou "Végétarien".
hasMenuItem Tableau MenuItem Facultatif Éléments de menu contenus dans un MenuSection.
offers Tableau Offer Facultatif

Utilisez Offer.availabilityStarts et Offer.availabilityEnds pour indiquer la période pendant laquelle ce MenuSection est diffusé. N'utilisez pas Offer.eligibleQuantity.

La liste suivante présente les propriétés Offer utilisées dans MenuSection:

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

Les exemples suivants montrent 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 d'entités MenuSection, consultez Exemples de flux de restaurants et de menu.

NutritionInformation

Le tableau suivant décrit les propriétés du type NutritionInformation. Les unités de mesure sont sensibles à la casse. Par exemple, « Cal » est accepté, mais « cal » ne l'est pas.

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

Nombre de calories en cal., kcal ou kJ, au format suivant:

number Cal_kcal_OR_kJ

Exemple : "240 Cal".

carbohydrateContent Texte Facultatif

Quantité de glucides, généralement en g, au format suivant:

number g_OR_mg

Exemple : "7 g".

cholesterolContent Texte Facultatif

Quantité de cholestérol, généralement en mg, au format suivant:

number g_OR_mg

Exemple : "12 mg".

fatContent Texte Facultatif

Quantité de graisses, généralement exprimée en g, au format suivant:

number g_OR_mg

Exemple : "42 g".

fiberContent Texte Facultatif

Nombre en g ou mg de fibres, au format suivant:

number g_OR_mg
proteinContent Texte Facultatif

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

number g_OR_mg
saturatedFatContent Texte Facultatif

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

number g_OR_mg
servingSize Texte Facultatif Taille de la portion en mL, L, g ou kg, en termes de volume ou de 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 de mg de sucre, au format suivant:

number g_OR_mg
transFatContent Texte Facultatif

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

number g_OR_mg
unsaturatedFatContent Texte Facultatif

Quantité de graisses insaturées, généralement en g, au format suivant:

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 du menu. Le tableau suivant décrit les propriétés du type Offer:

Propriété Type Nécessité Description
@type Texte Obligatoire La valeur est toujours "Offre".
sku Texte Conditional

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

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

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

Prix de l'article proposé. Par exemple, "6.00" sans le symbole de 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 Conditional

Devise (au format ISO 4217 à trois lettres) du prix ou d'un composant de prix, lorsqu'elle est associée à la valeur "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 Date et heure, ou seulement l'heure à partir de laquelle l'offre est disponible. Par exemple, si des pancakes sont servis à partir de 7h, la valeur de ce champ peut se présenter comme suit : "2017-05-01T07:00:00-07:00". Pour en savoir plus, consultez la section Formats de date et d'heure.
availabilityEnds DateTime ou Time Facultatif La date et l'heure, ou seulement l'heure à laquelle l'offre n'est pas disponible. Ce temps est exclusif. Par exemple, si la disponibilité des pancakes se termine à 10h, la dernière pancakes peut être servie à 9:59:59. La valeur de ce champ peut alors se présenter comme suit: "2017-05-01T10:00:00-07:00". Pour en savoir plus, consultez la section Formats de date et d'heure.
availableDay Tableau DayOfWeek Facultatif

Jours de la semaine où cet article est disponible. Les valeurs possibles sont les suivantes :

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

Si la disponibilité est différente 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 le prix spécifié est valide. Par exemple, les pâtes coûtent 8 $au déjeuner et 10 $au dîner. Pour en savoir plus, consultez la section 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) après lesquelles le prix spécifié n'est plus valide. Par exemple, les pâtes coûtent 8 $au déjeuner et 10 $au dîner. L'heure de validThrough est exclusive : par exemple, si cette heure est définie sur 18h, elle est valide jusqu'à 17:59:59. Pour en savoir plus, consultez la section 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é commandée pour laquelle cet article est autorisé. Par exemple, un restaurant peut exiger la commande d'au moins 10 pizzas en 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 ne s'appliquent que 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 l'é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 actuel 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 tableau de PaymentChargeSpecification Facultatif

Lorsqu'il est utilisé dans Service.Offer, il indique les détails du prix de la livraison. Si plusieurs objets DeliveryChargeSpecification sont applicables, le plus spécifique est appliqué. Utilisez des objets DeliveryChargeSpecification qui s'excluent mutuellement 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 où ce Offer est proposé.

S'il n'est pas spécifié, cet élément Offer sera proposé à 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 par lequel ce Offer est traité. Les valeurs possibles sont "DELIVERY" ou "TAKEOUT".

S'il n'est pas spécifié, cet Offer sera traité à la fois 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. Remplacez-la par sku comme décrit ci-dessus.

Les exemples suivants montrent des éléments Offer:

Exemple 1

Voici une offre simple:

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

Exemple 2

L'exemple d'offre suivant indique la disponibilité de 8h à 10h le week-end:

{
  "@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 montre la disponibilité de 9 h à 10:59:59 AM les lundis, mercredis et vendredis, mais de 8 à 11: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 la quantité éligible d'un élément de menu complémentaire, afin que l'utilisateur puisse commander un maximum de deux portions de cet article :

{
  "@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 pour un établissement 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 à quel moment les services de commande sont disponibles. En règle générale, la valeur de opens est inférieure à la valeur de closes. Les consignes suivantes s'appliquent à l'utilisation des propriétés opens et closes:

  • Les propriétés opens et closes sont facultatives, mais vivement recommandées pour indiquer quand le tri est disponible. Pour définir les heures disponibles, il est recommandé d'inclure un tableau deliveryHours contenant un élément ServiceDeliveryHoursSpecification avec les propriétés opens et closes. 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 de commande anticipée.
  • Si opens et closes ne sont pas explicitement spécifiés, nous supposons que le service de commande est disponible tous les jours à toute heure de la journée.
  • L'heure doit être spécifiée dans le fuseau horaire local 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 des champs 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 interprétée comme correspondant au jour suivant. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et que l'heure de fermeture est 2h, le restaurant est considéré comme fermant le 2 janvier à 2h.
  • Le temps défini pour closes est exclusif. Par conséquent, si les heures d'ouverture et de fermeture de cette fenêtre de commande sont définies respectivement sur 10h et 16h, la dernière commande est 15:59:59.

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

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 correspondant à ces horaires d'ouverture. Les valeurs acceptées sont "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" et "Sunday". Exemple :

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

Si vous ne spécifiez aucun jour de la semaine, la valeur 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 les jours de la semaine spécifiés. Par exemple, 6:30 est exprimé sous la forme "T06:30:00".

Lorsqu'elle est utilisée dans une spécification Service, cette valeur indique l'heure précise à partir de laquelle les utilisateurs peuvent passer des commandes. Il indique l'heure d'ouverture du système en ligne et permet aux utilisateurs de passer des commandes. Au sein de ces horaires d'ouverture et de fermeture du système en ligne, vous pouvez utiliser deliveryHours pour indiquer les horaires d'ouverture et de fermeture auxquels les utilisateurs peuvent commander des types de livraisons particuliers.

L'heure doit être spécifiée dans le fuseau horaire local 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 la section Formats de date et d'heure.

closes Time Facultatif

Lorsqu'elle est utilisée dans une spécification Service, cette propriété indique l'heure précise au-delà de laquelle les commandes des utilisateurs ne peuvent pas être passées. Il indique l'heure de fermeture du système en ligne et permet aux utilisateurs de passer des commandes. Au sein de ces horaires d'ouverture et de fermeture du système en ligne, vous pouvez utiliser deliveryHours pour indiquer les horaires d'ouverture et de fermeture auxquels les utilisateurs peuvent commander des types de livraisons particuliers.

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

Pour en savoir plus, consultez la section 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 de validité des horaires d'ouverture spécifiés par opens et closes du restaurant.

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

Lorsqu'il est utilisé dans une spécification Service, validFrom indique la date de début à partir de laquelle les commandes des utilisateurs peuvent être passées.

Si cette propriété n'est pas spécifiée dans votre flux, Google suppose que le restaurant ou le service est disponible tous les jours.

Outre la date, les parties heure et fuseau horaire de la valeur sont obligatoires.

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

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

validThrough DateTime Facultatif

En cas d'utilisation dans une Restaurant, date après laquelle les horaires d'ouverture spécifiés par opens et closes ne sont plus valides.

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

Lorsqu'il est utilisé dans une spécification Service, validThrough indique la date de fin au-delà de laquelle les commandes des utilisateurs ne peuvent plus être passées.

Si cette propriété n'est pas spécifiée dans votre flux, Google suppose que le restaurant ou le service est disponible tous les jours.

Outre la date, les parties heure et fuseau horaire de l'élément "DateTime" sont obligatoires.

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

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

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

deliveryHours Tableau de ServiceDeliveryHoursSpecification ou de AdvanceServiceDeliveryHoursSpecification Conditional

Spécification du délai de livraison ou de vente à emporter.

Ce paramètre est obligatoire, sauf si le restaurant est fermé (ce qui signifie que opens et closes sont définis et égaux).

  • ServiceDeliveryHoursSpecification: vous pouvez définir des horaires d'ouverture et de fermeture pendant lesquels les utilisateurs peuvent passer des commandes dès que possible.
  • AdvanceServiceDeliveryHoursSpecification: vous pouvez définir des horaires d'ouverture et de fermeture pendant lesquels les utilisateurs peuvent passer des commandes à l'avance.

Les exemples suivants montrent 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 FoodBeverageTobaccoProduct au type MenuItem ou 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 conformément à gs1:PackagingRecyclingProcessTypeCode Par exemple, http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE ou http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE.
hasReturnablePackageDeposit ReturnablePackageDepositDetails Facultatif Détails concernant le dépôt d'un colis à retourner, conformément à l'article gs1:ReturnablePackageRepositoryDetails. Par exemple, les bouteilles et les canettes contiennent une consigne de dépôt pour les colis retournés.

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 du type PaymentChargeSpecification:

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 le symbole de la devise.
priceCurrency Texte Obligatoire Code de devise ISO 4217 à trois lettres du prix. Exemple : "USD".
eligibleTransactionVolume PriceSpecification Facultatif Volume de transaction, dans une unité monétaire, pour lequel cette spécification de frais de paiement est valide (par exemple, pour indiquer un volume d'achat minimal).
eligibleQuantity QuantitativeValue Facultatif Quantités commandées pour lesquelles les frais de paiement sont valides. Par exemple, vous pouvez utiliser cette propriété pour exiger un nombre minimal d'articles dans une commande.
validFrom DateTime Facultatif Date et heure (y compris le fuseau horaire) de validité des frais de paiement spécifiés. Exemple : "2017-05-01T07:00:00-07:00". Pour en savoir plus, consultez la section Formats de date et d'heure.
validThrough DateTime Facultatif Date et heure (y compris le fuseau horaire) auxquelles les frais de paiement spécifiés ne sont pas valides. Exemple : "2017-05-01T07:30:00-07:00". L'heure de validThrough est exclusive: par exemple, si cette heure est définie sur 18h, elle est valide jusqu'à 17:59:59. Pour en savoir plus, consultez la section 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 fournit deux propriétés supplémentaires requises pour les frais de service calculés en pourcentage.

propriété Type Nécessité Description
referenceQuantity QuantitativeValue Obligatoire Quantité de référence à laquelle un certain prix est appliqué. Par exemple, referenceQuantity de valeur 10 avec unitCode défini sur "P1" correspond à 10% du montant de la commande. Seul unitCode "P1" est actuellement pris en charge.
basePrice Nombre Facultatif Les frais de base en plus des referenceQuantity. Par exemple, referenceQuantity de 10 avec unitCode de "P1" et basePrice de 5 en USD génèrent 5 $+ 10% du montant de la commande. La valeur par défaut est 0.

Exemples de frais de vente à emporter

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

Notez que nous n'acceptons actuellement qu'un seul élément PaymentChargeSpecification. Combinez tous les types de frais dans un seul PaymentChargeSpecification.

Si aucuns frais ne s'appliquent, Offer.PriceSpecification est omis.

  • Exemple 1: Les frais de service correspondent à 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 s'élèvent à 5% du sous-total du panier
  • Exemple 4: Les frais de bagage sont de 0,1 $et les frais de service de 1 $
  • Exemple 5: Les frais de service sont de 5% et le pourboire requis correspond à 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 du "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 Il s'agit toujours de "PostalAddress".
addressLocality Texte Obligatoire* Localité ou ville. Exemple : "Marseille".
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 lister ces propriétés pour désigner un Service.areaServed auquel un service est fourni.

Lorsqu'elles sont utilisées dans Restaurant.address, toutes les propriétés listées dans PostalAddress sont obligatoires.

L'exemple suivant illustre 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 du type PriceSpecification:

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 fourchette de prix.
maxPrice Nombre Facultatif Prix le plus élevé si le prix correspond à une gamme de prix.
priceCurrency Texte Obligatoire Code de devise ISO 4217 à trois lettres du prix. Exemple : "USD".
eligibleQuantity QuantitativeValue Facultatif Quantité commandée pour laquelle 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 illustre 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 de MenuItemOption.

Le tableau suivant répertorie les propriétés pour le 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.

Les noms suivants sont valides lorsqu'ils sont utilisés dans le fichier MenuItem:

  • "SIZE": taille du MenuItem. (par exemple, petit, moyen ou grand).
  • "OPTION": toute variante autre que la taille (comme un plat proposé sous forme de salade ou de sandwich). Si vous ne parvenez pas à faire la distinction entre "SIZE" et "OPTION", utilisez "OPTION".

Noms valides lorsqu'ils sont utilisés dans le fichier AddOnMenuItem:

  • "APPLICABLE_ITEM_OPTION": option du module complémentaire applicable uniquement lorsqu'elle est utilisée avec l'élément MenuItem avec la valeur "SIZE/OPTION" correspondante.
  • "PIZZA_SIDE": spécifique aux pizzas, ce complément n'est valable que pour une part ou une pizza entière (comme des garnitures aux champignons sur le côté gauche ou droit, ou une pizza entière).
  • "SIZE": option permettant de définir la taille du supplément (par exemple, de grosses frites en tant que complément d'un menu composé de plusieurs repas).
  • "OPTION": toute variante autre que la taille. Si vous ne parvenez pas à faire la distinction entre "SIZE" et "OPTION", utilisez "OPTION".
value Texte Obligatoire

Valeur de l'option. Les valeurs peuvent correspondre à n'importe quelle chaîne et sont affichées telles quelles. Voici les valeurs 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'une des options "OPTION/SIZE" correspondantes pour l'élément menuItemOptions de l'élément MenuItem parent.

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

Unité de mesure sous forme de code commun UN/CEFACT ou d'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 la plus faible 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 pour le type Restaurant:

Propriété Type Nécessité Description
@type Texte Obligatoire La chaîne est toujours "Restaurant".
@id URL Obligatoire Identifiant unique du restaurant ou du prestataire de livraison. Par exemple, "http://www.fournisseur.com/326", où "326" est l'identifiant unique du restaurant.
name Texte Obligatoire Texte permettant d'identifier l'élément Restaurant lors du processus de commande.
url URL Obligatoire URL de votre domaine qui représente le restaurant. Par exemple, "http://www.provider.com/somerestaurant".
sameAs URL Facultatif 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", // Le code pays (+1) est obligatoire
  "servesCuisine": [
    "Fusion indienne-mexicaine"
  ]
},
  
  

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 d'entités Restaurant, consultez Exemples de flux de restaurants et de menu.

ReturnablePackageDepositDetails

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

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

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

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

Propriété Type Nécessité Description
@type Texte Obligatoire Il s'agit toujours de "ReturnablePackageRepositoryDetails".
returnablePackageDepositAmount gs1:PriceSpecification Facultatif Montant du virement pour cet article par gs1:PriceSpecification. Par exemple, un dépôt de 0,25 $ par canette.

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

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

Service

Décrit la livraison d'une action de commande de bout en bout depuis un restaurant vers un emplacement géographique par une entreprise 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 services 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. Exemple : "http://www.fournisseur.com/service/1".
description Texte Facultatif Description de l'article.
serviceType Texte Obligatoire Type de service proposé. Les valeurs possibles sont "DELIVERY" ou "TAKEOUT".
provider Restaurant Obligatoire Référence à l'identifiant unique du restaurant. Par exemple, "http://www.provider.com/somerestaurant".
areaServed Tableau GeoShape, Place ou GeoCircle Conditional Zone géographique dans laquelle un service est fourni. Ce champ est facultatif par défaut, mais il est obligatoire si serviceType correspond à "DELIVERY".
hoursAvailable Tableau OpeningHoursSpecification Obligatoire Horaires d'ouverture de ce service.
specialOpeningHoursSpecification Tableau OpeningHoursSpecification, ServiceDeliveryHoursSpecification ou AdvanceServiceDeliveryHoursSpecification Facultatif

Heures qui ignorent les délais OpeningHoursSpecification ou les délais de traitement, plus généraux. Ce champ permet généralement de définir les jours fériés et 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 obligatoires lorsque vous spécifiez ces propriétés.

offers Tableau Offer Conditional

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

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

hasOfferCatalog [Menu, OfferCatalog] Obligatoire

Spécifie un menu pour ce service. Vous pouvez disposer d'un menu différent pour chacun de vos services (vente à emporter, livraison et restauration, par exemple).

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

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

Informations de configuration de service facultatives. Les éléments doivent être des objets dont la clé name correspond au nom du champ facultatif. La clé value est une valeur contextuelle du champ.

Pour en savoir plus sur les noms et valeurs spécifiques, consultez la documentation de référence sur ServingConfig.

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

Contient l'URL d'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 plus d'exemples d'entités de service, consultez Exemples de flux de service.

ServiceDeliveryHoursSpecification

Représente les heures de traitement pour lesquelles les utilisateurs peuvent programmer la livraison et la récupération des commandes dès que possible.

En général, la valeur de opens est inférieure à celle de closes. 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 de les inclure.
  • L'heure doit être spécifiée dans le fuseau horaire local du service. N'incluez pas de fuseau horaire dans une valeur opens ou closes. Si un fuseau horaire est spécifié, Google ignore ses informations.
  • Si opens et closes ne sont pas explicitement spécifiés, nous supposons que la commande "Dès que possible" est disponible tous les jours à tout moment.
  • Si opens et closes sont identiques, nous supposons que la commande "Dès que possible" est indisponible.
  • Si opens est supérieur à closes, l'heure de fermeture est interprétée comme correspondant au jour suivant. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et que l'heure de fermeture est 2h, le restaurant est considéré comme fermant le 2 janvier à 2h.

Le tableau suivant décrit les propriétés du type 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 commandes des utilisateurs peuvent être traitées dès que possible. Exemple : "2017-05-01T07:00:00-07:00". Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours.

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

validThrough DateTime Facultatif

Date et heure (fuseau horaire compris) après lesquelles les commandes des utilisateurs ne peuvent plus être traitées. Exemple : "2017-05-01T07:00:00-07:00". Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours.

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

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

opens Time Facultatif

Heure à laquelle le service de livraison commence pour le traitement des commandes des utilisateurs dès que possible. Exemple : "T10:30:00".

L'heure doit être spécifiée dans le fuseau horaire local 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 la section Formats de date et d'heure.

closes Time Facultatif

L'heure à laquelle le service de livraison pour les commandes "Dès que possible" des utilisateurs n'est plus disponible. Exemple : "T23:59:59".

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

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

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

dayOfWeek Tableau DayOfWeek Facultatif

Jours de la semaine pendant lesquels ce service est disponible pour les commandes des utilisateurs dès que possible. Les valeurs suivantes sont valides:

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

Si vous ne spécifiez aucun jour de la semaine, ServiceDeliveryHoursSpecification s'applique à tous les jours.

deliveryLeadTime QuantitativeValue Facultatif Délai de livraison estimé, en minutes, une fois la commande passée. Nous vous recommandons vivement de définir cette propriété. Définissez le champ value de QuantitativeValue sur le nombre de minutes et le champ unitCode sur "MIN".

L'exemple suivant illustre 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