Schema dell'inventario v1

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 per TIME.
  • 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 DateTime modificata del feed di dati, in formato ISO 8601.

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 dateModified nella busta del feed.

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:

  • Proporzioni 3:2
  • >
  • Risoluzione minima 600x400 pixel, 72 dpi
  • >
  • Risoluzione consigliata 1400x960 pixel, 72 dpi
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à hasMenuItemOption.

Il valore predefinito per Offer.eligibleQuantity è il minimo 0 e massimo 1.

In AddOnMenuItem vengono utilizzate le seguenti proprietà Offer:

  • Offer.sku obbligatoria
  • Offer.price obbligatoria
  • Offer.priceCurrency obbligatoria
  • Offer.availabilityStarts facoltativo
  • Offer.availabilityEnds facoltativo
  • Offer.availableDay facoltativo
  • Offer.validFrom facoltativo
  • Offer.validThrough facoltativo
  • Offer.eligibleQuantity facoltativo
  • Offer.inventoryLevel facoltativo
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:

  • La variante di base è l'articolo del componente aggiuntivo (ad esempio patatine piccole, medie e grandi come componenti aggiuntivi)
  • La variante di base della voce di menu a cui è associato questo componente aggiuntivo (ad esempio formaggio extra per una pizza grande)
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 Offer.availabilityStarts e Offer.availabilityEnds per indicare il periodo di tempo durante il quale è disponibile questa sezione addOnMenu.

L'elenco seguente mostra quali proprietà Offer vengono utilizzate in AddOnMenuSezione.

  • Offer.availabilityStarts facoltativo
  • Offer.availabilityEnds facoltativo
  • Offer.availableDay facoltativo
  • Offer.validFrom facoltativo
  • Offer.validThrough facoltativo
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 AddOnMenuSection. Gli utenti possono modificare le selezioni finali. Se non è specificato alcun defaultOption, non viene preselezionato nessun AddOnMenuItem.

Gli oggetti AddOnMenuItem devono esistere in hasMenuItem del AddOnMenuSection.

Il numero di defaultOption non può superare il limite massimo di eligibleQuantity di AddOnMenuSection.

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 e closes sono facoltative per AdvanceServiceDeliveryHoursSpecification, 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 o closes. I fusi orari specificati vengono ignorati.
  • Se opens e closes non sono specificati esplicitamente, presupponiamo che l'ordine anticipato sia disponibile in qualsiasi momento per tutti i giorni.
  • Se opens e closes sono uguali, presupponiamo che l'ordinazione anticipata non sia disponibile.
  • Se opens è maggiore di closes, 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 e closes si riferiscono alla fascia oraria futura. closes è un'offerta esclusiva. Ad esempio, se opens corrisponde alle 10:00 e closes alle 16:00 con un serviceTimeInterval 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à validFrom e validThrough devono essere assenti o presenti insieme.

Se questo tipo viene specificato come specialOpeningHoursSpecification a livello Service, questa proprietà validFrom in AdvanceServiceDeliveryHoursSpecification è obbligatoria.

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à validFrom e validThrough devono essere assenti o presenti insieme.

Se questo tipo viene specificato come specialOpeningHoursSpecification a livello Service, la proprietà validThrough in AdvanceServiceDeliveryHoursSpecification è obbligatoria.

Il periodo di tempo di validThrough è esclusivo. Ad esempio, se questo orario è impostato sulle 18:00, sarà valido fino alle 17:59:59.

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 opens. Se viene specificato un fuso orario, Google ignora queste informazioni.

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". closes> è un servizio esclusivo, quindi se lo imposti alle 21:00 per un serviceTimeInterval di 15 minuti, l'ultima fascia oraria disponibile inizia alle 20:45.

L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore closes. Se viene specificato un fuso orario, Google ignora queste informazioni.

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:

  • "Lunedì"
  • "Martedì"
  • "Mercoledì"
  • "Giovedì"
  • "Venerdì"
  • "Sabato"
  • "Domenica"

Se non specifichi alcun giorno della settimana, AdvanceServiceDeliveryHoursSpecification si applica a tutti i giorni.

serviceTimeInterval Duration Obbligatorio

Intervallo tra due orari di servizio successivi.

Ad esempio, se opens e closes sono le 8:00 e le 20:00 e il serviceTimeInterval corrisponde a 15 minuti, l'utente può scegliere 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.

Duration deve essere specificato come durata ISO 8601. Ad esempio: "P15M" indica intervalli di 15 minuti.

advanceBookingRequirement QuantitativeValue Obbligatorio

