Les flux du catalogue alimentaire sont basés sur schema.org DataFeed
.
entités. Un flux de catalogue alimentaire comprend des informations sur les paramètres régionaux du restaurant, comme le
l'adresse, le menu et l'emplacement du restaurant, ainsi que le service proposé
des détails tels que les frais de livraison, les zones de livraison et d'autres articles tels que spécifiés
ci-dessous.
Un DataFeed
contient une collection d'éléments, chacun représentant un seul élément.
exprimé dans le vocabulaire schema.org. Vous pouvez utiliser l'DataFeed
pour publier toutes vos données structurées au format JSON-LD.
Pour savoir comment utiliser ces spécifications pour créer vos flux, consultez les Présentation de l'intégration de l'inventaire
Formats de date et d'heure
DateTime
est basé sur le type schema.org,
Sauf mention contraire, doivent respecter le format ISO 8601 et inclure les
la date, l'heure et le fuseau horaire. Utilisez la syntaxe suivante pour DateTime
:
// DateTime format: YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]
Exemple :
2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z // UTC time zone. The optional "Z" suffix represents the UTC time zone.
Time
est l'heure locale d'un restaurant donné.
le fuseau horaire de l'emplacement de service, est également basé sur le type schema.org et doit également
au format ISO 8601. L'heure utilise la syntaxe suivante:
// Time format: THH:MM:SS
Exemple :
T08:08:00 // 8:08 AM
Notez les points suivants chaque fois que vous spécifiez un DateTime
ou un Time
:
- Le "T" avant l'heure fait partie du format et est obligatoire.
- Le fuseau horaire doit être spécifié pour
DATETIME
. Il n'est pas obligatoire pourTIME
. - L'heure doit être spécifiée dans l'heure locale du restaurant ou du service.
Enveloppe
Le code de départ de tout flux de catalogue alimentaire doit contenir une "enveloppe" .
L'enveloppe correspond à la structure de premier niveau de chaque flux. Il doit s'agir
DataFeed
avec les propriétés suivantes:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@context |
URL | Obligatoire | Contexte utilisé généralement "http://schema.googleapis.com". |
@type |
Texte | Obligatoire | Il s'agit toujours de "DataFeed". |
dateModified |
DateTime |
Obligatoire |
Dernière modification ( Date et heure, au format ISO_OFFSET_DATE_TIME, auxquelles les éléments de ce flux ont été modifiés. En l'absence de ce champ, on considère que cette heure de mise à jour correspond à l'heure de réception du message push (ou lors de l'exploration) sur les serveurs Google. Nous vous recommandons vivement de le faire si vous utilisez à la fois la méthode push et à explorer ensemble. Cet horodatage doit être spécifié avec un fuseau horaire en millisecondes, Exemple : "2016-12-28T06:30:00:123-07:00". Dans vos flux par lot, la macro
entity
la gestion des versions est déterminée via la |
dataFeedElement |
Tableau de Menu ou
Restaurant
ou Service |
Obligatoire | Un ou plusieurs éléments de ce flux. Voir ci-dessous pour plus de détails. |
L'exemple suivant montre l'enveloppe:
Exemple
{ "@context": "http://schema.googleapis.com", "dateModified": "2016-12-28T06:30:00:123-07:00", "@type": "DataFeed", "dataFeedElement": [ /* All items that are part of this feed go here */ ] }
AdditiveDetails
Pour utiliser ce type, ajoutez le contexte gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Ajoutez ensuite FoodBeverageTobaccoProduct
au type de MenuItem
approprié.
ou MenuItemOption
.
Le tableau suivant décrit les propriétés du type AdditiveDetails
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "AdditiveDetails". |
additiveName |
Texte | Facultatif | Nom de l'additif. |
additiveLevelOfContainment |
Texte | Facultatif | Code de structuration par
gs1:LevelOfContainmentCode
Par exemple http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ou
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN |
L'exemple suivant illustre l'utilisation du type AdditiveDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/8", "name": "Energy Drink", "description": "A 0.25l can of energy drink.", "offers": { "@type": "Offer", "sku": "offer-energy-drink", "price": "3.49", "priceCurrency": "USD" }, "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AdditiveDetails", "additiveName": "phosphate", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
AddOnMenuItem
Un aliment ou une boisson listé dans un élément de menu complémentaire d'un MenuItem
.
Le tableau suivant répertorie les propriétés du type AddOnMenuItem
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "AddOnMenuItem". |
@id |
URL | Obligatoire | Identifiant unique de l'élément de menu du module complémentaire. |
name |
Texte | Obligatoire | Texte qui identifie l'élément AddOnMenuItem lorsqu'un utilisateur parcourt le . |
description |
Texte | Facultatif | Description de l'élément de menu du module complémentaire. |
image |
URL | Facultatif |
Image de l'élément de menu du module complémentaire qui correspond aux consignes suivantes:
|
offers |
Tableau de Offer |
Obligatoire* |
Une ou plusieurs offres pour fournir cet AddOnMenuItem. Décrit quand et à quel prix cet AddOnMenuItem est disponible.
Une seule offre doit être valide à la fois. Vous pouvez avoir
de nombreuses offres valides si le prix ou la disponibilité peuvent varier
l'heure de la journée. Lorsque le module complémentaire ou l'article diffère par un attribut de base
ou une variante du module complémentaire lui-même (petit, moyen ou grand, par exemple).
les frites en option), utilisez l' La valeur par défaut pour Les propriétés
|
hasMenuItemOptions |
Tableau de MenuItemOption |
Obligatoire* |
Tableau d'attributs de base décrivant une variante du module complémentaire (petites, moyennes et grandes frites en accompagnement, par exemple), élément de menu du module complémentaire. Utiliser des options pour définir les différentes variantes disponibles pour cet élément de menu du module complémentaire. Il existe deux scénarios dans lesquels cela peut se produire:
|
suitableForDiet |
Tableau de RestrictedDiet |
Facultatif | Le plat respecte la restriction alimentaire décrite (par exemple, "Régime Sans gluten" ou « Régime végétalien »). Il s'agit d'une liste énumérée des valeurs. |
nutrition |
NutritionInformation |
Facultatif | Informations nutritionnelles du plat, en particulier les calories. |
menuAddOn |
Tableau de AddOnMenuSection |
Facultatif | AddOnMenuItem peut avoir une section de menu composée d'éléments autorisés que vous pouvez ajouter en tant que module complémentaire. |
L'exemple suivant montre AddOnMenuItem
:
Exemple 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Exemple 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
Sous-groupe d'aliments ou de boissons comme section de menu complémentaire pour le l'élément de menu.
Le tableau suivant répertorie les propriétés du type AddOnMenuSection
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "AddOnMenuSection". |
@id |
URL | Obligatoire | Identifiant unique de la section du menu. |
name |
Texte | Obligatoire | Texte pouvant identifier l'AddOnMenuSection lorsqu'un utilisateur parcourt la . |
description |
Texte | Facultatif | Description de la section de menu. |
eligibleQuantity |
QuantitativeValue |
Facultatif | Indique le nombre d'éléments autorisés en tant que module complémentaire pour ce menu . Vous pouvez utiliser ce champ pour limiter le nombre de modules complémentaires, par exemple nombre minimal et maximal de garnitures que vous pouvez choisir sur une pizza. |
image |
URL | Facultatif | Image de la section de menu. |
hasMenuItem |
Tableau de AddOnMenuItem |
Obligatoire* | Éléments de menu du module complémentaire contenus dans une AddOnMenuSection. |
offers |
Tableau de Offer |
Facultatif |
Utiliser La liste ci-dessous indique
|
hasMenuSection |
Tableau de AddOnMenuSection |
Obligatoire* | Sous-groupes logiques du menu des modules complémentaires (comme Dîner, Apéritifs ou Plats de poisson. |
defaultOption |
Tableau de AddOnMenuItem |
Facultatif |
Éléments de menu complémentaires à présélectionner par défaut pour les utilisateurs du
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 "sandwich au fromage" l'élément de menu a un "Choix du fromage"
AddOnMenuSection
avec "Swiss" et "mozzarella" présélectionné
par défaut.
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "defaultOption": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a" }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b" } ], "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozzarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
AdvanceServiceDeliveryHoursSpecification
Représente les heures de traitement pour lesquelles les utilisateurs doivent planifier des commandes à l'avance pour livraison et vente à emporter.
En général, la valeur de opens
est inférieure à la valeur de closes
. La
Les consignes suivantes s'appliquent à l'utilisation des propriétés opens
et closes
:
- Les propriétés
opens
etcloses
sont facultatives pourAdvanceServiceDeliveryHoursSpecification
, mais nous vous recommandons vivement les inclure. - L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de
fuseau horaire dans une valeur
opens
oucloses
. Les fuseaux horaires spécifiés sont ignorés. - Si
opens
etcloses
ne sont pas explicitement spécifiés, nous supposons que l'avance les commandes sont disponibles tous les jours et à tout moment. - Si les valeurs
opens
etcloses
sont identiques, nous supposons que la commande anticipée est indisponible. - Si
opens
est supérieur àcloses
, l'heure de fermeture est considérée comme ayant le dès le lendemain. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et l'heure de fermeture est 2h, alors le restaurant est considéré comme fermé le 2 janvier à 2h. opens
etcloses
font référence au futur créneau horaire.closes
est exclusif. Pour Exemple : siopens
correspond à 10 h et quecloses
à 16 h avec unserviceTimeInterval
de 15 minutes, le premier créneau commence à 10h et le dernier le créneau commence à 15h45.
Le tableau suivant décrit les propriétés
Type de AdvanceServiceDeliveryHoursSpecification
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "AdvanceServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Conditionnel |
Date de début à partir de laquelle les commandes à l'avance peuvent être satisfaite. Exemple : "2017-05-01T00:00:00-07:00". Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours.
Les propriétés Si ce type est spécifié en tant que
Pour en savoir plus, consultez <ph type="x-smartling-placeholder"></ph> Formats "Date/Heure" et "Heure". |
validThrough |
DateTime |
Facultatif |
Date de fin au-delà de laquelle les commandes à l'avance ne peuvent plus être satisfaite. Exemple : "2018-12-01T00:00:00-07:00". Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours.
Les propriétés Si ce type est spécifié en tant que
Le temps imparti pour Pour en savoir plus, consultez Formats de date et d'heure. |
opens |
Time |
Facultatif |
S'applique aux créneaux de livraison ou à emporter. L'heure précise de la journée à partir de laquelle les commandes anticipées peuvent être satisfaite. Par exemple, 6h30 est indiqué sous la forme "T06:30:00". L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de
fuseau horaire dans une valeur Pour en savoir plus, consultez Formats de date et d'heure. |
closes |
Time |
Facultatif |
S'applique aux créneaux de livraison ou à emporter. L'heure précise de la journée au-delà de laquelle les commandes anticipées ne peuvent pas
être satisfaite. Par exemple, 21h est indiqué sous la forme "T21:00:00".
Le paramètre L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire
inclure un fuseau horaire dans une valeur Pour en savoir plus, consultez Formats de date et d'heure. |
dayOfWeek |
Tableau de DayOfWeek |
Facultatif |
Jours de la semaine pendant lesquels les heures de livraison à l'avance sont disponibles. Valide sont les suivantes:
Si vous n'indiquez aucun jour de la semaine, le
|
serviceTimeInterval |
Duration |
Obligatoire |
Intervalle entre deux heures de service successives. Par exemple, si
|
advanceBookingRequirement |
QuantitativeValue |
Obligatoire |
Nombre de minutes à partir de l'heure de la commande pendant lesquelles la commande anticipée peut être satisfaite. Les Par exemple, si une commande anticipée nécessite au moins 60 minutes
traitée et ne peut pas être traitée pendant plus de deux jours
plus tard, la valeur |
L'exemple suivant illustre l'utilisation de la classe
Type de AdvanceServiceDeliveryHoursSpecification
:
Exemple 1
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Pour utiliser ce type, ajoutez le contexte gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Ajoutez ensuite FoodBeverageTobaccoProduct
au type de MenuItem
approprié.
ou MenuItemOption
.
Le tableau suivant décrit les propriétés du type AllergenDetails
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "AllergenDetails". |
allergenType |
Texte | Facultatif | Type d'allergène par
gs1:AllergenTypeCode
Exemple : http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Texte | Facultatif | Code de structuration par
gs1:LevelOfContainmentCode
Par exemple http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ou
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN
|
L'exemple suivant illustre l'utilisation du type AllergenDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/6", "name": "Strawberry joghurt drink", "description": "A 0.5l bottle of strawberry joghurt drink.", "offers": { "@type": "Offer", "sku": "offer-joghurt-drink", "price": "2.49", "priceCurrency": "USD" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
DeliveryChargeSpecification
Le tableau suivant décrit les propriétés
Type de DeliveryChargeSpecification
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "DeliveryChargeSpecification". |
@id |
URL | Facultatif | Identifiant de la spécification des frais de livraison. |
price |
Nombre | Obligatoire | Coût total de livraison sous forme de valeur numérique uniquement. Utilisez les
priceCurrency pour indiquer le type de devise.
au lieu de symboles monétaires. Par exemple, "6.00", sans la devise
. |
priceCurrency |
Texte | Obligatoire | Code de devise ISO 4217 à trois lettres. Exemple : "EUR". |
eligibleTransactionVolume |
PriceSpecification |
Facultatif | Volume de transactions, en unité monétaire, pour lequel cette diffusion de facturation est valide. Par exemple, pour indiquer un montant d'achat minimal ou pour indiquer que la livraison est disponible sans frais supplémentaires au-delà d'un certain volume de commandes. |
eligibleQuantity |
QuantitativeValue |
Facultatif | Intervalle et unité de mesure des quantités commandées pour lesquelles les frais de livraison sont valides. Cela vous permet, par exemple, de spécifier qu'un certains frais de fret ne sont valides que pour une certaine quantité. |
eligibleRegion |
Tableau de GeoShape ou
Place ou
GeoCircle |
Facultatif | Le lieu, ou GeoShape/GeoCircle pour les régions géopolitiques pour laquelle l'offre ou les spécifications de frais de port sont valides. Utiliser ceci dans l'établissement uniquement si les frais de livraison varient en fonction de la région. |
validFrom |
DateTime |
Facultatif | La date et l'heure (y compris le fuseau horaire) auxquelles les frais de livraison spécifié devient valide. Exemple : "2017-05-01T06:30:00-07:00". Pour Pour en savoir plus, consultez Formats de date et d'heure. |
validThrough |
DateTime |
Facultatif | Date et heure (fuseau horaire compris) à l'issue desquelles la diffusion
débit spécifié n'est pas valide. Exemple : "2017-05-01T06:30:00-07:00".
L'heure de validThrough est exclusive: par exemple, si cette
l'heure est définie sur 18h, l'heure est valide jusqu'à 17h59:59.
Pour en savoir plus, consultez
Formats de date et d'heure. |
Les exemples suivants illustrent des éléments DeliveryChargeSpecification
:
Exemple 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
Exemple 2
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Exemple 3
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
En plus de "@type": ["DeliveryChargeSpecification"]
, l'objet peut être étendu avec
UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
L'extension donne deux propriétés supplémentaires requises pour les frais de livraison calculé en pourcentages.
Propriété | Type | Nécessité | Description |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Obligatoire | Quantité de référence à laquelle un certain prix s'applique. Par exemple :
referenceQuantity de la valeur 10 avec unitCode de
"P1" correspondent à 10% de la valeur de la commande. Seul unitCode "P1" correspond à
prises en charge actuellement. |
basePrice |
Nombre | Facultatif | Frais de base en plus des referenceQuantity . Pour
exemple, referenceQuantity sur 10 avec unitCode
de "P1" et basePrice de 5 en USD génèrent 5 € + 10 %
la valeur de la commande. La valeur par défaut est 0. |
Exemples de frais de livraison
Google vous permet de spécifier à l'avance différents frais aux utilisateurs à l'aide de
Offer.PriceSpecification
de l'entité de service.
Notez que les commandes de bout en bout ne prennent actuellement en charge qu'un seul
DeliveryChargeSpecification
Combiner tous les types de frais en un seul
DeliveryChargeSpecification
Consultez les exemples de flux de services pour savoir comment spécifier la diffusion. en fonction de la surface, de la distance et de la valeur de la commande.
En l'absence de frais, Offer.PriceSpecification
est omis.
- Exemple 1: Les frais de livraison s'élèvent à 5% du sous-total du panier
- Exemple 2: Les frais de livraison sont de 5 $.
- Exemple 3: Les frais de livraison sont de 5 $+ 10% du sous-total du panier
- Exemple 4: Les frais de livraison s'élèvent à 5 € et les frais de bagage s'élèvent à 0,1 €.
- Exemple 5: Les frais de livraison s'élèvent à 5% et les frais de commodité à 2% du sous-total du panier
- Exemple 6: Les frais de livraison s'élèvent à 5 $et 1 $par distance supplémentaire de 1 km.
Exemple 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Exemple 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Exemple 3
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
Exemple 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
Exemple 5
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
Exemple 6
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
Le tableau suivant décrit les propriétés du type GeoCircle
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "GeoCircle". |
geoMidpoint |
GeoCoordinates |
Obligatoire | Indique le GeoCoordinates au centre d'un
GeoCircle |
geoRadius |
Nombre | Obligatoire | Indique le rayon approximatif (en mètres) d'un
GeoCircle |
L'exemple suivant montre un élément GeoCircle
:
Exemple
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
Le tableau suivant décrit les propriétés du type GeoCoordinates
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "GeoCoordinates". |
latitude |
Nombre | Obligatoire |
Latitude en degrés. Les valeurs sont comprises entre -90 et 90, inclusifs. Si la valeur spécifiée est inférieure à -90, elle est définie sur -90. si la valeur est supérieure à 90, elle est définie sur 90. La précision doit être d'au moins cinq décimales. |
longitude |
Nombre | Obligatoire |
Longueur en degrés. Les valeurs situées en dehors de la plage -180 à 180 sont enveloppés afin qu'ils soient dans la plage. Par exemple, une valeur de -190 est convertie en 170. Une valeur de 190 est convertie en -170. Ce reflète le fait que les longitudes couvrent le monde entier. La précision doit être d'au moins cinq décimales. |
L'exemple suivant montre un élément GeoCoordinates
:
Exemple
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
Le tableau suivant décrit les propriétés du type GeoShape
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "GeoShape". |
polygon |
Tableau de texte | Obligatoire |
Polygone ou multipolygone exprimé sous la forme d'une série de trois espaces ou plus délimités. Nous vous recommandons de renseigner le premier et le dernier points identique, mais ce n'est pas obligatoire. Chaque point d'un polygone ou d'un multipolygone est défini par un point de latitude. suivi d'un point de longitude. Vous devez également spécifier les points dans une dans le sens inverse des aiguilles d'une montre. Dans la plupart des cas, vous n'aurez qu'un seul polygone. Pour une utilisation plus complexe consultez la Zone desservie. |
Les exemples suivants illustrent des éléments GeoShape
:
Exemple 1
{ "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" },
Exemple 2
{ "@type": "GeoShape", // A service area with a hole. // Specify latitude first (i.e., lat long lat long ...) "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”, “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”] },
Exemple 3
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "areaServed": [ { "@type": "GeoShape", // Richmond District delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474" }, { "@type": "GeoShape", // Haight-Ashbury delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417" } ], ... },
Menu
Le tableau suivant répertorie les propriétés du type Menu
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "Menu". |
@id |
URL | Obligatoire | Identifiant unique du menu. |
name |
Texte | Facultatif | Texte pouvant identifier le Menu lorsqu'un utilisateur parcourt la
. |
description |
Texte | Facultatif | Description du menu. |
disclaimer |
MenuDisclaimer |
Facultatif | Clause de non-responsabilité concernant le menu. Par exemple, la divulgation d'informations nutritionnelles et la divulgation des allergènes. |
hasMenuSection |
Objet unique ou tableau de MenuSection |
Facultatif | Sous-groupes logiques du menu (comme Dîner, Hors-d'œuvre ou Poisson) plats). |
hasMenuItem |
Objet unique ou tableau de MenuItem |
Facultatif | les objets MenuItem contenus dans un élément Menu ;
en général, lorsque le champ Menu n'est pas subdivisé par
MenuSections |
inLanguage |
Texte | Facultatif | Langue du contenu du menu, en tant que code de langue du Norme IETF BCP 47 : Exemple : "en-US". |
Les exemples suivants illustrent l'utilisation du type Menu
:
Exemple 1
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
Exemple 2
Cet exemple montre hasMenuItem
sous forme de tableau.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Main", "description": "Main course", "image": "http://www.provider.com/somerestaurant/main_dishes.jpg", "hasMenuItem": [ { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Pizza", "description": "Pizza", "offers": { "@type": "Offer", "sku": "offer-pizza", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM } }, { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pasta", "description": "Pasta", "offers": [ { "@type": "Offer", "sku": "offer-pasta-lunch", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM }, { "@type": "Offer", "sku": "offer-pasta-dinner", "price": "10.49", "priceCurrency": "USD", "availabilityStarts": "T18:00:00", // Starts at 6:00PM "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM } ] } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }
Exemple 3
Cet exemple montre hasMenuSection
sous forme de tableau.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Dinner", "description": "Dinner dishes", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Starters", "description": "Appetizers and such", "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/3", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/5", "name": "Desserts", "description": "Dessert dishes.", "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/4", "name": "Chocolate Pie", "description": "A slice of chocolate pie.", "offers": { "@type": "Offer", "sku": "offer-chocolate-pie", "price": "3.49", "priceCurrency": "USD" } } } ] }
Pour plus d'exemples sur les entités Menu
, consultez
Exemples de flux de restaurants et de menus
MenuDisclaimer
Le tableau suivant répertorie les propriétés du type MenuDisclaimer
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "Menudisclaimer". |
@id |
URL | Obligatoire | Identifiant unique de la clause de non-responsabilité du menu. |
text |
Texte | Obligatoire | Texte de la clause de non-responsabilité. Par exemple, « L'énergie quotidienne moyenne d'un adulte est de 8 700 kJ. » |
url |
URL | Facultatif | URL pointant vers une page fournissant plus d'informations sur la clause de non-responsabilité. |
L'exemple suivant illustre l'utilisation du type MenuDisclaimer
:
Exemple
{ "@type": "Menu", "@id": "menu_1", "disclaimer": { "@type": "MenuDisclaimer", "@id": "menu_1_disclaimer_1", "text": "The average adult daily energy intake is 8700 kJ", "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html" } }
MenuItem
Élément de menu représentant l'élément de menu. Le tableau suivant répertorie les
Propriétés du type MenuItem
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "MenuItem". |
@id |
URL | Obligatoire | Identifiant unique de l'élément du menu. |
name |
Texte | Obligatoire | Texte pouvant identifier le MenuItem lorsqu'un utilisateur navigue
le menu. |
description |
Texte | Facultatif | Description de l'élément de menu. |
image |
URL | Facultatif |
Image de l'élément de menu. Respectez les consignes suivantes concernant les images:
|
menuAddOn |
Tableau de AddOnMenuSection |
Facultatif | Éléments d'une section de menu pouvant être ajoutés en tant que modules complémentaires au l'élément de menu. |
offers |
Tableau de Offer |
Obligatoire* |
Une ou plusieurs offres pour fournir ce La liste ci-dessous indique
|
hasMenuItemOptions |
Tableau de MenuItemOption |
Obligatoire | Liste des options/variantes de base de cet élément de menu. Les options doivent être utilisée pour spécifier les différentes variantes de base disponibles pour l'élément, par exemple petit, moyen et grand. |
suitableForDiet |
Tableau de RestrictedDiet |
Facultatif | Le plat respecte la restriction alimentaire décrite (par exemple, "http://schema.org/GlutenFreeDiet" ou "http://schema.org/VeganDiet". Ce est une liste énumérée de valeurs possibles. |
nutrition |
NutritionInformation |
Facultatif | Informations nutritionnelles du plat, en particulier les calories. |
hasAllergen |
AllergenDetails |
Facultatif | Allergènes du plat par gs1:AllergenDetails .
Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Ajoutez FoodBeverageTobaccoProduct au type
MenuItem |
additive |
Tableau AdditiveDetails |
Facultatif | Additifs du plat par gs1:AdditiveDetails .
Il s'agit d'une liste de valeurs possibles. Ajouter le contexte gs1 à utiliser
cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Ajoutez FoodBeverageTobaccoProduct au type
MenuItem |
packaging |
PackagingDetails |
Facultatif | Informations sur l'emballage et le recyclage de cet élément de menu par
gs1:PackagingDetails
Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Ajoutez FoodBeverageTobaccoProduct au type
MenuItem
|
Les exemples suivants illustrent des éléments MenuItem
:
Exemple 1
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
Exemple 2
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
Exemple 3
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
Exemple 4
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Exemple 5
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Pour obtenir plus d'exemples d'entités MenuItem
, consultez Exemples de flux de restaurants et de menus.
MenuItemOption
une option pour représenter les choix qu'un utilisateur devrait faire lorsqu'il en sélectionnant un plat ou une combinaison. L'utilisateur doit sélectionner une option. Dans le cas contraire, la commande est considéré comme non valide. Par exemple, choisir "petite", "moyenne" ou "grande" dans le cas d'une pizza.
Pour obtenir des exemples de cas d'utilisation de MenuItemOption
, consultez notre guide sur
personnalisation à l'aide de MenuItemOption
.
Le tableau suivant répertorie les propriétés du type MenuItemOption
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | La valeur est toujours "MenuItemOption". |
value |
PropertyValue |
Obligatoire | PropertyValue contenant une paire nom/valeur représentant le
. |
offers |
Tableau de Offer |
Obligatoire |
Une ou plusieurs offres pour fournir cet
La liste ci-dessous indique
|
menuAddOn |
Array of |
Facultatif | Section de menu des éléments autorisés pouvant être ajoutés en tant que module complémentaire. Utiliser uniquement
si les modules complémentaires sont spécifiques
à une option d'élément de menu particulière. Sinon,
fournissent des modules complémentaires à l'aide de la propriété MenuItem .menuAddOn.
|
suitableForDiet |
Tableau de RestrictedDiet |
Facultatif | Liste énumérée indiquant les régimes auxquels ce plat est conforme la restriction alimentaire décrite (comme "http://schema.org/GlutenFreeDiet" ou "http://schema.org/VeganDiet"). |
nutrition |
NutritionInformation |
Facultatif | Informations nutritionnelles du plat, en particulier les calories. |
hasAllergen |
AllergenDetails |
Facultatif | Allergènes du plat par gs1:AllergenDetails .
Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Ajoutez FoodBeverageTobaccoProduct au type
MenuItemOption
|
additive |
Tableau AdditiveDetails |
Facultatif | Additifs du plat par gs1:AdditiveDetails .
Il s'agit d'une liste de valeurs possibles. Ajouter le contexte gs1 à utiliser
cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Ajoutez FoodBeverageTobaccoProduct au type
MenuItemOption
|
packaging |
PackagingDetails |
Facultatif | Informations sur l'emballage et le recyclage de cet élément de menu par
gs1:PackagingDetails
Ajoutez le contexte gs1 pour utiliser cette propriété: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Ajoutez FoodBeverageTobaccoProduct au type
MenuItemOption
|
L'exemple suivant montre les éléments MenuItemOption
:
Exemple 1
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Exemple 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
Section de menu pour représenter une section particulière du menu. Le tableau suivant
liste les propriétés du type MenuSection
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "MenuSection". |
@id |
URL | Obligatoire | Identifiant unique de la section du menu. |
name |
Texte | Obligatoire | Texte pouvant identifier le MenuSection lorsqu'un utilisateur parcourt le Web
le menu. |
description |
Texte | Facultatif | Description de la section de menu. |
hasMenuSection |
Tableau de MenuSection |
Facultatif | Sous-groupement logique de MenuSection . Par exemple,
La section du menu "Dîner" peut comporter plusieurs sous-sections, comme "Volaille
Plats" ou "végétarien". |
hasMenuItem |
Tableau de MenuItem |
Facultatif | Éléments de menu contenus dans un élément MenuSection . |
offers |
Tableau de Offer |
Facultatif |
Utiliser La liste suivante indique les propriétés
|
image |
URL | Facultatif | Image de la section de menu. |
Les exemples suivants illustrent des entités MenuSection
:
Exemple 1
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
Exemple 2
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
Pour plus d'exemples sur les entités MenuSection
, consultez
Exemples de flux de restaurants et de menus
NutritionInformation
Le tableau suivant décrit les propriétés de NutritionInformation
.
de mots clés. Les unités de mesure sont sensibles à la casse. Exemple : "Cal" est accepté,
mais "cal" ce n'est pas le cas.
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "NutritionInformation". |
description |
Texte | Facultatif | Informations nutritionnelles en texte libre. Par exemple, "Contient et conservateurs. |
calories |
Texte | Facultatif |
Nombre de calories en cal, kcal ou kJ, selon les valeurs suivantes : format: number Cal_kcal_OR_kJ Exemple : "240 cal". |
carbohydrateContent |
Texte | Facultatif |
Quantité de glucides, généralement exprimée en g, à l'aide des valeurs suivantes : format: number g_OR_mg Exemple : "7 g". |
cholesterolContent |
Texte | Facultatif |
La quantité de cholestérol, généralement en mg, à l'aide du le format suivant: number g_OR_mg Exemple : "12 mg". |
fatContent |
Texte | Facultatif |
Quantité de matières grasses, généralement exprimée en g, au format suivant: number g_OR_mg Exemple : "42 g". |
fiberContent |
Texte | Facultatif |
Nombre de g ou mg de fibre, au format suivant: number g_OR_mg |
proteinContent |
Texte | Facultatif |
Nombre de g ou mg de protéines, au format suivant: number g_OR_mg |
saturatedFatContent |
Texte | Facultatif |
Nombre de g ou mg de graisses saturées, au format suivant: number g_OR_mg |
servingSize |
Texte | Facultatif | Portion en mL, L, g ou kg en termes de volume ou masse. |
sodiumContent |
Texte | Facultatif |
Nombre de mg ou g de sodium, au format suivant: number g_OR_mg |
sugarContent |
Texte | Facultatif |
Nombre de g ou mg de sucre, au format suivant: number g_OR_mg |
transFatContent |
Texte | Facultatif |
Nombre de g ou mg de graisses trans, au format suivant: number g_OR_mg |
unsaturatedFatContent |
Texte | Facultatif |
Quantité de graisses insaturées, généralement en g, à l'aide des valeurs suivantes : format: number g_OR_mg |
Les exemples suivants illustrent un élément NutritionInformation
:
Exemple 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
Exemple 2
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
Offre
Offre pour un élément de menu. Le tableau suivant décrit les propriétés
Type de Offer
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "Offre". |
sku |
Texte | Conditionnel |
Identifiant unique de l'offre. Il peut s'agir de n'importe quelle valeur textuelle unique.
dans les Cette propriété n'est utilisée que dans les types d'offres suivants:
|
price |
Texte | Conditionnel |
Prix de l'article proposé. Exemple : "6.00" sans la devise . Cette propriété n'est obligatoire que pour les types d'offres suivants:
Il n'est pas utilisé dans les types d'offres suivants:
|
priceCurrency |
Texte | Conditionnel |
La devise (au format ISO 4217 à trois lettres) du prix ou d'un prix , lorsqu'il est associé à "PriceSpecification" et à ses sous-types. Cette propriété n'est obligatoire que pour les types d'offres suivants:
Il n'est pas utilisé dans les types d'offres suivants:
|
availabilityStarts |
DateTime ou Time |
Facultatif | La date et l'heure, ou uniquement l'heure à partir de laquelle l'offre est disponible. Par exemple, si des pancakes sont servis à partir de 7h00, la valeur de ce champ peut se présenter comme suit : "2017-05-01T07:00:00-07:00". Pour en savoir plus, consultez Formats de date et d'heure. |
availabilityEnds |
DateTime ou Time |
Facultatif | La date et l'heure, ou uniquement l'heure à laquelle l'offre n'est pas disponible. Ce le temps est exclusif. Par exemple, si la vente de pancakes se termine à 10h, la dernière crêpe peut être servie à 9:59:59. La valeur ce champ peut alors ressembler à ceci : "2017-05-01T10:00:00-07:00". Pour en savoir plus, consultez Formats de date et d'heure. |
availableDay |
Tableau DayOfWeek | Facultatif |
Jours de la semaine pendant lesquels cet article est disponible. Les valeurs valides sont les suivantes :
Si vous avez des disponibilités différentes selon les jours de la semaine,
utilisez plusieurs objets |
validFrom |
DateTime |
Facultatif |
Date et heure (y compris le fuseau horaire) auxquelles l'événement le prix est valide. Par exemple, le prix des pâtes est de 8 $au déjeuner et de 10 $. pendant le dîner. Pour en savoir plus, consultez Formats de date et d'heure. Cette propriété peut être utilisée dans les types d'offres suivants:
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) à partir desquelles la valeur
Le prix n'est plus valide. Par exemple, le prix des pâtes est de 8 $au déjeuner.
et 10 $au dîner. Le temps réservé à 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és commandées pour lesquelles cet article est autorisé. Par exemple : un restaurant peut exiger qu'au moins 10 pizzas soient commandées la livraison. Cette valeur est facultative. Par défaut, il n'y a pas de limite maximale, mais le restaurant peut en spécifier une. Les limites minimales s'appliquent uniquement lorsqu'un utilisateur sélectionne l'élément. Cette propriété peut être utilisée dans les types d'offres suivants:
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 le é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 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 un 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 dont est situé 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:
|
applicableFulfillmentMethod |
Tableau de texte | Facultatif | Représente le type de service de ce Si aucune valeur n'est spécifiée, 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, remplacer par
sku comme décrit ci-dessus.
|
Les exemples suivants illustrent des éléments Offer
:
Exemple 1
L'exemple suivant illustre une offre simple:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Exemple 2
Dans l'exemple suivant, l'offre indique une disponibilité de 8h à 10h le week-ends:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", // Only available from 8-9:59:59 AM "availabilityEnds": "T10:00:00-07:00", "availableDay": ["Saturday", "Sunday"] // Only on weekends. }
Exemple 3
L'exemple suivant indique la disponibilité de 9 h à 10 h 59 et 59 s le lundi, mercredi et vendredi, mais de 8:00 à 23:59:59 les mardis et jeudis :
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T09:00:00-07:00", "availabilityEnds": "T11:00:00-07:00", "availableDay": ["Monday", "Wednesday", "Friday"] }, { "@type": "Offer", "@id": "https://www.provider.com/menu/74962/141/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", "availabilityEnds": "T12:00:00-07:00", "availableDay": ["Tuesday", "Thursday"] }
Exemple 4
L'exemple suivant montre qu'un élément de menu complémentaire est éligible de sorte que l'utilisateur puisse commander jusqu'à 2 portions cet élément :
{ "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Ranch", "offers": { "@type": "Offer", "@id": "https://www.example.com/1089/addon/a/offer", "price": "2.99", "priceCurrency": "USD" "eligibleQuantity": { "@type": "QuantitativeValue", "maxValue": 2 } } }
Exemple 5
L'exemple suivant présente une offre de livraison dans un lieu spécifique:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD", "applicableFulfillmentMethods": ["DELIVERY"], "offeredBy": [ { "@type": "Restaurant", "@id": "https://www.provider.com/location/1", } ] }
OpeningHoursSpecification
Définit le moment où les services de commande sont disponibles. Généralement, la valeur de opens
est inférieur à la valeur de closes
. Les consignes suivantes s'appliquent à l'utilisation du
Propriétés opens
et closes
:
- Les propriétés
opens
etcloses
sont facultatives, mais vivement recommandées pour indiquer quand la commande est disponible. La meilleure pratique pour définir "hours" consiste à inclure un tableaudeliveryHours
contenant unServiceDeliveryHoursSpecification
avec les propriétésopens
etcloses
. Toi Vous pouvez ensuite inclure un objetAdvanceServiceDeliveryHoursSpecification
dansdeliveryHours
avec ses propres propriétésopens
etcloses
, si vous souhaitez offrir une période plus limitée pour les commandes anticipées. - Si
opens
etcloses
ne sont pas explicitement spécifiés, nous supposons que l'ordre est disponible tous les jours à tout moment de la journée. - L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de
fuseau horaire dans une valeur
opens
oucloses
. Si un fuseau horaire est spécifié, Google ignore ces informations. - Si les valeurs
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 considérée comme ayant le dès le lendemain. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et l'heure de fermeture est 2h, alors le restaurant est interprété comme la fermeture le 2 janvier à 2h du matin. - Le temps imparti pour
closes
est exclusif. Par conséquent, si les heures d'ouverture et de fermeture pour ce créneau de commande est défini à 10 h et à 16 h, respectivement, commande est 15:59:59.
Le tableau suivant décrit les propriétés de OpeningHoursSpecification
.
type:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "OpeningHoursSpecification". |
@id |
URL | Facultatif | Identifiant de OpeningHoursSpecification . |
dayOfWeek |
Tableau DayOfWeek |
Facultatif |
Jour de la semaine pour lequel ces horaires d'ouverture sont valides. Autorisé : les valeurs sont "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "samedi" et "dimanche". Exemple : "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Si vous n'indiquez aucun jour de la semaine, le
|
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 l'heure locale du service. À ne pas faire
Incluez un fuseau horaire dans une valeur Pour en savoir plus, consultez 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 l'heure locale du service. À ne pas faire
inclure un fuseau horaire dans une valeur Pour en savoir plus, consultez Formats de date et d'heure. |
validFrom |
DateTime |
Facultatif |
Lorsqu'elle est utilisée dans une spécification Par exemple, si les heures indiquées s'appliquent à toute l'année 2017, vous définissez
Définissez En cas d'utilisation dans une spécification Si cet établissement n'est pas spécifié dans votre flux, Google considère que le restaurant ou le service est disponible tous les jours. Outre la date, l'heure et le fuseau horaire sont requises. Pour le fuseau horaire, utilisez celui du restaurant ou du service. Pour en savoir plus, consultez Formats de date et d'heure. |
validThrough |
DateTime |
Facultatif |
Dans le cas d'une Par exemple, si les heures indiquées s'appliquent à toute l'année 2017, vous définissez
Définissez En cas d'utilisation dans une spécification Si cet établissement n'est pas spécifié dans votre flux, Google considère que le restaurant ou le service est disponible tous les jours. Outre la date, l'heure et le fuseau horaire Veuillez renseigner le champ DateTime. Pour le fuseau horaire, utilisez celui du restaurant ou du service. Le temps imparti pour Pour en savoir plus, consultez Formats de date et d'heure. |
deliveryHours |
Tableau de ServiceDeliveryHoursSpecification ou tableau de
AdvanceServiceDeliveryHoursSpecification |
Conditionnel |
Spécification du délai de livraison ou de retrait. Ce paramètre est obligatoire, sauf si le restaurant est fermé (c'est-à-dire
que
|
Les exemples suivants illustrent des éléments OpeningHoursSpecification
:
Exemple 1
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
Exemple 2
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
Exemple 3
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
Exemple 4
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
Ajoutez le contexte gs1 pour utiliser ce type: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Ajoutez également FoodBeverageTobaccoProduct
au type de MenuItem
ou de MenuItemOption
.
Le tableau suivant décrit les propriétés du type PackagingDetails
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "PackagingDetails". |
packagingRecyclingProcessType |
Texte | Facultatif | Type de processus de recyclage des emballages selon
<ph type="x-smartling-placeholder"></ph>
gs1:PackagingRecyclingProcessTypeCode Exemple :
http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE
ou http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Facultatif | Détails de la consigne de colis à retourner par gs1:ReturnablePackageDepositDetails, Par exemple, les bouteilles et les boîtes de conserve peuvent contenir des dépôts de colis à retourner. |
L'exemple suivant illustre l'utilisation du type PackagingDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
PaymentChargeSpecification
Le tableau suivant décrit les propriétés de PaymentChargeSpecification
.
type:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "PaymentChargeSpecification". |
@id |
URL | Facultatif | Identifiant de PaymentChargeSpecification . |
price |
Nombre | Obligatoire | Montant total des frais. Par exemple, "6.00", sans la devise . |
priceCurrency |
Texte | Obligatoire | Code de devise ISO 4217 à trois lettres du prix. Par exemple : "EUR". |
eligibleTransactionVolume |
PriceSpecification |
Facultatif | Volume de transactions, dans une unité monétaire, pour lesquels ce paiement est facturé est valide, par exemple pour indiquer un montant d'achat minimal le volume. |
eligibleQuantity |
QuantitativeValue |
Facultatif | Quantités commandées pour lesquelles les frais de paiement sont valides. Pour Par exemple, vous pouvez utiliser cette propriété pour exiger un nombre minimal d'éléments dans une commande. |
validFrom |
DateTime |
Facultatif | Date et heure (y compris le fuseau horaire) auxquelles les frais doivent être réglés spécifié devient valide. Par exemple, "2017-05-01T07:00:00-07:00". Pour Pour en savoir plus, consultez Formats de date et d'heure. |
validThrough |
DateTime |
Facultatif | La date et l'heure (y compris le fuseau horaire) à laquelle le paiement
débit spécifié n'est pas valide. Exemple : "2017-05-01T07:30:00-07:00".
L'heure de validThrough est exclusive: par exemple, si
que l'heure est définie sur 18h, l'heure est valide jusqu'à 17h59:59.
Pour en savoir plus, consultez
Formats de date et d'heure. |
L'exemple suivant illustre un élément PaymentChargeSpecification:
Exemple
"priceSpecification": [{ "@type": "PaymentChargeSpecification", "@id": "http://www.provider.com/paymentCharge/bar", "priceCurrency": "USD", "price": "6.00", // Charges $6 for processing fee "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 2 // Minimum of two items required } }]
En plus de "@type": ["PaymentChargeSpecification"]
, l'objet peut être
étendu avec UnitPriceSpecification
("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
).
L'extension donne deux propriétés supplémentaires requises pour les frais de service
calculé en pourcentages.
propriété | Type | Nécessité | Description |
referenceQuantity |
QuantitativeValue |
Obligatoire | Quantité de référence à laquelle un certain prix s'applique. Par exemple :
referenceQuantity de la valeur 10 avec unitCode de
"P1" correspondent à 10% de la valeur de la commande. Seul unitCode "P1" correspond à
actuellement disponibles. |
basePrice |
Nombre | Facultatif | Frais de base en plus des referenceQuantity . Pour
exemple, referenceQuantity sur 10 avec unitCode
de "P1" et basePrice de 5 en USD génèrent 5 $+ 10% de
la valeur de la commande. La valeur par défaut est 0. |
Exemples de frais à emporter
Google vous permet de spécifier à l'avance différents frais aux utilisateurs à l'aide de
Offer.PriceSpecification
de l'entité de service.
Notez qu'actuellement, un seul PaymentChargeSpecification
est accepté. Combiner
tous les types de frais dans un seul élément PaymentChargeSpecification
En l'absence de frais, Offer.PriceSpecification
est omis.
- Exemple 1: Les frais de service s'élèvent à 5% du sous-total du panier
- Exemple 2: Les frais de service sont de 5 $.
- Exemple 3: les frais de bagage sont de 0,1 $et les frais de service sont de 5% du sous-total du panier
- Exemple 4: Les frais de bagage sont de 0,1 $et les frais de service sont de 1 $.
- Exemple 5: Les frais de service s'élèvent à 5% et le pourboire obligatoire est de 10% du sous-total du panier
Exemple 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Exemple 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Exemple 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
Exemple 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
Exemple 5
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Lieu
Le tableau suivant décrit les propriétés du type Place
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "Lieu". |
address |
PostalAddress |
Obligatoire | Adresse d'un lieu. |
L'exemple suivant illustre un élément Place:
Exemple
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
Le tableau suivant décrit les propriétés du type PostalAddress
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | La valeur est toujours "PostalAddress". |
addressLocality |
Texte | Obligatoire* | Localité ou ville. Exemple : "San Francisco". |
addressRegion |
Texte | Obligatoire* | Région ou État. Exemple : "CA". |
postalCode |
Texte | Obligatoire* | Code postal. Exemple : "94102". |
streetAddress |
Texte | Facultatif | Adresse postale. Exemple : "1600 Amphitheatre Pkwy". |
addressCountry |
Texte | Obligatoire | Code pays ISO 3166-1 alpha-2 à deux lettres . Exemple : "US". |
Les fournisseurs de services de livraison peuvent répertorier ces propriétés pour désigner un Service.areaServed
.
lorsqu'un service est fourni.
Lorsqu'elles sont utilisées dans Restaurant.address
, toutes les propriétés répertoriées dans
Veuillez indiquer des PostalAddress
.
L'exemple suivant montre un élément PostalAddress
:
Exemple
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
Le tableau suivant décrit les propriétés de PriceSpecification
.
type:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "PriceSpecification". |
@id |
URL | Facultatif | Identifiant de PriceSpecification . |
minPrice |
Nombre | Facultatif | Prix le plus bas s'il s'agit d'une gamme de prix |
maxPrice |
Nombre | Facultatif | Prix le plus élevé s'il s'agit d'une gamme de prix |
priceCurrency |
Texte | Obligatoire | Code de devise ISO 4217 à trois lettres du prix. Par exemple : "EUR". |
eligibleQuantity |
QuantitativeValue |
Facultatif | Quantités triées pour lesquelles la spécification de prix est valide. Par exemple, le prix peut être de 2 $la livre ou de deux articles pour un dollar. |
L'exemple suivant montre un élément PriceSpecification
:
Exemple 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Paire de valeurs de propriété utilisée pour décrire les options dans MenuItemOption
.
Le tableau suivant répertorie les propriétés du type PropertyValue
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "PropertyValue". |
name |
Texte | Obligatoire |
Nom ou type de l'option. Voici des noms valides lorsqu'ils sont utilisés dans
Noms valides en cas d'utilisation dans
|
value |
Texte | Obligatoire |
Valeur de l'option. Les valeurs peuvent être de n'importe quelle chaîne et s'affichent sous la forme l'adresse IP interne. Les valeurs suivantes sont valides:
|
QuantitativeValue
Le tableau suivant décrit les propriétés du type QuantitativeValue
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "QuantitativeValue". |
value |
Nombre | Facultatif | Valeur du nœud de valeur quantitative ou de valeur de propriété. |
unitCode |
Texte ou URL | Facultatif |
L’unité de mesure en tant que Code commun de l'ONU/CEFACT ou une URL. Les codes autres que le code commun UN/CEFACT peuvent être utilisés avec un préfixe suivi du signe deux-points. |
maxValue |
Nombre | Facultatif | Valeur supérieure d'une caractéristique ou d'une propriété. |
minValue |
Nombre | Facultatif | Valeur inférieure d'une caractéristique ou d'une propriété. |
Les exemples suivants illustrent l'utilisation du type QuantitativeValue
:
Exemple 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
Exemple 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Exemple 3
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Restaurant
Le tableau suivant répertorie les propriétés du type Restaurant
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "Restaurant". |
@id |
URL | Obligatoire | Identifiant unique du restaurant ou du fournisseur de services de livraison. Par exemple : "http://www.fournisseur.com/326", où "326" est l'identifiant unique le restaurant. |
name |
Texte | Obligatoire | Texte pouvant identifier le Restaurant lors du tri
processus. |
url |
URL | Obligatoire | URL de votre domaine qui représente le restaurant. Par exemple : "http://www.provider.com/somerestaurant". |
sameAs |
URL | Facultatif | Le site Web officiel du restaurant. Par exemple : "http://www.unrestaurant.com". |
email |
Texte | Facultatif | Adresse e-mail de contact du restaurant. |
description |
Texte | Facultatif | Description du restaurant. |
telephone |
Texte | Obligatoire |
Numéro de téléphone au format suivant: "[+][country_code][phone_#_with_area_code]" Exemple : "+16501234567". |
priceRange |
Texte | Facultatif | Une gamme de prix. Par exemple, "$$" ($-Inexpensive, $$-Modéré, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
Example 1
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+16501234567", // L'indicatif du pays (+1) est obligatoire "servesCuisine": [ "Fusion indo-mexicaine" }, <ph type="x-smartling-placeholder"></ph> Exemple 2
{ "@type": "Restaurant", "@id": "http://www.example.com/threebrotherstacos", "name": "Three Brothers Tacos", "address": { "@type": "PostalAddress", "addressLocality": "Mountain View", "addressRegion": "CA", "postalCode": "94041", "streetAddress": "123 Foo St", "addressCountry": "US" }, "additionalProperty": [ {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"} ] }Pour plus d'exemples sur les entités
Restaurant
, consultez Exemples de flux de restaurants et de menus
ReturnablePackageDepositDetails
Pour utiliser ce type, ajoutez le contexte gs1 : "@context" :
["http://gs1.org/voc/", "http://schema.org"]
Ajoutez ensuite
FoodBeverageTobaccoProduct
au type deMenuItem
approprié. ouMenuItemOption
.Le tableau suivant décrit les propriétés Type de
ReturnablePackageDepositDetails
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "ReturnablePackageDepositDetails". |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Facultatif | Le montant de l'acompte associé à cet article par <ph type="x-smartling-placeholder"></ph> gs1:PriceSpecification Par exemple, un virement de 0,25 € par boîte de conserve. |
L'exemple suivant illustre l'utilisation de ReturnablePackageDepositDetails
type:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
Service
Décrit la livraison d'une action de commande de bout en bout d'un restaurant à un l'emplacement géographique par un organisme de livraison.
Le tableau suivant décrit les propriétés du type Service
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire |
Type de flux.
|
@id |
URL | Obligatoire | Identifiant du service de fulfillment. Par exemple : "http://www.provider.com/service/1". |
description |
Texte | Facultatif | Description de l'article. |
serviceType |
Texte | Obligatoire | Type de service proposé. Les valeurs possibles sont "DELIVERY". ou "À RETENIR". |
provider |
Restaurant |
Obligatoire | Référence à l'identifiant unique du restaurant. Par exemple : "http://www.provider.com/somerestaurant". |
areaServed |
Tableau de GeoShape ,
Place ou
GeoCircle |
Conditionnel | Zone géographique où un service est fourni. Ce champ est
facultatif par
par défaut, mais obligatoire si serviceType est défini sur "DELIVERY". |
hoursAvailable |
Tableau de OpeningHoursSpecification |
Obligatoire | Heures pendant lesquelles ce service est disponible. |
specialOpeningHoursSpecification |
Tableau de OpeningHoursSpecification ,
ServiceDeliveryHoursSpecification ou
AdvanceServiceDeliveryHoursSpecification |
Facultatif |
Heures qui remplacent la valeur plus générale Définissez la plage de dates spéciale à l'aide des propriétés |
offers |
Tableau de Offer |
Conditionnel |
Détails concernant l'offre de livraison pour un restaurant spécifié. Ce
le champ est facultatif par défaut, mais obligatoire si La propriété |
hasOfferCatalog |
[Menu , OfferCatalog] |
Obligatoire |
Spécifie un menu pour ce service. Vous pouvez avoir un menu différent pour chacun de vos services (comme la vente à emporter, la livraison et la restauration). Vous devez spécifier "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Tableau de {name, value} | Facultatif |
Informations de configuration de service facultatives. Les éléments devraient être
un objet dont la clé
Consultez le "additionalProperty": [{ "name": "disableOrderInstructions", "value": false }, { "name": "disableMenuItemSpecialInstructions", "value": false }, { "name": "disableTipWidget", "value": false }, { "name": "disablePromoWidget", "value": false }, { "name": "menuItemSpecialInstructionsMaxLength", "value": 256 }, { "name": "orderInstructionsMaxLength", "value": 256 }] |
potentialAction |
URL | Facultatif |
Contient une URL pour un service de livraison/à emporter qui sera utilisé lors de la migration de l'expérience de commande de repas de bout en bout vers la redirection. Par exemple, "potentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" } |
L'exemple suivant illustre l'utilisation du type de service:
Exemple
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "serviceType": "DELIVERY", "provider": { "@type": "Restaurant", "@id": "http://www.provider.com/threebrotherstacos" }, "potentialAction": { "url": "https://foprovider.com/ordering/restaurant-1/delivery" }, "hoursAvailable": [ // Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }, // Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ], "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/menu/1" }, "areaServed": [{ "@type": "GeoCircle", // area1 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "42.362757", "longitude": "-71.087109" }, "geoRadius": "10000" }, { "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } }, { "@type": "GeoShape", // area3 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167" }, { "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" }, { "@type": "GeoCircle", // area5 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ], "offers": { "@type": "Offer", "priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ] } },
Pour obtenir plus d'exemples d'entités de service, consultez la section Exemples de flux de service.
ServiceDeliveryHoursSpecification
Représente les heures de traitement pour que les utilisateurs puissent planifier la livraison d'une commande dès que possible et la vente à emporter.
En général, la valeur de opens
est inférieure à la valeur de closes
. La
Les consignes suivantes s'appliquent à l'utilisation des propriétés opens
et closes
:
- Les propriétés
opens
etcloses
sont facultatives pourServiceDeliveryHoursSpecification
, mais nous vous recommandons vivement vous les incluez. - L'heure doit être spécifiée dans l'heure locale du service. N'incluez pas de
fuseau horaire dans une valeur
opens
oucloses
. Si un fuseau horaire est spécifié, Google ignore les informations de fuseau horaire. - Si
opens
etcloses
ne sont pas explicitement spécifiés, nous supposons que "Dès que possible" les commandes sont disponibles tous les jours et à tout moment. - Si les valeurs
opens
etcloses
sont identiques, nous partons du principe que l'ordre "Dès que possible" est indisponible. - Si
opens
est supérieur àcloses
, l'heure de fermeture est considérée comme ayant le dès le lendemain. Par exemple, si l'heure d'ouverture est définie sur le 1er janvier à 17h et l'heure de fermeture est 2h, alors le restaurant est interprété comme la fermeture le 2 janvier à 2h du matin.
Le tableau suivant décrit les propriétés
Type de ServiceDeliveryHoursSpecification
:
Propriété | Type | Nécessité | Description |
---|---|---|---|
@type |
Texte | Obligatoire | Il s'agit toujours de "ServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Facultatif |
Date et heure (y compris le fuseau horaire) auxquelles les utilisateurs Les commandes « Dès que possible » peuvent être satisfaite. Par exemple, "2017-05-01T07:00:00-07:00". Si cette propriété est non défini, il est considéré comme valide tous les jours. Pour en savoir plus, consultez Formats de date et d'heure. |
validThrough |
DateTime |
Facultatif |
Date et heure (y compris le fuseau horaire) à partir desquelles les utilisateurs Commandes "Dès que possible" ne peut pas être satisfaite. Par exemple, "2017-05-01T07:00:00-07:00". Si Si cette propriété n'est pas définie, elle est considérée comme valide tous les jours. Le temps imparti pour Pour en savoir plus, consultez Formats de date et d'heure. |
opens |
Time |
Facultatif |
Heure à laquelle le service de livraison démarre pour les utilisateurs Commandes « Dès que possible » à être satisfaite. Exemple : "T10:30:00". L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire
Incluez un fuseau horaire dans une valeur Pour en savoir plus, consultez Formats de date et d'heure. |
closes |
Time |
Facultatif |
Le moment où le service de livraison pour les utilisateurs Les commandes « ASAP » ne sont plus disponibles. Exemple : "T23:59:59". Le temps imparti pour L'heure doit être spécifiée dans l'heure locale du service. À ne pas faire
inclure un fuseau horaire dans une valeur Pour en savoir plus, consultez Formats de date et d'heure. |
dayOfWeek |
Tableau de DayOfWeek |
Facultatif |
Jours de la semaine pendant lesquels ce service est disponible pour les utilisateurs Commandes rapides. Les valeurs suivantes sont valides:
Si vous n'indiquez aucun jour de la semaine, alors
|
deliveryLeadTime |
QuantitativeValue |
Facultatif | Délai de livraison estimé, en minutes, une fois la commande reçue
n'est pas placé. Nous vous recommandons vivement de définir cette propriété. Définissez le paramètre
Champ value de QuantitativeValue au nombre
de minutes et le unitCode à "MIN". |
L'exemple suivant montre un élément ServiceDeliveryHoursSpecification
:
Exemple 1
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } },
Exemple 2
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }
Enums
RestrictedDiet
Le type RestrictedDiet
peut avoir les valeurs suivantes:
- http://schema.org/DiabeticDiet
- http://schema.org/GlutenFreeDiet
- http://schema.org/HalalDiet
- http://schema.org/HinduDiet
- http://schema.org/KosherDiet
- http://schema.org/LowCalorieDiet
- http://schema.org/LowFatDiet
- http://schema.org/LowLactoseDiet
- http://schema.org/LowSaltDiet
- http://schema.org/VeganDiet
- http://schema.org/VegetarianDiet
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/08/21 (UTC).