Realizacje
BookingHive: wtyczka rezerwacyjna dla WooCommerce
Dla BookingHive zaprojektowaliśmy i zbudowaliśmy wtyczkę, która zamienia produkt WooCommerce w rezerwację z kalendarzem dat. MVP oddaliśmy po 30 dniach, a następnie rozwinęliśmy je w pełny system: cennik sezonowy, panel pobytów, przypomnienia dla gości i dodatki sprzedawane w tym samym zamówieniu.
Technologie użyte w tej realizacji


Wyzwanie
WooCommerce świetnie sprzedaje produkty na sztuki, ale nie zna pojęcia doby, sezonu ani zajętego terminu. BookingHive sprzedawał noclegi i wynajem, więc każda rezerwacja wymagała ręcznego sprawdzania dostępności, liczenia ceny i pilnowania, żeby dwie osoby nie kupiły tego samego terminu.
Gotowe systemy rezerwacyjne oznaczały osobną platformę, abonament i rozjazd danych między sklepem a kalendarzem. Klient chciał zostać w WooCommerce, z jego płatnościami i zamówieniami. Do tego liczył się czas: rozwiązanie miało działać przed sezonem.
Kluczowe wymagania
- Kalendarz zakresu dat na stronie produktu z ceną przeliczaną na bieżąco
- Osobne stawki dla sezonów i lat na jednym produkcie
- Pewność, że ten sam termin nie zostanie sprzedany dwa razy
- Panel, w którym właściciel widzi pobyty, a nie listę zamówień
- Automatyczna komunikacja z gościem przed przyjazdem i możliwość samodzielnej anulacji
- Uniwersalność: apartamenty, domki, łodzie, auta, kajaki czy sprzęt
Rozwiązanie
Zbudowaliśmy wtyczkę, która dodaje do WooCommerce nowy typ produktu: rezerwację. Sklep sprzedaje doby, tygodnie lub całe okresy zamiast sztuk, a płatności, zamówienia i maile dalej obsługuje WooCommerce.
Zakres realizacji:
- typ produktu „rezerwacja” i kalendarz na stronie produktu (dwa miesiące, wygaszone zajęte dni)
- cennik sezonowy z osobnymi stawkami na okresy i lata oraz reguły okresów (dowolny zakres, pełne tygodnie, cały okres)
- tryb gości (cena za obiekt) i tryb sztuk (cena mnożona przez ilość)
- panel rezerwacji z filtrami, rozbiciem ceny na doby i zmianą statusu zamówienia
- moduł przypomnień (14, 7 i 1 dzień przed przyjazdem) z linkiem do samodzielnej anulacji
- dodatki do rezerwacji, obsługa Polylang i WPML, instrukcja i FAQ w dwóch językach
Cena liczona po stronie serwera
Kalendarz pokazuje cenę od razu, ale ostateczną kwotę zawsze wylicza serwer na podstawie cennika. Każda doba dostaje stawkę z okresu, w który wpada. Dane z przeglądarki nie decydują o cenie, więc nikt nie zmanipuluje jej w koszyku. Właściciel układa sezony w prostej tabeli, a stawki na przyszły rok przygotowuje bez ruszania bieżących.
Zero podwójnych rezerwacji
Dostępność sprawdzamy dwa razy: przy dodaniu do koszyka i tuż przed płatnością. Zapis rezerwacji jest kolejkowany, więc gdy dwie osoby kupują ten sam termin w tej samej sekundzie, druga dostaje odmowę, zanim zapłaci. Anulowane i zwrócone zamówienia automatycznie zwalniają daty.
Własna tabela i moduły do włączenia
Rezerwacje trzymamy we własnej tabeli bazy danych. Pięciodniowy pobyt to jeden wiersz, a nie pięć, więc panel rezerwacji działa szybko także przy pełnym sezonie. Funkcje dodatkowe, jak przypomnienia dla gości czy licznik oglądających, są osobnymi modułami. Klient włącza tylko to, czego potrzebuje, a rdzeń pozostaje lekki.
W najnowszej wersji dodaliśmy dodatki do rezerwacji: śniadanie, sprzątanie czy skippera gość kupuje jednym kliknięciem w tym samym zamówieniu. Każda rezerwacja może więc przynieść więcej przychodu.
Jak pracowaliśmy
1. MVP w 30 dni
Zaczęliśmy od rdzenia: typ produktu, kalendarz, cennik i blokowanie terminów. Klient sprzedawał rezerwacje po miesiącu.
2. Przebudowa w produkt
Na podstawie pracy w sezonie przepisaliśmy wtyczkę: nowy panel, moduły, walidacja serwerowa, tryby gości i sztuk.
3. Testy i dokumentacja
QA sprawdziło scenariusze graniczne, a zespół contentu przygotował instrukcję, FAQ i stronę produktu po polsku i angielsku.
4. Ciągły rozwój
Wtyczka jest dostępna w katalogu WordPress.org, a kolejne wydania dokładają funkcje, takie jak dodatki do rezerwacji.
Efekty
30 dni
od startu prac do działającego MVP sprzedającego rezerwacje
2.2.0
aktualna wersja; dostępność i ceny liczy system, bez ręcznej pracy
Rozwiązanie zbudowane dla jednej marki okazało się na tyle uniwersalne, że stało się samodzielnym produktem. W ramach realizacji przygotowaliśmy też dokumentację: 17 rozdziałów instrukcji, 31 pytań w FAQ i 38 zrzutów ekranu, po polsku i angielsku.














