Pháp nhân dịch vụ

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

Sơ đồ mối quan hệ của thực thể dịch vụ
Hình 1: Thực thể dịch vụ thể hiện mối quan hệ với các thực thể ServiceArea, ServiceHour, OperationDevices và Charge.

Thực thể Service xác định các thuộc tính như loại dịch vụ, giờ hoạt động và khu vực phục vụ. Thực thể dịch vụ dự kiến sẽ thay đổi và làm mới 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 đơ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
}

Càng sớm càng tốt và giờ sớm

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

Tạm thời vô hiệu hoá một thực thể Service

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

Hãy xem phần Xoá và vô hiệu hoá thực thể để biết thêm thông tin chi tiết và ví dụ.