Booking & Appointments — Complete guide
Install, configure and run appointment booking: calendar, slots, services, staff, weekly schedule, online deposit and dashboard for PrestaShop 8 and 9.
Overview
The Booking & Appointments module turns your PrestaShop store into a booking platform. Customers pick a service, a staff member, then a date and a slot in a four-step flow. Available slots are computed in real time from the schedules, the service duration and a configurable buffer time.
A deposit (fixed or percentage) can be requested. It is charged through a native PrestaShop order, so you immediately benefit from every payment method already configured on your store, with no extra gateway. The module is compatible with PrestaShop 8 and 9, in single and multistore, and translated into five languages.
Key concepts
- Service: what the customer books (a haircut, a consultation, a visit…). It carries a duration, a buffer time, a price and, optionally, a deposit.
- Resource / staff member: the person, room or equipment delivering the service. Each resource has its own weekly schedule.
- Slot: a bookable time, generated automatically from the schedule, the step, the duration and the buffer time.
- Deposit: the amount paid online at booking time. The balance can be paid on site.
Installation
- From the back office, open Modules > Module Manager.
- Click Upload a module and drop the module ZIP archive.
- Once installed, click Configure.
On installation, the module creates the required tables, adds the Bookings menu to the back office and generates a hidden technical product “Deposit / Booking” used to collect the deposit.
The technical product “Deposit / Booking” is not visible in the catalog and must not be deleted manually. It is automatically removed when the module is uninstalled.
General configuration
The module configuration page gathers the global settings of the booking engine.
Slot step
The step (in minutes, 30 by default) defines the interval between two proposed slot starts. A 30-minute step on a one-hour service will offer, for example, 9:00, 9:30, 10:00, and so on.
Minimum lead time
The minimum lead time (in minutes) prevents booking slots too close to the present moment. With 120 minutes, a customer cannot book a slot starting in less than two hours.
Booking horizon
The horizon (in days, 60 by default) limits the calendar depth: beyond it, days are no longer bookable.
Automatic confirmation
When automatic confirmation is on, a booking without a deposit is confirmed immediately. Turn it off to validate each request manually from the back office.
When a deposit is requested, the booking is always confirmed after the payment is validated, whatever the automatic confirmation setting.
Login required
Enable Login required to allow booking only for logged-in customers. Disabled, booking remains possible as a guest.
Notification e-mail
Enter the e-mail address that will receive the admin notifications for every new booking. Leave it empty to use the shop address.
Create a service
Go to Bookings > Services then click Add. A service includes:
- Name and description (translatable per language);
- Duration in minutes: sets the slot length;
- Buffer time in minutes: idle time added after the appointment (cleaning, preparation) during which the staff member stays unavailable;
- Price of the service;
- Deposit type: none, fixed amount or percentage of the price;
- Color: visual marker used in the back office;
- Staff members: the resources allowed to deliver this service.
Create a staff member and their schedule
In Bookings > Resources / Staff, add your staff members (practitioners, rooms, equipment). Each resource has a translatable name, job/role and description.
Weekly schedule
The schedule editor is embedded in the resource form. For each day of the week, define up to three time windows (for example 9:00–12:00 and 14:00–18:00). Bookable slots are then computed within those windows, minus appointments already taken and buffer times.
Leave a day with no window to make it a non-working day (weekend, day off). No slot will be offered.
Assignment and the “Any” option
A service can be delivered by one or several staff members. On the customer side, if several staff members are available, the customer can pick a specific one or select “Any”.
With “Any”, the module automatically assigns the first available staff member on the chosen slot, which maximizes occupancy without any action on your part.
Closures and public holidays
From the module configuration page, the Closures & public holidays panel lets you block periods. For each closure, set a start date, an end date, a resource (or “All” for a global closure) and a reason.
No slot is offered during closed periods. Global closures apply to every staff member; targeted closures concern a single staff member.
The deposit, in detail
When a service requires a deposit, the booking flow ends with a payment:
- The booking is saved with the Pending payment status.
- The module creates a dedicated cart for the exact deposit amount and links the booking to it.
- The customer is redirected to the usual checkout and pays the deposit with the payment method of their choice.
- Once payment is validated, the booking switches to Confirmed, the order is linked to the booking and the confirmation e-mails are sent.
Since the deposit is charged through a standard PrestaShop order, it appears in the totals, on the invoice and in the order detail in the back office. The balance can be paid on site on the appointment day.
Customer flow
The public booking page presents a four-step flow: service, staff member, date and slot, then contact details. The calendar highlights available days; clicking a day reveals the free slots. After entering their details, the customer confirms the booking (and pays the deposit where applicable).
Manage bookings
The Bookings > Bookings menu lists every appointment with its status, highlighted by a color code. You can filter by status, view a booking detail (customer, service, staff member, slot, link to the order) and change its status.
The available statuses are: Pending payment, Pending confirmation, Confirmed, Cancelled, Completed and No-show.
The “My bookings” area
Logged-in customers find their appointment history in their account, through a My bookings link. Each row shows the reference, the service, the staff member, the date, the time and the status.
E-mails
The module sends transactional e-mails, provided in HTML and text, and translatable:
- Confirmation: sent to the customer when the booking is confirmed;
- Pending: sent to the customer when the booking awaits validation;
- Admin notification: sent to the notification address for every new booking.
Booking page and URL
The booking page is reachable through a clean URL such as /reservation (URL rewriting enabled). Add this link to a menu or a CMS page to direct your visitors to the booking flow.
Uninstallation
Uninstalling removes the menu, the technical deposit product and the module configuration. Orders already placed keep the lines they contained.
FAQ
How is the deposit charged?
Through a native PrestaShop order: the module creates a dedicated cart for the deposit amount, then redirects the customer to the checkout. Every payment method already configured can be used.
Can I manage several staff members?
Yes. Each staff member has their own weekly schedule and can be linked to one or several services. The “Any” option automatically assigns the first available staff member.
How are double bookings prevented?
An anti-collision check runs at submission time. If the slot is no longer free, the customer is asked to pick another one.
Is the module compatible with PrestaShop 9?
Yes, the module is compatible with PrestaShop 8.x and 9.x, in single and multistore.
Troubleshooting
No slot is displayed
Check that the staff member has a weekly schedule for the relevant day, that the service is assigned to them, and that the day is not covered by a closure. Also review the minimum lead time and the booking horizon.
The customer is not redirected to payment
Make sure the service does request a deposit (fixed or percentage type) and that at least one payment method is active on the store.
The /reservation URL returns a 404 error
Enable friendly URL rewriting in Shop Parameters > Traffic & SEO, then clear the PrestaShop cache.