Esquema do inventário v1

Os feeds do catálogo de alimentos são baseados em entidades DataFeed do schema.org. Um feed de catálogo de alimentos consiste em detalhes de localidade, como endereço, menu e local, e detalhes do serviço de um restaurante, como taxas de entrega, áreas de entrega e outros itens, conforme especificado abaixo.

Um DataFeed contém uma coleção de elementos, cada um representando um único item expresso no vocabulário do schema.org (link em inglês). É possível usar o tipo DataFeed para publicar todos os dados estruturados no formato JSON-LD.

Para mais informações sobre como usar essa especificação para criar feeds, consulte a Visão geral da integração de inventário.

Formatos de data e hora e hora

DateTime é baseado no tipo do schema.org e, a menos que indicado de outra forma, precisa seguir o formato ISO 8601 e incluir a data, a hora e o fuso horário. Use a seguinte sintaxe para DateTime:

// DateTime format:
YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]

Exemplo:

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 é o horário local de um determinado restaurante ou fuso horário de serviço. Também é baseado no tipo schema.org e precisa seguir o formato ISO 8601. Time usa a seguinte sintaxe:

// Time format:
THH:MM:SS

Exemplo:

T08:08:00 // 8:08 AM

Observe o seguinte sempre que você especificar um DateTime ou Time:

  • O prefixo "T" antes do horário faz parte do formato e é obrigatório.
  • É necessário especificar o fuso horário para DATETIME. Ele não é necessário para TIME.
  • O horário precisa ser especificado no horário local do restaurante ou serviço.

Envelope

O código inicial de qualquer feed de catálogo de alimentos deve conter uma seção de "envelope".

O "envelope" é a estrutura de nível superior de cada feed e precisa ser um DataFeed com as seguintes propriedades:

Propriedade Tipo Necessidade Descrição
@context URL Obrigatório O contexto em uso, normalmente "http://schema.googleapis.com".
@type Texto Obrigatório Ele é sempre "DataFeed".
dateModified DateTime Obrigatório

O último DateTime modificado do feed de dados, no formato ISO 8601.

A data e a hora no formato ISO_OFFSET_DATE_TIME em que os itens neste feed foram modificados. Na ausência desse campo, presume-se que o horário da atualização é o momento em que a mensagem push é recebida (ou o rastreamento ocorre) nos servidores do Google.

Recomendamos que você implemente isso se estiver usando push e rastreamento juntos. Esse carimbo de data/hora precisa ser especificado com um fuso horário e granularidade de milissegundos, por exemplo, "2016-12-28T06:30:00:123-07:00".

Nos feeds em lote, o controle de versões da entidade é determinado pelo campo dateModified no envelope do feed.

dataFeedElement Matriz de Menu, Restaurant ou Service Obrigatório Um ou mais itens que fazem parte deste feed. Veja mais detalhes abaixo.

O exemplo a seguir mostra o envelope:

Exemplo

