I feed del catalogo alimentare si basano su entità DataFeed
di schema.org. Un feed di catalogo alimentare è costituito da dettagli locali del ristorante come l'indirizzo, il menu e la posizione del ristorante, nonché i dettagli di servizio del ristorante, come le spese di consegna, le aree di consegna e altri articoli, come specificato di seguito.
Un elemento DataFeed
contiene una raccolta di elementi, ognuno dei quali rappresenta un singolo elemento espresso nel vocabolario di schema.org. Puoi utilizzare il tipo DataFeed
per pubblicare tutti i tuoi dati strutturati in formato JSON-LD.
Per informazioni sull'utilizzo di questa specifica per creare i feed, consulta la Panoramica dell'integrazione dell'inventario.
Formati di data e ora
DateTime
si basa sul tipo schema.org e, se non diversamente indicato, deve rispettare il formato ISO 8601 e includere la data, l'ora e il fuso orario. Utilizza la seguente sintassi per DateTime
:
// DateTime format: YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]
Ad esempio:
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
è l'ora locale di un determinato ristorante o
sede del servizio, si basa sul tipo schema.org e deve inoltre
seguire il formato ISO 8601. L'ora utilizza la seguente sintassi:
// Time format: THH:MM:SS
Ad esempio:
T08:08:00 // 8:08 AM
Tieni presente quanto segue ogni volta che specifichi un valore DateTime
o Time
:
- Il prefisso "T" prima dell'ora fa parte del formato ed è obbligatorio.
- È necessario specificare il fuso orario per
DATETIME
. Non è obbligatorio perTIME
. - L'orario deve essere specificato nell'ora locale del ristorante o servizio.
Busta
Il codice iniziale di qualsiasi feed di catalogo alimentare deve contenere una sezione "busta".
La "busta" è la struttura di primo livello di ogni feed e deve essere un
DataFeed
con le seguenti proprietà:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@context |
URL | Obbligatorio | Il contesto in uso, generalmente "http://schema.googleapis.com". |
@type |
Testo | Obbligatorio | È sempre "DataFeed". |
dateModified |
DateTime |
Obbligatorio |
L'ultima La data e l'ora, nel formato ISO_OFFSET_DATE_TIME, in cui sono stati modificati gli elementi in questo feed. In assenza di questo campo, si presume che l'ora di aggiornamento sia quella in cui viene ricevuto il messaggio push (o viene eseguita la scansione) sui server di Google. Ti consigliamo vivamente di implementarla se utilizzi contemporaneamente sia il push che la scansione. Questo timestamp deve essere specificato con una granularità del fuso orario e dei millisecondi; ad esempio "2016-12-28T06:30:00:123-07:00". Nei feed batch, il controllo delle versioni dell'entità viene determinato tramite il campo |
dataFeedElement |
Array di Menu ,
Restaurant
o Service |
Obbligatorio | Uno o più elementi che fanno parte di questo feed. Per maggiori dettagli, vedi di seguito. |
L'esempio seguente mostra la busta:
Esempio
{ "@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
Per utilizzare questo tipo, aggiungi il contesto gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Poi, aggiungi FoodBeverageTobaccoProduct
al tipo di MenuItem
o MenuItemOption
appropriato.
La tabella seguente descrive le proprietà del tipo AdditiveDetails
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "AdditiveDetails". |
additiveName |
Testo | Facoltativo | Nome dell'additivo. |
additiveLevelOfContainment |
Testo | Facoltativo | Codice di contenimento per
gs1:LevelOfContainmentCode.
Ad esempio http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM o
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN . |
L'esempio seguente mostra l'utilizzo del tipo 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 alimento o una bevanda elencato in una voce di menu aggiuntiva di una MenuItem
.
Nella tabella seguente sono elencate le proprietà per il tipo AddOnMenuItem
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "AddOnMenuItem". |
@id |
URL | Obbligatorio | Un identificatore univoco della voce di menu del componente aggiuntivo. |
name |
Testo | Obbligatorio | Testo che identifica AddOnMenuItem quando un utente naviga nel menu. |
description |
Testo | Facoltativo | Descrizione della voce di menu del componente aggiuntivo. |
image |
URL | Facoltativo |
Immagine della voce di menu del componente aggiuntivo conforme alle seguenti linee guida:
|
offers |
Array di Offer |
Obbligatorio* |
Una o più offerte per fornire questo AddOnMenuItem. Descrive quando e a quale prezzo è disponibile questo AddOnMenuItem.
Deve essere valida una sola offerta alla volta. Puoi avere molte offerte valide se il prezzo o la disponibilità possono variare in base all'ora del giorno. Quando il componente aggiuntivo o l'elemento differisce per un attributo di base o per una variante dell'elemento stesso (ad es. patatine fritte piccole, medie e grandi come componente aggiuntivo), utilizza la proprietà Il valore predefinito per In AddOnMenuItem vengono utilizzate le seguenti proprietà
|
hasMenuItemOptions |
Array di MenuItemOption |
Obbligatorio* |
Array di attributi di base che descrivono una variazione dell'elemento stesso del componente aggiuntivo (ad esempio patatine fritte piccole, medie e grandi come componente aggiuntivo) per questa voce di menu del componente aggiuntivo. Utilizza le opzioni per specificare le varie varianti disponibili per questa voce di menu del componente aggiuntivo. Ciò può accadere in due casi:
|
suitableForDiet |
Array di RestrictedDiet |
Facoltativo | Il piatto è conforme alle restrizioni alimentari descritte (come "Dieta senza glutine" o "Dieta vegana"). Questo è un elenco enumerato di valori possibili. |
nutrition |
NutritionInformation |
Facoltativo | Le informazioni nutrizionali del piatto, in particolare le calorie. |
menuAddOn |
Array di AddOnMenuSection |
Facoltativo | L'elemento AddOnMenuItem può avere una sezione menu composta da elementi consentiti che possono essere aggiunti come componente aggiuntivo. |
L'esempio seguente mostra AddOnMenuItem
:
Esempio 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" } } ] }
Esempio 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
Un sottogruppo di piatti o bevande come sezione di menu aggiuntiva per la voce di menu.
Nella tabella seguente sono elencate le proprietà per il tipo AddOnMenuSection
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "AddOnMenuSezione". |
@id |
URL | Obbligatorio | Identificatore univoco della sezione del menu. |
name |
Testo | Obbligatorio | Testo che può identificare la AddOnMenuSezione quando un utente naviga nel menu. |
description |
Testo | Facoltativo | Descrizione della sezione del menu. |
eligibleQuantity |
QuantitativeValue |
Facoltativo | Indica il numero di elementi consentiti come componente aggiuntivo per questa sezione del menu. Puoi utilizzare questo campo per limitare il numero di componenti aggiuntivi, ad esempio il numero minimo e massimo di condimenti che puoi scegliere per una pizza. |
image |
URL | Facoltativo | Immagine della sezione del menu. |
hasMenuItem |
Array di AddOnMenuItem |
Obbligatorio* | Voci di menu dei componenti aggiuntivi contenute in una sezione AddOnMenu. |
offers |
Array di Offer |
Facoltativo |
Utilizza L'elenco seguente mostra quali proprietà
|
hasMenuSection |
Array di AddOnMenuSection |
Obbligatorio* | Raggruppamento logico del menu aggiuntivo (ad es. Cena, Antipasti o Piatti di pesce). |
defaultOption |
Array di AddOnMenuItem |
Facoltativo |
Voci di menu dei componenti aggiuntivi da preselezionare per impostazione predefinita per gli utenti in
Gli oggetti Il numero di |
numberOfFreeAddOns |
Numero | Facoltativo | Indica il numero di componenti aggiuntivi che un utente può selezionare senza costi. |
I seguenti esempi includono oggetti AddOnMenuSection
:
Esempio 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" } } ] }
Esempio 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 } }
Esempio 3
Per una voce di menu "Panino al formaggio" è presente un'opzione AddOnMenuSection
di "Scelta di formaggio" con "Svizzero" e "Mozzarella" preselezionati
come impostazione predefinita.
{ "@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
Rappresenta gli orari di evasione degli ordini per consentire agli utenti di pianificare gli ordini anticipati per la consegna e l'estrazione.
In genere, il valore di opens
è inferiore al valore di closes
. Le
linee guida seguenti si applicano all'utilizzo delle proprietà opens
e closes
:
- Le proprietà
opens
ecloses
sono facoltative perAdvanceServiceDeliveryHoursSpecification
, ma ti consigliamo vivamente di includerle. - L'ora deve essere specificata nell'ora locale del servizio. Non includere un
fuso orario in un valore
opens
ocloses
. I fusi orari specificati vengono ignorati. - Se
opens
ecloses
non sono specificati esplicitamente, presupponiamo che l'ordine anticipato sia disponibile in qualsiasi momento per tutti i giorni. - Se
opens
ecloses
sono uguali, presupponiamo che l'ordinazione anticipata non sia disponibile. - Se
opens
è maggiore dicloses
, l'ora di chiusura viene interpretata come del giorno successivo. Ad esempio, se l'orario di apertura è impostato sul 1° gennaio alle 17:00 e l'orario di chiusura è le 2:00, il ristorante viene interpretato come la chiusura del 2 gennaio alle 2:00. opens
ecloses
si riferiscono alla fascia oraria futura.closes
è un'offerta esclusiva. Ad esempio, seopens
corrisponde alle 10:00 ecloses
alle 16:00 con unserviceTimeInterval
di 15 minuti, la prima fascia oraria inizia alle 10:00 e l'ultima fascia oraria alle 15:45.
La seguente tabella descrive le proprietà del tipo AdvanceServiceDeliveryHoursSpecification
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "AdvancedServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Condizionali |
La data di inizio a partire dalla quale possono essere evasi gli ordini anticipati degli utenti. Ad esempio, "2017-05-01T00:00:00-07:00". Se questa proprietà non è impostata, si presume che sia valida tutti i giorni.
Le proprietà Se questo tipo viene specificato come
Per maggiori informazioni, consulta Formati di data e ora. |
validThrough |
DateTime |
Facoltativo |
La data di fine oltre la quale non è più possibile evadere gli ordini anticipati dell'utente. Ad esempio, "2018-12-01T00:00:00-07:00". Se questa proprietà non è impostata, si presume che sia valida tutti i giorni.
Le proprietà Se questo tipo viene specificato come
Il periodo di tempo di Per maggiori informazioni, consulta la sezione Formati di data e ora. |
opens |
Time |
Facoltativo |
Si applica agli spazi per la consegna a domicilio o l'asporto. L'ora specifica del giorno a partire dalla quale è possibile evadere gli ordini anticipati degli utenti. Ad esempio, 6:30 viene indicato come "T06:30:00". L'ora deve essere specificata nell'ora locale del servizio. Non includere un
fuso orario in un valore Per maggiori informazioni, consulta la sezione Formati di data e ora. |
closes |
Time |
Facoltativo |
Si applica agli spazi per la consegna a domicilio o l'asporto. L'ora specifica del giorno oltre la quale non è possibile evadere gli ordini anticipati degli utenti. Ad esempio, 9:00 PM è indicato come "T21:00:00".
L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore Per maggiori informazioni, consulta la sezione Formati di data e ora. |
dayOfWeek |
Array di DayOfWeek |
Facoltativo |
I giorni della settimana in cui sono disponibili l'orario di consegna anticipato. I valori validi sono:
Se non specifichi alcun giorno della settimana, |
serviceTimeInterval |
Duration |
Obbligatorio |
Intervallo tra due orari di servizio successivi. Ad esempio, se
|
advanceBookingRequirement |
QuantitativeValue |
Obbligatorio |
Numero di minuti dall'ora in cui è possibile evadere l'ordine in anticipo. I valori Ad esempio, se un ordine anticipato richiede almeno 60 minuti per essere
completato, e non può essere evaso oltre 2 giorni
dopo, il valore di |
L'esempio seguente mostra l'utilizzo del tipo AdvanceServiceDeliveryHoursSpecification
:
Esempio 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
Per utilizzare questo tipo, aggiungi il contesto gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Poi, aggiungi FoodBeverageTobaccoProduct
al tipo di MenuItem
o MenuItemOption
appropriato.
La tabella seguente descrive le proprietà del tipo AllergenDetails
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "AllergenDetails". |
allergenType |
Testo | Facoltativo | Tipo di allergene secondo gs1:AllergenTypeCode
. Ad esempio http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Testo | Facoltativo | Codice di contenimento per
gs1:LevelOfContainmentCode.
Ad esempio http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM o
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .
|
L'esempio seguente mostra l'utilizzo del tipo 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
La seguente tabella descrive le proprietà del tipo DeliveryChargeSpecification
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "DeliveryChargeSpecification". |
@id |
URL | Facoltativo | Identificatore per la specifica delle spese di spedizione. |
price |
Numero | Obbligatorio | Costo totale di consegna come valore numerico. Utilizza la proprietà priceCurrency per indicare il tipo di valuta anziché i simboli di valuta. Ad esempio, "6.00", senza il simbolo di valuta. |
priceCurrency |
Testo | Obbligatorio | Il codice di valuta ISO 4217 di 3 lettere. Ad esempio, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Facoltativo | Il volume della transazione, in un'unità monetaria, per il quale è valida questa specifica del costo di consegna. Ad esempio, per indicare un volume di acquisti minimo o per indicare che la spedizione è disponibile senza costi aggiuntivi al di sopra di un determinato volume di ordini. |
eligibleQuantity |
QuantitativeValue |
Facoltativo | L'intervallo e l'unità di misura delle quantità ordinate per cui è valido il costo di consegna. Ciò consente, ad esempio, di specificare che un determinato addebito di trasporto è valido solo per una determinata quantità. |
eligibleRegion |
Array di GeoShape o
Place o
GeoCircle |
Facoltativo | Il luogo, o il GeoShape/GeoCircle per le regioni geopolitiche per cui è valida la specifica dell'offerta o della spesa di consegna. Utilizza questa proprietà solo se le spese di consegna variano in base alla regione. |
validFrom |
DateTime |
Facoltativo | La data e l'ora (incluso il fuso orario) di validità della tariffa di consegna specificata. Ad esempio, "2017-05-01T06:30:00-07:00". Per maggiori informazioni, consulta la sezione Formati per data e ora. |
validThrough |
DateTime |
Facoltativo | La data e l'ora (incluso il fuso orario) dopo le quali la tariffa di consegna specificata non è valida. Ad esempio, "2017-05-01T06:30:00-07:00".
L'orario di validThrough è esclusivo: ad esempio, se questo orario è impostato sulle 18:00, l'orario è valido fino alle 17:59:59.
Per maggiori informazioni, consulta la sezione
Formati di data e ora. |
I seguenti esempi mostrano gli elementi DeliveryChargeSpecification
:
Esempio 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
Esempio 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 } } ]
Esempio 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" } } ]
Oltre a "@type": ["DeliveryChargeSpecification"]
, l'oggetto può essere esteso con
UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
L'estensione fornisce altre due proprietà necessarie per le tariffe di consegna calcolate in percentuale.
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Obbligatorio | Quantità di riferimento a cui si applica un determinato prezzo. Ad esempio,
referenceQuantity del valore 10 con unitCode di
"P1" genera il 10% del valore degli ordini. Al momento è supportato solo unitCode "P1". |
basePrice |
Numero | Facoltativo | La tariffa di base oltre a referenceQuantity . Ad esempio, referenceQuantity di 10 con unitCode di "P1" e basePrice di 5 in USD genera 5 $+ il 10% del valore dell'ordine. Il valore predefinito è 0. |
Esempi di spese di consegna
Google consente di specificare in anticipo una serie di tariffe per gli utenti utilizzando
Offer.PriceSpecification
dell'entità Servizio.
Tieni presente che al momento l'ordine end-to-end supporta un solo DeliveryChargeSpecification
. Combina tutti i tipi di tariffe in un unico
DeliveryChargeSpecification
.
Consulta Esempi di feed di servizio per sapere come specificare le tariffe di consegna in base all'area, alla distanza e al valore degli ordini.
In assenza di commissioni, il valore Offer.PriceSpecification
viene omesso.
- Esempio 1: la spesa di spedizione è pari al 5% del subtotale del carrello
- Esempio 2: le spese di consegna sono pari a 5 €
- Esempio 3: le spese di spedizione sono pari a 5 € + 10% del subtotale del carrello
- Esempio 4: la tariffa di consegna è di 5 $e la tariffa per il bagaglio è di 0,1 $
- Esempio 5: la commissione di consegna è del 5%, mentre la commissione di servizio è il 2% del subtotale del carrello
- Esempio 6: il costo di consegna è di 5 $e di 1 $per ogni distanza aggiuntiva di 1 km
Esempio 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Esempio 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Esempio 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% } ]
Esempio 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
Esempio 5
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
Esempio 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
La tabella seguente descrive le proprietà del tipo GeoCircle
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "GeoCircle". |
geoMidpoint |
GeoCoordinates |
Obbligatorio | Indica GeoCoordinates al centro di GeoCircle . |
geoRadius |
Numero | Obbligatorio | Indica il raggio approssimativo (in metri) di GeoCircle . |
L'esempio seguente mostra un elemento GeoCircle
:
Esempio
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
La tabella seguente descrive le proprietà del tipo GeoCoordinates
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Si tratta sempre di "GeoCoordinates". |
latitude |
Numero | Obbligatorio |
Latitudine in gradi. I valori sono limitati all'intervallo da -90 a 90 inclusi. Se il valore specificato è inferiore a -90, viene impostato su -90; se il valore è maggiore di 90, viene impostato su 90. La precisione deve essere di almeno cinque cifre decimali. |
longitude |
Numero | Obbligatorio |
Longitudine in gradi. I valori al di fuori dell'intervallo da -180 a 180 vengono aggregati in modo che rientrino nell'intervallo. Ad esempio, un valore di -190 viene convertito in 170. Un valore di 190 viene convertito in -170. Ciò riflette il fatto che le longitudini sono disposte su tutto il globo. La precisione deve essere di almeno cinque cifre decimali. |
L'esempio seguente mostra un elemento GeoCoordinates
:
Esempio
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
La tabella seguente descrive le proprietà del tipo GeoShape
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "GeoShape". |
polygon |
Array di testo | Obbligatorio |
Un poligono o multipoligono espresso come una serie di tre o più punti delimitati da spazi. Ti consigliamo di fare in modo che il primo e l'ultimo punto siano uguali, ma non è obbligatorio. Ogni punto di un poligono o di un poligono multiplo è definito da un punto di latitudine seguito da un punto di longitudine. Devi inoltre specificare i punti in senso antiorario. Nella maggior parte dei casi, avrai un singolo poligono. Per casi d'uso più complessi, consulta la documentazione relativa all'area coperta dal servizio di consegna. |
I seguenti esempi mostrano gli elementi GeoShape
:
Esempio 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" },
Esempio 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”] },
Esempio 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
Nella tabella seguente sono elencate le proprietà per il tipo Menu
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "Menu". |
@id |
URL | Obbligatorio | Identificatore univoco del menu. |
name |
Testo | Facoltativo | Testo che può identificare Menu quando un utente naviga nel
menu. |
description |
Testo | Facoltativo | Descrizione del menu. |
disclaimer |
MenuDisclaimer |
Facoltativo | Limitazione di responsabilità per il menu. Ad esempio, divulgazione di informazioni nutrizionali e allergeni. |
hasMenuSection |
Singolo oggetto o array di MenuSection |
Facoltativo | Raggruppamento logico del menu (ad es. Cena, Antipasti o Piatti di pesce). |
hasMenuItem |
Singolo oggetto o array di MenuItem |
Facoltativo | Oggetti MenuItem contenuti in un Menu ,
in genere quando l'elemento Menu non viene suddiviso per
MenuSections . |
inLanguage |
Testo | Facoltativo | Lingua dei contenuti del menu, come codice lingua dello standard IETF BCP 47. Ad esempio, "it-IT". |
I seguenti esempi mostrano l'utilizzo del tipo Menu
:
Esempio 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" }
Esempio 2
Questo esempio mostra hasMenuItem
come array.
{ "@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" } } ] }
Esempio 3
Questo esempio mostra hasMenuSection
come array.
{ "@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" } } } ] }
Per altri esempi di entità Menu
, consulta la sezione
Esempi di ristoranti e feed di menu.
MenuDisclaimer
Nella tabella seguente sono elencate le proprietà per il tipo MenuDisclaimer
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "MenuDisclaimer". |
@id |
URL | Obbligatorio | Identificatore univoco per la limitazione di responsabilità del menu. |
text |
Testo | Obbligatorio | Testo della limitazione di responsabilità. Ad esempio, "L'apporto energetico giornaliero medio degli adulti è 8700 kJ". |
url |
URL | Facoltativo | URL che rimanda a una pagina con ulteriori dettagli sul disclaimer. |
L'esempio seguente mostra l'utilizzo del tipo MenuDisclaimer
:
Esempio
{ "@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
Voce di menu che rappresenta l'elemento nel menu. La seguente tabella elenca le
proprietà per il tipo MenuItem
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "MenuItem". |
@id |
URL | Obbligatorio | Identificatore univoco della voce di menu. |
name |
Testo | Obbligatorio | Testo che può identificare il MenuItem quando un utente naviga nel menu. |
description |
Testo | Facoltativo | Descrizione della voce di menu. |
image |
URL | Facoltativo |
Immagine della voce del menu. Segui queste linee guida per le immagini:
|
menuAddOn |
Array di AddOnMenuSection |
Facoltativo | Elementi di una sezione di menu che possono essere aggiunti come componenti aggiuntivi alla voce di menu. |
offers |
Array di Offer |
Obbligatorio* |
Una o più offerte per fornire questo L'elenco seguente mostra quali proprietà
|
hasMenuItemOptions |
Array di MenuItemOption |
Obbligatorio | Elenco di opzioni/varianti di base per questa voce di menu. Le opzioni dovrebbero essere utilizzate per specificare le varie variazioni di base disponibili per l'articolo, ad esempio piccole, medie e grandi. |
suitableForDiet |
Array di RestrictedDiet |
Facoltativo | Il piatto è conforme alle restrizioni alimentari descritte (come "http://schema.org/GlutenFreeDiet" o "http://schema.org/VeganDiet". Questo è un elenco enumerato di valori possibili. |
nutrition |
NutritionInformation |
Facoltativo | Informazioni nutrizionali del piatto, in particolare le calorie. |
hasAllergen |
AllergenDetails |
Facoltativo | Allergeni del piatto per gs1:AllergenDetails .
Aggiungi il contesto gs1 per utilizzare questa proprietà: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Aggiungi FoodBeverageTobaccoProduct al tipo di
MenuItem . |
additive |
Array di AdditiveDetails |
Facoltativo | Gli additivi del piatto per gs1:AdditiveDetails .
Ecco un elenco enumerato di valori possibili. Aggiungi il contesto gs1 per utilizzare
questa proprietà: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Aggiungi FoodBeverageTobaccoProduct al tipo di
MenuItem . |
packaging |
PackagingDetails |
Facoltativo | Le informazioni su imballaggio e riciclo di questa voce di menu in base a
gs1:PackagingDetails .
Aggiungi il contesto gs1 per utilizzare questa proprietà: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Aggiungi FoodBeverageTobaccoProduct al tipo di
MenuItem .
|
I seguenti esempi mostrano gli elementi MenuItem
:
Esempio 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" }
Esempio 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" } } ]
Esempio 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 -- ] } ] } ] }
Esempio 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" } } ] }
Esempio 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" } } } }
Per altri esempi di entità MenuItem
, consulta la sezione Esempi di ristoranti e feed di menu.
MenuItemOption
Un'opzione per rappresentare le scelte che un utente deve fare quando seleziona un piatto o una combinazione. L'utente deve selezionare un'opzione, altrimenti l'ordine non verrà considerato valido. Ad esempio, scegliere piccole, medie o grandi nel caso di una pizza.
Per casi d'uso di esempio di MenuItemOption
, consulta la nostra guida alla
personalizzazione mediante MenuItemOption
.
Nella tabella seguente sono elencate le proprietà per il tipo MenuItemOption
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "MenuItemOption". |
value |
PropertyValue |
Obbligatorio | PropertyValue contenente una coppia nome/valore che rappresenta l'opzione. |
offers |
Array di Offer |
Obbligatorio |
Una o più offerte per fornire questo
L'elenco seguente mostra quali proprietà
|
menuAddOn |
Array of |
Facoltativo | Sezione Menu degli elementi consentiti che possono essere aggiunti come componente aggiuntivo. Utilizza questa opzione solo se i componenti aggiuntivi sono specifici di una determinata opzione di menu. In caso contrario, fornisci componenti aggiuntivi utilizzando la proprietà MenuItem .menuAddOn.
|
suitableForDiet |
Array di RestrictedDiet |
Facoltativo | Elenco enumerato che indica diete in cui questo piatto è conforme alle restrizioni alimentari descritte (ad esempio "http://schema.org/GlutenFreeDiet" o "http://schema.org/VeganDiet"). |
nutrition |
NutritionInformation |
Facoltativo | Informazioni nutrizionali del piatto, in particolare le calorie. |
hasAllergen |
AllergenDetails |
Facoltativo | Allergeni del piatto per gs1:AllergenDetails .
Aggiungi il contesto gs1 per utilizzare questa proprietà: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Aggiungi FoodBeverageTobaccoProduct al tipo di
MenuItemOption .
|
additive |
Array di AdditiveDetails |
Facoltativo | Additivi del piatto per gs1:AdditiveDetails .
Ecco un elenco enumerato di valori possibili. Aggiungi il contesto gs1 per utilizzare
questa proprietà: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Aggiungi FoodBeverageTobaccoProduct al tipo di
MenuItemOption .
|
packaging |
PackagingDetails |
Facoltativo | Informazioni su imballaggio e riciclo di questo elemento Menu per
gs1:PackagingDetails
Aggiungi il contesto gs1 per utilizzare questa proprietà: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Aggiungi FoodBeverageTobaccoProduct al tipo di
MenuItemOption .
|
L'esempio seguente mostra gli elementi MenuItemOption
:
Esempio 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" } } ] }
Esempio 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
Sezione del menu per rappresentare una sezione specifica del menu. La seguente tabella elenca le proprietà per il tipo MenuSection
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "MenuSezione". |
@id |
URL | Obbligatorio | Identificatore univoco della sezione del menu. |
name |
Testo | Obbligatorio | Testo che possa identificare MenuSection quando un utente esplora il menu. |
description |
Testo | Facoltativo | Descrizione della sezione del menu. |
hasMenuSection |
Array di MenuSection |
Facoltativo | Sottoraggruppamento logico di MenuSection . Ad esempio, la sezione Menu della cena può avere più sottosezioni Menu, come "Piatti per pollame" o "Vegetariano". |
hasMenuItem |
Array di MenuItem |
Facoltativo | Voci di menu contenute in un elemento MenuSection . |
offers |
Array di Offer |
Facoltativo |
Utilizza Il seguente elenco mostra quali proprietà
|
image |
URL | Facoltativo | Immagine della sezione del menu. |
I seguenti esempi mostrano le entità MenuSection
:
Esempio 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" } }
Esempio 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" } } ] } ]
Per altri esempi di entità MenuSection
, consulta la sezione
Esempi di ristoranti e feed di menu.
NutritionInformation
La seguente tabella descrive le proprietà del tipo NutritionInformation
. Le unità di misura sono sensibili alle maiuscole. Ad esempio, "Cal" è accettato,
ma "cal" non lo è.
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "NutritionInformation". |
description |
Testo | Facoltativo | Informazioni nutrizionali in testo libero. Ad esempio, "Contiene conservanti". |
calories |
Testo | Facoltativo |
Il numero di calorie in Cal, kcal o kJ, nel seguente formato: number Cal_kcal_OR_kJ Ad esempio, "240 Cal". |
carbohydrateContent |
Testo | Facoltativo |
La quantità di carboidrati, generalmente in g, nel formato seguente: number g_OR_mg Ad esempio, "7 g". |
cholesterolContent |
Testo | Facoltativo |
La quantità di colesterolo, generalmente in mg, nel formato seguente: number g_OR_mg Ad esempio, "12 mg". |
fatContent |
Testo | Facoltativo |
La quantità di grassi, generalmente in g, nel formato seguente: number g_OR_mg Ad esempio, "42 g". |
fiberContent |
Testo | Facoltativo |
Il numero di g o mg di fibra, nel seguente formato: number g_OR_mg |
proteinContent |
Testo | Facoltativo |
Il numero di g o mg di proteine, nel seguente formato: number g_OR_mg |
saturatedFatContent |
Testo | Facoltativo |
Il numero di g o mg di grassi saturi, nel seguente formato: number g_OR_mg |
servingSize |
Testo | Facoltativo | La porzione in mL, L, g o kg, in termini di numero di volume o massa. |
sodiumContent |
Testo | Facoltativo |
Il numero di mg o g di sodio, nel seguente formato: number g_OR_mg |
sugarContent |
Testo | Facoltativo |
Il numero di g o mg di zucchero, nel seguente formato: number g_OR_mg |
transFatContent |
Testo | Facoltativo |
Il numero di g o mg di grassi trans, nel seguente formato: number g_OR_mg |
unsaturatedFatContent |
Testo | Facoltativo |
La quantità di grassi insaturi, generalmente in g, nel formato seguente: number g_OR_mg |
I seguenti esempi mostrano un elemento NutritionInformation
:
Esempio 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
Esempio 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" } },
Offerta
Offri una voce del menu. La seguente tabella descrive le proprietà del tipo Offer
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "Offerta". |
sku |
Testo | Condizionali |
Identificatore univoco dell'offerta. Può essere qualsiasi valore di testo univoco
all'interno di Questa proprietà viene utilizzata solo nei seguenti tipi di offerta:
|
price |
Testo | Condizionali |
Prezzo dell'articolo offerto. Ad esempio, "6.00" senza il simbolo di valuta. Questa proprietà è obbligatoria solo per i seguenti tipi di offerta:
Non viene utilizzato nei seguenti tipi di offerta:
|
priceCurrency |
Testo | Condizionali |
La valuta (in formato ISO 4217 a tre lettere) del prezzo o di un componente del prezzo, se associato a PriceSpecification e ai relativi sottotipi. Questa proprietà è obbligatoria solo per i seguenti tipi di offerta:
Non viene utilizzato nei seguenti tipi di offerta:
|
availabilityStarts |
DateTime o Time |
Facoltativo | La data e l'ora o solo l'ora a partire dalla quale è disponibile l'offerta. Ad esempio, se i pancake vengono serviti a partire dalle 07:00, il valore di questo campo può essere il seguente: "2017-05-01T07:00:00-07:00". Per maggiori informazioni, consulta la sezione Formati di data e ora. |
availabilityEnds |
DateTime o Time |
Facoltativo | La data e l'ora o solo l'ora in cui l'offerta non è disponibile. Questo periodo è esclusivo. Ad esempio, se la disponibilità dei pancake termina alle 10:00, l'ultimo pancake può essere servito alle 09:59:59. Il valore di questo campo può quindi avere il seguente formato: "2017-05-01T10:00:00-07:00". Per maggiori informazioni, consulta la sezione Formati di data e ora. |
availableDay |
Array di DayOfWeek | Facoltativo |
Giorni della settimana in cui è disponibile l'articolo. I valori validi sono:
Se hai disponibilità diverse per giorni diversi della settimana,
utilizza più di un oggetto |
validFrom |
DateTime |
Facoltativo |
La data e l'ora (incluso il fuso orario) in cui è valido il prezzo specificato. Ad esempio, la pasta costa 8 $a pranzo e 10 $a cena. Per maggiori informazioni, consulta la sezione Formati di data e ora. Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi di offerta:
|
validThrough |
DateTime |
Facoltativo | La data e l'ora (incluso il fuso orario) dopo le quali il prezzo specificato non è più valido. Ad esempio, la pasta costa 8 $a pranzo e 10 $a cena. L'orario di Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi di offerta.
|
eligibleQuantity |
QuantitativeValue | Facoltativo |
Le quantità ordinate per cui è consentito questo articolo. Ad esempio, un ristorante potrebbe richiedere l'ordine di almeno 10 pizze per una consegna. Questo valore è facoltativo. Per impostazione predefinita, non esiste un limite massimo, ma il ristorante può specificarne uno. I limiti minimi si applicano solo quando un utente seleziona l'elemento. Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi di offerta.
|
aggregateRating |
AggregateRating | Facoltativo |
La valutazione complessiva, basata su una raccolta di recensioni o valutazioni dell'elemento. Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi.
|
inventoryLevel |
QuantitativeValue | Facoltativo |
Il livello di inventario approssimativo per l'articolo o gli articoli. Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi di offerta:
|
priceSpecification |
Array di DeliveryChargeSpecification o array di PaymentChargeSpecification | Facoltativo |
Se utilizzata in Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi di offerta:
|
offeredBy |
Array di ID Restaurant |
Facoltativo | Rappresenta i ristoranti in cui viene offerto questo Se non specificato, questo Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi di offerta:
|
applicableFulfillmentMethod |
Array di testo | Facoltativo | Rappresenta il tipo di servizio fornito da Se non specificato, questo Questa proprietà può essere utilizzata nei seguenti tipi di offerta:
Questa proprietà non viene utilizzata nei seguenti tipi di offerta:
|
@id |
URL | Deprecata | Identificatore univoco dell'offerta. Deprecata a partire dal 25/4/19, sostituisci con
sku come descritto sopra.
|
I seguenti esempi mostrano gli elementi Offer
:
Esempio 1
L'esempio seguente mostra un'offerta semplice:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Esempio 2
La seguente offerta di esempio mostra la disponibilità dalle 8:00 alle 10:00 nei fine settimana:
{ "@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. }
Esempio 3
L'esempio seguente mostra la disponibilità dalle 9:00 alle 10:59:59 di lunedì, mercoledì e venerdì, ma il martedì e giovedì dalle 8:59:59 alle 11:59:59:
{ "@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"] }
Esempio 4
L'esempio seguente mostra la quantità idonea di una voce di menu per un componente aggiuntivo impostata, in modo che l'utente possa ordinare un massimo di 2 porzioni di quell'articolo:
{ "@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 } } }
Esempio 5
L'esempio seguente mostra un'offerta di consegna in una località specifica:
{ "@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
Definisce quando sono disponibili i servizi di ordinazione. In genere, il valore di opens
è inferiore al valore di closes
. Le seguenti linee guida si applicano all'utilizzo delle
proprietà opens
e closes
:
- Le proprietà
opens
ecloses
sono facoltative, ma vivamente consigliate per indicare quando è disponibile l'ordine. La best practice per definire gli orari disponibili è includere un arraydeliveryHours
contenente unServiceDeliveryHoursSpecification
con proprietàopens
ecloses
. Poi puoi includere un oggettoAdvanceServiceDeliveryHoursSpecification
indeliveryHours
con le proprie proprietàopens
ecloses
, se vuoi offrire una finestra più limitata per l'ordine anticipato. - Se
opens
ecloses
non sono specificati esplicitamente, presupponiamo che il servizio di ordinazione sia disponibile tutti i giorni in tutte le ore del giorno. - L'ora deve essere specificata nell'ora locale del servizio. Non includere un
fuso orario in un valore
opens
ocloses
. Se viene specificato un fuso orario, Google ignora queste informazioni. - Se
opens
ecloses
corrispondono, presupponiamo che il ristorante sia aperto per 0 minuti. - Se
opens
è maggiore dicloses
, l'ora di chiusura viene interpretata come del giorno successivo. Ad esempio, se l'orario di apertura è impostato sul 1° gennaio alle 17:00 e l'orario di chiusura è le 2:00, il ristorante viene interpretato come chiusura alle 2:00 del 2 gennaio. - Il periodo di tempo di
closes
è esclusivo. Pertanto, se gli orari di apertura e chiusura di questa finestra di ordinamento sono impostati rispettivamente alle 10:00 e alle 16:00, l'ultimo ordine sarà alle 15:59:59.
La seguente tabella descrive le proprietà del tipo OpeningHoursSpecification
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "OpeningHoursSpecification". |
@id |
URL | Facoltativo | Identificatore per OpeningHoursSpecification . |
dayOfWeek |
Array di DayOfWeek |
Facoltativo |
Il giorno della settimana per il quale sono validi gli orari di apertura. I valori accettati sono "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato" e "Domenica". Ad esempio: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Se non specifichi alcun giorno della settimana, |
opens |
Time |
Facoltativo |
Se utilizzata in una specifica di Quando utilizzato in una specifica di L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore Per maggiori informazioni, consulta la sezione Formati di data e ora. |
closes |
Time |
Facoltativo |
Quando utilizzata in una specifica di L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore Per maggiori informazioni, consulta la sezione Formati di data e ora. |
validFrom |
DateTime |
Facoltativo |
Se utilizzata in una specifica Ad esempio, se le ore specificate si applicano a tutto l'anno 2017, imposti
Se utilizzato in una specifica di Se questa proprietà non è specificata nel feed, Google presuppone che il ristorante o il servizio sia disponibile ogni giorno. Oltre alla data, sono obbligatorie le parti del fuso orario e dell'ora del valore. Per il fuso orario, utilizza quello del ristorante o del servizio. Per maggiori informazioni, consulta la sezione Formati di data e ora. |
validThrough |
DateTime |
Facoltativo |
Quando utilizzato in una Ad esempio, se le ore specificate si applicano a tutto l'anno 2017, imposti
Quando utilizzato in una specifica di Se questa proprietà non è specificata nel feed, Google presuppone che il ristorante o il servizio sia disponibile ogni giorno. Oltre alla data, sono obbligatorie le parti dell'ora e del fuso orario di DateTime. Per il fuso orario, utilizza quello del ristorante o del servizio. Il periodo di tempo di Per maggiori informazioni, consulta la sezione Formati di data e ora. |
deliveryHours |
Array di ServiceDeliveryHoursSpecification o array di
AdvanceServiceDeliveryHoursSpecification |
Condizionali |
La specifica degli orari di consegna o di asporto. Questo parametro è obbligatorio a meno che il ristorante non sia chiuso, ovvero
|
I seguenti esempi mostrano gli elementi OpeningHoursSpecification
:
Esempio 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" } ] },
Esempio 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" } ] }
Esempio 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" } } },
Esempio 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
Aggiungi il contesto gs1 per utilizzare questo tipo: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Aggiungi FoodBeverageTobaccoProduct
al tipo di MenuItem
o MenuItemOption
.
La tabella seguente descrive le proprietà del tipo PackagingDetails
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "PackagingDetails". |
packagingRecyclingProcessType |
Testo | Facoltativo | Tipo di processo di riciclo dell'imballaggio secondo
gs1:PackagingRecyclingProcessTypeCode. Ad esempio
http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE
o http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Facoltativo | Dettagli sul deposito di pacchetti restituiti in base a gs1:ReturnablePackageDepositDetails. Ad esempio, le bottiglie e le lattine hanno depositi di pacchi restituibili. |
L'esempio seguente mostra l'utilizzo del tipo 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
La seguente tabella descrive le proprietà del tipo PaymentChargeSpecification
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "PaymentChargeSpecification". |
@id |
URL | Facoltativo | Identificatore per PaymentChargeSpecification . |
price |
Numero | Obbligatorio | Importo totale dell'addebito. Ad esempio, "6.00", senza il simbolo di valuta. |
priceCurrency |
Testo | Obbligatorio | Il codice valuta ISO 4217 a 3 lettere del prezzo. Ad esempio, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Facoltativo | Volume di transazioni, in un'unità monetaria, per cui è valida questa specifica dell'addebito di pagamento, ad esempio per indicare un volume di acquisti minimo. |
eligibleQuantity |
QuantitativeValue |
Facoltativo | Le quantità d'ordine per le quali è valido l'addebito di pagamento. Ad esempio, puoi utilizzare questa proprietà per richiedere un numero minimo di articoli in un ordine. |
validFrom |
DateTime |
Facoltativo | Data e ora (incluso il fuso orario) in cui l'addebito specificato sul pagamento diventa valido. Ad esempio, "2017-05-01T07:00:00-07:00". Per maggiori informazioni, consulta la sezione Formati per data e ora. |
validThrough |
DateTime |
Facoltativo | Data e ora (incluso il fuso orario) in cui l'addebito
di pagamento specificato non è valido. Ad esempio, "2017-05-01T07:30:00-07:00".
L'orario di validThrough è esclusivo: ad esempio, se
è impostato sulle 18:00, l'orario è valido fino alle 17:59:59.
Per maggiori informazioni, consulta la sezione
Formati di data e ora. |
L'esempio seguente mostra un elemento PaymentChargeSpecification:
Esempio
"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 } }]
Oltre a "@type": ["PaymentChargeSpecification"]
, l'oggetto può essere
esteso con UnitPriceSpecification
("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
).
L'estensione fornisce altre due proprietà richieste per le commissioni di servizio
calcolate in percentuale.
proprietà | Tipo | Necessità | Descrizione |
referenceQuantity |
QuantitativeValue |
Obbligatorio | Quantità di riferimento a cui si applica un determinato prezzo. Ad esempio,
referenceQuantity del valore 10 con unitCode di
"P1" genera il 10% del valore degli ordini. Al momento è supportato solo unitCode "P1". |
basePrice |
Numero | Facoltativo | La tariffa di base oltre a referenceQuantity . Ad
esempio, referenceQuantity di 10 con unitCode
di "P1" e basePrice di 5 in USD risulta in 5 $+ 10% del
valore dell'ordine. Il valore predefinito è 0. |
Esempi di commissioni per l'asporto
Google consente di specificare in anticipo una serie di tariffe per gli utenti utilizzando
Offer.PriceSpecification
dell'entità Servizio.
Tieni presente che al momento supportiamo solo un PaymentChargeSpecification
. Combina
tutti i tipi di tariffe in un unico PaymentChargeSpecification
In assenza di commissioni, il valore Offer.PriceSpecification
viene omesso.
- Esempio 1: la commissione di servizio è pari al 5% del subtotale del carrello
- Esempio 2: la commissione di servizio è di 5 $
- Esempio 3: la tariffa sul bagaglio è di 0,1 $e la commissione di servizio è pari al 5% del subtotale del carrello
- Esempio 4: la tariffa sui bagagli è di 0,1 $e la commissione di servizio è di 1 $
- Esempio 5: la commissione di servizio è del 5% e la mancia richiesta è il 10% del subtotale del carrello
Esempio 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Esempio 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Esempio 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
Esempio 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
Esempio 5
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Posizione
La tabella seguente descrive le proprietà del tipo Place
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "Luogo". |
address |
PostalAddress |
Obbligatorio | L'indirizzo di un luogo. |
L'esempio seguente mostra un elemento Place:
Esempio
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
La tabella seguente descrive le proprietà del tipo PostalAddress
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "PostalAddress". |
addressLocality |
Testo | Obbligatorio* | La località o la città. Ad esempio, "Roma". |
addressRegion |
Testo | Obbligatorio* | La regione o lo stato. Ad esempio, "CA". |
postalCode |
Testo | Obbligatorio* | Il codice postale. Ad esempio, "94102". |
streetAddress |
Testo | Facoltativo | L'indirizzo fisico. Ad esempio, "Via Confalonieri 4, 20124 Milano". |
addressCountry |
Testo | Obbligatorio | Codice paese ISO 3166-1 alpha-2 a due lettere . Ad esempio, "US". |
I fornitori di servizi di consegna possono elencare queste proprietà per indicare un Service.areaServed
in cui viene fornito un servizio.
Se utilizzato in Restaurant.address
, tutte le proprietà elencate in
PostalAddress
sono obbligatorie.
L'esempio seguente mostra un elemento PostalAddress
:
Esempio
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
La seguente tabella descrive le proprietà del tipo PriceSpecification
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "PriceSpecification". |
@id |
URL | Facoltativo | Identificatore per PriceSpecification . |
minPrice |
Numero | Facoltativo | Il prezzo più basso se rientra in una fascia di prezzo. |
maxPrice |
Numero | Facoltativo | Il prezzo più alto se rientra in una fascia di prezzo. |
priceCurrency |
Testo | Obbligatorio | Il codice valuta ISO 4217 a 3 lettere del prezzo. Ad esempio, "USD". |
eligibleQuantity |
QuantitativeValue |
Facoltativo | Le quantità d'ordine per le quali è valida la specifica del prezzo. Ad esempio, il prezzo potrebbe essere 2 $per libbra o 2 articoli per un dollaro. |
L'esempio seguente mostra un elemento PriceSpecification
:
Esempio 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Coppia di valori della proprietà utilizzata per descrivere le opzioni in MenuItemOption
.
Nella tabella seguente sono elencate le proprietà per il tipo PropertyValue
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "PropertyValue". |
name |
Testo | Obbligatorio |
Nome o tipo dell'opzione. Di seguito sono riportati nomi validi quando utilizzati in
Nomi validi se utilizzati in
|
value |
Testo | Obbligatorio |
Valore dell'opzione. I valori possono essere qualsiasi stringa e vengono visualizzati così come sono. Di seguito sono riportati valori validi:
|
QuantitativeValue
La tabella seguente descrive le proprietà del tipo QuantitativeValue
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "QuantitativeValue". |
value |
Numero | Facoltativo | Il valore del nodo del valore quantitativo o del valore della proprietà. |
unitCode |
Testo o URL | Facoltativo |
L'unità di misura come codice comune UN/CEFACT o URL. I codici diversi dal codice comune UN/CEFACT possono essere utilizzati con un prefisso seguito dai due punti. |
maxValue |
Numero | Facoltativo | Il valore superiore di una caratteristica o una proprietà. |
minValue |
Numero | Facoltativo | Il valore più basso di una caratteristica o una proprietà. |
I seguenti esempi mostrano l'utilizzo del tipo QuantitativeValue
:
Esempio 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
Esempio 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 } }
Esempio 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 } } ]
Ristorante
Nella tabella seguente sono elencate le proprietà per il tipo Restaurant
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | È sempre "Ristorante". |
@id |
URL | Obbligatorio | Identificatore univoco del ristorante o del fornitore di servizi di consegna a domicilio. Ad esempio, "http://www.provider.com/326", dove "326" è l'identificatore univoco del ristorante. |
name |
Testo | Obbligatorio | Testo che possa identificare Restaurant durante la procedura di ordinazione. |
url |
URL | Obbligatorio | URL sul tuo dominio che rappresenta il ristorante. Ad esempio, "http://www.provider.com/someristorante". |
sameAs |
URL | Facoltativo | Il sito web ufficiale del ristorante. Ad esempio, "http://www.unristorante.com". |
email |
Testo | Facoltativo | Email di contatto del ristorante. |
description |
Testo | Facoltativo | Descrizione del ristorante. |
telephone |
Testo | Obbligatorio |
Numero di telefono nel seguente formato: "[+][country_code][phone_#_with_area_code]" Ad esempio, "+16501234567". |
priceRange |
Testo | Facoltativo | Diversi prezzi. Ad esempio, "$$" ($-Inexpensive, $$-Moderato, $$$-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", // Il codice paese (+1) è obbligatorio "servesCuisine": [ "fusion indiano-messicana" ] },Esempio 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"} ] }Per altri esempi di entità
Restaurant
, consulta la sezione Esempi di ristoranti e feed di menu.
ReturnablePackageDepositDetails
Per utilizzare questo tipo, aggiungi il contesto gs1: "@context":
["http://gs1.org/voc/", "http://schema.org"]
Poi, aggiungi
FoodBeverageTobaccoProduct
al tipo diMenuItem
oMenuItemOption
appropriato.La seguente tabella descrive le proprietà del tipo
ReturnablePackageDepositDetails
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "ReturnablePackageDepositDetails". |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Facoltativo | L'importo del bonifico per questo articolo secondo gs1:PriceSpecification. Ad esempio, 0,25 $ di deposito per lattina. |
L'esempio seguente mostra l'utilizzo del tipo ReturnablePackageDepositDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
Servizio
Descrive la consegna di un'azione end-to-end dell'ordine da un ristorante a una località geografica da parte di un'organizzazione di consegna.
La tabella seguente descrive le proprietà del tipo Service
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio |
Il tipo di feed.
|
@id |
URL | Obbligatorio | Identificatore per il servizio di fulfillment. Ad esempio, "http://www.provider.com/service/1". |
description |
Testo | Facoltativo | Descrizione dell'articolo. |
serviceType |
Testo | Obbligatorio | Il tipo di servizio offerto. I valori possibili sono "DELIVERY" o "TAKEOUT". |
provider |
Restaurant |
Obbligatorio | Un riferimento all'identificatore univoco del ristorante. Ad esempio, "http://www.provider.com/someristorante". |
areaServed |
Array di GeoShape ,
Place o
GeoCircle |
Condizionali | Area geografica in cui viene fornito un servizio. Questo campo è facoltativo per impostazione predefinita, ma è obbligatorio se serviceType è "DISTRIBUZIONE". |
hoursAvailable |
Array di OpeningHoursSpecification |
Obbligatorio | Orari durante i quali è disponibile il servizio. |
specialOpeningHoursSpecification |
Array di OpeningHoursSpecification ,
ServiceDeliveryHoursSpecification o
AdvanceServiceDeliveryHoursSpecification |
Facoltativo |
Orari che sostituiscono il più generico Definisci l'intervallo di date speciale utilizzando le proprietà |
offers |
Array di Offer |
Condizionali |
Dettagli sull'offerta di consegna per un ristorante specifico. Questo
campo è facoltativo per impostazione predefinita, ma obbligatorio se La proprietà |
hasOfferCatalog |
[Menu , OfferCatalog] |
Obbligatorio |
Specifica un menu per questo servizio. Puoi avere un menu diverso per ciascuno dei tuoi servizi (ad es. asporto, consegna a domicilio e catering). Devi specificare sia "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Array di {name, value} | Facoltativo |
Informazioni facoltative per la configurazione del servizio. Gli elementi devono essere un oggetto con la chiave
Consulta il riferimento "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 | Facoltativo |
Contiene un URL per un servizio di consegna/estrazione che verrà utilizzato durante la migrazione dall'esperienza di ordinazione di cibo end-to-end al reindirizzamento. Ad esempio, "PotentialAction": { "url": "https://fopatestagent.com/ordering/ristorante-1/delivery" } |
L'esempio seguente mostra l'utilizzo del tipo di servizio:
Esempio
{ "@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" } } ] } },
Per altri esempi di entità di servizio, consulta la pagina Esempi di feed di servizio.
ServiceDeliveryHoursSpecification
Rappresenta gli orari di evasione degli ordini per gli utenti per pianificare ordini al più presto con consegna e asporto.
In genere, il valore di opens
è inferiore al valore di closes
. Le
linee guida seguenti si applicano all'utilizzo delle proprietà opens
e closes
:
- Le proprietà
opens
ecloses
sono facoltative perServiceDeliveryHoursSpecification
, ma ti consigliamo vivamente di includerle. - L'ora deve essere specificata nell'ora locale del servizio. Non includere un
fuso orario in un valore
opens
ocloses
. Se viene specificato un fuso orario, Google ignora le informazioni sul fuso orario. - Se
opens
ecloses
non vengono specificati esplicitamente, presupponiamo che l'ordine "Appena possibile" sia disponibile in qualsiasi momento ogni giorno. - Se
opens
ecloses
sono uguali, presupponiamo che l'ordine "Appena possibile" non sia disponibile. - Se
opens
è maggiore dicloses
, l'ora di chiusura viene interpretata come del giorno successivo. Ad esempio, se l'orario di apertura è impostato sul 1° gennaio alle 17:00 e l'orario di chiusura è le 2:00, il ristorante viene interpretato come chiusura alle 2:00 del 2 gennaio.
La seguente tabella descrive le proprietà del tipo ServiceDeliveryHoursSpecification
:
Proprietà | Tipo | Necessità | Descrizione |
---|---|---|---|
@type |
Testo | Obbligatorio | Il valore è sempre "ServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Facoltativo |
Data e ora (incluso il fuso orario) in cui è possibile evadere gli ordini appena disponibili degli utenti. Ad esempio, "2017-05-01T07:00:00-07:00". Se questa proprietà non è impostata, si presume che sia valida tutti i giorni. Per maggiori informazioni, consulta la sezione Formati di data e ora. |
validThrough |
DateTime |
Facoltativo |
Data e ora (incluso il fuso orario) dopo le quali non è possibile evadere gli ordini ASAP degli utenti. Ad esempio, "2017-05-01T07:00:00-07:00". Se questa proprietà non è impostata, si presume che sia valida tutti i giorni. Il periodo di tempo di Per maggiori informazioni, consulta la sezione Formati di data e ora. |
opens |
Time |
Facoltativo |
L'ora in cui inizia il servizio di consegna per l'evasione degli ordini il prima possibile degli utenti. Ad esempio, "T10:30:00". L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore Per maggiori informazioni, consulta la sezione Formati di data e ora. |
closes |
Time |
Facoltativo |
Il momento in cui il servizio di consegna per gli ordini "Appena possibile" degli utenti non è più disponibile. Ad esempio, "T23:59:59". Il periodo di tempo di L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore Per maggiori informazioni, consulta la sezione Formati di data e ora. |
dayOfWeek |
Array di DayOfWeek |
Facoltativo |
Giorni della settimana in cui il servizio è disponibile per gli ordini degli utenti il prima possibile. Di seguito sono riportati dei valori validi:
Se non specifichi alcun giorno della settimana, |
deliveryLeadTime |
QuantitativeValue |
Facoltativo | Tempi di consegna stimati, in minuti, una volta effettuato l'ordine. Ti consigliamo vivamente di impostare questa proprietà. Imposta il campo value di QuantitativeValue sul numero di minuti e il campo unitCode su "MIN". |
L'esempio seguente mostra un elemento ServiceDeliveryHoursSpecification
:
Esempio 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" } },
Esempio 2
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }
Enum
RestrictedDiet
Il tipo RestrictedDiet
ha i seguenti valori possibili:
- 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
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-02-16 UTC.