Entità di servizio

L'entità Service definisce i servizi di ordinazione di cibo disponibili in un ristorante, ad esempio l'asporto o la consegna a domicilio. Quando definisci un'entità Service, utilizza il tipo Service. Ogni ristorante deve essere collegato ad almeno un'entità di servizio di tipo asporto o consegna e a un massimo di due entità di servizio: un tipo di asporto e un tipo di consegna.

Diagramma delle relazioni tra entità di servizio
Figura 1: entità Servizio che mostra la sua relazione con le entità ServiceArea, ServiceHours, OperationHours e Fee.

Un'entità Servizio definisce proprietà come il tipo di servizio, l'orario di apertura e l'area servita. L'entità del servizio dovrebbe cambiare e aggiornarsi a ogni caricamento del feed di dati.

Esempio di entità di servizio

L'esempio seguente definisce un'entità Service di base che accetta ordini ogni giorno.

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

Ore ASAP e Advance

Gli utenti possono effettuare ordini ASAP durante le ServiceHours ASAP del ristorante oppure possono effettuare ordini in anticipo durante le OperationHours del ristorante per farli evadere durante le ServiceHours in anticipo. Per definire gli orari di servizio in anticipo, crea un'entità ServiceHours con la proprietà orderType impostata su ADVANCE. Per ulteriori dettagli ed esempi, consulta la sezione Orari di consegna e ritiro.

Disattivare temporaneamente un'entità Service

Puoi sospendere temporaneamente o sovrascrivere ServiceHours per un periodo di tempo specifico noto in anticipo impostando festività e orari speciali. Per disattivare un'entità Servizio per un motivo imprevisto, invia una richiesta di aggiornamento in tempo reale con la proprietà isDisabled dell'entità Servizio impostata su true.

Per ulteriori dettagli ed esempi, consulta la sezione Eliminare e disattivare le entità.