Entidad de servicio

La entidad Service define los servicios de pedido de comida disponibles en un restaurante, como comida para llevar o entrega a domicilio. Cuando definas una entidad Service, usa el tipo Servicio. Cada restaurante debe estar conectado, como mínimo, a una entidad de servicio, ya sea de comida para llevar o de entrega a domicilio, y como máximo dos entidades de servicio: una para llevar y otra para entrega a domicilio.

Diagrama de relación de la entidad de servicio
Figura 1: Entidad de servicio que muestra su relación con las entidades ServiceArea, ServiceHours, OperationHours y Tarifa.

Una entidad de servicio define propiedades, como el tipo de servicio, el horario disponible y el área en la que se entrega servicio. Se espera que la entidad de servicio cambie y se actualice con cada carga del feed de datos.

Ejemplo de entidad de servicio

En el siguiente ejemplo, se define una entidad Service básica que acepta pedidos todos los días.

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

Horario anticipado y anticipado

Los usuarios pueden realizar pedidos lo antes posible durante los ServiceHours del restaurante lo antes posible o pueden hacerlo con anticipación dentro de las OperationHours del restaurante para que se entreguen durante las ServiceHours anticipadas. Para definir un horario de servicio avanzado, crea una entidad ServiceHours con la propiedad orderType establecida en ADVANCE. Consulta Horario de entrega y retiro para obtener más detalles y ejemplos.

Inhabilitar temporalmente una entidad Service

Puedes suspender o reemplazar ServiceHours de forma temporal durante un período específico que se conoce de antemano. Para ello, debes configurar el horario especial y especial. Para inhabilitar una entidad de Servicio por una razón imprevista, envía una solicitud de actualización en tiempo real con la propiedad de entidad Servicio isDisabled establecida en true.

Consulta Inhabilita y borra entidades para obtener más detalles y ejemplos.