Chọn định dạng tình trạng còn chỗ
Có hai cách để chỉ định dữ liệu về tình trạng còn chỗ: (1) Số chỗ còn trống hoặc (2) Tần suất. Chỉ chọn một phương thức để sử dụng trên tất cả người bán và dịch vụ của bạn. Sau khi chọn một phương thức, bạn phải sử dụng phương thức đó cho toàn bộ quá trình tích hợp (nguồn cấp dữ liệu, máy chủ đặt phòng và nội dung cập nhật theo thời gian thực).
Hãy tham khảo hướng dẫn sau đây để xác định định dạng tình trạng còn hàng phù hợp hơn:
- Trong hệ thống của bạn, bạn có lưu trữ tình trạng còn chỗ dưới dạng các khung giờ rõ ràng không, ví dụ: 8:00 – 8:30?
- Sử dụng tính năng Spots Open
- Trong hệ thống của mình, bạn có lưu trữ tình trạng còn hàng ở định dạng định kỳ không, nghĩa là người bán có các dịch vụ diễn ra với tần suất nhất quán với một vài điểm khác biệt không? Ví dụ: các khung giờ lặp lại sau mỗi 15 phút từ 9:00 đến 17:00 và mỗi khung giờ chỉ có một chỗ ngồi.
- Sử dụng tính năng Lặp lại
- Đối với dịch vụ của người bán, có thể có nhiều vị trí trống cùng một lúc không? Ví dụ: 30 chỗ trống cho một lớp học
- Sử dụng tính năng Spots Open
- Không có lý do nào nêu trên?
- Sử dụng tính năng Spots Open
- Lưu ý: Mặc dù việc sử dụng tính năng định kỳ sẽ hiệu quả hơn và có thể giúp giảm kích thước nguồn cấp dữ liệu, nhưng nếu mô hình dữ liệu của bạn không hỗ trợ tính năng định kỳ ngay từ đầu, thì bạn không nên sử dụng tính năng này vì bạn sẽ cần tính toán lại giá trị của toàn bộ ngày cho các khung giờ định kỳ cho mỗi lần cập nhật theo thời gian thực.
Vị trí còn trống
Định nghĩa tham số:
- spots_open: Số chỗ trống hiện có cho mục thông tin về tình trạng còn chỗ.
- spots_total: Tổng số vị trí mà người bán có cho cấu hình này, bao gồm cả những vị trí không có sẵn.
Phương thức Spots Open (Vị trí mở) cho biết rõ ràng mọi vị trí có sẵn và hỗ trợ mô hình có nhiều vị trí cho cùng một dịch vụ. Hai thông số này phối hợp với nhau để tạo ra một bản trình bày kỹ thuật số về dung lượng dịch vụ.
Khi có một lượt đặt chỗ, số lượng chỗ_rảnh sẽ giảm đi 1 thông qua quá trình cập nhật theo thời gian thực (số lượng chỗ_tổng sẽ không thay đổi). Khi spots_open = 0, vị trí này sẽ không còn xuất hiện nữa.
Dịch vụ mẫu
Một lớp học yoga hoặc một thẩm mỹ viện có các bản vẽ mặt bằng sau đây và không có lượt đặt phòng nào đang hoạt động
Hình 1: Bản vẽ mặt bằng không có lượt đặt phòng đang hoạt động Nguồn cấp dữ liệu về tình trạng còn hàng cho 2 khung giờ tại những người bán này sẽ có dạng như sau:
{ "availability": [ { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
Ví dụ về Dịch vụ có lượt đặt chỗ
Hình 2: Bản vẽ mặt bằng có một lượt đặt phòng đang hoạt động Bây giờ, người dùng đặt một trong các chỗ. Khi có một lượt đặt phòng, hệ thống sẽ gửi thông tin cập nhật theo thời gian thực để cập nhật tình trạng phòng. Lượt đặt phòng này sẽ được phản ánh trong nguồn cấp dữ liệu về tình trạng phòng hằng ngày tiếp theo. Nguồn cấp dữ liệu về tình trạng còn chỗ của những người bán này sẽ giảm 1 chỗ trống cho khung giờ 16:00:00 ngày 1 tháng 9 năm 2018 theo giờ GMT. Khung giờ 20:00:00 (giờ GMT) ngày 1 tháng 9 năm 2018 vẫn giữ nguyên.
Đoạn trích nguồn cấp dữ liệu có lượt đặt phòng
{ "availability": [ { "spots_total": 6, "spots_open": 5, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
Tần suất
Định nghĩa thông số
- recurrence: Biểu thị các khung giờ liên tục lặp lại.
- repeat_until_sec: Dấu thời gian theo chuẩn UTC của thời điểm kết thúc khung giờ cuối cùng mà tình trạng còn chỗ lặp lại cho đến khi nào.
- repeat_every_sec: Số giây giữa các khung giờ liên tiếp có sẵn. Ví dụ: nếu repeat_every_sec = 1800 (30 phút) và start_sec bắt đầu lúc 9:00, thì các khung giờ sẽ lặp lại sau mỗi 30 phút vào lúc 9:00, 9:30, 10:00, v.v.
- Lưu ý: Bạn không cần chỉ định spots_open và spots_total, cả hai đều được giả định là 1 trừ khi có schedule_exception
Phương thức định kỳ cho biết tình trạng hoạt động hằng ngày đối với các dịch vụ diễn ra theo chu kỳ đều đặn, ví dụ: một dịch vụ diễn ra sau mỗi 30 phút từ 9:00 đến 17:00 mỗi ngày. Với tính năng lặp lại, bạn chỉ định thời lượng của khung giờ, thời điểm đầu tiên trong ngày mà khung giờ đó xuất hiện, tần suất lặp lại của khung giờ đó và thời điểm khung giờ đó ngừng lặp lại trong cùng ngày. Lưu ý: Bạn cần chỉ định riêng một nhóm khung giờ định kỳ mới cho mỗi ngày. Nếu một khung giờ đã được đặt trong phạm vi thời gian, bạn sẽ chỉ định một trường hợp ngoại lệ về lịch biểu. Ví dụ: lặp lại mỗi nửa giờ từ 9 giờ sáng đến 9 giờ tối, ngoại trừ từ 11:00 đến 11:30. Mỗi dịch vụ riêng lẻ sẽ có các trường hợp ngoại lệ về lịch biểu và tần suất lặp lại riêng.
Dịch vụ mẫu
Một thẩm mỹ viện có bản vẽ mặt bằng sau đây và không có lượt đặt phòng nào đang hoạt động
Hình 3: Bản vẽ mặt bằng không có lượt đặt phòng đang hoạt động. Giả sử mỗi dịch vụ chỉ có 1 chỗ trống (ví dụ: Sally cung cấp dịch vụ cắt tóc mỗi 30 phút, nhưng chỉ có thể phục vụ 1 khách hàng tại một thời điểm). Nguồn cấp dữ liệu về tình trạng còn hàng cho 1 khung giờ tại những người bán này sẽ có dạng như sau:
Đoạn trích nguồn cấp dữ liệu:
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", # haircut "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT } } ] }
Ví dụ về dịch vụ có lượt đặt chỗ
Hình 4: Bản vẽ mặt bằng có một lượt đặt phòng đang hoạt động. Giả sử mỗi dịch vụ chỉ có 1 chỗ trống (ví dụ: Sally cung cấp dịch vụ cắt tóc mỗi 30 phút, nhưng chỉ có thể phục vụ 1 khách hàng tại một thời điểm). Bây giờ, hãy tưởng tượng rằng một người dùng đặt lịch cắt tóc với Sally lúc 12:30. Khi có một lượt đặt phòng, hệ thống sẽ gửi thông tin cập nhật theo thời gian thực để cập nhật tình trạng phòng. Lượt đặt phòng này sẽ được phản ánh trong nguồn cấp dữ liệu về tình trạng phòng hằng ngày tiếp theo. Nguồn cấp dữ liệu về tình trạng còn chỗ của những người bán này sẽ có một ngoại lệ về lịch biểu trong khoảng thời gian từ 12:30 đến 13:00 đối với một dịch vụ có thời lượng 30 phút.
Đoạn trích nguồn cấp dữ liệu có một lượt đặt phòng:
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT }, "schedule_exception": [ { "time_range": { "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT } } ], } ] }