The Jomres project first started in March of 2005. At that time there were no models to *cough*borrow*cough* ideas from, every booking engine was doing it's own thing. Nowadays most booking engines tie a booking to a room type. In Jomres in 2005 I chose to create individual rooms, and tie bookings to each room because at the time I was modelling for a boutique hotel that offered guests the option to choose a specific room.
Sneak peek to pique you
Here you can see a prototype which is working via a shortcode in a WordPress page :
History of the current booking engine
In the 16 years since then the booking engine has been the central part of Jomres Core. The old booking engine's booking form relied heavily on the Jomres framework to perform because when it was first developed JSON wasn't even a thing, jQuery was in it's infancy and us developers were blundering around in the dark for the most part. It has since evolved to become a huge, monolithic 10k line block of code that tries to handle everything booking related. It has become extremely difficult to modify and debug, adding new features has became a challenge and every change is liable to introduce bugs and problematic behaviour. This meant that Jomres was unable to evolve within the booking market where the Big Boys set the model that us smaller booking engines must seek to replicate and improve upon to retain customers. This is what developers call "Technical Debt".
I could see this problem coming from a long way back so in 2019 I started by creating the Jomres REST API. This functionality aims to be CMS agnostic, it doesn't rely on host CMSs to provide it's endpoints, instead it's integral to Jomres Core, although the endpoints themselves are provided by Jomres Core Plugins. Over the years since then I have used, refined, tweaked and improved the REST API considerably.
The REST API is now ready to become the focal point of the Jomres New Booking Engine. It's purpose is to allow the booking engine to be completely headless, so you can choose whatever technology you want to use to create bookings in Jomres itself.
Progress on the NBE is going well. Currently I have a working booking form which is included via an iframe. It doesn't have to be an iframe, the form itself is entirely responsive and standalone, but using an iframe means that we can use shortcodes for placing the form wherever we want on the site in articles and content.
It requires the property to be using the Standard tariff editing mode, and for now just SRPs are supported. This will be extended to support MRPs soon, but right now I need to nail down the basic functionality. There are three main plugins, the form itself, NBE Common, which is responsible for collation of information and storage, and the new API Feature Booking, which is the interface between the booking form and NBE Common. The API Feature Booking plugin is what allows me to make this new booking engine completely headless, meaning that you can write your booking form in any language you feel comfortable with.
Currently it's not possible to take payments headlessly, so once a booking is marked as ready in the NBE, if the property has any gateways configured and enabled, then the guest is redirected to the booking confirmation page that the old booking engine redirects you to, to allow for payments. If no gateways are configured (as in the example in this video) then the booking is simply added and emails etc are sent out as normal.
I can't yet give a specific timeline as to when the NBE can be declared fully functional. Over the next few days and weeks I'll start releasing the three main plugins and updates to those plugins for users to start playing around with and battle testing. Once that's done to my satisfaction, I'll update this blog with more information.
It is inevitable that the NBE will discard some of the functionality of the older booking engine. For example the NBE will not support the Totals and Deposit override that the older form offered to property managers, or the short bookings option that was available to fixed period bookings. In all these years I've probably only one or twice ever seen a property use that feature. The goal is to slim down the activities of the booking engine, making it much easier for guests to create bookings on your sites so it's vital right now that I carefully throw out the bathwater while hanging onto baby.
- Created on .