Wybór formatu dostępności
Dane o dostępności możesz określić na 2 sposoby: (1) Spots Open lub (2) powtarzanie. Wybierz tylko jedną metodę do stosowania u wszystkich sprzedawców i usług. Gdy wybierzesz metodę, musisz jej używać do całej integracji (plików danych, serwera rezerwacji i aktualizacji w czasie rzeczywistym).
Z tego przewodnika dowiesz się, który format dostępności jest dla Ciebie bardziej odpowiedni:
- Czy w swoim systemie przechowujesz dostępność jako wyraźne terminy, np. 8:00–8:30?
- użyć Spotów otwartych.
- Czy w swoim systemie przechowujesz informacje o dostępności w formacie cyklicznym, co oznacza, że sprzedawcy oferują usługi o stałej częstotliwości i niewielkiej liczbie odchyleń? Na przykład przedziały są powtarzane co 15 minut w godzinach 9:00–17:00. Co 15 minut jest dostępne tylko jedno miejsce.
- Użyj opcji Powtarzanie
- Czy w przypadku usług Twoich sprzedawców może być więcej niż jedno otwarte miejsce naraz? Na przykład 30 otwartych miejsc na zajęcia
- użyć Spotów otwartych.
- Nie dotyczy Cię żadna z powyższych sytuacji?
- użyć Spotów otwartych.
- Uwaga: korzystanie z powtarzania jest bardziej efektywne i może skutkować mniejszymi rozmiarami pliku danych, ale jeśli Twój model danych nie natywnie obsługuje powtarzania, nie zalecamy korzystania z powtarzania, ponieważ konieczne będzie ponowne obliczenie przedziałów cyklicznych dla każdej aktualizacji w czasie rzeczywistym.
Spoty otwarte
Definicje parametrów:
- spot_open: liczba miejsc aktualnie dostępnych dla tego wpisu dostępności.
- spot_total: łączna liczba miejsc, które sprzedawca ma na potrzeby tej konfiguracji, w tym miejsc, które są niedostępne.
Metoda Otwórz spoty wyraźnie wskazuje każdą dostępność na przedziałach i obsługuje model z wieloma miejscami dla tej samej usługi. Te 2 parametry razem tworzą cyfrową reprezentację pojemności usługi.
Podczas dokonywania rezerwacji liczba spot_open powinna się zmniejszyć o 1 przez aktualizację w czasie rzeczywistym (liczba spot_total powinna pozostać taka sama). Gdy spot_open = 0, boks nie powinien się już pojawić.
Przykładowe usługi
Zajęcia z jogi lub salon piękności mają poniższe plany pięter i nie są aktywne rezerwacje
Plik danych o dostępności 2 przedziałów u tych sprzedawców będzie wyglądać tak:
JSON
{ "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ą
Teraz użytkownik zarezerwuje jedno z tych miejsc. W momencie rezerwacji dokonywana jest aktualizacja w czasie rzeczywistym, aby zaktualizować informacje o dostępności. W następnym pliku danych o dostępności codziennej ta rezerwacja powinna być widoczna. W przypadku tych sprzedawców plik danych o dostępności powinien zawierać wartość spot_open 1 września 2018 roku o 16:00:00 czasu GMT. Przedział 1 września 2018 roku o 20:00:00 czasu GMT pozostaje bez zmian.
Fragment kodu z rezerwacją
JSON
{ "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
- powtarzanie: przedstawienie powtarzających się przedziałów dostępności.
- powtórz_until_sec: sygnatura czasowa czasu UTC ostatniego czasu boksu, który jest powtarzany do końca dostępności.
- powtórz_co_sekcja: liczba sekund między kolejnymi przedziałami dostępności. Jeśli na przykład powtórzenie_każdego_sekundy = 1800 (30 minut), a początek start_sec rozpocznie się o 9:00, przedziały będą powtarzane co 30 minut o 9:00, 9:30, 10:00 itd.
- Uwaga: nie trzeba podawać parametrów spot_open i spot_total, ponieważ obie mają wartość 1, chyba że istnieje wyjątek harmonogramu_exception
Metoda powtarzania pokazuje dostępność codziennie w przypadku usług, które mają miejsce w regularnych odstępach czasu, na przykład usługa świadczona co 30 minut od 9:00 do 17:00 każdego dnia. Dzięki powtarzaniu możesz określić czas trwania boksu, pierwszy dzień w boksie, jego częstotliwość i czas, w którym ma się zakończyć powtarzanie. Uwaga: należy określić nowy zestaw przedziałów cyklicznych dla każdego dnia oddzielnie. Jeśli przedział został już zarezerwowany w zakresie czasu, określisz wyjątek od harmonogramu. Na przykład powtórz tę czynność co pół godziny od 9:00 do 21:00, chyba że jest otwarta od 11:00 do 11:30. Każda usługa ma własne wyjątki dotyczące powtarzania i planowania.
Przykładowe usługi
W salonie kosmetycznym obowiązuje ten plan pięter oraz brak aktywnych rezerwacji
Plik danych o dostępności dla 1 boksu u tych sprzedawców będzie wyglądać tak:
Fragment kodu z kanału:
JSON
{ "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ą
Teraz wyobraź sobie, że użytkownik rezerwuje strzyżenie z Sylwą o 12:30. Podczas dokonywania rezerwacji przeprowadzana jest aktualizacja w czasie rzeczywistym, aby zaktualizować informacje o dostępności. W następnym pliku danych o dostępności codziennej ta zmiana powinna być widoczna. Plik danych o dostępności dla tych sprzedawców będzie miał wyjątek dla harmonogramu w godzinach 12:30–13:00 w przypadku usługi o czasie trwania 30 min.
Fragment kodu z rezerwacją:
JSON
{ "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 } } ], } ] }