{
  "@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

Para usar esse tipo, adicione o contexto gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Em seguida, adicione FoodBeverageTobaccoProduct ao tipo de MenuItem ou MenuItemOption apropriado.

A tabela a seguir descreve as propriedades do tipo AdditiveDetails:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "AdditiveDetails".
additiveName Texto Opcional Nome do aditivo.
additiveLevelOfContainment Texto Opcional Código de contenção por gs1:LevelOfContainmentCode. Por exemplo, http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ou http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

O exemplo a seguir mostra o uso do 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

Um prato de comida ou bebida listado em um item de menu complementar de um MenuItem.

A tabela a seguir lista as propriedades do tipo AddOnMenuItem:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "AddOnMenuItem".
@id URL Obrigatório Identificador exclusivo do item de menu do complemento.
name Texto Obrigatório Texto que identifica o AddOnMenuItem quando um usuário está navegando no menu.
description Texto Opcional Descrição do item de menu do complemento.
image URL Opcional

Imagem do item de menu do complemento que corresponde às seguintes diretrizes:

  • Proporção 3:2
  • >
  • Resolução mínima: 600 x 400 pixels, 72 dpi.
  • >
  • Resolução recomendada: 1400 x 960 pixels, 72 dpi
offers Matriz de Offer Obrigatório*

Uma ou mais ofertas para fornecer este AddOnMenuItem.

Descreve quando e a que preço esse AddOnMenuItem está disponível. Apenas uma oferta deve ser válida em um determinado momento. É possível ter muitas ofertas válidas se o preço ou a disponibilidade mudarem de acordo com a hora do dia. Quando o complemento ou o item for diferente por causa de um atributo base ou de uma variação do item do complemento (por exemplo, batatas fritas pequena, média e grande como complemento), use a propriedade hasMenuItemOption.

O padrão para Offer.eligibleQuantity é o mínimo de 0 e o máximo de 1.

As seguintes propriedades Offer são usadas em AddOnMenuItem:

  • É necessário usar a Offer.sku
  • É necessário usar a Offer.price
  • É necessário usar a Offer.priceCurrency
  • Offer.availabilityStarts (opcional)
  • Offer.availabilityEnds (opcional)
  • Offer.availableDay (opcional)
  • Offer.validFrom (opcional)
  • Offer.validThrough (opcional)
  • Offer.eligibleQuantity (opcional)
  • Offer.inventoryLevel (opcional)
hasMenuItemOptions Matriz de MenuItemOption Obrigatório*

Matriz de atributos base que descrevem uma variação do próprio item do complemento (como batatas fritas pequenas, médias e grandes como complemento) para esse item de menu do complemento. Use as opções para especificar as diversas variações disponíveis para esse item de menu do complemento. Existem dois cenários em que isso pode acontecer:

  • A variação base está no próprio item do complemento (como batatas fritas pequenas, médias e grandes como complemento).
  • A variação base para o item do menu a que este complemento está associado (por exemplo, queijo extra como complemento para uma pizza grande)
suitableForDiet Matriz de RestrictedDiet Opcional O prato está em conformidade com a restrição alimentar descrita, como "GlutenFreeDiet" ou "VeganDiet". Essa é uma lista enumerada de possíveis valores.
nutrition NutritionInformation Opcional As informações nutricionais do prato, principalmente as calorias.
menuAddOn Matriz de AddOnMenuSection Opcional O AddOnMenuItem pode ter uma seção de menu composta de itens permitidos que podem ser adicionados como um complemento.

O exemplo a seguir mostra AddOnMenuItem:

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

Exemplo 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

Um subagrupamento de itens de alimentos ou bebidas como uma seção complementar para o item do menu.

A tabela a seguir lista as propriedades do tipo AddOnMenuSection:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "AddOnMenuSection".
@id URL Obrigatório Identificador exclusivo da seção do cardápio.
name Texto Obrigatório Texto que pode identificar o AddOnMenuSection quando um usuário está navegando no menu.
description Texto Opcional Descrição da seção do cardápio.
eligibleQuantity QuantitativeValue Opcional Indica o número de itens permitidos como complemento para essa seção do menu. Use esse campo para restringir o número de complementos, como o número mínimo e máximo de coberturas que você pode escolher para uma pizza.
image URL Opcional Imagem da seção do cardápio.
hasMenuItem Matriz de AddOnMenuItem Obrigatório* Itens de menu de complementos contidos em uma AddOnMenuSection.
offers Matriz de Offer Opcional

Use Offer.availabilityStarts e Offer.availabilityEnds para indicar o período em que essa AddOnMenuSection está disponível.

A listagem abaixo mostra quais propriedades Offer são usadas em AddOnMenuSection.

  • Offer.availabilityStarts (opcional)
  • Offer.availabilityEnds (opcional)
  • Offer.availableDay (opcional)
  • Offer.validFrom (opcional)
  • Offer.validThrough (opcional)
hasMenuSection Matriz de AddOnMenuSection Obrigatório* Subagrupamento lógico do menu do complemento (como jantar, aperitivos ou pratos com peixe).
defaultOption Matriz de AddOnMenuItem Opcional

Itens de menu de complementos a serem pré-selecionados por padrão para os usuários em AddOnMenuSection. Os usuários podem alterar as seleções finais. Se nenhum defaultOption for especificado, nenhum AddOnMenuItem será pré-selecionado.

Objetos AddOnMenuItem precisam existir no hasMenuItem do AddOnMenuSection.

O número de defaultOption não pode exceder o máximo de eligibleQuantity do AddOnMenuSection.

numberOfFreeAddOns Número Opcional Indica o número de complementos que um usuário pode selecionar sem custos financeiros.

Os exemplos a seguir incluem objetos AddOnMenuSection:

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

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

Exemplo 3

Um item de menu "Sanduíche de queijo" tem um AddOnMenuSection "Opções de queijo" com "Suíça" e "muçarela" pré-selecionados como padrão.

{
  "@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

Representa os horários de atendimento de pedidos dos usuários para programar pedidos antecipados para entrega e retirada.

Normalmente, o valor de opens é menor que o valor de closes. As diretrizes a seguir se aplicam ao uso das propriedades opens e closes:

  • As propriedades opens e closes são opcionais para AdvanceServiceDeliveryHoursSpecification, mas é altamente recomendável que você as inclua.
  • O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor opens ou closes. Fusos horários especificados são ignorados.
  • Se opens e closes não forem especificados explicitamente, presumiremos que a ordem avançada está disponível todos os dias em todos os momentos.
  • Se opens e closes forem os mesmos, presumiremos que a ordenação antecipada está indisponível.
  • Se opens for maior que closes, o horário de fechamento será interpretado como no dia seguinte. Por exemplo, se o horário de abertura for 1o de janeiro às 17h e o horário de fechamento for 2h, o restaurante vai fechar no dia 2 de janeiro às 2h.
  • opens e closes se referem ao horário futuro. closes é exclusivo. Por exemplo, se opens for 10h e closes for 16h com serviceTimeInterval de 15 minutos, o primeiro horário vai começar às 10h e o último vai começar às 15h45.

A tabela a seguir descreve as propriedades do tipo AdvanceServiceDeliveryHoursSpecification:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "AdvanceServiceDeliveryHoursSpecification".
validFrom DateTime Condicional

A data de início a partir da qual os pedidos antecipados dos usuários podem ser atendidos. Por exemplo, "2017-05-01T00:00:00-07:00".

Se esta propriedade não for definida, ela será considerada válida todos os dias. As propriedades validFrom e validThrough precisam estar ausentes ou presentes juntas.

Se esse tipo for especificado como um specialOpeningHoursSpecification no nível da Service, essa propriedade validFrom em AdvanceServiceDeliveryHoursSpecification será obrigatória.

Para mais informações, consulte Formatos de data e hora e hora.

validThrough DateTime Opcional

Data de término posterior à qual os pedidos antecipados dos usuários não podem mais ser atendidos. Por exemplo, "2018-12-01T00:00:00-07:00".

Se esta propriedade não for definida, ela será considerada válida todos os dias. As propriedades validFrom e validThrough precisam estar ausentes ou presentes juntas.

Se esse tipo for especificado como um specialOpeningHoursSpecification no nível da Service, a propriedade validThrough em AdvanceServiceDeliveryHoursSpecification será obrigatória.

O horário de validThrough é exclusivo. Por exemplo, se esse horário é definido como 18h, ele é válido até 17h59min59s.

Para mais informações, consulte Formatos de data e hora.

opens Time Opcional

Aplicável a horários de entrega ou retirada.

É a hora específica do dia em que os pedidos antecipados dos usuários podem ser atendidos. Por exemplo, 6h30 é enviado como "T06:30:00".

O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor opens. Se um fuso horário for especificado, o Google vai ignorar essa informação.

Para mais informações, consulte Formatos de data e hora.

closes Time Opcional

Aplicável a horários de entrega ou retirada.

A hora do dia específica em que os pedidos antecipados dos usuários não podem ser atendidos. Por exemplo, 21h é fornecido como "T21:00:00". closes> é exclusivo, então defini-lo como 21h para um serviceTimeInterval de 15 minutos significa que o último horário disponível começa às 20h45.

O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor closes. Se um fuso horário for especificado, o Google vai ignorar essa informação.

Para mais informações, consulte Formatos de data e hora.

dayOfWeek Matriz de DayOfWeek Opcional

Os dias da semana em que as horas de entrega antecipadas estão disponíveis. Os valores válidos são:

  • "Segunda-feira"
  • "Terça-feira"
  • "Quarta-feira"
  • "Quinta-feira"
  • "Sexta-feira"
  • "Sábado"
  • "Domingo"

Se você não especificar nenhum dia da semana, o AdvanceServiceDeliveryHoursSpecification será aplicado a todos os dias.

serviceTimeInterval Duration Obrigatório

Intervalo entre dois horários de serviço sucessivos.

Por exemplo: se opens e closes forem 8h e 20h e serviceTimeInterval for 15 minutos, o usuário vai poder escolher horários de atendimento de 8h, 8h15, 8h30, 8h45 e assim por diante até as 20h.

Duration precisa ser especificado como uma duração ISO 8601. Por exemplo: "P15M" significa intervalos de 15 minutos.

advanceBookingRequirement QuantitativeValue Obrigatório

Número de minutos a partir do horário do pedido em que o pedido antecipado pode ser atendido.

Os valores min e max de QuantitativeValue precisam ser definidos como o número de minutos e o unitCode como "MIN".

Por exemplo, se um pedido antecipado precisar de pelo menos 60 minutos para ser atendido e não puder ser atendido mais de dois dias depois, o valor de min será 60, e o valor de max será 2.880.

O exemplo a seguir mostra o uso do tipo AdvanceServiceDeliveryHoursSpecification:

Exemplo 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

Para usar esse tipo, adicione o contexto gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Em seguida, adicione FoodBeverageTobaccoProduct ao tipo de MenuItem ou MenuItemOption apropriado.

A tabela a seguir descreve as propriedades do tipo AllergenDetails:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "AllergenDetails".
allergenType Texto Opcional Tipo de alérgeno de acordo com gs1:AllergenTypeCode . Por exemplo, http://gs1.org/voc/AllergenTypeCode-PEANUTS.
allergenLevelOfContainmentCode Texto Opcional Código de contenção por gs1:LevelOfContainmentCode. Por exemplo, http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM ou http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

O exemplo a seguir mostra o uso do 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

A tabela a seguir descreve as propriedades do tipo DeliveryChargeSpecification:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Ele é sempre "DeliveryChargeSpecification".
@id URL Opcional Identificador da especificação da taxa de entrega.
price Número Obrigatório Custo total da entrega como um valor numérico. Use a propriedade priceCurrency para indicar o tipo de moeda, em vez de símbolos de moeda. Por exemplo, "6,00", sem o símbolo de moeda.
priceCurrency Texto Obrigatório É o código de moeda ISO 4217 com três letras. Por exemplo, "USD".
eligibleTransactionVolume PriceSpecification Opcional O volume de transações, em unidade monetária, para o qual essa especificação de cobrança de entrega é válida. Por exemplo, para indicar um volume de compra mínimo ou para expressar que o frete está disponível sem custos adicionais acima de um determinado volume de pedidos.
eligibleQuantity QuantitativeValue Opcional O intervalo e a unidade de medida das quantidades de pedidos para os quais a cobrança de entrega é válida. Isso permite, por exemplo, especificar que uma determinada taxa de frete é válida somente para uma determinada quantidade.
eligibleRegion Matriz de GeoShape, Place ou GeoCircle Opcional O lugar ou o GeoShape/GeoCircle das regiões geopolíticas para as quais a especificação da oferta ou taxa de entrega é válida. Use essa propriedade somente se as taxas de entrega variarem de acordo com a região.
validFrom DateTime Opcional A data e a hora (incluindo o fuso horário) em que a cobrança de entrega especificada se torna válida. Por exemplo, "2017-05-01T06:30:00-07:00". Para mais informações, consulte Formatos de data e hora.
validThrough DateTime Opcional A data e a hora (incluindo o fuso horário) após as quais a taxa de entrega especificada não é válida. Por exemplo, "2017-05-01T06:30:00-07:00". O horário de validThrough é exclusivo: por exemplo, se esse horário é definido como 18h, ele é válido até 17h59min59s. Para mais informações, consulte Formatos de data e hora.

Os exemplos a seguir mostram elementos DeliveryChargeSpecification:

Exemplo 1

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}

Exemplo 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
    }
  }
]

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

