PS PrestaShop Intermediate

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.

Updated Module version 1.0.0

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

  1. From the back office, open Modules > Module Manager.
  2. Click Upload a module and drop the module ZIP archive.
  3. 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:

  1. The booking is saved with the Pending payment status.
  2. The module creates a dedicated cart for the exact deposit amount and links the booking to it.
  3. The customer is redirected to the usual checkout and pays the deposit with the payment method of their choice.
  4. 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.

Was this page helpful?

Still stuck? Contact support