Requisitos gerais
As entidades precisam ser estruturadas para ficarem em uma linha por entidade nos feeds (as entidades são separadas por caracteres de nova linha). Para fins de legibilidade, os exemplos JSON nesta página não seguem essa estrutura. No entanto, é necessário seguir essa estrutura ao enviar seus feeds. Por exemplo, uma entidade de menu precisa ser estruturada como o código abaixo:
{"@type": "Menu","name": "Coffee Shop A","@id": "1535"}
Cada entidade "Restaurante" pode ter duas entidades de serviço (uma para cada tipo de serviço "DELIVERY" e "TAKEOUT"). Cada entidade "Serviço" só pode ter uma entidade "Menu".
Qualquer subentidade pode ser reutilizada em vários restaurantes.
Diretrizes de valor JSON
Coerção de tipo
O tipo de um valor JSON pode ser diferente do tipo definido no esquema, desde que o valor possa ser forçado para o tipo necessário. Por exemplo, as propriedades de string podem aceitar valores de string e valores inteiros como entrada. Da mesma forma, as propriedades de números inteiros podem aceitar valores de string, desde que a string possa ser analisada em um número inteiro válido.
A coerção de tipo também funciona para propriedades repetidas. Propriedades repetidas podem aceitar valores como entrada
sem serem encerradas em colchetes []
. Por exemplo, a
propriedade OperationHours.serviceId
aceita "service_id"
e
["service_id"]
como entradas válidas.
Valores de data e hora
DateTime
é baseado no tipo 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
é a hora local de um determinado restaurante ou fuso horário do local de serviço. Também é baseado no tipo schema.org e precisa seguir o formato ISO 8601. O tempo 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.
- O fuso horário precisa ser especificado para
DATETIME
. Ele não é necessário paraTIME
. - O horário precisa ser especificado no horário local do restaurante ou serviço.
Dados do restaurante
Restaurante (obrigatório)
Uma entidade obrigatória para implementação. Descreve um restaurante.
A tabela a seguir lista as propriedades do tipo Restaurant
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo do restaurante ou do serviço de entrega. Exemplo: |
|
name |
String | Obrigatório. Nome do restaurante. Exemplo: |
|
description |
String |
Uma descrição do restaurante. Exemplo: |
|
url |
Url |
O URL que representa o restaurante. O domínio do restaurante é preferido ao domínio do agregador. Exemplo: |
|
sameAs |
Url |
O site oficial do restaurante. Exemplo: |
|
telephone |
String |
Número de telefone do restaurante. Exemplo: |
|
streetAddress |
String | Obrigatório. O endereço do restaurante. Exemplo: |
|
addressLocality |
String | Obrigatório. A localidade ou cidade. Exemplo: |
|
addressRegion |
String | Obrigatório. A região ou o estado. Exemplo: |
|
postalCode |
String | Obrigatório. É o código postal. Exemplo: |
|
addressCountry |
String | Obrigatório. Código do país ISO 3166-1 alfa-2 com duas letras. Exemplo: |
|
latitude |
Número |
Latitude em graus. Os valores são restritos ao intervalo [[-90, 90]]. A precisão precisa ser de pelo menos cinco casas decimais. Exemplo: |
|
longitude |
Número |
Longitude em graus. Os valores são restritos ao intervalo [[-180, 180]]. A precisão precisa ser de pelo menos cinco casas decimais. Exemplo: |
|
dealId |
List<String> |
|
|
imprint |
String |
A impressão de um restaurante é uma seção com informações adicionais sobre o restaurante, como nome legal, endereço legal e número de registro. Essas informações podem ser formatadas usando " ". Exemplo:
|
|
economicOperator |
String |
Informações sobre a operadora econômica associada ao restaurante, se aplicável. Essas informações vão aparecer na seção "Informações da empresa confiável". O texto pode ser formatado usando " ". Exemplo:
|
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed da entidade "Restaurante" no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
O exemplo a seguir mostra um elemento Restaurant
:
Exemplo
{ "@type": "Restaurant", "@id": "10824", "name": "Pronto Wood Fired Pizzeria", "url": "https://www.provider.com/pronto-wood-fired-pizzeria", "telephone": "+16503659978", "streetAddress": "2560 El Camino Real", "addressLocality": "Palo Alto", "addressRegion": "CA", "postalCode": "94061", "addressCountry": "US", "latitude": 37.472842, "longitude": -122.217144 }
Transação
Tipos de descontos que podem ser aplicados a um carrinho.
A tabela a seguir lista as propriedades do tipo Deal
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da transação. Exemplo: |
|
dealCode |
String | Obrigatório. ID exclusivo por transação e parceiro. Esse ID precisa identificar exclusivamente a transação no seu sistema de promoções. O Google envia esse identificador no campo Exemplo: |
|
applicableServiceType |
List<ServiceType > |
O serviço a que esta oferta se aplica. O padrão assume que a transação é aplicável a todos. |
|
eligibleMaxOrders |
Número inteiro |
Essa oferta só é válida quando o usuário tem menos ou igual a esse número de pedidos anteriores bem-sucedidos. |
|
availabilityId |
List<String> |
Os valores de @id das entidades de disponibilidade, que fornecem detalhes sobre quando a seção do menu está disponível. Exemplo: |
|
isDisabled |
Booleano |
Isso substitui outras verificações de validade. |
|
dealType |
DealType |
Obrigatório. Categoria de transação em que o desconto será aplicado. A categoria pode ser o valor total do carrinho, taxas de serviço ou taxas de entrega. |
|
priceCurrency |
String | Obrigatório quando
Obrigatório quando
Moeda (no formato ISO 4217 de três letras) do desconto. Exemplo: |
|
eligibleTransactionVolumeMin |
Número |
Volume de transações, em uma unidade monetária, para a qual essa promoção é válida. |
|
termsOfServiceUrl |
Url | Obrigatório. Documentação legível de Termos de Serviço. |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed da entidade do negócio no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
|
É necessário exatamente um dos seguintes grupos de propriedades. | |||
discount |
Grupo 1 | Número |
Valor do desconto como um número. |
discountPercentage |
Grupo 2 | Número |
Valor do desconto como uma porcentagem do preço original. |
O exemplo a seguir mostra um elemento Deal
:
Exemplo 1
{ "@type": "Deal", "@id": "ONEDOLLARFEE", "dealCode": "THREEDOLLARFEE", "dealType": "CART_OFF", "availabilityId": [ "availability_may2020" ], "termsOfServiceUrl": "http://www.provider.com/onedollardeal", "applicableServiceType": [ "TAKEOUT" ], "discount": 3, "priceCurrency": "USD" }
Exemplo 2
{ "@type": "Deal", "@id": "10PERCOFF", "dealCode": "10PERCOFF", "dealType": "CART_OFF", "availabilityId": [ "availability_weekdays_evening" ], "termsOfServiceUrl": "http://www.provider.com/deal", "discountPercentage": 10, "priceCurrency": "USD" }
Exemplo 3
{ "@type": "Deal", "@id": "FREEDELIVERY", "dealCode": "FREEDELIVERY", "dealType": "DELIVERY_OFF", "availabilityId": [ "availability_may" ], "applicableServiceType": [ "DELIVERY" ], "termsOfServiceUrl": "http://www.provider.com/free_delivery_deal", "discountPercentage": 100, "eligibleTransactionVolumeMin": 25, "priceCurrency": "USD" }
Dados de serviço
Serviço (obrigatório)
Descreve os detalhes do serviço de entrega de comida de um restaurante. Service
é uma
entidade obrigatória para implementação.
A tabela a seguir lista as propriedades do tipo Service
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Identificador do serviço de fulfillment. Exemplo: |
|
serviceType |
ServiceType |
Obrigatório. O tipo de serviço oferecido. Os valores possíveis são "DELIVERY" ou "TAKEOUT". Exemplo: |
|
restaurantId |
String | Obrigatório. O valor @id da entidade "Restaurante" correlacionada a esta entidade "Serviço". Exemplo: |
|
menuId |
String | Obrigatório. O valor @id da entidade Menu associado a esta entidade Service. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed da entidade "Serviço" no formato de carimbo de data/hora ISO. Exemplo: |
|
isDisabled |
Booleano |
Indica se a entidade está desativada. Use esse tipo apenas quando precisar desativar a entidade devido a um evento inesperado e não souber quando o serviço será restabelecido (por exemplo, não use para feriados). Exemplo: |
|
servingConfig |
ServingConfig |
Configurações de exibição do serviço usadas para controlar vários recursos, por exemplo, desativar o widget de promoção etc. |
|
actionLinkUrl |
String |
Contém um URL para um serviço de entrega/retirada que será usado durante a migração da experiência completa de pedidos de comida para redirecionamento. |
O exemplo a seguir mostra um elemento Service
:
Exemplo 1
{ "@type": "Service", "@id": "10824/takeout", "serviceType": "TAKEOUT", "menuId": "10824", "restaurantId": "10824", "actionLinkUrl": "https://www.rwgpartnerwebsite.com/foodorderpickup/merchant_foepa_3" }
Exemplo 2
{ "@type": "Service", "@id": "10824/delivery", "serviceType": "DELIVERY", "menuId": "10824", "restaurantId": "10824", "actionLinkUrl": "https://www.rwgpartnerwebsite.com/foodorderdelivery/merchant_foepa_3" }
ServiceArea
Descreve a região geográfica em que a comida pode ser entregue. Essa entidade
precisa ser implementada se a entidade Service
associada tiver
serviceType
definido como "DELIVERY".
A tabela a seguir lista as propriedades do tipo ServiceArea
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da área de serviço. Exemplo: |
|
serviceId |
List<String> | Obrigatório. O valor @id da entidade "Service" correlacionada a esta entidade "ServiceArea". Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed de entidade "ServiceArea" no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
|
exclude |
Booleano |
Excluir essa área de cobertura da região de entrega total. Por exemplo, um CEP pode ser excluído de uma área de polígono maior. |
|
É necessário exatamente um dos seguintes grupos de propriedades. | |||
polygon |
Grupo 1 | List<String> |
Um polígono ou multipolígono expresso como uma série de três ou mais pontos delimitados por espaços. É recomendável que o primeiro e o último ponto sejam iguais, mas isso não é obrigatório. Cada ponto em um polígono ou multipolígono é definido por um ponto de latitude seguido por um ponto de longitude. Você também precisa especificar os pontos no sentido anti-horário. Exemplo: |
geoMidpointLatitude |
Grupo 2 | Número |
Indica a coordenada de latitude no centro da área do CÍRCULO. Exemplo: |
geoMidpointLongitude |
Grupo 2 | Número |
Indica a coordenada de longitude no centro da área do CÍRCULO. Exemplo: |
geoRadius |
Grupo 2 | Número inteiro |
Indica o raio aproximado (em metros) da área do CÍRCULO. Exemplo: |
postalCode |
Grupo 3 | String |
Indica o código postal. Exemplo: |
addressCountry |
Grupo 3 | String |
Indica o código de país ISO 3166-1 alfa-2 com duas letras. Exemplo: |
O exemplo a seguir mostra um elemento ServiceArea
:
Exemplo
{ "@type": "ServiceArea", "@id": "28427", "serviceId": [ "10824/delivery" ], "polygon": [ "37.4818562 -122.25801303 37.48247836 -122.25801303 37.48434484 -122.25621319 37.48621133 -122.25424681 37.49181077 -122.24704744 37.49305509 -122.24541414 37.49429942 -122.2436143 37.49803238 -122.23821477 37.49803238 -122.21285044 37.49367726 -122.15885517 37.49056645 -122.15722187 37.48621133 -122.15542202 37.48558917 -122.15525548 37.4818562 -122.15525548 37.43191387 -122.17865343 37.43191387 -122.23444854" ] }
OperationHours (obrigatório)
Descreve o período de pedidos em que os usuários podem acessar o fluxo e fazer pedidos
imediatos ou futuros. A implementação de OperationHours
é obrigatória e, por padrão,
representa a operação em todos os horários e dias.
Os atributos OperationHours
opens
e closes
especificam os horários de abertura e fechamento do
sistema on-line que permite que os usuários façam pedidos. Nesses horários de funcionamento do sistema
on-line, use ServiceHours
para especificar os horários de abertura e fechamento
em que os pedidos dos usuários podem ser atendidos.
Os horários precisam ser especificados no horário local do serviço. Não inclua um fuso
horário em um valor opens
. Se um fuso horário for especificado, o Google vai ignorar essas
informações. Para mais informações, consulte Formatos de data e hora.
A tabela a seguir lista as propriedades do tipo OperationHours
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da entidade que descreve a janela de pedidos em que os usuários podem acessar o fluxo e fazer pedidos em breve/futuros. Exemplo: |
|
serviceId |
List<String> | Obrigatório. O valor @id da entidade "Service" correlacionada a esta entidade "OperationHours". Exemplo: |
|
opens |
Hora ISO (local) |
Indica o horário específico do dia no formato ISO a partir do qual os pedidos dos usuários podem ser feitos. Exemplo: |
|
closes |
Hora ISO (local) |
Indica o horário específico do dia no formato ISO após o qual os pedidos dos usuários não podem ser feitos. Exemplo: |
|
dayOfWeek |
List<DayOfWeek > |
Uma lista dos dias da semana em que esses horários de funcionamento são válidos. Os valores aceitáveis são "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" e "SUNDAY". Exemplo: |
|
validFrom |
Carimbo de data/hora ISO | Obrigatório quando
Um carimbo de data/hora ISO que indica o horário de início do período de pedidos em que os usuários podem acessar o fluxo e fazer pedidos em breve/no futuro. Exemplo: |
|
validThrough |
Carimbo de data/hora ISO | Obrigatório quando
Um carimbo de data/hora ISO que indica o horário de término do período de pedidos, após o qual os usuários não podem mais acessar o fluxo e fazer pedidos futuros. Exemplo: |
|
isSpecialHour |
Booleano |
Um booleano que indica se o OperationHours é para horários especiais. Os valores aceitáveis são "false" e "true". Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed da entidade "OperationHours" no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
O exemplo a seguir mostra um elemento OperationHours
:
Exemplo 1
{ "@type": "OperationHours", "@id": "10824/deliveryOh", "serviceId": [ "10824/delivery" ], "isSpecialHour": false }
Exemplo 2
{ "@type": "OperationHours", "@id": "10824/takeoutOh", "serviceId": [ "10824/takeout" ], "isSpecialHour": false }
ServiceHours (obrigatório)
Descreve o período de atendimento em que os usuários podem escolher os horários de atendimento
(ASAP ou futuros). A implementação de ServiceHours
é necessária.
Os atributos OperationHours
opens
e closes
especificam os horários de abertura e fechamento do
sistema on-line que permite que os usuários façam pedidos. Nesses horários de funcionamento do sistema on-line, use ServiceHours
para especificar os horários de abertura e fechamento para quando os pedidos dos usuários podem ser atendidos.
Os horários precisam ser especificados no horário local do serviço. Não inclua um fuso
horário em um valor opens
. Se um fuso horário for especificado, o Google vai ignorar essas
informações. Para mais informações, consulte Formatos de data e hora.
A tabela a seguir lista as propriedades do tipo ServiceHours
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da entidade que descreve o período de atendimento em que os usuários podem escolher os horários de atendimento, ou seja, o mais rápido possível ou horários futuros. Exemplo: |
|
orderType |
OrderType |
Obrigatório. Uma string que indica se os horários de funcionamento se aplicam a pedidos urgentes ou avançados. Os valores aceitáveis são "ASAP" e "ADVANCE". Exemplo: |
|
serviceId |
List<String> | Obrigatório. O valor @id da entidade "Service" correlacionada a essa entidade "ServiceHours". Exemplo: |
|
operationHoursId |
List<String> | Obrigatório quando
O valor @id da entidade "OperationHours" correlacionada a esta entidade "ServiceHours". Exemplo: |
|
opens |
Hora ISO (local) |
Indica o horário específico do dia no formato ISO a partir do qual os pedidos dos usuários podem ser atendidos. Exemplo: |
|
closes |
Hora ISO (local) |
Indica o horário específico do dia no formato ISO após o qual os pedidos dos usuários não podem ser atendidos. Exemplo: |
|
dayOfWeek |
List<DayOfWeek > |
Uma lista dos dias da semana em que esses horários de funcionamento são válidos. Exemplo: |
|
validFrom |
Carimbo de data/hora ISO | Obrigatório quando
Um carimbo de data/hora ISO que indica o horário de início do período de pedidos em que os usuários podem acessar o fluxo e fazer pedidos em breve/no futuro. Exemplo: |
|
validThrough |
Carimbo de data/hora ISO | Obrigatório quando
Um carimbo de data/hora ISO que indica o horário de término do período de pedidos, após o qual os usuários não podem mais acessar o fluxo e fazer pedidos futuros. Exemplo: |
|
isSpecialHour |
Booleano |
Um booleano que indica se o OperationHours é para horários especiais. Os valores aceitáveis são "false" e "true". Exemplo: |
|
leadTimeMin |
Número inteiro |
Tempo mínimo estimado de entrega/retirada, em minutos, após a realização do pedido "ASAP". É altamente recomendável definir essa propriedade. Exemplo: |
|
leadTimeMax |
Número inteiro |
Tempo máximo estimado de entrega/retirada, em minutos, depois que o pedido "o mais rápido possível" for feito. É altamente recomendável definir essa propriedade. Exemplo: |
|
advanceBookingRequirementMin |
Número inteiro | Obrigatório quando
O número mínimo de minutos a partir do horário do pedido em que o pedido antecipado pode ser atendido. Por exemplo, se um pedido antecipado precisar de pelo menos 60 minutos para ser atendido, o advanceBookingRequirementMin será 60. Exemplo: |
|
advanceBookingRequirementMax |
Número inteiro | Obrigatório quando
O número máximo de minutos a partir do horário do pedido em que o pedido antecipado pode ser atendido. Por exemplo, se um pedido antecipado não puder ser atendido mais de dois dias depois, o valor de advanceBookingRequirementMax será 2880. Exemplo: |
|
advanceBookingSlotInterval |
String | Obrigatório quando
Intervalo entre dois horários de agendamento antecipado sucessivos. Por exemplo: se os horários de abertura e fechamento forem 8h e 20h e o advanceBookingSlotInterval for de 15 minutos, o usuário poderá escolher os horários de entrega 8h, 8h15, 8h30, 8h45 e assim por diante até as 20h. A duração precisa ser especificada como um período ISO. Por exemplo, "PT15M" significa intervalos de 15 minutos. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed de entidades de horários de funcionamento no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
O exemplo a seguir mostra um elemento ServiceHours
:
Exemplo 1
{ "@type": "ServiceHours", "@id": "613741/delivery", "orderType": "ASAP", "serviceId": [ "10824/delivery" ], "opens": "T00:00", "closes": "T00:00", "isSpecialHour": true, "validFrom": "2017-12-25T00:00:00-07:00", "validThrough": "2017-12-25T23:59:00-07:00" }
Exemplo 2
{ "@type": "ServiceHours", "@id": "10824/takeoutSh_0", "orderType": "ASAP", "serviceId": [ "10824/takeout" ], "operationHoursId": [ "10824/takeoutOh" ], "opens": "11:00", "closes": "21:00", "dayOfWeek": [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY" ], "isSpecialHour": false }
Fee
Descreve uma taxa. Se a entidade Service
associada tiver
serviceType
definido como "DELIVERY", será necessário um Fee
com feeType
definido como
"DELIVERY".
A tabela a seguir lista as propriedades do tipo Fee
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da entidade que descreve a taxa. Exemplo: |
|
serviceId |
List<String> | Obrigatório. O valor @id da entidade "Serviço" correlacionada a esta entidade "Taxa". Exemplo: |
|
feeType |
FeeType |
Obrigatório. Uma string que indica se a taxa se aplica a pedidos de entrega ou de serviço. Os valores aceitáveis são "DELIVERY" e "SERVICE". Exemplo: |
|
priceCurrency |
String | Obrigatório. É o código de moeda ISO 4217 com três letras. Exemplo: |
|
basePrice |
Número |
Preço base da taxa, aplicável quando Exemplo: |
|
minPrice |
Número |
Valor mínimo, limita o valor da taxa quando Exemplo: |
|
maxPrice |
Número |
Taxa máxima, limita o valor da taxa quando Exemplo: |
|
eligibleRegion |
List<String> |
O @id da ServiceArea para as regiões geopolíticas em que a taxa é válida. Use essa propriedade somente se as taxas de entrega variarem por região. Exemplo: |
|
eligibleTransactionVolumeMin |
Número |
O volume mínimo de transações, em uma unidade monetária, para que essa especificação de taxa seja válida. Exemplo: |
|
eligibleTransactionVolumeMax |
Número |
O volume máximo de transações, em uma unidade monetária, para o qual essa especificação de taxa é válida. Por exemplo, a taxa não se aplica se for acima de um determinado volume de pedidos. Exemplo: |
|
validFrom |
Carimbo de data/hora ISO |
Um carimbo de data/hora ISO que indica o horário de início da validade da taxa. Exemplo: |
|
validThrough |
Carimbo de data/hora ISO |
Um carimbo de data/hora ISO que indica o horário de término após o qual a taxa é inválida. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed da entidade de taxas no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
|
priority |
Número |
Um valor positivo diferente de zero. Quando mais de uma taxa é aplicada ao carrinho do usuário, a de maior prioridade tem precedência sobre as de menor prioridade. Se esse campo for fornecido, a prioridade terá precedência sobre uma prioridade calculada. Exemplo: |
|
É necessário exatamente um dos seguintes grupos de propriedades. | |||
price |
Grupo 1 | Número |
Preço da taxa. Se o preço não for fixo, minPrice e maxPrice podem ser fornecidos em vez de price. Exemplo: |
percentageOfCart |
Grupo 2 | Número |
Taxa em porcentagem do valor do carrinho. Os valores aceitáveis são valores flutuantes entre 0 e 100. Exemplo: |
pricePerMeter |
Grupo 3 | Número |
Taxa por metro de distância radial do usuário. Por exemplo, se a distância até o usuário for de 5 km e a taxa for de US $0,001, a taxa do usuário será de US $5. Exemplo: |
O exemplo a seguir mostra um elemento Fee
:
Exemplo 1
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "price": 5 }
Exemplo 2
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "pricePerMeter": 0.0005, "basePrice": 4 }
Exemplo 3
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "pricePerMeter": 0.0005, "basePrice": 4, "minPrice": 5, "maxPrice": 50 }
Exemplo 4
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "percentageOfCart": 5, "basePrice": 4 }
Example 5
{ "@type": "Fee", "@id": "28427", "serviceId": [ "10824/delivery" ], "feeType": "DELIVERY", "priceCurrency": "USD", "eligibleRegion": [ "28427" ], "eligibleTransactionVolumeMin": 20, "percentageOfCart": 5, "basePrice": 4, "minPrice": 5, "maxPrice": 50 }
Dados do cardápio
Menu (obrigatório)
Uma entidade obrigatória para implementação. Descreve um menu.
A tabela a seguir lista as propriedades do tipo Menu
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo do menu. Exemplo: |
|
name |
String |
O texto que pode identificar o menu quando um usuário está navegando nele. Exemplo: |
|
disclaimer |
String |
Isenção de responsabilidade do menu. Por exemplo, a divulgação de informações nutricionais e de alergênicos. Exemplo: |
|
disclaimerUrl |
Url |
URL que aponta para uma página com mais detalhes sobre a exoneração de responsabilidade. |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed de entidades de cardápio no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
O exemplo a seguir mostra um elemento Menu
:
Exemplo
{ "@type": "Menu", "@id": "10824" }
MenuSection
Uma entidade opcional a ser implementada. Descreve uma seção específica do menu.
A tabela a seguir lista as propriedades do tipo MenuSection
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da seção de menu. Exemplo: |
|
menuId |
List<ReverseReference > |
O valor @id da entidade Menu correlacionado a esta entidade Exemplo: |
|
menuSectionId |
List<String> |
Uma lista dos valores de @id das entidades Importante:use apenas uma das referências Exemplo: |
|
parentMenuSectionId |
List<ReverseReference > |
O valor @id da entidade Importante:use apenas uma das referências Exemplo: |
|
name |
String | Obrigatório. O texto que pode identificar o Exemplo: |
|
description |
String |
Uma descrição da seção do cardápio. Exemplo: |
|
image |
Url |
O URL de uma imagem da seção do menu. Exemplo: |
|
menuItemId |
List<String> |
Uma lista dos valores de @id das entidades Importante:use apenas uma das referências Exemplo: |
|
parentMenuItemId |
List<ReverseReference > |
Uma lista dos valores de @id das entidades Importante:use apenas uma das referências Exemplo: |
|
parentMenuItemOptionId |
List<ReverseReference > |
Uma lista dos valores de @id das entidades Importante:use apenas uma das referências Exemplo: |
|
eligibleQuantityMax |
Número inteiro |
O número máximo de complementos que podem ser selecionados na seção de complementos. Exemplo: |
|
eligibleQuantityMin |
Número inteiro |
O número mínimo de complementos que precisam ser selecionados na seção de complementos. Exemplo: |
|
defaultItemId |
List<String> |
Uma lista de @id que faz referência a entidades Exemplo: |
|
availabilityId |
List<String> |
Os valores de @id das entidades de disponibilidade que fornecem detalhes sobre quando a seção do menu está disponível. Exemplo: |
|
numberOfFreeAddOns |
Número inteiro |
Indica o número de complementos que um usuário pode selecionar sem custo financeiro. Válido apenas para seções de menu de complementos. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed de entidade Exemplo: |
|
applicableServiceType |
List<ServiceType > |
O serviço a que este |
|
offeredById |
List<String> |
Os valores de @id das entidades Exemplo: |
O exemplo a seguir mostra um elemento MenuSection
:
Exemplo 1
{ "@type": "MenuSection", "@id": "853705", "menuId": [ { "@id": "10824", "displayOrder": 853705 } ], "menuSectionId": [ 12345, 43645 ], "name": "Pasta", "applicableServiceType": [ "TAKEOUT" ], "offeredById": [ "italian_restaurant_location_1" ] }
Exemplo 2
{ "@type": "MenuSection", "@id": "427484", "menuId": [ { "@id": "4287", "displayOrder": 964376 } ], "menuItemId": [ 46784, 42728 ], "name": "Burger", "applicableServiceType": [ "TAKEOUT", "DELIVERY" ] }
Exemplo 3
{ "@type": "MenuSection", "@id": "3138486", "name": "Choose a side:", "parentMenuItemId": [ { "@id": "6680295", "displayOrder": 3138486 } ], "eligibleQuantityMax": "5", "numberOfFreeAddOns": "2" }
Exemplo 4
{ "@type": "MenuSection", "@id": "3138482", "name": "Additional Pizza Toppings", "parentMenuItemId": [ { "@id": "6680246", "displayOrder": 3138482 } ], "eligibleQuantityMax": "3" }
Disponibilidade
Uma entidade opcional a ser implementada. Descreve o período em que uma entidade MenuSection
é veiculada.
A tabela a seguir lista as propriedades do tipo Availability
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da entidade que descreve a disponibilidade da seção do menu. Exemplo: |
|
availabilityStarts |
Hora ISO (local) |
O carimbo de data/hora ISO que indica o horário de início em que a disponibilidade da seção do menu é válida. Exemplo: |
|
availabilityEnds |
Hora ISO (local) |
O carimbo de data/hora ISO que indica o horário de término após o qual a disponibilidade da seção do menu é inválida. Exemplo: |
|
availableDay |
List<DayOfWeek > |
Uma lista dos dias da semana em que a disponibilidade da seção do menu é válida. Exemplo: |
|
validFrom |
Carimbo de data/hora ISO |
Um carimbo de data/hora ISO que indica o horário de início em que a disponibilidade da seção do menu é válida. Exemplo: |
|
validThrough |
Carimbo de data/hora ISO |
Um carimbo de data/hora ISO que indica o horário de término após o qual a disponibilidade da seção do menu é inválida. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed da entidade "Disponibilidade" no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
O exemplo a seguir mostra um elemento Availability
:
Exemplo
{ "@type": "Availability", "@id": "85343705", "availabilityStarts": "06:00", "availabilityEnds": "22:30", "availableDay": [ "SATURDAY", "SUNDAY" ] }
MenuItem (obrigatório)
Uma entidade obrigatória para implementação. Descreve um item em uma entidade Menu
.
A tabela a seguir lista as propriedades do tipo MenuItem
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo do item de menu. Exemplo: |
|
name |
String | Obrigatório. O texto que pode identificar o Exemplo: |
|
description |
String |
Uma descrição do item do menu. Exemplo: |
|
image |
Url |
Um URL de uma imagem do item de menu. Exemplo: |
|
parentMenuSectionId |
List<ReverseReference > |
Uma lista dos valores de @id das entidades Importante:use apenas uma das referências Exemplo: |
|
menuAddOnId |
List<String> |
Uma lista dos valores de @id das entidades Importante:use apenas uma das referências Exemplo: |
|
nutrition |
NutritionInformation |
Informações nutricionais do prato, principalmente calorias. Exemplo: |
|
allergen |
List<Allergen > |
Alergénios deste MenuItem. Exemplo: |
|
additive |
List<Additive > |
Aditivos deste MenuItem. Exemplo: |
|
suitableDiet |
List<RestrictedDiet > |
O prato obedece à restrição alimentar descrita. Exemplo: |
|
depositInfo |
DepositInfo |
Informações sobre o pacote e a reciclagem deste MenuItem. Exemplo: |
|
numberOfServings |
Número inteiro |
Número de porções disponíveis em um determinado item do menu. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed de entidade Exemplo: |
O exemplo a seguir mostra um elemento MenuItem
:
Exemplo 1
{ "@type": "MenuItem", "@id": "18931508", "name": "Sauteed Baby Spinach", "parentMenuSectionId": [ { "@id": "3138479", "displayOrder": 18931508 } ] }
Exemplo 2
{ "@type": "MenuItem", "@id": "18931508", "name": "Hamburger", "parentMenuSectionId": [ { "@id": "4645747", "displayOrder": 12345 } ], "nutrition": { "calories": "400 cal" }, "allergen": [ { "allergenType": "GLUTEN", "levelOfContainment": "CONTAINS" } ], "additive": [ { "additiveName": "Sodium nitrite", "levelOfContainment": "CONTAINS" } ], "suitableDiet": [ "DIABETIC", "LOW_FAT" ] }
MenuItemOption
Uma entidade opcional a ser implementada. Descreve as escolhas que um usuário precisa fazer ao selecionar um prato/combo. O usuário precisa selecionar uma opção. Caso contrário, o pedido será considerado inválido (por exemplo, o usuário precisa escolher entre pizza pequena, média ou grande).
A tabela a seguir lista as propriedades do tipo MenuItemOption
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const |
Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da opção de item de menu. Exemplo: |
|
menuItemId |
ReverseReference |
Obrigatório. O valor @id da entidade Exemplo: |
|
optionType |
OptionType |
Uma string que indica se a opção de item do menu está categorizada por tamanho, opção ou pizza. Os valores aceitáveis são "SIZE", "OPTION" e "PIZZA_SIDE". "SIZE": tamanho da MenuItemOption. Por exemplo, pequeno, médio ou grande. "OPÇÃO": qualquer variação que não seja de tamanho (por exemplo, um prato que pode ser salada ou sanduíche). Se não for possível distinguir entre "SIZE" e "OPTION", use "OPTION". "PIZZA_SIDE": específico para pizzas. Por exemplo, Exemplo: |
|
value |
String ou
PizzaSide |
Obrigatório quando
Um valor de string ou de tipo enumerado. Os valores de enumeração são específicos do tipo de opção PIZZA_SIDE. |
|
applicableParentOptionValue |
String |
Uma string que contém o valor da opção do item pai para a qual essa opção está disponível. Exemplo: |
|
menuAddOnId |
List<String> |
Uma lista dos valores de @id das entidades Importante:use apenas uma das referências Exemplo: |
|
nutrition |
NutritionInformation |
Informações nutricionais do prato, principalmente calorias. Exemplo: |
|
allergen |
List<Allergen > |
Alergénios deste MenuItem. Exemplo: |
|
additive |
List<Additive > |
Aditivos deste MenuItem. Exemplo: |
|
depositInfo |
DepositInfo |
As informações de embalagem e reciclagem desse MenuItem. Exemplo: |
|
numberOfServings |
Número inteiro |
Número de porções disponíveis em uma determinada opção de item de menu. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed de entidades MenuItemOption no formato de carimbo de data/hora ISO, mas com o tipo "String". Exemplo: |
O exemplo a seguir mostra um elemento MenuItemOption
:
Exemplo 1
{ "@type": "MenuItemOption", "@id": "56177944", "menuItemId": { "@id": "18930213", "displayOrder": 1234 }, "optionType": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" }
Exemplo 2
{ "@type": "MenuItemOption", "@id": "56177944", "menuItemId": { "@id": "18930213", "displayOrder": 1234 }, "applicableParentOptionValue": "Small Pizza" }
MenuItemOffer (obrigatório)
Uma entidade obrigatória para implementação. Descreve uma oferta para uma entidade MenuItem
ou MenuItemOption
.
A tabela a seguir lista as propriedades do tipo MenuItemOffer
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@type |
Const | Obrigatório. Valor: |
|
@id |
String | Obrigatório. Um identificador exclusivo da oferta do item do menu. Exemplo: |
|
sku |
String | Obrigatório. Um identificador da oferta do item do menu. Os valores de SKU podem ser diferentes ou iguais em várias entidades de oferta de itens de menu. O valor do sku será definido na ordem quando fizermos uma chamada de API para você. Exemplo: |
|
price |
Número | Obrigatório. Preço do item do cardápio. Exemplo: |
|
priceCurrency |
String | Obrigatório. É o código de moeda ISO 4217 com três letras. Exemplo: |
|
availabilityId |
List<String> |
Os valores de @id das entidades de disponibilidade que fornecem detalhes sobre quando a oferta do item do menu está disponível. Exemplo: |
|
eligibleQuantityMin |
Número |
A quantidade mínima de pedidos para que o Exemplo: |
|
eligibleQuantityMax |
Número |
A quantidade máxima de pedidos para a qual o Exemplo: |
|
inventoryLevel |
Número |
O nível aproximado atual do inventário para o item ou os itens correspondentes a essa oferta de item de menu. Exemplo: |
|
dateModified |
Carimbo de data/hora ISO |
A data e a hora da última modificação do feed de entidade Exemplo: |
|
applicableServiceType |
List<ServiceType > |
O serviço a que este |
|
offeredById |
List<String> |
Os valores de @id das entidades Exemplo: |
|
É necessário exatamente um dos seguintes grupos de propriedades. | |||
menuItemId |
Grupo 1 | String |
O valor @id da entidade Exemplo: |
menuItemOptionId |
Grupo 2 | String |
O valor @id da entidade Exemplo: |
O exemplo a seguir mostra um elemento MenuItemOffer
:
Exemplo
{ "@type": "MenuItemOffer", "@id": "6680262", "sku": "offer-mediterranean-bagel", "menuItemId": "896532", "price": 15.5, "priceCurrency": "USD", "applicableServiceType": [ "DELIVERY" ], "offeredById": [ "bagel_shop_location_5" ] }
Nome
ReverseReference
A tabela a seguir lista as propriedades do tipo ReverseReference
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
@id |
String | Obrigatório. @id da entidade pai. |
|
displayOrder |
Número inteiro | Obrigatório. Mostra a ordem do item no elemento pai. |
NutritionInformation
A tabela a seguir lista as propriedades do tipo NutritionInformation
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
description |
String |
Informações nutricionais em texto livre. Por exemplo, "Contém conservantes". |
|
calories |
String |
O número de calorias em Cal, kcal ou kJ, usando o seguinte formato: valor Cal ou min-max Cal Exemplo: |
|
sodiumContent |
String |
O número de mg ou g de sódio, usando o seguinte formato: valor g ou min-max g Exemplo: |
O exemplo a seguir mostra um elemento NutritionInformation
:
Exemplo
{ "calories": "120-150 Cal", "sodiumContent": "100 mg" }
Alérgeno
A tabela a seguir lista as propriedades do tipo Allergen
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
allergenType |
AllergenType |
Obrigatório. Tipo de alérgeno. |
|
levelOfContainment |
ContainmentLevel |
Nível de um determinado alérgeno no item do menu. |
O exemplo a seguir mostra um elemento Allergen
:
Exemplo
{ "allergenType": "PEANUTS", "levelOfContainment": "MAY_CONTAIN" }
Aditivo
A tabela a seguir lista as propriedades do tipo Additive
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
additiveName |
String | Obrigatório. Nome do aditivo. |
|
levelOfContainment |
ContainmentLevel |
Nível de um determinado aditivo no item de menu. |
O exemplo a seguir mostra um elemento Additive
:
Exemplo
{ "additiveName": "Sodium nitrite", "levelOfContainment": "CONTAINS" }
DepositInfo
A tabela a seguir lista as propriedades do tipo DepositInfo
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
depositCode |
DepositCode |
Código do depósito. |
|
depositValue |
Número |
Valor numérico do depósito do item, por exemplo, quando reciclado. |
|
depositValueCurrency |
String |
Moeda do valor do depósito |
O exemplo a seguir mostra um elemento DepositInfo
:
Exemplo
{ "depositCode": "RECYCLABLE", "depositValue": 0.05, "depositValueCurrency": "USD" }
ServingConfig
Configurações de exibição do serviço usadas para controlar vários recursos, por exemplo, desativar o widget de promoção etc.
A tabela a seguir lista as propriedades do tipo ServingConfig
:
Propriedade | Tipo | Descrição | |
---|---|---|---|
disableOrderInstructions |
Booleano |
Oculta a capacidade de especificar instruções de pedido. |
|
disableMenuItemSpecialInstructions |
Booleano |
Oculta a capacidade de especificar instruções especiais em um item de menu. |
|
disableTipWidget |
Booleano |
Oculta o widget de gorjeta na página "Fazer pedido" do fluxo de pedidos. |
|
disablePromoWidget |
Booleano |
Oculta o widget de promoção na página "Fazer pedido" do fluxo de pedidos. |
|
menuItemSpecialInstructionsMaxLength |
Número |
Especifica o número máximo de caracteres que uma instrução especial de item de menu pode conter. |
|
orderInstructionsMaxLength |
Número |
Especifica o número máximo de caracteres que uma instrução de pedido pode conter. |
O exemplo a seguir mostra um elemento ServingConfig
:
Exemplo 1
{ "disableMenuItemSpecialInstructions": true }
Exemplo 2
{ "disableTipWidget": true, "disablePromoWidget": true }
Exemplo 3
{ "menuItemSpecialInstructionsMaxLength": 250, "orderInstructionsMaxLength": 1000 }
Enums
DayOfWeek
O tipo DayOfWeek
tem os seguintes valores possíveis:
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
ServiceType
O tipo ServiceType
tem os seguintes valores possíveis:
DELIVERY
TAKEOUT
OrderType
O tipo OrderType
tem os seguintes valores possíveis:
ASAP
ADVANCE
FeeType
O tipo FeeType
tem os seguintes valores possíveis:
DELIVERY
SERVICE
OptionType
O tipo OptionType
tem os seguintes valores possíveis:
SIZE
OPTION
PIZZA_SIDE
PizzaSide
O tipo PizzaSide
tem os seguintes valores possíveis:
PIZZA_SIDE_LEFT
PIZZA_SIDE_RIGHT
PIZZA_SIDE_WHOLE
AllergenType
Tipo de alergênicos por gs1:AllergenTypeCode.
O tipo AllergenType
tem os seguintes valores possíveis:
ALMONDS
ALPHA_ISOMETHYL_IONONE
ALCOHOL
AMYL_CINNAMAL
ANISE_ALCOHOL
BARLEY
BENZYL_ALCOHOL
BENZYL_BENZOATE
BENZYL_CINNAMATE
BENZYL_SALICYLATE
BRAZIL_NUTS
BUTYLPHENYL_METHYLPROPIONATE
CARROTS
CASHEW_NUTS
CELERY
CEREALS_CONTAINING_GLUTEN
CINNAMAL
CINNAMYL_ALCOHOL
CITRAL
CITRONELLOL
COCOA
CORIANDER
CORN
COUMARIN
CRUSTACEANS
EGGS
EUGENOL
EVERNIA_FURFURACEA
EVERNIA_PRUNASTRI
FARNESOL
FISH
GERANIOL
GLUTEN
HAZELNUTS
HEXYL_CINNAMAL
HYDROXYCITRONELLAL
HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL
KAMUT
LACTOSE
LUPINE
MACADAMIA_NUTS
METHYL_2_OCTYNOATE
MILK
MOLLUSCS
MUSTARD
NO_DECLARED_ALLERGENS
OAT
PEANUTS
PEAS
PECAN_NUTS
PISTACHIOS
POD_FRUITS
QUEENSLAND_NUTS
RYE
SESAME_SEEDS
SOYBEANS
SPELT
SULPHUR_DIOXIDE
TREE_NUTS
TREE_NUT_TRACES
WALNUTS
WHEAT
ContainmentLevel
O tipo ContainmentLevel
tem os seguintes valores possíveis:
CONTAINS
FREE_FROM
MAY_CONTAIN
DepositCode
O tipo DepositCode
tem os seguintes valores possíveis:
REUSABLE
RECYCLABLE
DealType
Categoria de transação em que o desconto será aplicado. A categoria pode ser o valor total do carrinho ou as taxas de entrega.
O tipo DealType
tem os seguintes valores possíveis:
CART_OFF
DELIVERY_OFF
RestrictedDiet
Tipo de dieta restrita por schema.org:RestrictedDiet.
O tipo RestrictedDiet
tem os seguintes valores possíveis:
DIABETIC
GLUTEN_FREE
HALAL
HINDU
KOSHER
LOW_CALORIE
LOW_FAT
LOW_LACTOSE
LOW_SALT
VEGAN
VEGETARIAN