Além de "@type": ["DeliveryChargeSpecification"], o objeto pode ser estendido com UnitPriceSpecification:

"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]

A extensão fornece outras duas propriedades necessárias para taxas de entrega calculadas em porcentagens.

Propriedade Tipo Necessidade Descrição
referenceQuantity QuantitativeValue Obrigatório Quantidade de referência a que um determinado preço se aplica. Por exemplo, referenceQuantity de valor 10 com unitCode de "P1" resulta em 10% do valor do pedido. No momento, apenas unitCode "P1" é aceito.
basePrice Número Opcional A cobrança básica, além do referenceQuantity. Por exemplo, referenceQuantity de 10 com unitCode "P1" e basePrice de 5 em USD resultam em R $5 + 10% do valor do pedido. O valor padrão é 0.

Exemplos de taxa de entrega

O Google permite que você especifique várias taxas para os usuários antecipadamente usando o Offer.PriceSpecification da entidade de serviço.

No momento, a ordenação de ponta a ponta só oferece suporte a um DeliveryChargeSpecification. Combine todos os tipos de taxa em um único DeliveryChargeSpecification.

Consulte Exemplos de feed de serviços para saber como especificar as taxas de entrega com base na área, distância e valor do pedido.

Se não houver taxa, Offer.PriceSpecification é omitido.

  • Exemplo 1: a taxa de entrega é de 5% do subtotal do carrinho
  • Exemplo 2: a taxa de entrega é de US $5
  • Exemplo 3: a taxa de entrega é de US $5 + 10% do subtotal do carrinho
  • Exemplo 4: a taxa de entrega é de US $5 e a de bagagem é de US $0,1.
  • Exemplo 5: a taxa de entrega é de 5% e a taxa de conveniência é de 2% do subtotal do carrinho
  • Exemplo 6: a taxa de entrega é de US $5 e US $1 para cada distância adicional de 1 km.

Exemplo 1

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Exemplo 2

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

Exemplo 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%
  }
]

Exemplo 4

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }

Exemplo 5

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]

Exemplo 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

A tabela a seguir descreve as propriedades do tipo GeoCircle:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Ele é sempre "GeoCircle".
geoMidpoint GeoCoordinates Obrigatório Indica o GeoCoordinates no centro de uma GeoCircle.
geoRadius Número Obrigatório Indica o raio aproximado (em metros) de uma GeoCircle.

O exemplo a seguir mostra um elemento GeoCircle:

Exemplo

{
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": "37.7392607",
    "longitude": "-122.3895522"
  },
  "geoRadius": "4505"
}

GeoCoordinates

A tabela a seguir descreve as propriedades do tipo GeoCoordinates:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "GeoCoordinates".
latitude Número Obrigatório

Latitude em graus. Os valores são restritos ao intervalo de -90 a 90, inclusive. Se o valor especificado for menor que -90, ele será definido como -90. Se o valor for maior que 90, ele será definido como 90.

A precisão precisa ser de pelo menos cinco casas decimais.

longitude Número Obrigatório

Longitude em graus. Valores fora do intervalo de -180 a 180 são unidos para que se encaixem no intervalo. Por exemplo, um valor de -190 é convertido em 170. Um valor de 190 é convertido para -170. Isso reflete o fato de que as longitudes envolvem ao redor do globo.

A precisão precisa ser de pelo menos cinco casas decimais.

O exemplo a seguir mostra um elemento GeoCoordinates:

Exemplo

"geo": {
  "@type": "GeoCoordinates",
  "latitude": "35.7392607",
  "longitude": "-120.3895522"
}

GeoShape

A tabela a seguir descreve as propriedades do tipo GeoShape:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Ele é sempre "GeoShape".
polygon Matriz de texto Obrigatório

Um polígono ou multipolígono expresso como uma série de três ou mais pontos delimitados por espaços. Recomenda-se que o primeiro e o último pontos sejam iguais, mas isso não é obrigatório.

Cada ponto em um polígono ou multipolígono é definido por um ponto de latitude seguido de um ponto de longitude. Também é preciso especificar os pontos no sentido anti-horário.

Na maioria dos casos, você terá um único polígono. Para casos de uso mais complexos, consulte a documentação da área de serviço de entrega.

Os exemplos a seguir mostram elementos GeoShape:

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

Exemplo 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”]
},

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

A tabela a seguir lista as propriedades do tipo Menu:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Esse sempre é o "Menu".
@id URL Obrigatório Identificador exclusivo do cardápio.
name Texto Opcional Texto que pode identificar o Menu quando um usuário está navegando no menu.
description Texto Opcional Descrição do menu.
disclaimer MenuDisclaimer Opcional Exoneração de responsabilidade do cardápio. Por exemplo, divulgação de informações nutricionais e de alérgenos.
hasMenuSection Objeto único ou matriz de MenuSection Opcional Subagrupamento lógico do menu (como jantar, aperitivos ou pratos com peixe).
hasMenuItem Objeto único ou matriz de MenuItem Opcional Objetos MenuItem contidos em um Menu, normalmente quando Menu não é subdividido por MenuSections.
inLanguage Texto Opcional Idioma do conteúdo do menu, como um código de idioma do padrão IETF BCP 47. Por exemplo, "en-US".

Os exemplos a seguir mostram o uso do tipo Menu:

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

Exemplo 2

Este exemplo mostra hasMenuItem como uma matriz.

{
  "@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"
      }
    }
  ]
}

Exemplo 3

Este exemplo mostra hasMenuSection como uma matriz.

{
  "@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"
        }
      }
    }
  ]
}

Para mais exemplos de entidades Menu, consulte Exemplos de feed de restaurantes e cardápios.

A tabela a seguir lista as propriedades do tipo MenuDisclaimer:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Esse campo é sempre "MenuExoneração de responsabilidade".
@id URL Obrigatório Identificador exclusivo da exoneração de responsabilidade do cardápio.
text Texto Obrigatório Texto da exoneração de responsabilidade. Por exemplo, "O consumo médio diário de um adulto é de 8.700 kJ".
url URL Opcional URL que direciona para uma página que fornece mais detalhes sobre a exoneração de responsabilidade.

O exemplo a seguir mostra o uso do tipo MenuDisclaimer:

Exemplo

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

Item de menu para representar o item no menu. A tabela a seguir lista as propriedades do tipo MenuItem:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Ele é sempre "MenuItem".
@id URL Obrigatório Identificador exclusivo do item do cardápio.
name Texto Obrigatório Texto que pode identificar o MenuItem quando um usuário está navegando no menu.
description Texto Opcional Descrição do item de menu.
image URL Opcional