Numero di minuti dall'ora in cui è possibile evadere l'ordine in anticipo.

I valori min e max di QuantitativeValue devono essere impostati sul numero di minuti e il valore unitCode deve essere impostato su "MIN".

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 min è 60 e il valore di max è 2880.

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"
    }  ],
...
},

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.

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"
    }
}

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:

  • Proporzioni 3:2
  • Risoluzione minima 600x400 pixel, 72 dpi
  • Risoluzione consigliata 1400x960 pixel 72 dpi
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 MenuItem. Descrive quando e a quale prezzo è disponibile questa MenuItem. Deve essere valida una sola offerta alla volta. È possibile fornire più offerte in caso di variazioni di prezzo/disponibilità in base all'ora del giorno. Se l'alimento si differenzia per un attributo di base (ad esempio, formato della pizza), utilizza menuItemOption. Il valore predefinito per Offer.eligibleQuantity è minimo 0 senza limite superiore.

L'elenco seguente mostra quali proprietà Offer vengono utilizzate in MenuItem.

  • Offer.sku obbligatoria
  • Offer.price obbligatoria
  • Offer.priceCurrency obbligatoria
  • Offer.availabilityStarts facoltativo
  • Offer.availabilityEnds facoltativo
  • Offer.availableDay facoltativo
  • Offer.validFrom facoltativo
  • Offer.validThrough facoltativo
  • Offer.eligibleQuantity facoltativo
  • Offer.inventoryLevel facoltativo
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.

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 MenuItemOption. Descrive quando e a quale prezzo è disponibile questa voce di menu. Deve essere valida una sola offerta alla volta. Puoi avere molte offerte valide se il prezzo/la disponibilità può cambiare in base all'ora del giorno. Non usare Offer.eligibleQuantity. MenuItemOption si escludono a vicenda, quindi Offer.eligibleQuantity viene ignorato se fornito.

L'elenco seguente mostra quali proprietà Offer vengono utilizzate in MenuItemOption.

  • Offer.sku obbligatoria
  • Offer.price obbligatoria
  • Offer.priceCurrency obbligatoria
  • Offer.availabilityStarts facoltativo
  • Offer.availabilityEnds facoltativo
  • Offer.availableDay facoltativo
  • Offer.validFrom facoltativo
  • Offer.validThrough facoltativo
  • Offer.eligibleQuantity facoltativo
  • Offer.inventoryLevel facoltativo
menuAddOn Array of AddOnMenuSection 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 --
          ]
        }
      ]
    }
  ]
}

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 Offer.availabilityStarts e Offer.availabilityEnds per indicare il periodo di tempo durante il quale viene pubblicato questo MenuSection. Non usare Offer.eligibleQuantity.

Il seguente elenco mostra quali proprietà Offer vengono utilizzate in MenuSection:

  • Offer.availabilityStarts facoltativo
  • Offer.availabilityEnds facoltativo
  • Offer.availableDay facoltativo
  • Offer.validFrom facoltativo
  • Offer.validThrough facoltativo
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 Offer. I valori sku fanno riferimento nella procedura di pagamento e in Invia come offerId in lineitem.

Questa proprietà viene utilizzata solo nei seguenti tipi di offerta:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Non viene utilizzato nei seguenti tipi di offerta:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Non viene utilizzato nei seguenti tipi di offerta:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • "Lunedì"
  • "Martedì"
  • "Mercoledì"
  • "Giovedì"
  • "Venerdì"
  • "Sabato"
  • "Domenica"

Se hai disponibilità diverse per giorni diversi della settimana, utilizza più di un oggetto Offer, come mostrato negli esempi che seguono.

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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Questa proprietà non viene utilizzata nei seguenti tipi di offerta:

  • Service.Offer
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 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.

Questa proprietà può essere utilizzata nei seguenti tipi di offerta:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Questa proprietà non viene utilizzata nei seguenti tipi di offerta.

  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Questa proprietà non viene utilizzata nei seguenti tipi di offerta.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Questa proprietà non viene utilizzata nei seguenti tipi.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel QuantitativeValue Facoltativo

Il livello di inventario approssimativo per l'articolo o gli articoli.

Questa proprietà può essere utilizzata nei seguenti tipi di offerta:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer

Questa proprietà non viene utilizzata nei seguenti tipi di offerta:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Array di DeliveryChargeSpecification o array di PaymentChargeSpecification Facoltativo

Se utilizzata in Service.Offer, indica i dettagli sul prezzo della consegna. Se sono applicabili più oggetti DeliveryChargeSpecification, viene applicato quello più specifico. Utilizza oggetti DeliveryChargeSpecification che si escludono a vicenda per evitare ambiguità.

