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 pourTIME
. - 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 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 |
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:
|
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é La valeur par défaut pour Les propriétés
|
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:
|
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 La liste ci-dessous indique les propriétés
|
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 Les objets Le nombre d' |
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
etcloses
sont facultatives pourAdvanceServiceDeliveryHoursSpecification
, 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
oucloses
. Les fuseaux horaires spécifiés sont ignorés. - Si
opens
etcloses
ne sont pas explicitement spécifiés, nous supposons que la commande à l'avance est disponible tous les jours à tout moment. - Si
opens
etcloses
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
etcloses
font référence au prochain créneau horaire.closes
est exclusif. Par exemple, siopens
correspond à 10h et quecloses
est à 16h avec unserviceTimeInterval
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 Si ce type est spécifié en tant que 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 Si ce type est spécifié en tant que Le temps défini pour 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 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".
L'heure doit être spécifiée au format local pour le service. N'incluez pas de fuseau horaire dans une valeur 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:
Si vous ne spécifiez aucun jour de la semaine, la valeur |
serviceTimeInterval |
Duration |
Obligatoire |
Intervalle entre deux heures de service successives. Par exemple, si
|
advanceBookingRequirement |
QuantitativeValue |
Obligatoire |
Nombre de minutes à compter de l'heure de commande où la commande anticipée peut être traitée. Les valeurs 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 |
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" } ], ... },
Menu
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.
MenuDisclaimer
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" } }
MenuItem
É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:
|
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 La liste ci-dessous indique les propriétés
|
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.
MenuItemOption
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
La liste ci-dessous indique les propriétés
|
menuAddOn |
Array of |
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 -- ] } ] } ] }
MenuSection
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 La liste suivante présente les propriétés
|
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 Cette propriété n'est utilisée que pour les types d'offres suivants:
|
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:
Il n'est pas utilisé dans les types d'offres suivants:
|
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:
Il n'est pas utilisé dans les types d'offres suivants:
|
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 :
Si la disponibilité est différente selon les jours de la semaine, utilisez plusieurs objets |
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:
Cette propriété n'est pas utilisée dans les types d'offres suivants:
|
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 Cette propriété peut être utilisée dans les types d'offres suivants:
Cette propriété n'est pas utilisée dans les types d'offres suivants.
|
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:
Cette propriété n'est pas utilisée dans les types d'offres suivants.
|
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:
Cette propriété n'est pas utilisée dans les types suivants.
|
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:
Cette propriété n'est pas utilisée dans les types d'offres suivants:
|
priceSpecification |
Tableau de DeliveryChargeSpecification ou tableau de PaymentChargeSpecification | Facultatif |
Lorsqu'il est utilisé dans Cette propriété peut être utilisée dans les types d'offres suivants:
Cette propriété n'est pas utilisée dans les types d'offres suivants:
|
offeredBy |
Tableau d'ID Restaurant |
Facultatif | Représente les restaurants où ce S'il n'est pas spécifié, cet élément Cette propriété peut être utilisée dans les types d'offres suivants:
Cette propriété n'est pas utilisée dans les types d'offres suivants:
|
applicableFulfillmentMethod |
Tableau de texte | Facultatif | Représente le type de service par lequel ce S'il n'est pas spécifié, cet Cette propriété peut être utilisée dans les types d'offres suivants:
Cette propriété n'est pas utilisée dans les types d'offres suivants:
|
@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
etcloses
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 tableaudeliveryHours
contenant un élémentServiceDeliveryHoursSpecification
avec les propriétésopens
etcloses
. Vous pouvez ensuite inclure un objetAdvanceServiceDeliveryHoursSpecification
dansdeliveryHours
avec ses propres propriétésopens
etcloses
, si vous souhaitez offrir une période plus limitée de commande anticipée. - Si
opens
etcloses
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
oucloses
. Si un fuseau horaire est spécifié, Google ignore ces informations. - Si les valeurs des champs
opens
etcloses
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 |
opens |
Time |
Facultatif |
Lorsqu'elle est utilisée dans une spécification Lorsqu'elle est utilisée dans une spécification L'heure doit être spécifiée dans le fuseau horaire local du service. N'incluez pas de fuseau horaire dans une valeur 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 L'heure doit être spécifiée dans le fuseau horaire local du service. N'incluez pas de fuseau horaire dans une valeur 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 Par exemple, si les heures données s'appliquent à toute l'année 2017, définissez Lorsqu'il est utilisé dans une spécification 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 Par exemple, si les heures données s'appliquent à toute l'année 2017, définissez Lorsqu'il est utilisé dans une spécification 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 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
|
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
Noms valides lorsqu'ils sont utilisés dans le fichier
|
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:
|
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 |
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émentMenuItem
ouMenuItemOption
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.
|
@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 Définissez la plage de dates spéciale à l'aide des 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 La propriété |
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 "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é
Pour en savoir plus sur les noms et valeurs spécifiques, consultez la documentation de référence sur "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
etcloses
sont facultatives pourServiceDeliveryHoursSpecification
, 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
oucloses
. Si un fuseau horaire est spécifié, Google ignore ses informations. - Si
opens
etcloses
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
etcloses
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 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 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 L'heure doit être spécifiée dans le fuseau horaire local du service. N'incluez pas de fuseau horaire dans une valeur 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:
Si vous ne spécifiez aucun jour de la semaine, |
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
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/02/16 (UTC).