Entidade de serviço

A entidade Service define os serviços de pedido de comida disponíveis em um restaurante, como retirada ou entrega. Ao definir uma entidade Service, use o tipo Serviço. Cada restaurante precisa estar conectado a pelo menos uma entidade de serviço do tipo retirada ou entrega e, no máximo, duas entidades de serviço: uma para viagem e um tipo de entrega.

Diagrama de relação entre entidades de serviço
Figura 1: entidade de serviço mostrando a relação com as entidades ServiceArea, ServiceHours, OperationHours e Fee.

Uma entidade Service define propriedades como o tipo de serviço, o horário de funcionamento e a área atendida. A entidade de serviço deve mudar e atualizar a cada upload do feed de dados.

Exemplo de entidade de serviço

O exemplo a seguir define uma entidade Service básica que aceita pedidos todos os dias.

{
  "@type":"Service",
  "@id":"takeout_1",
  "serviceType":"TAKEOUT",
  "menuId":"menu_1",
  "restaurantId":"restaraunt_1"
}
{
  "@type":"OperationHours",
  "@id":"takeout_1_op_hours",
  "serviceId":"takeout_1",
  "opens":"00:00",
  "closes":"23:59"
}
{
  "@type":"ServiceHours",
  "@id":"takeout_1_service_hours",
  "orderType":"ASAP",
  "serviceId":"takeout_1",
  "operationHoursId":"takeout_1_op_hours",
  "opens":"11:00",
  "closes":"21:00",
  "dayOfWeek":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY", "FRIDAY", "SATURDAY"],
  "leadTimeMin":"20",
  "leadTimeMax":"20",
  "isSpecialHour":false
}
{
  "@type":"ServiceHours",
  "@id":"takeout_1_service_hours_sun",
  "orderType":"ASAP",
  "serviceId":"takeout_1",
  "operationHoursId":"takeout_1_op_hours",
  "opens":"16:00",
  "closes":"21:00",
  "dayOfWeek":["SUNDAY"],
  "leadTimeMin":"20",
  "leadTimeMax":"20",
  "isSpecialHour":false
}
{
  "@type":"Service",
  "@id":"delivery_1",
  "serviceType":"DELIVERY",
  "menuId":"10824",
  "restaurantId":"10824"
}
{
  "@type":"OperationHours",
  "@id":"delivery_1_op_hours",
  "serviceId":"delivery_1",
  "opens":"00:00",
  "closes":"23:59"
}
{
  "@type":"ServiceHours",
  "@id":"delivery_1_service_hours",
  "orderType":"ASAP",
  "serviceId":"delivery_1",
  "operationHoursId":"delivery_1_op_hours",
  "opens":"11:00",
  "closes":"21:00",
  "dayOfWeek":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY", "FRIDAY", "SATURDAY",
  "SUNDAY"],
  "leadTimeMin":"50",
  "leadTimeMax":"50",
  "isSpecialHour":false
}
{
  "@type":"ServiceArea",
  "@id":"delivery_1_service_area",
  "serviceId":"delivery_1",
  "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"]
}
{
  "@type":"Fee",
  "@id":"delivery_1_fee",
  "serviceId":"delivery_1",
  "feeType":"DELIVERY",
  "priceCurrency":"USD",
  "eligibleRegion":"delivery_1_service_area",
  "eligibleTransactionVolumeMin":20,
  "percentageOfCart": 7
}

Assim que possível e horas avançadas

Os usuários podem fazer pedidos assim que possível durante o ServiceHours o mais rápido possível do restaurante ou podem fazer pedidos com antecedência no OperationHours do restaurante para serem entregues durante os ServiceHours anteriores. Para definir os horários de funcionamento avançados, crie uma entidade ServiceHours com a propriedade orderType definida como ADVANCE. Consulte Horários de entrega e retirada para mais detalhes e exemplos.

Desativar temporariamente uma entidade Service

Você pode suspender temporariamente ou substituir o ServiceHours por um período específico conhecido antecipadamente, definindo feriado e horário de funcionamento especial. Para desativar uma entidade de Serviço por um motivo imprevisível, envie uma solicitação de atualização em tempo real com a propriedade de entidade Serviço isDisabled definida como true.

Consulte Como excluir e desativar entidades para mais detalhes e exemplos.