Skip to content

Questions

Taking bookings with WooCommerce

You already have a WooCommerce shop, with its payment methods, its discount codes and its VAT. It might as well take payment for your bookings too. On one condition: the shop must never decide on its own whether a place is left.

Two ways to do it

The shop takes payment for the booking. The customer books in the booking form, then pays at your shop's checkout. There is no product to create.

A product sells a time slot. A product page offers the day, the time and the duration, and the customer adds the slot to the basket, like any other item.

What has to be right

  • Places are counted by the booking engine, not by the shop's stock. A product's stock doesn't know there is one session at 10:00 and another at 14:00.
  • A place added to the basket is held, for a while. While the customer pays, nobody else should take it. But an abandoned basket must release it on its own, otherwise your dates fill up with forgotten baskets.
  • The price comes from the booking: the same calculation the customer saw when booking, not a product's fixed price.
  • The order and the booking stay in step. Once paid, the booking is confirmed; if it is cancelled, the order says so.

What to check

  1. Add the last place to the basket in one browser, then try to book it in another: the second request should be refused.
  2. Abandon a basket: the place should go back on sale after the stated delay.
  3. Apply a discount code: the order total should match the booking.
  4. Pay by bank transfer: the booking should wait for the payment, not say it is confirmed.
English