Imagem do item do cardápio. Use as seguintes diretrizes para imagens:

  • Proporção 3:2
  • Resolução mínima: 600 x 400 pixels, 72 dpi.
  • Resolução recomendada: 1400 x 960 pixels e 72 dpi
menuAddOn Matriz de AddOnMenuSection Opcional Itens em uma seção de menu que podem ser adicionados como complementos ao item do menu.
offers Matriz de Offer Obrigatório*

Uma ou mais ofertas para fornecer este MenuItem. Descreve quando e a que preço esse MenuItem está disponível. Apenas uma oferta precisa ser válida em um horário específico. Se houver variação de preço/disponibilidade de acordo com a hora do dia, várias ofertas podem ser exibidas. Se o prato for diferente por um atributo base (por exemplo, tamanho da pizza), use menuItemOption. O padrão para Offer.eligibleQuantity é o mínimo de 0 sem limite superior.

A listagem abaixo mostra quais propriedades Offer são usadas em MenuItem.

  • É necessário usar a Offer.sku
  • É necessário usar a Offer.price
  • É necessário usar a Offer.priceCurrency
  • Offer.availabilityStarts (opcional)
  • Offer.availabilityEnds (opcional)
  • Offer.availableDay (opcional)
  • Offer.validFrom (opcional)
  • Offer.validThrough (opcional)
  • Offer.eligibleQuantity (opcional)
  • Offer.inventoryLevel (opcional)
hasMenuItemOptions Matriz de MenuItemOption Obrigatório Lista de opções/variação básicas desse item de menu. As opções precisam ser usadas para especificar as diversas variações básicas disponíveis para o item, por exemplo, pequeno, médio e grande.
suitableForDiet Matriz de RestrictedDiet Opcional O prato está em conformidade com a restrição alimentar descrita, como "http://schema.org/GlutenFreeDiet" ou "http://schema.org/VeganDiet". Essa é uma lista enumerada de valores possíveis.
nutrition NutritionInformation Opcional Informações nutricionais do prato, principalmente calorias.
hasAllergen AllergenDetails Opcional Alérgenos do prato por gs1:AllergenDetails. Adicione o contexto gs1 para usar esta propriedade: "@context": ["http://gs1.org/voc/", "http://schema.org"]. E adicione FoodBeverageTobaccoProduct ao tipo de MenuItem.
additive Matriz de AdditiveDetails Opcional Aditivos do prato por gs1:AdditiveDetails. Trata-se de uma lista enumerada de valores possíveis. Adicione o contexto gs1 para usar esta propriedade: "@context": ["http://gs1.org/voc/", "http://schema.org"]. E adicione FoodBeverageTobaccoProduct ao tipo de MenuItem.
packaging PackagingDetails Opcional As informações de embalagem e reciclagem deste MenuItem de acordo com gs1:PackagingDetails. Adicione o contexto gs1 para usar esta propriedade: "@context": ["http://gs1.org/voc/", "http://schema.org"]. E adicione FoodBeverageTobaccoProduct ao tipo de MenuItem.

Os exemplos a seguir mostram elementos MenuItem:

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

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

Exemplo 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 --
          ]
        }
      ]
    }
  ]
}

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

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

Para mais exemplos de entidades MenuItem, consulte Exemplos de feed de restaurantes e cardápios.

Uma opção para representar opções que o usuário precisa fazer ao selecionar um prato ou combo. O usuário precisa selecionar uma opção. Caso contrário, o pedido será considerado inválido. Por exemplo, escolher pequeno, médio ou grande no caso de uma pizza.

Para exemplos de casos de uso da MenuItemOption, consulte nosso guia sobre personalização usando MenuItemOption.

A tabela a seguir lista as propriedades do tipo MenuItemOption:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Ele é sempre "MenuItemOption".
value PropertyValue Obrigatório PropertyValue contendo um par de nome/valor que representa a opção.
offers Matriz de Offer Obrigatório

Uma ou mais ofertas para fornecer este MenuItemOption. Descreve quando e com que preço essa opção de menu está disponível. Apenas uma oferta deve ser válida em um determinado momento. Você pode ter muitas ofertas válidas se o preço/a disponibilidade mudar de acordo com a hora do dia. Não use Offer.eligibleQuantity. MenuItemOption é mutuamente exclusivo, então Offer.eligibleQuantity será ignorado se fornecido.

A listagem abaixo mostra quais propriedades Offer são usadas em MenuItemOption.

  • É necessário usar a Offer.sku
  • É necessário usar a Offer.price
  • É necessário usar a Offer.priceCurrency
  • Offer.availabilityStarts (opcional)
  • Offer.availabilityEnds (opcional)
  • Offer.availableDay (opcional)
  • Offer.validFrom (opcional)
  • Offer.validThrough (opcional)
  • Offer.eligibleQuantity (opcional)
  • Offer.inventoryLevel (opcional)
menuAddOn Array of AddOnMenuSection Opcional Seção de menu de itens permitidos que podem ser adicionados como complementos. Use essa opção apenas se os complementos forem específicos para uma determinada opção de menu. Caso contrário, forneça complementos usando a propriedade MenuItem.menuAddOn.
suitableForDiet Matriz de RestrictedDiet Opcional Lista enumerada que indica dietas em que este prato está em conformidade com a restrição alimentar descrita (como "http://schema.org/GlutenFreeDiet" ou "http://schema.org/VeganDiet").
nutrition NutritionInformation Opcional Informações nutricionais do prato, principalmente calorias.
hasAllergen AllergenDetails Opcional Alérgenos do prato por gs1:AllergenDetails. Adicione o contexto gs1 para usar esta propriedade: "@context": ["http://gs1.org/voc/", "http://schema.org"]. E adicione FoodBeverageTobaccoProduct ao tipo de MenuItemOption.
additive Matriz de AdditiveDetails Opcional Aditivos do prato por gs1:AdditiveDetails. Trata-se de uma lista enumerada de valores possíveis. Adicione o contexto gs1 para usar esta propriedade: "@context": ["http://gs1.org/voc/", "http://schema.org"]. E adicione FoodBeverageTobaccoProduct ao tipo de MenuItemOption.
packaging PackagingDetails Opcional Informações de embalagem e reciclagem deste MenuItem por gs1:PackagingDetails Adicione o contexto gs1 para usar essa propriedade: "@context": ["http://gs1.org/voc/", "http://schema.org"]. E adicione FoodBeverageTobaccoProduct ao tipo de MenuItemOption.

O exemplo a seguir mostra elementos MenuItemOption:

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

Exemplo 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 --
          ]
        }
      ]
    }
  ]
}

Seção do menu para representar uma seção específica do menu. A tabela a seguir lista as propriedades do tipo MenuSection:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "MenuSection".
@id URL Obrigatório Identificador exclusivo da seção do cardápio.
name Texto Obrigatório Texto que pode identificar o MenuSection quando um usuário navega pelo menu.
description Texto Opcional Descrição da seção do cardápio.
hasMenuSection Matriz de MenuSection Opcional Subagrupamento lógico de MenuSection. Por exemplo, a seção do Menu de jantar pode ter várias sub-MenuSections, como "Pratos para aves" ou "Vegetariano".
hasMenuItem Matriz de MenuItem Opcional Itens de menu contidos em um MenuSection.
offers Matriz de Offer Opcional

Use Offer.availabilityStarts e Offer.availabilityEnds para indicar o período em que esse MenuSection é veiculado. Não use Offer.eligibleQuantity.

A lista a seguir mostra quais propriedades Offer são usadas em MenuSection:

  • Offer.availabilityStarts (opcional)
  • Offer.availabilityEnds (opcional)
  • Offer.availableDay (opcional)
  • Offer.validFrom (opcional)
  • Offer.validThrough (opcional)
image URL Opcional Imagem da seção do cardápio.

Os exemplos a seguir mostram entidades MenuSection:

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

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

