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à 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 per ciascun tipo di servizio "CONSEGNA" e "ASPORTO"). Ogni entità "Servizio" può avere un'unica entità "Menu".
Qualsiasi entità secondaria può essere riutilizzata in più ristoranti.
Linee guida per i valori JSON
Coercizione del tipo
Il tipo di un valore JSON può essere diverso da quello definito nello schema, a condizione che il valore possa essere forzato nel tipo richiesto. Ad esempio, le proprietà di stringa possono accettare come input sia valori di stringa sia valori interi. Analogamente, le proprietà di tipo intero possono accettare un valore di stringa, purché la stringa possa essere analizzata in un numero intero valido.
La coercizione di 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 DateTime e Time
DateTime
si basa sul tipo schema.org e, se non diversamente specificato, deve seguire 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 del fuso orario di un determinato ristorante o centro servizi, si basa anche sul tipo di schema.org e deve anche seguire il formato ISO 8601. La sintassi per l'ora è la seguente:
// Time format: THH:MM:SS
Ad esempio:
T08:08:00 // 8:08 AM
Tieni presente quanto segue ogni volta che specifichi un DateTime
o un Time
:
- Il prefisso "T" prima dell'ora fa parte del formato ed è obbligatorio.
- È necessario specificare il fuso orario per
DATETIME
. Non è necessario perTIME
. - L'ora deve essere specificata nell'ora locale del ristorante o del servizio.
Dati del ristorante
Ristorante (obbligatorio)
Un'entità obbligatoria da implementare. Descrive un ristorante.
La tabella seguente elenca le proprietà per il tipo Restaurant
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco del ristorante o del fornitore di servizi di consegna. 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 di due lettere. Esempio: |
|
latitude |
Number |
Latitudine in gradi. I valori sono limitati all'intervallo [[-90, 90]]. La precisione dovrebbe essere di almeno 5 cifre decimali. Esempio: |
|
longitude |
Number |
Longitudine in gradi. I valori sono limitati all'intervallo [[-180, 180]]. La precisione dovrebbe essere di almeno 5 cifre decimali. Esempio: |
|
dealId |
List<String> |
|
|
imprint |
String |
L'impronta di un ristorante è una sezione di informazioni aggiuntive sul ristorante, come il nome legale, l'indirizzo legale e il numero di registrazione. Queste informazioni possono essere formattate utilizzando " ". Esempio:
|
|
economicOperator |
String |
Informazioni sull'operatore economico associato al ristorante, se applicabile. 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 delle entità ristorante in formato timestamp ISO, ma con 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.
La tabella seguente elenca le proprietà per il tipo Deal
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco del deal. Esempio: |
|
dealCode |
String | Obbligatorio. ID deal univoco per ogni deal per ogni partner. Questo ID deve identificare in modo univoco l'offerta nel sistema di promozione. Google ti invia questo identificatore nel campo Esempio: |
|
applicableServiceType |
List<ServiceType > |
Il servizio a cui si applica questo deal. Per impostazione predefinita, si presume che l'offerta sia applicabile a tutti. |
|
eligibleMaxOrders |
Intero |
Questo deal è idoneo solo se l'utente ha un numero di ordini andati a buon fine inferiore o uguale a questo. |
|
availabilityId |
List<String> |
I valori @id delle entità Disponibilità che forniscono dettagli su quando è disponibile la sezione del menu. Esempio: |
|
isDisabled |
Valore booleano |
Questo valore sostituisce gli altri controlli di validità. |
|
dealType |
DealType |
Obbligatorio. Categoria di offerta a cui applicare lo sconto. La categoria può essere l'intero totale del carrello, le commissioni di servizio o le spese di consegna. |
|
priceCurrency |
String | Obbligatorio quando
Obbligatorio quando
Valuta (in formato ISO 4217 a tre lettere) dello sconto. Esempio: |
|
eligibleTransactionVolumeMin |
Number |
Volume delle transazioni, in un'unità di misura monetaria, per cui è valida questa promozione. |
|
termsOfServiceUrl |
Url | Obbligatorio. Documentazione dei Termini di servizio leggibile. |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed delle entità Deal in formato timestamp ISO, ma con tipo Stringa. Esempio: |
|
È obbligatorio uno dei seguenti gruppi di proprietà. | |||
discount |
Gruppo 1 | Number |
Valore dello sconto come numero. |
discountPercentage |
Gruppo 2 | Number |
Valore dello sconto 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 per un ristorante. Service
è un'entità obbligatoria da implementare.
La tabella seguente elenca le proprietà per il tipo Service
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Identificatore del servizio di evasione degli ordini. 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 correlata a questa entità Servizio. Esempio: |
|
menuId |
String | Obbligatorio. Il valore @id dell'entità Menu correlata a questa entità Servizio. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed delle entità di servizio in formato timestamp ISO. Esempio: |
|
isDisabled |
Valore booleano |
Indica se l'entità è disattivata. Utilizza questo tipo solo quando devi disattivare l'entità a causa di un evento imprevisto e non sai quando il servizio verrà ristabilito (ad es. non utilizzarlo 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/asporto 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. L'implementazione di questa entità è obbligatoria se per l'entità Service
associata è impostato serviceType
su "DELIVERY".
La tabella seguente elenca le proprietà per il tipo ServiceArea
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco dell'area di servizio. Esempio: |
|
serviceId |
List<String> | Obbligatorio. Il valore @id dell'entità Service correlata 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 con tipo Stringa. Esempio: |
|
exclude |
Valore booleano |
Escludi questa area coperta dal servizio dalla regione di consegna totale. Ad esempio, un codice postale può essere escluso da un'area poligonale più grande. |
|
È obbligatorio uno dei seguenti gruppi di proprietà. | |||
polygon |
Gruppo 1 | List<String> |
Un poligono o un multipoligono espresso come una serie di tre o più punti separati da spazi. È consigliabile che il primo e l'ultimo punto siano uguali, ma non è obbligatorio. Ogni punto di un poligono o multipoligono è definito da un punto di latitudine seguito da un punto di longitudine. Devi anche specificare i punti in direzione antioraria. Esempio: |
geoMidpointLatitude |
Gruppo 2 | Number |
Indica la coordinata di latitudine al centro dell'area CIRCLE. Esempio: |
geoMidpointLongitude |
Gruppo 2 | Number |
Indica la coordinata di longitudine al centro dell'area CIRCLE. Esempio: |
geoRadius |
Gruppo 2 | Intero |
Indica il raggio approssimativo (in metri) dell'area CIRCLE. Esempio: |
postalCode |
Gruppo 3 | String |
Indica il codice postale. Esempio: |
addressCountry |
Gruppo 3 | String |
Indica il codice paese ISO 3166-1 alpha-2 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" ] }
OperationHours (obbligatorio)
Descrive la finestra di ordinazione in cui gli utenti possono accedere al flusso e effettuare ordini il prima possibile o in futuro. L'implementazione di OperationHours
è obbligatoria e per impostazione predefinita rappresenta il funzionamento a tutte le ore di tutti i giorni.
Gli attributi OperationHours
opens
e closes
specificano gli orari di apertura e chiusura del sistema online che consente agli utenti di effettuare ordini. All'interno di queste ore di servizio online, utilizza ServiceHours
per specificare gli orari di apertura e chiusura per i quali è possibile evadere gli 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 Formati DateTime e Time.
La tabella seguente elenca le proprietà per il tipo OperationHours
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco dell'entità che descrive la finestra di ordinazione in cui gli utenti possono accedere al flusso e effettuare ordini ASAP/futuri. Esempio: |
|
serviceId |
List<String> | Obbligatorio. Il valore @id dell'entità Service correlato a questa entità OperationHours. Esempio: |
|
opens |
Ora ISO (locale) |
Indica l'ora specifica del giorno in formato ISO a partire dalla quale è possibile effettuare gli ordini degli utenti. Esempio: |
|
closes |
Ora ISO (locale) |
Indica l'ora specifica del giorno in formato ISO oltre la quale non è possibile effettuare ordini. Esempio: |
|
dayOfWeek |
List<DayOfWeek > |
Un elenco dei giorni della settimana per i quali sono validi questi orari di servizio. I valori accettabili 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 in cui gli utenti possono accedere al flusso e effettuare ordini ASAP/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 e effettuare ordini ASAP/futuri. Esempio: |
|
isSpecialHour |
Valore booleano |
Un valore booleano che indica se OperationHours si riferisce a orari speciali. I valori accettabili 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 con 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 }
ServiceHours (obbligatorio)
Descrive la finestra di evasione in cui gli utenti possono scegliere gli slot di evasione
(ASAP o slot futuri). L'implementazione di ServiceHours
è obbligatoria.
Gli attributi OperationHours
opens
e closes
specificano gli orari di apertura e chiusura del sistema online che consente agli utenti di effettuare ordini. Nell'ambito di queste ore di servizio online, utilizza ServiceHours
per specificare gli orari di apertura e chiusura per i quali è possibile evadere gli 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 Formati DateTime e Time.
La tabella seguente elenca le proprietà per il tipo ServiceHours
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco dell'entità che descrive la finestra di evasione degli ordini in cui gli utenti possono scegliere gli slot di evasione, ad esempio ASAP o slot futuri. Esempio: |
|
orderType |
OrderType |
Obbligatorio. Una stringa che indica se gli orari del servizio si applicano agli ordini ASAP o avanzati. I valori accettati sono "ASAP" e "ADVANCE". Esempio: |
|
serviceId |
List<String> | Obbligatorio. Il valore @id dell'entità Service correlata a questa entità ServiceHours. Esempio: |
|
operationHoursId |
List<String> | Obbligatorio quando
Il valore @id dell'entità OperationHours correlata 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 |
List<DayOfWeek > |
Un elenco dei giorni della settimana per i quali sono validi questi orari di servizio. Esempio: |
|
validFrom |
Timestamp ISO | Obbligatorio quando
Un timestamp ISO che indica l'ora di inizio della finestra di ordinazione in cui gli utenti possono accedere al flusso e effettuare ordini ASAP/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 e effettuare ordini ASAP/futuri. Esempio: |
|
isSpecialHour |
Valore booleano |
Un valore booleano che indica se OperationHours si riferisce a orari speciali. I valori accettabili sono "false" e "true". Esempio: |
|
leadTimeMin |
Intero |
Tempo di consegna/ritiro stimato minimo, in minuti, dopo l'invio dell'ordine ASAP. Ti consigliamo vivamente di impostare questa proprietà. Esempio: |
|
leadTimeMax |
Intero |
Tempo di consegna/ritiro stimato massimo, in minuti, dopo l'invio dell'ordine ASAP. Ti consigliamo vivamente di impostare questa proprietà. Esempio: |
|
advanceBookingRequirementMin |
Intero | Obbligatorio quando
Il numero minimo di minuti dall'ora dell'ordine in cui l'ordine anticipato può essere evaso. Ad esempio, se per soddisfare un ordine anticipato sono necessari almeno 60 minuti, il valore advanceBookingRequirementMin è 60. Esempio: |
|
advanceBookingRequirementMax |
Intero | Obbligatorio quando
Il numero massimo di minuti dall'ora dell'ordine entro cui l'ordine anticipato può essere evaso. Ad esempio, se non è possibile evadere un ordine anticipato più di 2 giorni dopo, il valore advanceBookingRequirementMax è 2880. Esempio: |
|
advanceBookingSlotInterval |
String | Obbligatorio quando
Intervallo tra due orari di prenotazione anticipata consecutivi. Ad esempio, se gli orari di apertura e chiusura sono le 8:00 e le 20:00 e l'intervallo advanceBookingSlotInterval è di 15 minuti, l'utente può scegliere orari di evasione degli ordini alle 8:00, 8:15, 8:30, 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 delle entità ServiceHours in formato timestamp ISO, ma con 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
Descrive una tariffa. Se l'entità Service
associata ha serviceType
impostato su "DELIVERY", è necessario un Fee
con feeType
impostato su "DELIVERY".
La tabella seguente elenca le proprietà per il tipo Fee
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | 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 correlata a questa entità Commissione. Esempio: |
|
feeType |
FeeType |
Obbligatorio. Una stringa che indica se la tariffa si applica agli ordini di consegna o di servizio. I valori accettati sono "DELIVERY" e "SERVICE". Esempio: |
|
priceCurrency |
String | Obbligatorio. Il codice di valuta ISO 4217 di 3 lettere. Esempio: |
|
basePrice |
Number |
Prezzo base della tariffa, applicabile quando viene utilizzato Esempio: |
|
minPrice |
Number |
Min fee, caps fee value when Esempio: |
|
maxPrice |
Number |
Max fee, caps fee value when Esempio: |
|
eligibleRegion |
List<String> |
L'attributo @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 unità di moneta, per cui è valida questa specifica della tariffa. Esempio: |
|
eligibleTransactionVolumeMax |
Number |
Il volume massimo di transazioni, in unità di moneta, per cui è valida questa specifica delle commissioni. Ad esempio, la tariffa non si applica se il volume degli ordini supera una determinata soglia. Esempio: |
|
validFrom |
Timestamp ISO |
Un timestamp ISO che indica l'ora di inizio della validità della tariffa. 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 delle entità Fee in formato timestamp ISO, ma con tipo Stringa. Esempio: |
|
priority |
Number |
Un valore positivo diverso da zero. Quando al carrello dell'utente si applicano più commissioni, quella con la priorità più alta avrà la precedenza su quelle inferiori. Se viene fornito questo campo, la priorità avrà sempre la precedenza su una priorità calcolata. Esempio: |
|
È obbligatorio uno dei seguenti gruppi di proprietà. | |||
price |
Gruppo 1 | Number |
Prezzo della commissione. Se il prezzo non è fisso, al posto di price puoi fornire minPrice e maxPrice. Esempio: |
percentageOfCart |
Gruppo 2 | Number |
Commissione in percentuale del valore del carrello. I valori accettati sono valori float 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 dell'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 del menu
Menu (obbligatorio)
Un'entità obbligatoria da implementare. Descrive un menu.
La tabella seguente elenca le proprietà per il tipo Menu
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco del menu. Esempio: |
|
name |
String |
Il testo che può identificare il menu quando un utente lo sta sfogliando. Esempio: |
|
disclaimer |
String |
Disclaimer per il menu. Ad esempio, l'informativa sulle informazioni nutrizionali e l'informativa sugli 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 delle entità Menu in formato timestamp ISO, ma con tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento Menu
:
Esempio
{ "@type": "Menu", "@id": "10824" }
MenuSection
Un'entità facoltativa da implementare. Descrive una sezione specifica del menu.
La tabella seguente elenca le proprietà per il tipo MenuSection
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco della sezione del menu. Esempio: |
|
menuId |
List<ReverseReference > |
Il valore @id dell'entità Menu correlata a questa entità Esempio: |
|
menuSectionId |
List<String> |
Un elenco dei valori @id delle entità Importante:devi utilizzare solo un riferimento Esempio: |
|
parentMenuSectionId |
List<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 |
List<ReverseReference > |
Un elenco dei valori @id delle entità Importante:devi utilizzare solo un riferimento Esempio: |
|
parentMenuItemOptionId |
List<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 sezione dei componenti aggiuntivi. Esempio: |
|
eligibleQuantityMin |
Intero |
Il numero minimo di componenti aggiuntivi da selezionare nella sezione dei componenti aggiuntivi. Esempio: |
|
defaultItemId |
List<String> |
Un elenco di @id che fanno riferimento a entità Esempio: |
|
availabilityId |
List<String> |
I valori @id delle entità Disponibilità che forniscono dettagli su quando è disponibile la sezione del menu. Esempio: |
|
numberOfFreeAddOns |
Intero |
Indica il numero di componenti aggiuntivi che un utente può selezionare senza costi. Valido solo per le sezioni del menu dei componenti aggiuntivi. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed delle entità Esempio: |
|
applicableServiceType |
List<ServiceType > |
Il servizio a cui si applica questo |
|
offeredById |
List<String> |
I valori @id delle entità 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
.
La tabella seguente elenca le proprietà per il tipo Availability
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | 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 |
List<DayOfWeek > |
Un elenco dei giorni della settimana per i quali è 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 delle entità Disponibilità in formato timestamp ISO, ma con tipo Stringa. Esempio: |
L'esempio seguente mostra un elemento Availability
:
Esempio
{ "@type": "Availability", "@id": "85343705", "availabilityStarts": "06:00", "availabilityEnds": "22:30", "availableDay": [ "SATURDAY", "SUNDAY" ] }
MenuItem (obbligatorio)
Un'entità obbligatoria da implementare. Descrive un elemento in un'entità Menu
.
La tabella seguente elenca le proprietà per il tipo MenuItem
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco dell'elemento del menu. Esempio: |
|
name |
String | Obbligatorio. Il testo che può identificare il Esempio: |
|
description |
String |
Una descrizione dell'elemento del menu. Esempio: |
|
image |
Url |
L'URL di un'immagine dell'elemento del menu. Esempio: |
|
parentMenuSectionId |
List<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 |
List<Allergen > |
Allergeni di questo MenuItem. Esempio: |
|
additive |
List<Additive > |
Additivi di questo elemento menu. Esempio: |
|
suitableDiet |
List<RestrictedDiet > |
Il piatto è conforme alla restrizione alimentare descritta. Esempio: |
|
depositInfo |
DepositInfo |
Informazioni su imballaggio e riciclo di questo MenuItem. Esempio: |
|
numberOfServings |
Intero |
Numero di porzioni disponibili in un determinato elemento del menu. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed delle 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/un menu combinato. L'utente deve selezionare un'opzione, altrimenti l'ordine viene considerato non valido (ad es. l'utente deve scegliere piccola, media o grande per una pizza).
La tabella seguente elenca le proprietà per il tipo MenuItemOption
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const |
Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco dell'opzione dell'elemento del 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 in base alle dimensioni, alle opzioni o al contorno della pizza. I valori accettabili sono "SIZE", "OPTION" e "PIZZA_SIDE". "SIZE": dimensioni dell'opzione di menu. Ad esempio, piccola, media o grande. "OPTION": qualsiasi variante diversa dalla taglia (ad es. un piatto disponibile come insalata o panino). Se non riesci a distinguere tra "SIZE" e "OPTION", utilizza "OPTION". "PIZZA_SIDE": specifico per le pizze: ad esempio, questo Esempio: |
|
value |
Stringa o
PizzaSide |
Obbligatorio quando
Un valore di stringa o un valore enum. 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 cui è disponibile questa opzione. 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 |
List<Allergen > |
Allergeni di questo MenuItem. Esempio: |
|
additive |
List<Additive > |
Additivi di questo elemento del menu. Esempio: |
|
depositInfo |
DepositInfo |
Le informazioni su imballaggio e riciclo di questo MenuItem. Esempio: |
|
numberOfServings |
Intero |
Numero di porzioni disponibili in una determinata opzione di elemento del menu. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed di entità MenuItemOption in formato timestamp ISO, ma con 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
.
La tabella seguente elenca le proprietà per il tipo MenuItemOffer
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@type |
Const | Obbligatorio. Valore: |
|
@id |
String | Obbligatorio. Un identificatore univoco dell'offerta dell'elemento del menu. Esempio: |
|
sku |
String | Obbligatorio. Un identificatore dell'offerta della voce di menu. I valori SKU possono essere diversi o uguali in più entità di offerta di elementi del menu. Il valore sku verrà impostato in ordine quando ti invieremo 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à Disponibilità che forniscono dettagli su quando è disponibile l'offerta della voce di menu. Esempio: |
|
eligibleQuantityMin |
Number |
La quantità minima dell'ordine per cui è valido il valore Esempio: |
|
eligibleQuantityMax |
Number |
La quantità massima dell'ordine per cui è valido il valore Esempio: |
|
inventoryLevel |
Number |
Il livello di inventario approssimativo corrente per l'articolo o gli articoli corrispondenti a questa MenuItemOffer. Esempio: |
|
dateModified |
Timestamp ISO |
La data e l'ora dell'ultima modifica del feed delle entità Esempio: |
|
applicableServiceType |
List<ServiceType > |
Il servizio a cui si applica questo |
|
offeredById |
List<String> |
I valori @id delle entità Esempio: |
|
È obbligatorio 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" ] }
Nome
ReverseReference
La tabella seguente elenca le proprietà per il tipo ReverseReference
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
@id |
String | Obbligatorio. @id dell'entità principale. |
|
displayOrder |
Intero | Obbligatorio. Ordina l'elemento all'interno dell'elemento principale. |
NutritionInformation
La tabella seguente elenca le proprietà per il tipo NutritionInformation
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
description |
String |
Informazioni nutrizionali in formato di testo libero. Ad esempio, "Contiene conservanti". |
|
calories |
String |
Il numero di calorie in Cal, kcal o kJ, utilizzando il seguente formato: valore 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
La tabella seguente elenca le proprietà per il tipo Allergen
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
allergenType |
AllergenType |
Obbligatorio. Tipo di allergene. |
|
levelOfContainment |
ContainmentLevel |
Il livello di un determinato allergene nella voce di menu. |
L'esempio seguente mostra un elemento Allergen
:
Esempio
{ "allergenType": "PEANUTS", "levelOfContainment": "MAY_CONTAIN" }
Additivo
La tabella seguente elenca le proprietà per il tipo Additive
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
additiveName |
String | Obbligatorio. Nome dell'additivo. |
|
levelOfContainment |
ContainmentLevel |
Il livello di un determinato additivo nella voce del menu. |
L'esempio seguente mostra un elemento Additive
:
Esempio
{ "additiveName": "Sodium nitrite", "levelOfContainment": "CONTAINS" }
DepositInfo
La tabella seguente elenca le proprietà per il tipo DepositInfo
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
depositCode |
DepositCode |
Codice deposito. |
|
depositValue |
Number |
Valore numerico della cauzione dell'articolo, ad esempio quando viene riciclato. |
|
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.
La tabella seguente elenca le proprietà per il tipo ServingConfig
:
Proprietà | Tipo | Descrizione | |
---|---|---|---|
disableOrderInstructions |
Valore booleano |
Nasconde la possibilità di specificare le istruzioni per l'ordine. |
|
disableMenuItemSpecialInstructions |
Valore booleano |
Nasconde la possibilità di specificare istruzioni speciali per un elemento del menu. |
|
disableTipWidget |
Valore booleano |
Nasconde il widget del 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 può contenere un'istruzione speciale per un elemento del menu. |
|
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 secondo 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 di 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 dieta con restrizioni secondo 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