Wybór formatu dostępności
Dane dotyczące dostępności można określić na 2 sposoby: (1) miejsca dostępne lub (2) powtarzanie. Wybierz tylko jedną metodę do użycia we wszystkich sprzedawcach i usługach. Po wybraniu metody musisz jej używać w całości integracji (pliki danych, serwer rezerwacji i aktualizacje w czasie rzeczywistym).
Skorzystaj z tego przewodnika, aby określić, który format dostępności jest bardziej odpowiedni:
- Czy w Twoim systemie dostępność jest przechowywana jako konkretne przedziały czasowe, na przykład 8:00–8:30?
- Użyj miejsc dostępnych.
- Czy w Twoim systemie dostępność jest przechowywana w powtarzalnym formacie, co oznacza, że usługodawcy oferują usługi o stałej częstotliwości z niewielką liczbą odstępstw? Na przykład sloty powtarzają się co 15 minut w godzinach 9:00–17:00, a w każdym 15-minutowym interwale dostępne jest tylko jedno miejsce.
- Użyj opcji Powtarzanie.
- Czy w przypadku usług sprzedawców może być więcej niż jedno miejsce naraz? Na przykład 30 miejsc w zajęciach
- Użyj miejsc dostępnych.
- Żadne z tych stwierdzeń nie pasuje?
- Użyj miejsc dostępnych.
- Uwaga: choć używanie powtórzeń jest wydajniejsze i może skutkować mniejszymi rozmiarami plików danych, jeśli Twój model danych nie obsługuje powtórzeń w wersji natywnej, nie zalecamy korzystania z powtórzeń, ponieważ będziesz musiał ponownie przeliczyć powtarzające się sloty na cały dzień dla każdej aktualizacji w czasie rzeczywistym.
Spots Open
Definicje parametrów:
- spots_open: liczba miejsc obecnie dostępnych w przypadku tego wpisu z informacją o dostępności.
- spots_total: łączna liczba miejsc, które sprzedawca ma w ramach tej konfiguracji, w tym tych, które są niedostępne.
Metoda otwartych miejsc reklamowych wyraźnie wskazuje dostępność każdego miejsca reklamowego i wspiera model z kilkoma miejscami reklamowymi dla tej samej usługi. Te dwa parametry współpracują ze sobą, aby tworzyć cyfrowe odwzorowanie pojemności usługi.
Gdy nastąpi rezerwacja, liczba miejsc_dostępnych powinna zmniejszyć się o 1 w ramach aktualizacji w czasie rzeczywistym (liczba miejsc_razem powinna pozostać taka sama). Gdy spots_open = 0, boks nie powinien się już wyświetlać.
Przykładowe usługi
Zajęcia jogi lub salon kosmetyczny mają takie plany piętra i brak aktywnych rezerwacji:
Ilustracja 1. Plan piętra bez aktywnych rezerwacji Plik danych z dostępnością dla 2 miejsc u tych sprzedawców wyglądałby tak:
{ "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", } ] }
Przykładowe usługi z rezerwacją
Ilustracja 2. Plan piętra z jedną aktywną rezerwacją Użytkownik rezerwuje jedno z miejsc. Gdy nastąpi rezerwacja, w czasie rzeczywistym wysyłana jest aktualizacja dostępności. Rezerwacja powinna zostać uwzględniona w kolejnych codziennych plikach danych z dostępnością. W pliku danych o dostępności tych sprzedawców wartość wymiaru spots_open zostałaby zmniejszona o 1 dla 1 września 2018 r., 16:00 czasu UTC. Czas 8:00:00 1 września 2018 r. (czasu GMT) pozostaje bez zmian.
Fragment danych z rezerwacją
{ "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", } ] }
Powtarzanie
Definicje parametrów
- recurrence: reprezentacja stale powtarzających się przedziałów dostępności.
- repeat_until_sec: sygnatura czasowa UTC czasu zakończenia ostatniego przedziału, w którym dostępność jest powtarzana.
- repeat_every_sec: liczba sekund między kolejnymi przedziałami dostępności. Jeśli na przykład parametr repeat_every_sec = 1800 (30 minut), a wartość parametru start_sec to 9:00, sloty będą się powtarzać co 30 minut o godzinach 9:00, 9:30, 10:00 itd.
- Uwaga: nie trzeba podawać wartości atrybutów spots_open ani spots_total, ponieważ zakładają one, że ich wartość wynosi 1, chyba że występuje atrybut schedule_exception.
Metoda powtarzania wskazuje dostępność na podstawie codziennych usług, które występują w regularnych odstępach czasu, na przykład usługa, która odbywa się co 30 minut od 9:00 do 17:00 każdego dnia. W przypadku powtórzeń musisz określić czas trwania slotu, jego pierwszy czas wystąpienia w ciągu dnia, częstotliwość powtarzania oraz czas, do którego ma się powtarzać. Uwaga: dla każdego dnia należy określić nowy zestaw powtarzających się przedziałów. Jeśli w podanym zakresie czasowym slot jest już zarezerwowany, należy określić wyjątek do harmonogramu. Na przykład powtarzaj co pół godziny od 9:00 do 21:00, z wyjątkiem godzin 11:00–11:30. Każda usługa będzie miała własne wyjątki dotyczące powtarzania i harmonogramu.
Przykładowe usługi
Salon piękności ma taki plan piętra i brak aktywnych rezerwacji
Rysunek 3. Plany pięter bez aktywnych rezerwacji. Zakładamy, że na każdą usługę przypada tylko 1 miejsce (np. Sally świadczy usługi strzyżenia co 30 minut, ale może zajmować się tylko 1 klientem naraz). Plik danych z dostępnością dla 1 miejsca u tych sprzedawców będzie wyglądał tak:
Fragment pliku danych:
{ "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 } } ] }
Przykładowe usługi z rezerwacją
Rysunek 4. Plany pięter z jedną aktywną rezerwacją. Zakładamy, że na każdą usługę przypada tylko 1 miejsce (np. Sally świadczy usługi strzyżenia co 30 minut, ale może zajmować się tylko 1 klientem naraz). Wyobraź sobie, że użytkownik umawia się na strzyżenie do Sally o 12:30. Gdy dokonano rezerwacji, informacja o dostępności jest aktualizowana w czasie rzeczywistym. Rezerwacja powinna zostać uwzględniona w następnym pliku danych o dostępności na dany dzień. Plik danych o dostępności tych sprzedawców zawierałby wyjątek dotyczący harmonogramu w godzinach 12:30–13:00 dla usługi trwającej 30 minut.
Krótki tekst w pliku danych z rezerwacją:
{ "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 } } ], } ] }