Para mais exemplos de entidades MenuSection, consulte Exemplos de feed de restaurantes e cardápios.

NutritionInformation

A tabela a seguir descreve as propriedades do tipo NutritionInformation. As unidades de medida diferenciam maiúsculas de minúsculas. Por exemplo, “kcal” é aceito, mas “kcal” não.

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "NutritionInformation".
description Texto Opcional Informações nutricionais em texto livre. Por exemplo, "Contém conservantes".
calories Texto Opcional

O número de calorias em calorias, kcal ou kJ, usando o seguinte formato:

number Cal_kcal_OR_kJ

Por exemplo, "240 kcal".

carbohydrateContent Texto Opcional

A quantidade de carboidratos, normalmente em g, usando o seguinte formato:

number g_OR_mg

Por exemplo, "7 g".

cholesterolContent Texto Opcional

A quantidade de colesterol, normalmente em mg, usando o seguinte formato:

number g_OR_mg

Por exemplo, "12 mg".

fatContent Texto Opcional

A quantidade de gordura, normalmente em g, usando o seguinte formato:

number g_OR_mg

Por exemplo, "42 g".

fiberContent Texto Opcional

O número de g ou mg de fibra, usando o seguinte formato:

number g_OR_mg
proteinContent Texto Opcional

O número de g ou mg de proteína, usando o seguinte formato:

number g_OR_mg
saturatedFatContent Texto Opcional

O número de g ou mg de gordura saturada, usando o seguinte formato:

number g_OR_mg
servingSize Texto Opcional O tamanho da porção em mL, L, g ou kg, em termos do número de volume ou massa.
sodiumContent Texto Opcional

O número de mg ou g de sódio, usando o seguinte formato:

number g_OR_mg
sugarContent Texto Opcional

O número de g ou mg de açúcar, usando o seguinte formato:

number g_OR_mg
transFatContent Texto Opcional

O número de g ou mg de gordura trans, usando o seguinte formato:

number g_OR_mg
unsaturatedFatContent Texto Opcional

A quantidade de gordura insaturada, normalmente em g, usando o seguinte formato:

number g_OR_mg

Os exemplos a seguir mostram um elemento NutritionInformation:

Exemplo 1

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},

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

Oferta

Oferta de um item do cardápio. A tabela a seguir descreve as propriedades do tipo Offer:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "Oferta".
sku Texto Condicional

Identificador exclusivo da oferta. Pode ser qualquer valor de texto exclusivo no Offer. Os valores sku são referenciados em Pagamento e Enviar como o offerId em lineitem.

Essa propriedade é usada apenas nos seguintes tipos de oferta:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price Texto Condicional

Preço do item oferecido. Por exemplo, "6,00" sem o símbolo da moeda.

Essa propriedade é obrigatória somente nos seguintes tipos de oferta:

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

Ele não é usado nos seguintes tipos de oferta:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency Texto Condicional

A moeda (no formato ISO 4217 de três letras) do preço ou de um componente de preço, quando anexado a PriceSpecification e os subtipos dele.

Essa propriedade é obrigatória somente nos seguintes tipos de oferta:

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

Ele não é usado nos seguintes tipos de oferta:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime ou Time Opcional A data e a hora ou apenas o horário em que a oferta está disponível. Por exemplo, se as panquecas forem servidas a partir das 7h, o valor desse campo poderá ser assim: "2017-05-01T07:00:00-07:00". Para mais informações, consulte Formatos de data e hora.
availabilityEnds DateTime ou Time Opcional A data e a hora ou apenas a hora em que a oferta está indisponível. Esse período é exclusivo. Por exemplo, se a disponibilidade de panquecas terminar às 10h, a última poderá ser servida às 9h59m59s. O valor desse campo poderá ficar assim: "2017-05-01T10:00:00-07:00". Para mais informações, consulte Formatos de data e hora.
availableDay Matriz de DayOfWeek Opcional

Dias da semana em que este item está disponível. Os valores válidos são:

  • "Segunda-feira"
  • "Terça-feira"
  • "Quarta-feira"
  • "Quinta-feira"
  • "Sexta-feira"
  • "Sábado"
  • "Domingo"

Se você tiver disponibilidades diferentes para dias da semana diferentes, use mais de um objeto Offer, conforme mostrado nos exemplos abaixo.

validFrom DateTime Opcional

A data e a hora (incluindo o fuso horário) em que o preço especificado é válido. Por exemplo, a massa custa USD 8 no almoço e USD 10 no jantar. Para mais informações, consulte Formatos de data e hora.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

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

Esta propriedade não é usada nos seguintes tipos de oferta:

  • Service.Offer
validThrough DateTime Opcional

Data e hora (incluindo o fuso horário) após as quais o preço especificado não é mais válido. Por exemplo, a massa custa US $8 no almoço e US $10 no jantar. O horário de validThrough é exclusivo: por exemplo, se esse horário é definido como 18h, o horário é válido até 17h59min59s. Para mais informações, consulte Formatos de data e hora.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

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

Esta propriedade não é usada nos tipos de oferta a seguir.

  • Service.Offer
eligibleQuantity QuantitativeValue Opcional

As quantidades do pedido para as quais este item é permitido. Por exemplo, um restaurante pode exigir que pelo menos 10 pizzas sejam pedidos para entrega.

Este valor é opcional. Por padrão, não há limite máximo, mas o restaurante pode especificar um. Os limites mínimos se aplicam somente quando um usuário seleciona o item.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

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

Esta propriedade não é usada nos tipos de oferta a seguir.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating Opcional

É a classificação geral, com base em uma coleção de avaliações ou notas do item.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Esta propriedade não é usada nos tipos a seguir.

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

O nível de inventário aproximado atual dos itens.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

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

Esta propriedade não é usada nos seguintes tipos de oferta:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Matriz de DeliveryChargeSpecification ou a matriz de PaymentChargeSpecification Opcional

Quando usado em Service.Offer, ele indica os detalhes sobre o preço da entrega. Se vários objetos DeliveryChargeSpecification forem aplicáveis, o mais específico será aplicado. Use objetos DeliveryChargeSpecification mutuamente exclusivos para evitar qualquer ambiguidade.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

  • Service.Offer

Esta propriedade não é usada nos seguintes tipos de oferta:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Matriz de IDs Restaurant Opcional

Representa os restaurantes em que Offer é oferecido.

Se não for especificado, esse Offer será oferecido a todos os restaurantes.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

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

Esta propriedade não é usada nos seguintes tipos de oferta:

  • Service.Offer
applicableFulfillmentMethod Matriz de texto Opcional

Representa o tipo de serviço pelo qual este Offer é atendido. Os valores possíveis são "DELIVERY" ou "TakeOUT".

Se não for especificado, esse Offer será atendido por entrega e retirada.

Essa propriedade pode ser usada nos seguintes tipos de oferta:

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

Esta propriedade não é usada nos seguintes tipos de oferta:

  • Service.Offer
@id URL Descontinuado Identificador exclusivo da oferta. Obsoleto a partir de 25/04/2019. Substitua por sku, conforme descrito acima.

Os exemplos a seguir mostram elementos Offer:

Exemplo 1

O exemplo a seguir mostra uma oferta simples:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD"
}

Exemplo 2

O exemplo de oferta a seguir mostra a disponibilidade das 8h às 10h nos fins de semana:

{
  "@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.
}

Exemplo 3

O exemplo a seguir mostra a disponibilidade das 9h às 10h59min59s às segundas, quartas e sextas-feiras e das 8h às 11h59min59s às terças e quintas:

{
  "@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"]
}

Exemplo 4

O exemplo a seguir mostra a quantidade qualificada de um item de menu complementar definida para que o usuário possa pedir, no máximo, duas porções desse item:

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

