Entidad del servicio

La entidad Service define los servicios de pedido de comida disponibles en un como comida para llevar o entrega a domicilio. Cuando definas una entidad Service, usa el tipo Service. Cada restaurante debe estar conectado a, al menos, una entidad de servicio de tipo para llevar o entrega a domicilio y, como máximo, dos entidades de servicio; un tipo de comida para llevar y otro de entrega a domicilio.

Diagrama de relación de entidad de servicio
Figura 1: Entidad de servicio que muestra su relación con Entidades ServiceArea, ServiceHours, OperationHours y Fee.

Una entidad Service define propiedades como el tipo de servicio, las horas disponibles, y el área en la que presta servicio. Se espera que la entidad del 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
}

Lo antes posible y en horario anticipado

Los usuarios pueden hacer pedidos lo antes posible durante las ServiceHours del restaurante lo antes posible o hacer pedidos con anticipación dentro de las OperationHours del restaurante para que se completen durante las ServiceHours por adelantado. Para definir el horario de servicio anticipado, crea una entidad ServiceHours con la propiedad orderType establecida en ADVANCE. Consulta Horarios de entrega y retiro para obtener más detalles y ejemplos.

Inhabilita temporalmente una entidad Service

Puedes suspender o reemplazar temporalmente las ServiceHours durante un período específico conocido con anticipación si configuras el horario especial y de festividades. Para inhabilitar una entidad de servicio por un motivo imprevisto, envía una solicitud de actualización en tiempo real con la propiedad isDisabled de la entidad Servicio configurada en true.

Consulta Cómo inhabilitar y borrar entidades para obtener más detalles y ejemplos.