Requisiti generali
Le entità devono essere strutturate in modo da essere su una riga per entità nei feed (le entità sono separate da caratteri di nuova riga). Per motivi di leggibilità, gli esempi JSON in questa pagina non seguono questa struttura. Tuttavia, devi seguire questa struttura quando invii i feed. Ad esempio, un'entità del menu deve essere strutturata come il seguente codice:
{"@type": "Menu","name": "Coffee Shop A","@id": "1535"}
Ogni entità "Ristorante" può avere due entità Servizio (una ciascuna per i tipi di servizio "Consegna" e "Asporto"). Ogni entità "Servizio" può avere una sola entità "Menu".
Le eventuali entità secondarie possono essere riutilizzate in più ristoranti.
Linee guida per i valori JSON
Coercizione del tipo
Un tipo di valore JSON può essere diverso dal tipo definito nello schema, purché il valore possa essere forzato nel tipo richiesto. Ad esempio, le proprietà stringa possono accettare valori sia stringa sia interi come input. Allo stesso modo, le proprietà con numeri interi possono accettare valori di stringa, purché la stringa possa essere analizzata in un numero intero valido.
La coercizione del tipo funziona anche per le proprietà ripetute. Le proprietà ripetute possono accettare valori come input
senza essere racchiuse tra parentesi []
. Ad esempio, la proprietà OperationHours.serviceId
accetta sia "service_id"
sia ["service_id"]
come input validi.
Valori di data e ora
DateTime
si basa sul tipo schema.org e, se non diversamente indicato, deve seguire il formato ISO 8601 e includere data, ora e 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.
Dati relativi ai ristoranti
Ristorante (obbligatorio)
Un'entità obbligatoria da implementare. Descrive un ristorante.
Nella tabella seguente sono elencate le proprietà per il tipo Restaurant
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco del ristorante o del fornitore di servizi a domicilio. Esempio: |
|
name |
String | obbligatorio. Nome del ristorante. Esempio: |
|
description |
String |
Una descrizione del ristorante. Esempio: |
|
url |
URL |
L'URL che rappresenta il ristorante. Il dominio del ristorante è preferito rispetto al dominio dell'aggregatore. Esempio: |
|
sameAs |
URL |
Il sito web ufficiale del ristorante. Esempio: |
|
telephone |
String |
Numero di telefono del ristorante. Esempio: |
|
streetAddress |
String | obbligatorio. L'indirizzo del ristorante. Esempio: |
|
addressLocality |
String | obbligatorio. La località o la città. Esempio: |
|
addressRegion |
String | obbligatorio. La regione o lo stato. Esempio: |
|
postalCode |
String | obbligatorio. Il codice postale. Esempio: |
|
addressCountry |
String | obbligatorio. Codice paese ISO 3166-1 alpha-2 a due lettere. Esempio: |
|
latitude |
Number |
Latitudine in gradi. I valori sono limitati all'intervallo [[-90, 90]]. La precisione deve essere di almeno cinque cifre decimali. Esempio: |
|
longitude |
Number |
Longitudine in gradi. I valori sono limitati all'intervallo [[-180, 180]]. La precisione deve essere di almeno cinque cifre decimali. Esempio: |
|
dealId |
List<String> |
|
|
imprint |
String |
Un marchio editoriale è una sezione di informazioni aggiuntive sul ristorante, ad esempio nome legale, indirizzo sede legale e numero di registrazione. Queste informazioni possono essere formattate utilizzando " ". Esempio: |
|
economicOperator |
String |
Informazioni sull'operatore economico associate al ristorante, se applicabili. Queste informazioni verranno visualizzate nella sezione Informazioni sul commerciante. Il testo può essere formattato utilizzando " ". Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità Ristorante in formato timestamp ISO ma di tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento Restaurant
:
Esempio
{ "@type": "Restaurant", "@id": "10824", "name": "Pronto Wood Fired Pizzeria", "url": "https://www.provider.com/pronto-wood-fired-pizzeria", "telephone": "+16503659978", "streetAddress": "2560 El Camino Real", "addressLocality": "Palo Alto", "addressRegion": "CA", "postalCode": "94061", "addressCountry": "US", "latitude": 37.472842, "longitude": -122.217144 }
Deal
Tipi di sconti che possono essere applicati a un carrello.
Nella tabella seguente sono elencate le proprietà per il tipo Deal
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco del deal. Esempio: |
|
dealCode |
String | obbligatorio. ID deal univoco per deal per partner. Questo ID deve identificare in modo univoco l'offerta nel tuo sistema di promozioni. Google ti invia questo identificatore nel campo Esempio: |
|
applicableServiceType |
Elenco<ServiceType > |
Il servizio a cui si applica questa offerta. Per impostazione predefinita, si presuppone un deal applicabile a tutti. |
|
eligibleMaxOrders |
Intero |
Questo deal è idoneo solo quando il numero di ordini andati a buon fine dell'utente è inferiore o uguale a questo. |
|
availabilityId |
List<String> |
I valori @id delle entità di disponibilità che forniscono dettagli su quando la sezione del menu è disponibile. Esempio: |
|
isDisabled |
Valore booleano |
Questo sostituisce altri controlli di validità. |
|
dealType |
DealType |
obbligatorio. Categoria dell'offerta a cui applicare lo sconto. La categoria può essere il totale dell'intero carrello, le commissioni di servizio o le commissioni di consegna. |
|
priceCurrency |
String | Obbligatorio quando
Obbligatorio quando
Valuta (nel formato ISO 4217 a tre lettere) dello sconto. Esempio: |
|
eligibleTransactionVolumeMin |
Number |
Volume di transazioni, in un'unità monetaria, per la quale è valida la promozione. |
|
termsOfServiceUrl |
URL | obbligatorio. Documentazione leggibile sui Termini di servizio. |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità deal in formato timestamp ISO ma di tipo Stringa. Esempio: |
|
È richiesto esattamente uno dei seguenti gruppi di proprietà. | |||
discount |
Gruppo 1 | Number |
Valore dello sconto in numero. |
discountPercentage |
Gruppo 2 | Number |
Valore dello sconto espresso come percentuale del prezzo originale. |
L'esempio seguente mostra un elemento Deal
:
Esempio 1
{ "@type": "Deal", "@id": "ONEDOLLARFEE", "dealCode": "THREEDOLLARFEE", "dealType": "CART_OFF", "availabilityId": [ "availability_may2020" ], "termsOfServiceUrl": "http://www.provider.com/onedollardeal", "applicableServiceType": [ "TAKEOUT" ], "discount": 3, "priceCurrency": "USD" }
Esempio 2
{ "@type": "Deal", "@id": "10PERCOFF", "dealCode": "10PERCOFF", "dealType": "CART_OFF", "availabilityId": [ "availability_weekdays_evening" ], "termsOfServiceUrl": "http://www.provider.com/deal", "discountPercentage": 10, "priceCurrency": "USD" }
Esempio 3
{ "@type": "Deal", "@id": "FREEDELIVERY", "dealCode": "FREEDELIVERY", "dealType": "DELIVERY_OFF", "availabilityId": [ "availability_may" ], "applicableServiceType": [ "DELIVERY" ], "termsOfServiceUrl": "http://www.provider.com/free_delivery_deal", "discountPercentage": 100, "eligibleTransactionVolumeMin": 25, "priceCurrency": "USD" }
Dati di servizio
Servizio (obbligatorio)
Descrive i dettagli del servizio di ordinazione di cibo di un ristorante. Service
è un'entità
che deve essere implementata.
Nella tabella seguente sono elencate le proprietà per il tipo Service
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Identificatore per il servizio di fulfillment. Esempio: |
|
serviceType |
ServiceType |
obbligatorio. Il tipo di servizio offerto. I valori possibili sono "DELIVERY" o "TAKEOUT". Esempio: |
|
restaurantId |
String | obbligatorio. Il valore @id dell'entità Ristorante correlato a questa entità del Servizio. Esempio: |
|
menuId |
String | obbligatorio. Il valore @id dell'entità Menu correlato a questa entità di servizio. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed Entità del servizio in formato timestamp ISO. Esempio: |
|
isDisabled |
Valore booleano |
Indica se l'entità è disabilitata. Utilizza questo tipo solo quando devi disabilitare l'entità a causa di un evento imprevisto e non sai quando il servizio verrà ristabilito (ad es. non utilizzare per le festività). Esempio: |
|
servingConfig |
ServingConfig |
Configurazione di pubblicazione per il servizio utilizzato per controllare varie funzionalità, ad esempio la disattivazione del widget promozionale e così via. |
|
actionLinkUrl |
String |
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. |
L'esempio seguente mostra un elemento Service
:
Esempio 1
{ "@type": "Service", "@id": "10824/takeout", "serviceType": "TAKEOUT", "menuId": "10824", "restaurantId": "10824", "actionLinkUrl": "https://www.rwgpartnerwebsite.com/foodorderpickup/merchant_foepa_3" }
Esempio 2
{ "@type": "Service", "@id": "10824/delivery", "serviceType": "DELIVERY", "menuId": "10824", "restaurantId": "10824", "actionLinkUrl": "https://www.rwgpartnerwebsite.com/foodorderdelivery/merchant_foepa_3" }
ServiceArea
Descrive la regione geografica in cui è possibile consegnare il cibo. Questa entità
è necessaria per l'implementazione se l'entità Service
associata ha
serviceType
impostato su "DISTRIBUZIONE".
Nella tabella seguente sono elencate le proprietà per il tipo ServiceArea
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco dell'area coperta dal servizio. Esempio: |
|
serviceId |
List<String> | obbligatorio. Il valore @id dell'entità Servizio correlato a questa entità ServiceArea. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità ServiceArea in formato timestamp ISO ma di tipo Stringa. Esempio: |
|
exclude |
Valore booleano |
Escludi questa area coperta dal servizio dalla regione totale di consegna. Ad esempio, un codice postale può essere escluso da un'area poligonale più ampia. |
|
È richiesto esattamente uno dei seguenti gruppi di proprietà. | |||
polygon |
Gruppo 1 | List<String> |
Un poligono o un poligono multiplo 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. Ciascun 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. Esempio: |
geoMidpointLatitude |
Gruppo 2 | Number |
Indica la coordinata della latitudine al centro dell'area CERCHIA. Esempio: |
geoMidpointLongitude |
Gruppo 2 | Number |
Indica la coordinata della longitudine al centro dell'area CERCHIA. Esempio: |
geoRadius |
Gruppo 2 | Intero |
Indica il raggio approssimativo (in metri) dell'area della CERCHIA. Esempio: |
postalCode |
Gruppo 3 | String |
Indica il codice postale. Esempio: |
addressCountry |
Gruppo 3 | String |
Indica il codice paese alpha-2 nel formato ISO 3166-1 di due lettere Esempio: |
L'esempio seguente mostra un elemento ServiceArea
:
Esempio
{ "@type": "ServiceArea", "@id": "28427", "serviceId": [ "10824/delivery" ], "polygon": [ "37.4818562 -122.25801303 37.48247836 -122.25801303 37.48434484 -122.25621319 37.48621133 -122.25424681 37.49181077 -122.24704744 37.49305509 -122.24541414 37.49429942 -122.2436143 37.49803238 -122.23821477 37.49803238 -122.21285044 37.49367726 -122.15885517 37.49056645 -122.15722187 37.48621133 -122.15542202 37.48558917 -122.15525548 37.4818562 -122.15525548 37.43191387 -122.17865343 37.43191387 -122.23444854" ] }
Orario di apertura (obbligatorio)
Descrive la finestra di ordinazione in cui gli utenti possono accedere al flusso ed effettuare ordini il prima possibile o in futuro. L'implementazione di OperationHours
è obbligatoria. Per impostazione predefinita, viene usato lo stesso orario per tutti i giorni.
Gli attributi opens
e closes
OperationHours
specificano gli orari di apertura e chiusura per il sistema online che consente agli utenti di effettuare gli ordini. All'interno di questi orari di sistema online, utilizza ServiceHours
per specificare gli orari di apertura e chiusura al momento dell'evasione degli ordini degli utenti.
Gli orari devono essere specificati nell'ora locale del servizio. Non includere un fuso orario in un valore opens
. Se viene specificato un fuso orario, Google ignora queste informazioni. Per ulteriori informazioni, consulta la sezione Formati di data e ora.
Nella tabella seguente sono elencate le proprietà per il tipo OperationHours
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco dell'entità che descrive la finestra di ordinazione con cui gli utenti possono accedere al flusso ed effettuare ordini il prima possibile/futuri. Esempio: |
|
serviceId |
List<String> | obbligatorio. Il valore @id dell'entità Servizio correlato a questa entità OperationHours. Esempio: |
|
opens |
Ora ISO (locale) |
Indica l'ora specifica del giorno in formato ISO a partire dalla quale possono essere effettuati gli ordini degli utenti. Esempio: |
|
closes |
Ora ISO (locale) |
Indica l'ora specifica del giorno in formato ISO oltre la quale non è possibile effettuare gli ordini degli utenti. Esempio: |
|
dayOfWeek |
Elenco<DayOfWeek > |
Un elenco dei giorni della settimana per cui sono validi questi orari di apertura. I valori accettati sono "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" e "SUNDAY". Esempio: |
|
validFrom |
Timestamp ISO | Obbligatorio quando
Un timestamp ISO che indica l'ora di inizio della finestra di ordinazione da cui gli utenti possono accedere al flusso ed effettuare ordini il prima possibile/futuri. Esempio: |
|
validThrough |
Timestamp ISO | Obbligatorio quando
Un timestamp ISO che indica l'ora di fine della finestra di ordinazione oltre la quale gli utenti non possono accedere al flusso ed effettuare ordini il prima possibile/futuri. Esempio: |
|
isSpecialHour |
Valore booleano |
Un valore booleano che indica se l'orario di operatività è riservato agli orari speciali. I valori accettati sono "false" e "true". Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità OperationHours in formato timestamp ISO ma di tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento OperationHours
:
Esempio 1
{ "@type": "OperationHours", "@id": "10824/deliveryOh", "serviceId": [ "10824/delivery" ], "isSpecialHour": false }
Esempio 2
{ "@type": "OperationHours", "@id": "10824/takeoutOh", "serviceId": [ "10824/takeout" ], "isSpecialHour": false }
Orario di servizio (obbligatorio)
Descrive la finestra di evasione in cui gli utenti possono scegliere gli slot di evasione (slot di fulfillment il prima possibile o slot futuri). L'implementazione di ServiceHours
è obbligatoria.
Gli attributi opens
e closes
OperationHours
specificano gli orari di apertura e chiusura per il sistema online che consente agli utenti di effettuare gli ordini. All'interno di questi orari di sistema online, utilizza ServiceHours
per specificare gli orari di apertura e chiusura al momento dell'evasione degli ordini degli utenti.
Gli orari devono essere specificati nell'ora locale del servizio. Non includere un fuso orario in un valore opens
. Se viene specificato un fuso orario, Google ignora queste informazioni. Per ulteriori informazioni, consulta la sezione Formati di data e ora.
Nella tabella seguente sono elencate le proprietà per il tipo ServiceHours
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco dell'entità che descrive la finestra di evasione degli ordini, che gli utenti possono scegliere tra slot di evasione, ad esempio slot "Appena possibile" o "fuori". Esempio: |
|
orderType |
OrderType |
obbligatorio. Una stringa che indica se l'orario di servizio è valido per ordini il più presto possibile o avanzati. I valori accettati sono "ASAP" e "ADVANCE". Esempio: |
|
serviceId |
List<String> | obbligatorio. Il valore @id dell'entità Servizio correlato a questa entità ServiceHours. Esempio: |
|
operationHoursId |
List<String> | Obbligatorio quando
Il valore @id dell'entità OperationHours correlato a questa entità ServiceHours. Esempio: |
|
opens |
Ora ISO (locale) |
Indica l'ora specifica del giorno in formato ISO a partire dalla quale è possibile evadere gli ordini degli utenti. Esempio: |
|
closes |
Ora ISO (locale) |
Indica l'ora specifica del giorno in formato ISO oltre la quale non è possibile evadere gli ordini degli utenti. Esempio: |
|
dayOfWeek |
Elenco<DayOfWeek > |
Un elenco dei giorni della settimana per cui sono validi questi orari di apertura. Esempio: |
|
validFrom |
Timestamp ISO | Obbligatorio quando
Un timestamp ISO che indica l'ora di inizio della finestra di ordinazione da cui gli utenti possono accedere al flusso ed effettuare ordini il prima possibile/futuri. Esempio: |
|
validThrough |
Timestamp ISO | Obbligatorio quando
Un timestamp ISO che indica l'ora di fine della finestra di ordinazione oltre la quale gli utenti non possono accedere al flusso ed effettuare ordini il prima possibile/futuri. Esempio: |
|
isSpecialHour |
Valore booleano |
Un valore booleano che indica se l'orario di operatività è riservato agli orari speciali. I valori accettati sono "false" e "true". Esempio: |
|
leadTimeMin |
Intero |
Tempi di consegna/ritiro minimi stimati, in minuti, una volta effettuato l'ordine il prima possibile. Ti consigliamo vivamente di impostare questa proprietà. Esempio: |
|
leadTimeMax |
Intero |
Tempi di consegna/ritiro massimi stimati, in minuti, una volta effettuato l'ordine il prima possibile. Ti consigliamo vivamente di impostare questa proprietà. Esempio: |
|
advanceBookingRequirementMin |
Intero | Obbligatorio quando
Il numero minimo di minuti dall'ora in cui è possibile evadere l'ordine in anticipo. Ad esempio, se un ordine anticipato richiede almeno 60 minuti per essere evaso, il requisito di prenotazione anticipata è pari a 60. Esempio: |
|
advanceBookingRequirementMax |
Intero | Obbligatorio quando
Il numero massimo di minuti dall'ora in cui è possibile evadere l'ordine in anticipo. Ad esempio, se l'evasione di un ordine anticipato non può essere evasa più di due giorni dopo, il valore anticipatiBookingRequestMax è 2880. Esempio: |
|
advanceBookingSlotInterval |
String | Obbligatorio quando
Intervallo tra due orari di slot per prenotazione anticipata successivi. Ad esempio, se gli orari di apertura e chiusura sono le 8:00 e le 20:00 e l'intervallo di tempo per l'avanzamento della prenotazione è di 15 minuti, l'utente può scegliere gli orari di evasione degli ordini pari alle 8:00, alle 8:15, alle 8:30, alle 8:45 e così via fino alle 20:00. La durata deve essere specificata come durata del periodo ISO. Ad esempio: "PT15M" indica intervalli di 15 minuti. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità ServiceHours in formato timestamp ISO ma di tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento ServiceHours
:
Esempio 1
{ "@type": "ServiceHours", "@id": "613741/delivery", "orderType": "ASAP", "serviceId": [ "10824/delivery" ], "opens": "T00:00", "closes": "T00:00", "isSpecialHour": true, "validFrom": "2017-12-25T00:00:00-07:00", "validThrough": "2017-12-25T23:59:00-07:00" }
Esempio 2
{ "@type": "ServiceHours", "@id": "10824/takeoutSh_0", "orderType": "ASAP", "serviceId": [ "10824/takeout" ], "operationHoursId": [ "10824/takeoutOh" ], "opens": "11:00", "closes": "21:00", "dayOfWeek": [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY" ], "isSpecialHour": false }
A pagamento
Indica un costo. Se l'entità Service
associata ha
serviceType
impostato su "DISTRIBUZIONE", è necessario un Fee
con feeType
impostato su
"DISTRIBUZIONE".
Nella tabella seguente sono elencate le proprietà per il tipo Fee
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco dell'entità che descrive la tariffa. Esempio: |
|
serviceId |
List<String> | obbligatorio. Il valore @id dell'entità Servizio correlato a questa Entità Tariffa. Esempio: |
|
feeType |
FeeType |
obbligatorio. Una stringa che indica se la commissione si applica agli ordini di consegna o di servizio. I valori accettati sono "DISTRIBUZIONE" e "SERVICE". Esempio: |
|
priceCurrency |
String | obbligatorio. Il codice di valuta ISO 4217 di 3 lettere. Esempio: |
|
basePrice |
Number |
Prezzo base della commissione, applicabile quando viene utilizzato Esempio: |
|
minPrice |
Number |
Tariffa minima, limita il valore della tariffa quando viene utilizzato Esempio: |
|
maxPrice |
Number |
Tariffa massima, limita il valore della tariffa quando viene utilizzato Esempio: |
|
eligibleRegion |
List<String> |
L'@id dell'area di servizio per le regioni geopolitiche per le quali è valida la tariffa. Utilizza questa proprietà solo se le spese di consegna variano in base alla regione. Esempio: |
|
eligibleTransactionVolumeMin |
Number |
Il volume minimo di transazioni, in un'unità monetaria, per il quale è valida la specifica della commissione. Esempio: |
|
eligibleTransactionVolumeMax |
Number |
Il volume massimo di transazioni, in un'unità monetaria, per cui è valida questa specifica della commissione. Ad esempio, la commissione non viene applicata se al di sopra di un determinato volume di ordini. Esempio: |
|
validFrom |
Timestamp ISO |
Un timestamp ISO che indica l'ora di inizio del momento in cui la tariffa è valida. Esempio: |
|
validThrough |
Timestamp ISO |
Un timestamp ISO che indica l'ora di fine oltre la quale la tariffa non è valida. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed Entità Tariffa in formato timestamp ISO ma di tipo Stringa. Esempio: |
|
priority |
Number |
Un valore positivo diverso da zero. Se al carrello dell'utente si applica più di una tariffa, la tariffa con priorità più elevata avrà la precedenza su quelle inferiori. Se questo campo viene fornito, la priorità avrà sempre la precedenza su una priorità calcolata. Esempio: |
|
È richiesto esattamente uno dei seguenti gruppi di proprietà. | |||
price |
Gruppo 1 | Number |
Prezzo dell'addebito. Se il prezzo non è fisso, è possibile indicare minPrice e maxPrice al posto del prezzo. Esempio: |
percentageOfCart |
Gruppo 2 | Number |
Tariffa in percentuale del valore del carrello. Sono consentiti valori in virgola mobile compresi tra 0 e 100 inclusi. Esempio: |
pricePerMeter |
Gruppo 3 | Number |
Tariffa per metro per la distanza radiale dall'utente. Ad esempio, se la distanza dall'utente è di 5 km e la tariffa è di 0,001 $, la tariffa per l'utente sarà di 5 $. Esempio: |
L'esempio seguente mostra un elemento Fee
:
Esempio 1
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "price": 5 }
Esempio 2
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "pricePerMeter": 0.0005, "basePrice": 4 }
Esempio 3
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "pricePerMeter": 0.0005, "basePrice": 4, "minPrice": 5, "maxPrice": 50 }
Esempio 4
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "percentageOfCart": 5, "basePrice": 4 }
Esempio 5
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "percentageOfCart": 5, "basePrice": 4, "minPrice": 5, "maxPrice": 50 }
Dati menu
Menu (obbligatorio)
Un'entità obbligatoria da implementare. Descrive un menu.
Nella tabella seguente sono elencate le proprietà per il tipo Menu
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco del menu. Esempio: |
|
name |
String |
Il testo che può identificare il menu quando un utente naviga nel menu. Esempio: |
|
disclaimer |
String |
Limitazione di responsabilità per il menu. Ad esempio, divulgazione di informazioni nutrizionali e allergeni. Esempio: |
|
disclaimerUrl |
URL |
URL che rimanda a una pagina con ulteriori dettagli sul disclaimer. |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità Menu in formato timestamp ISO ma di tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento Menu
:
Esempio
{ "@type": "Menu", "@id": "10824" }
MenuSection
Un'entità facoltativa da implementare. Descrive una particolare sezione del menu.
Nella tabella seguente sono elencate le proprietà per il tipo MenuSection
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco della sezione del menu. Esempio: |
|
menuId |
Elenco<ReverseReference > |
Il valore @id dell'entità Menu correlato a questa entità Esempio: |
|
menuSectionId |
List<String> |
Un elenco dei valori @id delle entità Importante: devi utilizzare solo un riferimento Esempio: |
|
parentMenuSectionId |
Elenco<ReverseReference > |
Il valore @id dell'entità Importante: devi utilizzare solo un riferimento Esempio: |
|
name |
String | obbligatorio. Il testo che può identificare il Esempio: |
|
description |
String |
Una descrizione della sezione del menu. Esempio: |
|
image |
URL |
L'URL di un'immagine della sezione del menu. Esempio: |
|
menuItemId |
List<String> |
Un elenco dei valori @id delle entità Importante: devi utilizzare solo un riferimento Esempio: |
|
parentMenuItemId |
Elenco<ReverseReference > |
Un elenco dei valori @id delle entità Importante: devi utilizzare solo un riferimento Esempio: |
|
parentMenuItemOptionId |
Elenco<ReverseReference > |
Un elenco dei valori @id delle entità Importante: devi utilizzare solo un riferimento Esempio: |
|
eligibleQuantityMax |
Intero |
Il numero massimo di componenti aggiuntivi che è possibile selezionare nella relativa sezione. Esempio: |
|
eligibleQuantityMin |
Intero |
Il numero minimo di componenti aggiuntivi che deve essere selezionato nella relativa sezione. Esempio: |
|
defaultItemId |
List<String> |
Un elenco di @id che fanno riferimento a entità Esempio: |
|
availabilityId |
List<String> |
I valori @id delle entità di disponibilità che forniscono dettagli su quando la sezione del menu è disponibile. Esempio: |
|
numberOfFreeAddOns |
Intero |
Indica il numero di componenti aggiuntivi che un utente può selezionare senza costi. Valido solo per le sezioni del menu aggiuntive. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità Esempio: |
|
applicableServiceType |
Elenco<ServiceType > |
Il servizio a cui è applicabile questo |
|
offeredById |
List<String> |
I valori @id di Esempio: |
L'esempio seguente mostra un elemento MenuSection
:
Esempio 1
{ "@type": "MenuSection", "@id": "853705", "menuId": [ { "@id": "10824", "displayOrder": 853705 } ], "menuSectionId": [ 12345, 43645 ], "name": "Pasta", "applicableServiceType": [ "TAKEOUT" ], "offeredById": [ "italian_restaurant_location_1" ] }
Esempio 2
{ "@type": "MenuSection", "@id": "427484", "menuId": [ { "@id": "4287", "displayOrder": 964376 } ], "menuItemId": [ 46784, 42728 ], "name": "Burger", "applicableServiceType": [ "TAKEOUT", "DELIVERY" ] }
Esempio 3
{ "@type": "MenuSection", "@id": "3138486", "name": "Choose a side:", "parentMenuItemId": [ { "@id": "6680295", "displayOrder": 3138486 } ], "eligibleQuantityMax": "5", "numberOfFreeAddOns": "2" }
Esempio 4
{ "@type": "MenuSection", "@id": "3138482", "name": "Additional Pizza Toppings", "parentMenuItemId": [ { "@id": "6680246", "displayOrder": 3138482 } ], "eligibleQuantityMax": "3" }
Disponibilità
Un'entità facoltativa da implementare. Descrive il periodo di tempo durante il quale viene pubblicata un'entità MenuSection
.
Nella tabella seguente sono elencate le proprietà per il tipo Availability
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco dell'entità che descrive la disponibilità della sezione del menu. Esempio: |
|
availabilityStarts |
Ora ISO (locale) |
Il timestamp ISO che indica l'ora di inizio in cui la disponibilità della sezione del menu è valida. Esempio: |
|
availabilityEnds |
Ora ISO (locale) |
Il timestamp ISO che indica l'ora di fine oltre la quale la disponibilità della sezione del menu non è valida. Esempio: |
|
availableDay |
Elenco<DayOfWeek > |
Un elenco dei giorni della settimana per cui è valida la disponibilità della sezione del menu. Esempio: |
|
validFrom |
Timestamp ISO |
Un timestamp ISO che indica l'ora di inizio in cui la disponibilità della sezione del menu è valida. Esempio: |
|
validThrough |
Timestamp ISO |
Un timestamp ISO che indica l'ora di fine oltre la quale la disponibilità della sezione del menu non è valida. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed Entità di disponibilità in formato timestamp ISO ma di tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento Availability
:
Esempio
{ "@type": "Availability", "@id": "85343705", "availabilityStarts": "06:00", "availabilityEnds": "22:30", "availableDay": [ "SATURDAY", "SUNDAY" ] }
Voce di menu (obbligatoria)
Un'entità obbligatoria da implementare. Descrive un elemento in un'entità Menu
.
Nella tabella seguente sono elencate le proprietà per il tipo MenuItem
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco della voce di menu. Esempio: |
|
name |
String | obbligatorio. Il testo che può identificare il Esempio: |
|
description |
String |
Una descrizione della voce del menu. Esempio: |
|
image |
URL |
L'URL di un'immagine della voce del menu. Esempio: |
|
parentMenuSectionId |
Elenco<ReverseReference > |
Un elenco dei valori @id delle entità Importante: devi utilizzare solo un riferimento Esempio: |
|
menuAddOnId |
List<String> |
Un elenco dei valori @id delle entità Importante: devi utilizzare solo un riferimento Esempio: |
|
nutrition |
NutritionInformation |
Informazioni nutrizionali del piatto, in particolare le calorie. Esempio: |
|
allergen |
Elenco<Allergen > |
Allergeni di questa voce di menu. Esempio: |
|
additive |
Elenco<Additive > |
Additivi di questa voce di menu. Esempio: |
|
suitableDiet |
Elenco<RestrictedDiet > |
Il piatto rispetta le restrizioni alimentari descritte. Esempio: |
|
depositInfo |
DepositInfo |
Informazioni su imballaggio e riciclo di questo MenuItem. Esempio: |
|
numberOfServings |
Intero |
Numero di porzioni disponibili in una determinata voce di menu. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità Esempio: |
L'esempio seguente mostra un elemento MenuItem
:
Esempio 1
{ "@type": "MenuItem", "@id": "18931508", "name": "Sauteed Baby Spinach", "parentMenuSectionId": [ { "@id": "3138479", "displayOrder": 18931508 } ] }
Esempio 2
{ "@type": "MenuItem", "@id": "18931508", "name": "Hamburger", "parentMenuSectionId": [ { "@id": "4645747", "displayOrder": 12345 } ], "nutrition": { "calories": "400 cal" }, "allergen": [ { "allergenType": "GLUTEN", "levelOfContainment": "CONTAINS" } ], "additive": [ { "additiveName": "Sodium nitrite", "levelOfContainment": "CONTAINS" } ], "suitableDiet": [ "DIABETIC", "LOW_FAT" ] }
MenuItemOption
Un'entità facoltativa da implementare. Descrive le scelte che un utente deve fare quando seleziona un piatto/una combinazione. L'utente deve selezionare un'opzione, altrimenti l'ordine non verrà considerato valido (ad es. per una pizza l'utente deve scegliere una pizza piccola, media o grande).
Nella tabella seguente sono elencate le proprietà per il tipo MenuItemOption
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante |
Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco dell'opzione della voce di menu. Esempio: |
|
menuItemId |
ReverseReference |
obbligatorio. Il valore @id dell'entità Esempio: |
|
optionType |
OptionType |
Una stringa che indica se l'opzione della voce di menu è classificata per dimensione, opzione o lato pizza. I valori accettati sono "SIZE", "OPTION" e "PIZZA_SIDE". "SIZE": dimensioni di MenuItemOption. ad esempio piccolo, medio o grande. "OPTION": qualsiasi variante diversa dalle dimensioni (ad es. un piatto che viene fornito come insalata o panino). Se non riesci a distinguere tra "SIZE" e "OPTION", utilizza "OPTION". "PIZZA_SIDE": specifica per le pizze, ad esempio Esempio: |
|
value |
Stringa o
PizzaSide |
Obbligatorio quando
Un valore stringa o di enumerazione. I valori Enum sono specifici per il tipo di opzione PIZZA_SIDE. |
|
applicableParentOptionValue |
String |
Una stringa contenente il valore dell'opzione dell'elemento principale per il quale questa opzione è disponibile. Esempio: |
|
menuAddOnId |
List<String> |
Un elenco dei valori @id delle entità Importante: devi utilizzare solo un riferimento Esempio: |
|
nutrition |
NutritionInformation |
Informazioni nutrizionali del piatto, in particolare le calorie. Esempio: |
|
allergen |
Elenco<Allergen > |
Allergeni di questa voce di menu. Esempio: |
|
additive |
Elenco<Additive > |
Additivi di questa voce di menu. Esempio: |
|
depositInfo |
DepositInfo |
Le informazioni su imballaggio e riciclo di questo Articolo Menu. Esempio: |
|
numberOfServings |
Intero |
Numero di porzioni disponibili in una determinata opzione di voce di menu. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed di entità MenuItemOption in formato timestamp ISO ma di tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento MenuItemOption
:
Esempio 1
{ "@type": "MenuItemOption", "@id": "56177944", "menuItemId": { "@id": "18930213", "displayOrder": 1234 }, "optionType": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" }
Esempio 2
{ "@type": "MenuItemOption", "@id": "56177944", "menuItemId": { "@id": "18930213", "displayOrder": 1234 }, "applicableParentOptionValue": "Small Pizza" }
MenuItemOffer (obbligatorio)
Un'entità obbligatoria da implementare. Descrive un'offerta per un'entità MenuItem
o MenuItemOption
.
Nella tabella seguente sono elencate le proprietà per il tipo MenuItemOffer
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Costante | obbligatorio. Valore: |
|
@id |
String | obbligatorio. Un identificatore univoco dell'offerta della voce di menu. Esempio: |
|
sku |
String | obbligatorio. Identificatore dell'offerta della voce di menu. I valori SKU potrebbero essere diversi o uguali in più entità di offerta di voci di menu. Il valore SKU verrà impostato in ordine quando effettueremo una chiamata API. Esempio: |
|
price |
Number | obbligatorio. Prezzo dell'offerta della voce di menu. Esempio: |
|
priceCurrency |
String | obbligatorio. Il codice di valuta ISO 4217 di 3 lettere. Esempio: |
|
availabilityId |
List<String> |
I valori @id delle entità di disponibilità che forniscono dettagli su quando l'offerta della voce di menu è disponibile. Esempio: |
|
eligibleQuantityMin |
Number |
La quantità minima d'ordine per la quale è valido Esempio: |
|
eligibleQuantityMax |
Number |
La quantità massima d'ordine per la quale è valido Esempio: |
|
inventoryLevel |
Number |
Il livello di inventario approssimativo per l'articolo o gli articoli corrispondenti a questa offerta MenuItemOffer. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed dell'entità Esempio: |
|
applicableServiceType |
Elenco<ServiceType > |
Il servizio a cui è applicabile questo |
|
offeredById |
List<String> |
I valori @id di Esempio: |
|
È richiesto esattamente uno dei seguenti gruppi di proprietà. | |||
menuItemId |
Gruppo 1 | String |
Il valore @id dell'entità Esempio: |
menuItemOptionId |
Gruppo 2 | String |
Il valore @id dell'entità Esempio: |
L'esempio seguente mostra un elemento MenuItemOffer
:
Esempio
{ "@type": "MenuItemOffer", "@id": "6680262", "sku": "offer-mediterranean-bagel", "menuItemId": "896532", "price": 15.5, "priceCurrency": "USD", "applicableServiceType": [ "DELIVERY" ], "offeredById": [ "bagel_shop_location_5" ] }
Comune
ReverseReference
Nella tabella seguente sono elencate le proprietà per il tipo ReverseReference
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@id |
String | obbligatorio. @id dell'entità padre. |
|
displayOrder |
Intero | obbligatorio. Ordine di visualizzazione degli elementi all'interno dell'elemento principale. |
NutritionInformation
Nella tabella seguente sono elencate le proprietà per il tipo NutritionInformation
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
description |
String |
Informazioni nutrizionali in testo libero. Ad esempio, "Contiene conservanti". |
|
calories |
String |
Il numero di calorie in Cal, kcal o kJ, con il seguente formato: value Cal o min-max Cal Esempio: |
|
sodiumContent |
String |
Il numero di mg o g di sodio, utilizzando il seguente formato: valore g o min-max g Esempio: |
L'esempio seguente mostra un elemento NutritionInformation
:
Esempio
{ "calories": "120-150 Cal", "sodiumContent": "100 mg" }
Allergeni
Nella tabella seguente sono elencate le proprietà per il tipo Allergen
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
allergenType |
AllergenType |
obbligatorio. Tipo di allergene. |
|
levelOfContainment |
ContainmentLevel |
Livello di un determinato allergene nella voce di menu. |
L'esempio seguente mostra un elemento Allergen
:
Esempio
{ "allergenType": "PEANUTS", "levelOfContainment": "MAY_CONTAIN" }
Additivo
Nella tabella seguente sono elencate le proprietà per il tipo Additive
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
additiveName |
String | obbligatorio. Nome dell'additivo. |
|
levelOfContainment |
ContainmentLevel |
Livello di un dato additivo nella voce di menu. |
L'esempio seguente mostra un elemento Additive
:
Esempio
{ "additiveName": "Sodium nitrite", "levelOfContainment": "CONTAINS" }
DepositInfo
Nella tabella seguente sono elencate le proprietà per il tipo DepositInfo
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
depositCode |
DepositCode |
Codice di deposito. |
|
depositValue |
Number |
Valore numerico del deposito dell'articolo, ad esempio in caso di riciclo. |
|
depositValueCurrency |
String |
Valuta del valore del deposito |
L'esempio seguente mostra un elemento DepositInfo
:
Esempio
{ "depositCode": "RECYCLABLE", "depositValue": 0.05, "depositValueCurrency": "USD" }
ServingConfig
Configurazione di pubblicazione per il servizio utilizzato per controllare varie funzionalità, ad esempio la disattivazione del widget promozionale e così via.
Nella tabella seguente sono elencate le proprietà per il tipo ServingConfig
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
disableOrderInstructions |
Valore booleano |
Nasconde la possibilità di specificare le istruzioni relative all'ordine. |
|
disableMenuItemSpecialInstructions |
Valore booleano |
Nasconde la possibilità di specificare istruzioni speciali su una voce di menu. |
|
disableTipWidget |
Valore booleano |
Nasconde il widget Suggerimento nella pagina "Effettua ordine" del flusso di ordinazione. |
|
disablePromoWidget |
Valore booleano |
Nasconde il widget promozionale nella pagina "Effettua ordine" del flusso di ordinazione. |
|
menuItemSpecialInstructionsMaxLength |
Number |
Specifica il numero massimo di caratteri che un'istruzione speciale di una voce di menu può contenere. |
|
orderInstructionsMaxLength |
Number |
Specifica il numero massimo di caratteri che può contenere un'istruzione di ordine. |
L'esempio seguente mostra un elemento ServingConfig
:
Esempio 1
{ "disableMenuItemSpecialInstructions": true }
Esempio 2
{ "disableTipWidget": true, "disablePromoWidget": true }
Esempio 3
{ "menuItemSpecialInstructionsMaxLength": 250, "orderInstructionsMaxLength": 1000 }
Enum
DayOfWeek
Il tipo DayOfWeek
ha i seguenti valori possibili:
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
ServiceType
Il tipo ServiceType
ha i seguenti valori possibili:
DELIVERY
TAKEOUT
OrderType
Il tipo OrderType
ha i seguenti valori possibili:
ASAP
ADVANCE
FeeType
Il tipo FeeType
ha i seguenti valori possibili:
DELIVERY
SERVICE
OptionType
Il tipo OptionType
ha i seguenti valori possibili:
SIZE
OPTION
PIZZA_SIDE
PizzaSide
Il tipo PizzaSide
ha i seguenti valori possibili:
PIZZA_SIDE_LEFT
PIZZA_SIDE_RIGHT
PIZZA_SIDE_WHOLE
AllergenType
Tipo di allergeni per gs1:AllergenTypeCode.
Il tipo AllergenType
ha i seguenti valori possibili:
ALMONDS
ALPHA_ISOMETHYL_IONONE
ALCOHOL
AMYL_CINNAMAL
ANISE_ALCOHOL
BARLEY
BENZYL_ALCOHOL
BENZYL_BENZOATE
BENZYL_CINNAMATE
BENZYL_SALICYLATE
BRAZIL_NUTS
BUTYLPHENYL_METHYLPROPIONATE
CARROTS
CASHEW_NUTS
CELERY
CEREALS_CONTAINING_GLUTEN
CINNAMAL
CINNAMYL_ALCOHOL
CITRAL
CITRONELLOL
COCOA
CORIANDER
CORN
COUMARIN
CRUSTACEANS
EGGS
EUGENOL
EVERNIA_FURFURACEA
EVERNIA_PRUNASTRI
FARNESOL
FISH
GERANIOL
GLUTEN
HAZELNUTS
HEXYL_CINNAMAL
HYDROXYCITRONELLAL
HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL
KAMUT
LACTOSE
LUPINE
MACADAMIA_NUTS
METHYL_2_OCTYNOATE
MILK
MOLLUSCS
MUSTARD
NO_DECLARED_ALLERGENS
OAT
PEANUTS
PEAS
PECAN_NUTS
PISTACHIOS
POD_FRUITS
QUEENSLAND_NUTS
RYE
SESAME_SEEDS
SOYBEANS
SPELT
SULPHUR_DIOXIDE
TREE_NUTS
TREE_NUT_TRACES
WALNUTS
WHEAT
ContainmentLevel
Il tipo ContainmentLevel
ha i seguenti valori possibili:
CONTAINS
FREE_FROM
MAY_CONTAIN
DepositCode
Il tipo DepositCode
ha i seguenti valori possibili:
REUSABLE
RECYCLABLE
DealType
Categoria dell'offerta a cui applicare lo sconto. La categoria può essere il totale dell'intero carrello o le spese di consegna.
Il tipo DealType
ha i seguenti valori possibili:
CART_OFF
DELIVERY_OFF
RestrictedDiet
Tipo di diete limitate in base a schema.org:RestrictedDiet.
Il tipo RestrictedDiet
ha i seguenti valori possibili:
DIABETIC
GLUTEN_FREE
HALAL
HINDU
KOSHER
LOW_CALORIE
LOW_FAT
LOW_LACTOSE
LOW_SALT
VEGAN
VEGETARIAN