Questa proprietà può essere utilizzata nei seguenti tipi di offerta:

  • Service.Offer

Questa proprietà non viene utilizzata nei seguenti tipi di offerta:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Array di ID Restaurant Facoltativo

Rappresenta i ristoranti in cui viene offerto questo Offer.

Se non specificato, questo Offer verrà offerto a tutti i ristoranti.

Questa proprietà può essere utilizzata nei seguenti tipi di offerta:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Questa proprietà non viene utilizzata nei seguenti tipi di offerta:

  • Service.Offer
applicableFulfillmentMethod Array di testo Facoltativo

Rappresenta il tipo di servizio fornito da Offer. I valori possibili sono "DELIVERY" o "TAKEOUT".

Se non specificato, questo Offer verrà completato con consegna e asporto.

Questa proprietà può essere utilizzata nei seguenti tipi di offerta:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Questa proprietà non viene utilizzata nei seguenti tipi di offerta:

  • Service.Offer
@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 e closes sono facoltative, ma vivamente consigliate per indicare quando è disponibile l'ordine. La best practice per definire gli orari disponibili è includere un array deliveryHours contenente un ServiceDeliveryHoursSpecification con proprietà opens e closes. Poi puoi includere un oggetto AdvanceServiceDeliveryHoursSpecification in deliveryHours con le proprie proprietà opens e closes, se vuoi offrire una finestra più limitata per l'ordine anticipato.
  • Se opens e closes 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 o closes. Se viene specificato un fuso orario, Google ignora queste informazioni.
  • Se opens e closes corrispondono, presupponiamo che il ristorante sia aperto per 0 minuti.
  • Se opens è maggiore di closes, 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, OpeningHoursSpecification si applica a tutti i giorni.

opens Time Facoltativo

Se utilizzata in una specifica di Restaurant, questa proprietà indica l'orario di apertura del ristorante nei giorni della settimana indicati. Ad esempio, 6:30 viene indicata come "T06:30:00".

Quando utilizzato in una specifica di Service, indica l'ora specifica del giorno a partire dalla quale possono essere effettuati gli ordini degli utenti. Specifica l'orario di apertura al momento dell'attivazione del sistema online e consente agli utenti di effettuare ordini. All'interno degli orari di apertura e chiusura del sistema online, puoi utilizzare deliveryHours per specificare gli orari di apertura e chiusura in cui gli utenti possono ordinare tipi speciali di consegne.

L'ora deve essere specificata 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 maggiori informazioni, consulta la sezione Formati di data e ora.

closes Time Facoltativo

Quando utilizzata in una specifica di Service, questa proprietà indica l'ora specifica del giorno oltre la quale non è possibile effettuare gli ordini degli utenti. Specifica l'orario di chiusura quando il sistema online è attivo e consente agli utenti di effettuare ordini. All'interno degli orari di apertura e chiusura del sistema online, puoi utilizzare deliveryHours per specificare gli orari di apertura e chiusura in cui gli utenti possono ordinare tipi speciali di consegne.

L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore closes. Se viene specificato un fuso orario, Google ignora queste informazioni.

Per maggiori informazioni, consulta la sezione Formati di data e ora.

validFrom DateTime Facoltativo

Se utilizzata in una specifica Restaurant, questa proprietà indica la data in cui sono validi gli orari di apertura specificati da opens e closes per il ristorante.

Ad esempio, se le ore specificate si applicano a tutto l'anno 2017, imposti validFrom su "2017-01-01T00:00:00-07:00" e validThrough su "2017-12-31T23:59:59-07:00".

Se utilizzato in una specifica di Service, validFrom indica la data di inizio a partire dalla quale possono essere effettuati gli ordini degli utenti.

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 Restaurant, la data dopo la quale l'orario di apertura specificato da opens e closes non è valido.

Ad esempio, se le ore specificate si applicano a tutto l'anno 2017, imposti validFrom su "2017-01-01T00:00:00-07:00" e validThrough su "2017-12-31T23:59:59-07:00".