Example 5

O exemplo a seguir mostra uma oferta de entrega em um local específico:

{
  "@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

Define quando os serviços de pedidos estão disponíveis. Normalmente, o valor de opens é menor que o valor de closes. As diretrizes a seguir se aplicam ao uso das propriedades opens e closes:

  • As propriedades opens e closes são opcionais, mas altamente recomendados quando a ordem está disponível. A prática recomendada para definir os horários disponíveis é incluir uma matriz deliveryHours que contenha um ServiceDeliveryHoursSpecification com as propriedades opens e closes. Você pode incluir um objeto AdvanceServiceDeliveryHoursSpecification em deliveryHours com as próprias propriedades opens e closes, se quiser oferecer uma janela mais limitada para pedidos antecipados.
  • Se opens e closes não forem especificados explicitamente, presumimos que o serviço de ordenação está disponível todos os dias em todos os horários.
  • O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor opens ou closes. Se um fuso horário for especificado, o Google vai ignorar essa informação.
  • Se opens e closes forem iguais, presumimos que o restaurante está aberto por 0 minuto.
  • Se opens for maior que closes, o horário de fechamento será interpretado como no dia seguinte. Por exemplo, se o horário de abertura for 1o de janeiro às 17h e o de fechamento for 2h, o restaurante vai ser interpretado como fechando às 2h do dia 2 de janeiro.
  • O horário de closes é exclusivo. Portanto, se os horários de abertura e fechamento dessa janela de pedidos estiverem definidos para 10h e 16h, respectivamente, o último pedido será às 15h59:59.

A tabela a seguir descreve as propriedades do tipo OpeningHoursSpecification:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "OpeningHoursSpecification".
@id URL Opcional Identificador de OpeningHoursSpecification.
dayOfWeek Matriz de DayOfWeek Opcional

O dia da semana para o qual esse horário de funcionamento é válido. Os valores aceitáveis são "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado" e "Domingo". Exemplo:

"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]

Se você não especificar nenhum dia da semana, a OpeningHoursSpecification será aplicada a todos os dias.

opens Time Opcional

Quando usada em uma especificação Restaurant, essa propriedade indica o horário de abertura do restaurante nos dias da semana especificados. Por exemplo, 6h30 é enviado como "T06:30:00".

Quando usado em uma especificação Service, indica a hora do dia em que os pedidos dos usuários podem ser feitos. Ela especifica o horário de abertura do sistema on-line e permite que os usuários façam pedidos. Nesses horários de abertura/fechamento do sistema on-line, você pode usar deliveryHours para especificar os horários em que os usuários podem pedir tipos especiais de entregas.

O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor opens. Se um fuso horário for especificado, o Google vai ignorar essa informação.

Para mais informações, consulte Formatos de data e hora.

closes Time Opcional

Quando usada em uma especificação Service, essa propriedade indica a hora do dia específica em que os pedidos dos usuários não podem ser feitos. Ela especifica o horário de fechamento do sistema on-line e permite que os usuários façam pedidos. Nesses horários de abertura/fechamento do sistema on-line, você pode usar deliveryHours para especificar os horários em que os usuários podem pedir tipos especiais de entregas.

O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor closes. Se um fuso horário for especificado, o Google vai ignorar essa informação.

Para mais informações, consulte Formatos de data e hora.

validFrom DateTime Opcional

Quando usada em uma especificação Restaurant, essa propriedade indica a data em que os horários de funcionamento especificados por opens e closes para o restaurante são válidos.

Por exemplo, se o horário informado se aplica a todo o ano de 2017, defina validFrom como "2017-01-01T00:00:00-07:00" e validThrough como "2017-12-31T23:59:59-07:00".

Quando usado em uma especificação Service, validFrom indica a data de início a partir da qual os pedidos dos usuários podem ser feitos.

Se essa propriedade não for especificada no seu feed, o Google vai pressupor que o restaurante ou serviço está disponível diariamente.

Além da data, as partes de hora e fuso horário do valor são obrigatórias.

Para o fuso horário, use o do restaurante ou serviço.

Para mais informações, consulte Formatos de data e hora.

validThrough DateTime Opcional

Quando usado em um Restaurant, a data após a qual os horários de funcionamento especificados por opens e closes não são válidos.

Por exemplo, se o horário informado se aplica a todo o ano de 2017, defina validFrom como "2017-01-01T00:00:00-07:00" e validThrough como "2017-12-31T23:59:59-07:00".

Quando usado em uma especificação Service, validThrough indica a data de término após a qual os pedidos dos usuários não podem mais ser feitos.

Se essa propriedade não for especificada no seu feed, o Google vai pressupor que o restaurante ou serviço está disponível diariamente.

Além da data, as partes de hora e fuso horário de DateTime são obrigatórias.

Para o fuso horário, use o do restaurante ou serviço.

O horário de validThrough é exclusivo. Por exemplo, se esse horário é definido como 18h, ele é válido até 17h59min59s.

Para mais informações, consulte Formatos de data e hora.

deliveryHours Matriz de ServiceDeliveryHoursSpecification ou de AdvanceServiceDeliveryHoursSpecification Condicional

A especificação do tempo de entrega ou retirada.

Esse parâmetro é obrigatório, a menos que o restaurante esteja fechado, o que significa que opens e closes estão definidos e iguais entre si.

  • ServiceDeliveryHoursSpecification: nos horários de abertura/fechamento, é possível definir os horários de abertura e fechamento, quando os usuários podem fazer pedidos assim que possível.
  • AdvanceServiceDeliveryHoursSpecification: no horário de abertura/fechamento, é possível definir os horários de abertura e fechamento, quando os usuários podem fazer pedidos antecipados.

Os exemplos a seguir mostram elementos OpeningHoursSpecification:

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

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

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

Exemplo 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

Adicione o contexto gs1 para usar este tipo: "@context": ["http://gs1.org/voc/", "http://schema.org"]. E adicione FoodBeverageTobaccoProduct ao tipo de MenuItem ou MenuItemOption.

A tabela a seguir descreve as propriedades do tipo PackagingDetails:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "PackagingDetails".
packagingRecyclingProcessType Texto Opcional Tipo de processo de reciclagem de embalagens de acordo com gs1:PackagingRecycleProcessTypeCode. Por exemplo, http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE ou http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails Opcional Detalhes do depósito do pacote retornável, conforme gs1:ReturnablePackageDepositDetails. Por exemplo, garrafas e latas têm depósitos de pacotes que podem ser devolvidos.

O exemplo a seguir mostra o uso do 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

A tabela a seguir descreve as propriedades do tipo PaymentChargeSpecification:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Ele é sempre "PaymentChargeSpecification".
@id URL Opcional Identificador de PaymentChargeSpecification.
price Número Obrigatório Valor total da cobrança. Por exemplo, "6,00", sem o símbolo de moeda.
priceCurrency Texto Obrigatório O código de moeda ISO 4217 de três letras do preço. Por exemplo, "USD".
eligibleTransactionVolume PriceSpecification Opcional Volume de transações, em unidade monetária, para a qual essa especificação de cobrança de pagamento é válida, como para indicar um volume de compra mínimo.
eligibleQuantity QuantitativeValue Opcional As quantidades do pedido para as quais a cobrança do pagamento é válida. Por exemplo, é possível usar essa propriedade para exigir um número mínimo de itens em um pedido.
validFrom DateTime Opcional Data e hora (incluindo o fuso horário) em que a cobrança de pagamento especificada se torna válida. Por exemplo, "2017-05-01T07:00:00-07:00". Para mais informações, consulte Formatos de data e hora.
validThrough DateTime Opcional Data e hora (incluindo o fuso horário) em que a cobrança especificada não é válida. Por exemplo, "2017-05-01T07:30:00-07:00". O horário de validThrough é exclusivo: por exemplo, se esse horário é definido como 18, o horário é válido até 17:59:59. Para mais informações, consulte Formatos de data e hora.

O exemplo a seguir mostra um elemento PaymentChargeSpecification:

Exemplo

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

Além de "@type": ["PaymentChargeSpecification"], o objeto pode ser estendido com UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]). A extensão fornece duas propriedades adicionais necessárias para taxas de serviço calculadas em porcentagens.

