Entité de service

L'entité Service définit les services de commande de repas disponibles dans un restaurant, comme les plats à emporter ou la livraison. Lorsque vous définissez une entité Service, utilisez le type Service. Chaque restaurant doit être associé à au moins une entité de service de type "à emporter" ou "livraison", et au maximum à deux entités de service (un type "à emporter" et un type "livraison").

Schéma des relations entre les entités de service
Figure 1:Entité de service montrant sa relation avec les entités ServiceArea, ServiceHours, OperationHours et Fee.

Une entité de service définit des propriétés telles que le type de service, les heures d'ouverture et la zone desservie. L'entité de service doit changer et s'actualiser à chaque importation de flux de données.

Exemple d'entité de service

L'exemple suivant définit une entité Service de base qui accepte les commandes tous les jours.

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

Heures de traitement ASAP et Advance

Les utilisateurs peuvent passer des commandes en urgence pendant les ServiceHours du restaurant en urgence ou à l'avance pendant les OperationHours du restaurant pour qu'elles soient traitées pendant les ServiceHours en avance. Pour définir les heures de service avancées, créez une entité ServiceHours avec la propriété orderType définie sur ADVANCE. Pour en savoir plus et obtenir des exemples, consultez la section Heures de livraison et de retrait.

Désactiver temporairement une entité Service

Vous pouvez suspendre temporairement ou écraser ServiceHours pour une période spécifique connue à l'avance en définissant des horaires d'ouverture exceptionnels et pour les jours fériés. Pour désactiver une entité Service pour une raison imprévue, envoyez une requête de mise à jour en temps réel avec la propriété isDisabled de l'entité Service définie sur true.

Pour en savoir plus et obtenir des exemples, consultez Supprimer et désactiver des entités.