Quando utilizzato in una specifica di Service, validThrough indica la data di fine oltre la quale non è più possibile effettuare gli ordini degli utenti.

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 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.

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 opens e closes sono impostati e uguali tra loro.

  • ServiceDeliveryHoursSpecification: entro gli orari di apertura e chiusura, puoi impostare gli orari di apertura e chiusura in cui gli utenti possono effettuare ordini il prima possibile.
  • AdvanceServiceDeliveryHoursSpecification: all'interno degli orari di apertura e chiusura, puoi impostare gli orari di apertura e chiusura in cui gli utenti possono effettuare ordini in anticipo.

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 MenuItem:

  • "SIZE": la dimensione della MenuItem. ad esempio small, medium o large.
  • "OPTION": qualsiasi variante diversa dalle dimensioni (ad esempio un piatto, fornito come insalata o sandwich). Se non riesci a distinguere tra "SIZE" e "OPTION", utilizza "OPTION".

Nomi validi se utilizzati in AddOnMenuItem:

  • "APPLICABLE_ITEM_OPTION": un'opzione per il componente aggiuntivo applicabile solo se utilizzato con MenuItem con la rispettiva "SIZE/OPTION".
  • "PIZZA_SIDE": specifico per le pizze, questo componente aggiuntivo è valido solo per una porzione o per la pizza intera (ad es. condimenti a base di funghi a sinistra, a destra o pizza intera).
  • "SIZE": un'opzione per specificare le dimensioni del componente aggiuntivo (ad esempio patatine grosse come componente aggiuntivo per una combinazione di pasti).
  • "OPTION": qualsiasi variante diversa dalla dimensione. Se non riesci a distinguere tra "SIZE" e "OPTION", utilizza "OPTION".
value Testo Obbligatorio

Valore dell'opzione. I valori possono essere qualsiasi stringa e vengono visualizzati così come sono. Di seguito sono riportati valori validi:

  • "PIZZA_SIDE": il valore corrispondente dovrebbe essere "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT" o "PIZZA_SIDE_WHOLE" per una pizza.
  • "APPLICABLE_ITEM_OPTION": questo valore deve essere presente in una delle scelte "OPTION/SIZE" corrispondenti per l'elemento menuItemOptions dell'elemento MenuItem principale.

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 "additionalProperty": [{"name": "imprint", "value": "first row\nsecondrow\n"},]

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 di MenuItem o MenuItemOption 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.

  • Service: utilizza questo tipo per tutti i feed di servizio attivi.
  • DisabledService: utilizza questo tipo solo quando devi disabilitare un'entità Service a causa di un evento imprevisto e non sai quando il servizio verrà ristabilito.
@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 OpeningHoursSpecification o gli orari di evasione. In genere, questo campo viene utilizzato per definire festività e altri tipi di chiusure temporanee o modifiche agli orari.

Definisci l'intervallo di date speciale utilizzando le proprietà validFrom e validThrough. L'ora e il fuso orario sono obbligatori quando specifichi queste proprietà.

offers Array di Offer Condizionali

Dettagli sull'offerta di consegna per un ristorante specifico. Questo campo è facoltativo per impostazione predefinita, ma obbligatorio se serviceType è "Consegna".

La proprietà Offer.priceSpecification è facoltativa nel servizio. Nessun'altra proprietà Offer viene utilizzata qui.

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 Menu sia OfferCatalog per il tipo. Ad esempio:

"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 name corrispondente al nome del campo facoltativo. La chiave value è un valore pertinente al contesto per il campo.

Consulta il riferimento ServingConfig per ulteriori informazioni su nomi e valori specifici.

"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 e closes sono facoltative per ServiceDeliveryHoursSpecification, 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 o closes. Se viene specificato un fuso orario, Google ignora le informazioni sul fuso orario.
  • Se opens e closes non vengono specificati esplicitamente, presupponiamo che l'ordine "Appena possibile" sia disponibile in qualsiasi momento ogni giorno.
  • Se opens e closes sono uguali, presupponiamo che l'ordine "Appena possibile" non sia disponibile.
  • Se opens è maggiore di closes, 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 validThrough è esclusivo. Ad esempio, se questo orario è impostato sulle 18:00, sarà valido fino alle 17:59:59.

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 opens. Se viene specificato un fuso orario, Google ignora queste informazioni.

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 closes è esclusivo. Di conseguenza, se per questo ServiceDeliveryHoursSpecification imposti gli orari di apertura e chiusura alle 10:00 e alle 16:00, l'ultimo ordine sarà alle 15:59:59.

L'ora deve essere specificata nell'ora locale del servizio. Non includere un fuso orario in un valore closes. Se viene specificato un fuso orario, Google ignora queste informazioni.

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:

  • "Lunedì"
  • "Martedì"
  • "Mercoledì"
  • "Giovedì"
  • "Venerdì"
  • "Sabato"
  • "Domenica"

Se non specifichi alcun giorno della settimana, ServiceDeliveryHoursSpecification si applica a tutti i giorni.

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