propriedade Tipo Necessidade Descrição
referenceQuantity QuantitativeValue Obrigatório Quantidade de referência a que um determinado preço se aplica. Por exemplo, referenceQuantity de valor 10 com unitCode de "P1" resulta em 10% do valor do pedido. No momento, somente unitCode "P1" é compatível.
basePrice Número Opcional A cobrança básica, além do referenceQuantity. Por exemplo, referenceQuantity de 10 com unitCode "P1" e basePrice de 5 em USD resultam em R $5 + 10% do valor do pedido. O valor padrão é 0.

Exemplos de taxas de retirada de dados

O Google permite que você especifique várias taxas para os usuários antecipadamente usando o Offer.PriceSpecification da entidade de serviço.

No momento, aceitamos apenas um PaymentChargeSpecification. Combine todos os tipos de taxas em um único PaymentChargeSpecification

Se não houver taxa, Offer.PriceSpecification é omitido.

  • Exemplo 1: a taxa de serviço é de 5% do subtotal do carrinho
  • Exemplo 2: a taxa de serviço é de US $5
  • Exemplo 3: a taxa da bagagem é de US $0,1 e a taxa de serviço é de 5% do subtotal do carrinho.
  • Exemplo 4: a taxa da bagagem é de US $0,1 e a taxa de serviço é de US $1.
  • Exemplo 5: a taxa de serviço é de 5% e a gorjeta necessária é de 10% do subtotal do carrinho

Exemplo 1

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Exemplo 2

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

Exemplo 3

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]

Exemplo 4

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]

Example 5

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Lugar

A tabela a seguir descreve as propriedades do tipo Place:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "Place".
address PostalAddress Obrigatório Endereço de um lugar.

O exemplo a seguir mostra um elemento Place:

Exemplo

{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

PostalAddress

A tabela a seguir descreve as propriedades do tipo PostalAddress:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "PostalAddress".
addressLocality Texto Obrigatório* A localidade ou cidade. Por exemplo, "São Francisco".
addressRegion Texto Obrigatório* A região ou o estado. Por exemplo, "CA".
postalCode Texto Obrigatório* É o código postal. Por exemplo, "94102".
streetAddress Texto Opcional É o endereço. Por exemplo, "1600 Amphitheatre Parkway".
addressCountry Texto Obrigatório Código do país ISO 3166-1 alfa-2 com duas letras . Por exemplo, "BR".

Os provedores de entrega podem listar essas propriedades para designar um Service.areaServed em que um serviço é fornecido.

Quando usadas no Restaurant.address, todas as propriedades listadas em PostalAddress são obrigatórias.

O exemplo a seguir mostra um elemento PostalAddress:

Exemplo

"address": {
  "@type": "PostalAddress",
  "streetAddress": "12345 Bar Avenue",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94124",
  "addressCountry": "US"
},

PriceSpecification

A tabela a seguir descreve as propriedades do tipo PriceSpecification:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "PriceSpecification".
@id URL Opcional Identificador de PriceSpecification.
minPrice Número Opcional O preço mais baixo se o preço for uma faixa.
maxPrice Número Opcional O preço mais alto se o preço for uma faixa.
priceCurrency Texto Obrigatório O código de moeda ISO 4217 de três letras do preço. Por exemplo, "USD".
eligibleQuantity QuantitativeValue Opcional As quantidades do pedido para as quais a especificação de preço é válida. Por exemplo, o preço pode ser US $2 por libra ou dois itens por um dólar.

O exemplo a seguir mostra um elemento PriceSpecification:

Exemplo 1

"eligibleTransactionVolume": {
  "@type": "PriceSpecification",
  "minPrice": "20.00", // Minimum order price for delivery is $20
  "priceCurrency": "USD"
}

PropertyValue

Par de valores da propriedade usado para descrever opções em MenuItemOption.

A tabela a seguir lista as propriedades do tipo PropertyValue:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "PropertyValue".
name Texto Obrigatório

Nome ou tipo da opção.

Os nomes a seguir são válidos quando usados no MenuItem:

  • "SIZE": o tamanho de MenuItem. Por exemplo, pequeno, médio ou grande.
  • "OPÇÃO": qualquer variação diferente do tamanho (como um prato que vem como uma salada ou um sanduíche). Se você não conseguir distinguir entre "SIZE" e "OPTION", use "OPTION".

Nomes válidos quando usados em AddOnMenuItem:

  • "APPLICABLE_ITEM_OPTION": uma opção para o complemento que só é aplicável quando usada com o MenuItem com o respectivo "SIZE/OPTION".
  • "PIZZA_SIDE": específico para pizzas, este complemento só é válido para uma porção/toda pizza (como recheios de cogumelos no lado esquerdo, no lado direito ou pizza inteira).
  • "SIZE": uma opção para designar o tamanho do complemento (por exemplo, batatas fritas grandes como complemento para uma combinação de refeição).
  • "OPTION": qualquer variação diferente do tamanho. Se não for possível distinguir entre "SIZE" e "OPTION", use "OPTION".
value Texto Obrigatório

Valor da opção. Os valores podem ser qualquer string e são exibidos no estado em que se encontram. Confira a seguir os valores válidos:

  • "PIZZA_SIDE": o valor correspondente deve ser "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT" ou "PIZZA_SIDE_WHOLE" para uma pizza.
  • "APPLICABLE_ITEM_OPTION": esse valor precisa estar presente em uma das opções "OPTION/SIZE" correspondentes para o menuItemOptions do MenuItem pai.

QuantitativeValue

A tabela a seguir descreve as propriedades do tipo QuantitativeValue:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "QuantitativeValue".
value Número Opcional O valor do valor quantitativo ou do nó do valor da propriedade.
unitCode Texto ou URL Opcional

A unidade de medida como um código comum das UN/CEFACT ou um URL.

Códigos diferentes do código comum UN/CEFACT podem ser usados com um prefixo seguido por dois-pontos.

maxValue Número Opcional O valor superior de alguma característica ou propriedade.
minValue Número Opcional O valor mais baixo de alguma característica ou propriedade.

Os exemplos a seguir mostram o uso do tipo QuantitativeValue:

Exemplo 1

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}

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

Exemplo 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
    }
  }
]

Restaurante

A tabela a seguir lista as propriedades do tipo Restaurant:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "Restaurante".
@id URL Obrigatório Identificador exclusivo do restaurante ou do provedor de entregas. Por exemplo, "http://www.provider.com/326", em que "326" é o identificador exclusivo do restaurante.
name Texto Obrigatório Texto que pode identificar o Restaurant durante o processo de ordenação.
url URL Obrigatório URL no seu domínio que representa o restaurante. Por exemplo, "http://www.provider.com/somerestaurante".
sameAs URL Opcional O site oficial do restaurante. Por exemplo, "http://www.algumrestaurante.com".
email Texto Opcional E-mail de contato do restaurante.
description Texto Opcional Descrição do restaurante.
telephone Texto Obrigatório

Número de telefone no seguinte formato:

"[+][country_code][phone_#_with_area_code]"

Por exemplo, "+16501234567".

priceRange Texto Opcional Uma variedade de preços. Por exemplo, "$$" ($-Inexpensive, $$-Moderado, $$$-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": "$$",
  "telefone": "+16501234567", // O código do país (+1) é obrigatório
  "servesCuisine": [
    "Fusão indiana-mexicana"
  ]
},
  
  

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

