Using the Bookings API, you can build a customized bookings experience.

To process bookings on your site, first set up your site to accept bookings as described in About Wix Bookings.

You must upgrade your site to a Premium Business Plan in order to accept bookings and receive payments.

Typical Booking Lifecycle

The following list outlines the data flow in a typical booking lifecycle:

  1. Get a list of services from one of:

    • A dataset connected to the Bookings/Services collection.
    • A query on the Bookings/Services collection.
  2. A service is selected.

  3. Get available slots by calling the getServiceAvailability() function using the selected service's Service ID (_id) value. (Optionally, you can pass a AvailabilityOptions object to change the limits on the slots that are returned.)

  4. You can match the returned slots to their related staff member items using the Bookings/Staff collection.

  5. A slot is selected.

  6. Gather values for the selected service's form fields, if there are any. The list of form fields is found in the form property of the items in the Bookings/Services collection.

  7. Get the available payment options for the currently logged-in user and the selected service with the getCheckoutOptions() function.

  8. A payment option is selected (offline, online, a pricing plan package, or a pricing plan membership).

  9. Call the checkoutBooking() function. Pass the selected slot object, the values for the form fields, and the payment type if necessary. Note, the specified payment type must match the service's configuration in your site's Dashboard. You cannot book a paid service as if it were free.

    • If the service is free, you do not need to pass a paymentOptions object.
    • If the service is not free and you pass a paymentOptions object indicating the payment should be online, a payment popup is presented for the user to enter payment information, such as credit card information.
    • If the service is not free and you pass a paymentOptions object indicating the payment should be offline, the payment popup is not presented to the user.

To use the Bookings API, import wixBookings from the wix-bookings module:

import wixBookings from 'wix-bookings';
javascript | Copy Code

Was this helpful?