Bookings 1.14.0 – REST API Edition

Written by Lauren Smith on April 10, 2019 Blog, Product News.

Today we’re excited to announce that WooCommerce Bookings 1.14.0 has been released!

Release Highlights

Bookings 1.14.0 is our second minor release for WooCommerce Bookings in 2019 and our focus for this release was primarily focused on behind the scenes infrastructure improvements to ensure we provide more stability and a faster cadence as we begin to move into more feature work for the remaining part of the year.

That being said we are also very excited to announce that we will be releasing a REST API for Bookings as part of this release. We spent a lot of time and effort building out the initial architecture and the initial set of endpoints but this is only the first step. We will continue to expand and iterate on this API as we gather feedback on what is needed most.

Infrastructure Improvements

While the majority of our infrastructure improvements have no immediate effect on the final release I do want to highlight the ones that we are particularly excited about since they will have a direct impact on the quality and stability of our releases.

  • We have entirely refactored our unit testing infrastructure to make unit tests easier to setup and run during local development. We also made changes to our CI environment to ensure that our legacy unit tests will be run alongside these new unit tests while we begin transitioning over to this new testing framework.
  • We built out a brand new E2E test suite utilizing Puppeteer. Additionally, this has been integrated it into our CI environment to allow us to start writing robust integration tests.
  • We made some package management improvements that allowed us to drastically cut down the size of the release files to help speed up load times.
  • WooCommerce 3.6 is in the final testing stages and this Bookings release has been fully tested to be compatible with 3.6

REST API

As mentioned earlier we are also very excited to announce that we will be releasing a REST API for Bookings as part of this release. Bookings, Slots, Categories, Resources, and Products are now all available for retrieval through the convenient REST API. Currently these are all GET requests, however, we will be looking to support more methods ( e.g. POST, UPDATE, etc.. ) in future releases.

For more details on the REST endpoints please refer to the documentation we have prepared for this feature.

Bug Fixes

We are also including a few bug fixes as part of this release:

  • Bring back filter woocommerce_bookings_gcalendar_sync to update google event during sync.
  • Fix for lack of support in IE11 for the front-end calendar
  • Issue when tokens expired for the Google Calendar connection
  • Changing resource would reset the person count to be empty
  • Fatal error when opening the admin calendar after certain Google recurring events were added
  • PHP warning when trying to display guest name in the bookings order details in certain situations
  • Prevent duplicate order status update notice
  • Customer defined blocks with different duration will not work
  • Misc copy and UX tweaks

Soft Deprecations

With the new REST API we are soft deprecating these AJAX endpoints. These endpoints will continue to work but we are deprecating them so that eventually any integrations with Bookings will move over to utilizing the REST API.

  • find_booking_slots – /wp-json/wc-bookings/v1/products/slots
  • get_all_bookable_products –  /wp-json/wc-bookings/v1/products
  • get_all_categories_with_bookable_products – /wp-json/wc-bookings/v1/products/categories
  • get_all_resources – /wp-json/wc-bookings/v1/resources

As always we are excited to get this release out into your hands and please share your feedback as you begin exploring this release and the new REST API, thanks!

cta-banner-10-product-page-v2_2x

One Response

  1. verbalp
    April 30, 2019 at 7:17 pm #

    Great update!

    Function wc_bookings_get_time_slots() now has the $include_sold_out=false argument.

    This is great as it allows to show customers fully booked slots on the boking calendar. This lets them know that slots were open but have been booked, creating a sense of urgency while limiting customer service questions about “hidden” (fully booked) slots during opening hours.

    I used to edit that function manually after each update to get this behavior. Could you make $include_sold_out a backend option in Woocommerce Bookings settings so that admins can choose to show fully booked slots or not?