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 paraTIME
. - 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 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 |
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:
|
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
O padrão para As seguintes propriedades
|
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:
|
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 A listagem abaixo mostra quais propriedades
|
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
Objetos O número de |
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
ecloses
são opcionais paraAdvanceServiceDeliveryHoursSpecification
, 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
oucloses
. Fusos horários especificados são ignorados. - Se
opens
ecloses
não forem especificados explicitamente, presumiremos que a ordem avançada está disponível todos os dias em todos os momentos. - Se
opens
ecloses
forem os mesmos, presumiremos que a ordenação antecipada está indisponível. - Se
opens
for maior quecloses
, 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
ecloses
se referem ao horário futuro.closes
é exclusivo. Por exemplo, seopens
for 10h ecloses
for 16h comserviceTimeInterval
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 Se esse tipo for especificado como um
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 Se esse tipo for especificado como um O horário de 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 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".
O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor 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:
Se você não especificar nenhum dia da semana, o |
serviceTimeInterval |
Duration |
Obrigatório |
Intervalo entre dois horários de serviço sucessivos. Por exemplo: se
|
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 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 |
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" } ], ... },
Menu
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.
MenuDisclaimer
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" } }
MenuItem
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:
|
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 A listagem abaixo mostra quais propriedades
|
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.
MenuItemOption
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
A listagem abaixo mostra quais propriedades
|
menuAddOn |
Array of |
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 -- ] } ] } ] }
MenuSection
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 A lista a seguir mostra quais propriedades
|
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 Essa propriedade é usada apenas nos seguintes tipos de oferta:
|
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:
Ele não é usado nos seguintes tipos de oferta:
|
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:
Ele não é usado nos seguintes tipos de oferta:
|
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:
Se você tiver disponibilidades diferentes para dias da semana diferentes,
use mais de um objeto |
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:
Esta propriedade não é usada nos seguintes tipos de oferta:
|
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 Essa propriedade pode ser usada nos seguintes tipos de oferta:
Esta propriedade não é usada nos tipos de oferta a seguir.
|
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:
Esta propriedade não é usada nos tipos de oferta a seguir.
|
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:
Esta propriedade não é usada nos tipos a seguir.
|
inventoryLevel |
QuantitativeValue | Opcional |
O nível de inventário aproximado atual dos itens. Essa propriedade pode ser usada nos seguintes tipos de oferta:
Esta propriedade não é usada nos seguintes tipos de oferta:
|
priceSpecification |
Matriz de DeliveryChargeSpecification ou a matriz de PaymentChargeSpecification | Opcional |
Quando usado em Essa propriedade pode ser usada nos seguintes tipos de oferta:
Esta propriedade não é usada nos seguintes tipos de oferta:
|
offeredBy |
Matriz de IDs Restaurant |
Opcional | Representa os restaurantes em que Se não for especificado, esse Essa propriedade pode ser usada nos seguintes tipos de oferta:
Esta propriedade não é usada nos seguintes tipos de oferta:
|
applicableFulfillmentMethod |
Matriz de texto | Opcional | Representa o tipo de serviço pelo qual este Se não for especificado, esse Essa propriedade pode ser usada nos seguintes tipos de oferta:
Esta propriedade não é usada nos seguintes tipos de oferta:
|
@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
ecloses
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 matrizdeliveryHours
que contenha umServiceDeliveryHoursSpecification
com as propriedadesopens
ecloses
. Você pode incluir um objetoAdvanceServiceDeliveryHoursSpecification
emdeliveryHours
com as próprias propriedadesopens
ecloses
, se quiser oferecer uma janela mais limitada para pedidos antecipados. - Se
opens
ecloses
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
oucloses
. Se um fuso horário for especificado, o Google vai ignorar essa informação. - Se
opens
ecloses
forem iguais, presumimos que o restaurante está aberto por 0 minuto. - Se
opens
for maior quecloses
, 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 |
opens |
Time |
Opcional |
Quando usada em uma especificação Quando usado em uma especificação O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor Para mais informações, consulte Formatos de data e hora. |
closes |
Time |
Opcional |
Quando usada em uma especificação O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor Para mais informações, consulte Formatos de data e hora. |
validFrom |
DateTime |
Opcional |
Quando usada em uma especificação Por exemplo, se o horário informado se aplica a todo o ano de 2017, defina Quando usado em uma especificação 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 Por exemplo, se o horário informado se aplica a todo o ano de 2017, defina Quando usado em uma especificação 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 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
|
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
Nomes válidos quando usados em
|
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:
|
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 |
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 deMenuItem
ouMenuItemOption
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.
|
@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 Defina o período especial usando as 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 A propriedade |
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 "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
Consulte a referência "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
ecloses
são opcionais paraServiceDeliveryHoursSpecification
, 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
oucloses
. Se um fuso horário for especificado, o Google vai ignorar essa informação. - Se
opens
ecloses
não forem especificados explicitamente, presumimos que o pedido "Assim que possível" esteja disponível todos os dias o tempo todo. - Se
opens
ecloses
forem iguais, presumimos que o pedido "Assim que possível" está indisponível. - Se
opens
for maior quecloses
, 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 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 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 O horário precisa ser especificado no horário local do serviço. Não inclua um fuso horário em um valor 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:
Se você não especificar nenhum dia da semana, |
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
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-02-16 UTC.