Vince's Blog

Keeping you up-to-date (Jim Beam not included)

Coming soon : the Jomres New Booking Engine

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

For Jomres v2, in early 2006 I started experimenting with a new technology called Ajax. I could see it's potential but at the time browser support for it was very inconsistent. Thankfully a new javascript project offered functionality that made cross broswer support for Ajax very easy. That project was called jQuery.

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.


Development Status

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 .


vince picDeveloped and maintained by Vince Wooll, Jomres was initially conceived in early 2005 as a Mambo based solution to a client’s hotel management needs. While it wasn't originally expected to be an online booking system it quickly morphed into one as users requested more and more features.

As the number of feature requests grew Vince knew that he would need to dedicate more time to the project and in July 2005 Jomres was released as a commercial project. Since then Jomres has become the world's oldest online booking plugin for any PHP CMS. It has been used in Joomla 1.0, 1.5, 2.5, 3 & 4 and WordPress 4, 5 & 6.

Aladar joined the project in 2010 after using Jomres for his own projects. He was active on the forum, helping other members of the community and eventually Vince invited him to join the team. Between 2010 and 2018 he was an integral part of the project and made many significant contributions.

Whilst not formally part of the Jomres project, Rodrigo Rocco and Vince have become firm friends. Rod is a freelancer who specialises in doing custom work for Jomres users and developing custom plugins for the system that take advantage of it's modular design. He has built many useful extensions including his fabulous Valentina Template Override Package.

Jomres and the Jomres Logo is trademarked and can't be used without written consent from the owner. is not affiliated with or endorsed by the Joomla! Project, Open Source Matters or the WordPress project. The Joomla! & WordPress names and logos are used under a limited license granted by Open Source Matters and the WordPress Projects.

© Copyright 2005 - 2022 Vince Wooll