The Service
entity defines the food ordering services available at a
restaurant, such as takeout or delivery. When defining a Service
entity, use
the Service type.
Each restaurant needs to be connected to at least one service entity of either takeout or delivery type
and at most two service entities; one takeout and one delivery type.
A Service entity defines properties such as the service type, hours available, and area served. Service entity is expected to change and refreshes with each data feed upload.
Service entity example
The following example defines a basic Service
entity that accepts orders
every day.
{
"@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
}
ASAP and Advance hours
Users can place ASAP orders during the restaurant's ASAP ServiceHours or they can place orders ahead of time within the restaurant's OperationHours to be fulfilled during advance ServiceHours. To define advance service hours, create a ServiceHours entity with the orderType
property set to ADVANCE
. See Delivery and Pickup Hours for more details and examples.
Temporarily disable a Service
entity
You can temporarily suspend or overwrite ServiceHours for a specific time period that is known ahead of time by setting holiday and special hours. To disable a Service entity for an unforeseen reason, send a real-time update request with the Service entity isDisabled
property set to true
.
See Deleting and disabling entities for more details and examples.