Para mais exemplos de entidades Restaurant, consulte Exemplos de feed de restaurantes e cardápios.

ReturnablePackageDepositDetails

Para usar esse tipo, adicione o contexto gs1: "@context":

["http://gs1.org/voc/", "http://schema.org"]

Em seguida, adicione FoodBeverageTobaccoProduct ao tipo de MenuItem ou MenuItemOption apropriado.

A tabela a seguir descreve as propriedades do tipo ReturnablePackageDepositDetails:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório Ele é sempre "ReturnablePackageDepositDetails".
returnablePackageDepositAmount gs1:PriceSpecification Opcional O valor do depósito para este item de acordo com gs1:PriceSpecification. Por exemplo, depósito de US$ 0,25 por lata.

O exemplo a seguir mostra o uso do 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"
      }
    }
  }
},

Serviço

Descreve a entrega de uma ação completa de pedido de um restaurante para uma localização geográfica feita por uma empresa de entrega.

A tabela a seguir descreve as propriedades do tipo Service:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório

O tipo de feed.

  • Service: use esse tipo para todos os feeds de serviço ativos.
  • DisabledService: use esse tipo somente quando você precisar desativar uma entidade de serviço devido a um evento inesperado e não saber quando o serviço será restabelecido.
@id URL Obrigatório Identificador do serviço de fulfillment. Por exemplo, "http://www.provider.com/service/1".
description Texto Opcional Descrição do item.
serviceType Texto Obrigatório Tipo de serviço oferecido. Os valores possíveis são "DELIVERY" ou "TakeOUT".
provider Restaurant Obrigatório Uma referência ao identificador exclusivo do restaurante. Por exemplo, "http://www.provider.com/somerestaurante".
areaServed Matriz de GeoShape, Place ou GeoCircle Condicional A área geográfica onde um serviço é prestado. Esse campo é opcional por padrão, mas será obrigatório se serviceType for "DELIVERY".
hoursAvailable Matriz de OpeningHoursSpecification Obrigatório Horários em que esse serviço está disponível.
specialOpeningHoursSpecification Matriz de OpeningHoursSpecification, ServiceDeliveryHoursSpecification ou AdvanceServiceDeliveryHoursSpecification Opcional

Horários que substituem os OpeningHoursSpecification ou os tempos de fulfillment mais gerais. Normalmente, você usa esse campo para definir feriados e outros tipos de fechamentos temporários ou mudanças no horário de funcionamento.

Defina o período especial usando as propriedades validFrom e validThrough. A hora e o fuso horário são obrigatórios ao especificar essas propriedades.

offers Matriz de Offer Condicional

Detalhes sobre a opção de entrega de um restaurante específico. Esse campo é opcional por padrão, mas será obrigatório se serviceType for "DELIVERY".

A propriedade Offer.priceSpecification é opcional no serviço. Nenhuma outra propriedade Offer é usada aqui.

hasOfferCatalog [Menu, OfferCatalog] Obrigatório

Especifica um menu para este serviço. É possível ter um cardápio diferente para cada um dos serviços, como retirada, entrega e bufê.

Você precisa especificar Menu e OfferCatalog para o tipo. Exemplo:

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty Matriz de {name, value} Opcional

Informações opcionais de configuração do serviço. Os itens precisam ser um objeto com a chave name correspondente ao nome do campo opcional. A chave value é um valor contextualmente relevante para o campo.

Consulte a referência ServingConfig para mais informações sobre nomes e valores específicos.

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

Contém o URL de um serviço de entrega/retirada que será usado ao migrar da experiência completa de pedido de comida para o redirecionamento. Por exemplo, "potentialAction": { "url": "https://fopatestagent.com/ordering/Clique-1/delivery" }

O exemplo a seguir mostra o uso do tipo de serviço:

Exemplo

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

Para mais exemplos de entidades de serviço, consulte Exemplos de feed de serviço.

ServiceDeliveryHoursSpecification

Representa o horário de atendimento do pedido para que os usuários programem pedidos assim que possível para entrega e retirada.

Normalmente, o valor de opens é menor que o valor de closes. As diretrizes a seguir se aplicam ao uso das propriedades opens e closes:

  • As propriedades opens e closes são opcionais para ServiceDeliveryHoursSpecification, mas é altamente recomendável que você as inclua.
  • O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor opens ou closes. Se um fuso horário for especificado, o Google vai ignorar essa informação.
  • Se opens e closes não forem especificados explicitamente, presumimos que o pedido "Assim que possível" esteja disponível todos os dias o tempo todo.
  • Se opens e closes forem iguais, presumimos que o pedido "Assim que possível" está indisponível.
  • Se opens for maior que closes, o horário de fechamento será interpretado como no dia seguinte. Por exemplo, se o horário de abertura for 1o de janeiro às 17h e o de fechamento for 2h, o restaurante vai ser interpretado como fechando às 2h do dia 2 de janeiro.

A tabela a seguir descreve as propriedades do tipo ServiceDeliveryHoursSpecification:

Propriedade Tipo Necessidade Descrição
@type Texto Obrigatório É sempre "ServiceDeliveryHoursSpecification".
validFrom DateTime Opcional

Data e hora (incluindo o fuso horário) em que os pedidos assim que possível dos usuários podem ser atendidos. Por exemplo, "2017-05-01T07:00:00-07:00". Se esta propriedade não for definida, ela será considerada válida todos os dias.

Para mais informações, consulte Formatos de data e hora.

validThrough DateTime Opcional

Data e hora (incluindo o fuso horário) após os quais os pedidos ASAP dos usuários não poderão ser atendidos. Por exemplo, "2017-05-01T07:00:00-07:00". Se essa propriedade não for definida, ela será considerada válida todos os dias.

O horário de validThrough é exclusivo. Por exemplo, se esse horário é definido como 18h, ele é válido até 17h59min59s.

Para mais informações, consulte Formatos de data e hora.

opens Time Opcional

Horário em que o serviço de entrega começa para que os pedidos dos usuários sejam atendidos. Por exemplo, "T10:30:00".

O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor opens. Se um fuso horário for especificado, o Google vai ignorar essa informação.

Para mais informações, consulte Formatos de data e hora.

closes Time Opcional

A hora em que o serviço de entrega de pedidos assim que possível dos usuários não está mais disponível. Por exemplo, "T23:59:59".

O horário de closes é exclusivo. Portanto, se você definir aberturas/fechamentos para esse ServiceDeliveryHoursSpecification como 10h e 16h, o último pedido será às 15h59:59.

O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor closes. Se um fuso horário for especificado, o Google vai ignorar essa informação.

Para mais informações, consulte Formatos de data e hora.

dayOfWeek Matriz de DayOfWeek Opcional

Dias da semana em que esse serviço está disponível para pedidos assim que os usuários fizerem isso. Confira a seguir os valores válidos:

  • "Segunda-feira"
  • "Terça-feira"
  • "Quarta-feira"
  • "Quinta-feira"
  • "Sexta-feira"
  • "Sábado"
  • "Domingo"

Se você não especificar nenhum dia da semana, ServiceDeliveryHoursSpecification será aplicado a todos os dias.

deliveryLeadTime QuantitativeValue Opcional Tempo de entrega estimado, em minutos, após o pedido ter sido feito. Recomendamos que você defina essa propriedade. Defina o campo value de QuantitativeValue como o número de minutos e unitCode como "MIN".

O exemplo a seguir mostra um elemento ServiceDeliveryHoursSpecification:

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

Exemplo 2

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

Enums

RestrictedDiet

O tipo RestrictedDiet tem os seguintes valores possíveis:

  • 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