Thực thể dịch vụ

Thực thể Service xác định các dịch vụ đặt đồ ăn có tại một nhà hàng, chẳng hạn như mua mang đi hoặc giao hàng. Khi xác định thực thể Service, hãy sử dụng loại Dịch vụ. Mỗi nhà hàng cần phải kết nối với ít nhất một thực thể dịch vụ mang loại hình mang đi hoặc giao hàng và tối đa hai thực thể dịch vụ; một loại hình mua mang đi và một loại hình giao hàng.

Sơ đồ mối quan hệ pháp nhân dịch vụ
Hình 1: Thực thể dịch vụ cho thấy mối quan hệ tương ứng với các thực thể ServiceArea, ServiceHours, OperationsGiờ và Phí.

Thực thể Dịch vụ xác định các thuộc tính như loại dịch vụ, giờ hoạt động và khu vực được phân phát. Thực thể dịch vụ dự kiến sẽ thay đổi và làm mới sau mỗi lần tải nguồn cấp dữ liệu lên.

Ví dụ về thực thể dịch vụ

Ví dụ sau đây xác định một thực thể Service cơ bản chấp nhận các đơn đặt hàng mỗi ngày.

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

Thời gian sớm nhất có thể và giờ đặt trước

Người dùng có thể đặt hàng sớm nhất có thể trong Giờ dịch vụ của nhà hàng hoặc nếu họ có thể đặt hàng trước trong Giờ hoạt động của nhà hàng để thực hiện đơn đặt hàng đó trong Giờ dịch vụ trước. Để xác định giờ dịch vụ trước, hãy tạo một thực thể ServiceHours với thuộc tính orderType được đặt thành ADVANCE. Hãy xem phần Giờ giao hàng và đến lấy hàng để biết thêm thông tin chi tiết và ví dụ.

Tạm thời tắt thực thể Service

Bạn có thể tạm ngưng hoặc ghi đè ServiceGiờ trong một khoảng thời gian cụ thể đã biết trước thời gian đó bằng cách đặt ngày lễ và giờ đặc biệt. Để tắt một thực thể Service vì một lý do không lường trước được, hãy gửi một yêu cầu cập nhật theo thời gian thực có thuộc tính thực thể Dịch vụ isDisabled được đặt thành true.

Xem bài viết Xoá và vô hiệu hoá các mục để biết thêm chi tiết và ví dụ.