Vince's Blog

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

Channel Management Framework Introduction

The Channel Management Framework is a new Jomres feature that is currently under development.

It's not just one plugin, but a whole slew of different plugins that work around one single premise :

 

Jomres wants to connect to the world,

and the world wants to connect to Jomres.

 

Why is this important?

 

There are hundreds, if not thousands of OTAs (online travel agencies) on the planet, each one vying for your money. Indeed, it could be argued that Jomres itself has evolved into a very low-cost OTA, it's no longer a simple plugin for Joomla or Wordpress. Nowadays it's a complete system with features that just aren't available in any other product in it's class.

Foremost of these, but under-utilised to date, are the REST API and the Webhook features. When I first wrote them I anticipated that third party developers who developed plugins for Jomres could be able to use this functionality for features such as channel management and app connectivity. What I didn't appreciate at that time, however, was just how complex it would be to create such a plugin for Jomres. The more I thought about it, the more requests for features I got from clients for connectivity to other channels besides the current Beds24 channel manager, the more I realised that I'd have to do something about this.

Enter the Channel Manager Framework

There are a whole host of different ways that Channels (itself a very umbrella term) want to connect to a system like Jomres. First there are channels like Rentals United etc. These use the OTA xml standard for the bulk of their connectivity. There are others that can interact using REST API (typically using OAuth2 tokens). On top of this I've had a few potential clients request that Jomres be able to create master/slave relationships with other Jomres sites, essentially creating a network of Jomres sites.

How could I possibly create a reasonable way for all of these systems to be able to talk to Jomres, and in turn allow Jomres to talk to them? Looking back at the Beds24 plugin for Jomres, that took several months of intensive work, and many more months of maintenance to get it into a stable condition. I couldn't reasonably create more plugins for other channel managers in the same mold, the workload and maintenence effort would be impossible to manage.

After giving this a significant amount of thought I finally arrive at a solution that I believe solves the problem. It involves creating not just one, but several different plugins, which I'll describe here.

Channel Management Framework plugins breakdown

Channel Management Framework REST API plugin

The CMF REST API plugin ( Channel Management Framework Representational State Transfer Application Programming Interface ) is the foundation tool that all of the other CMF plugins will rely upon.

Whenever a plugin (thin channel manager plugin, xml interface, Jomres2Jomres, more on these later) needs to talk to Jomres Core, it will go through the CMF REST API. This means that the CMF REST API has to provide every reasonable feature required to access Jomres property configuration settings and synchronisation functionality. In essence, it effectively becomes a channel manager like interface for Jomres based sites because it adds both the ability to receive, and send, booking, property, availability and pricing information.

You can see the current set of API endpoints at it's dedicated page. This list of endpoints is growing as more and more are added.

The CMF REST API relies on registered users on the "child" site creating OAuth2 REST API client/secret key pairs. The CMF Integration plugin handles that automatically for thin plugins, however any registered user (if allowed) has the ability to create key pairs, they don't need to be managers. Once this user has a key pair they can then import properties from outside sources, and manage those properties, all through the CMF REST API.

This plugin is the first one that will be completed. This is because all of the other plugins that are planned will rely on this plugin's endpoints. Additionally, with the completion of this plugin it's possible for other remote services to connect directly to Jomres without needing any other plugins. Much of the logic for connectivity can be done on the remote site using that channel's own applications.

The elegance of this approach is that it allows any number of different channel managers to connect to a Jomres site. You're not just limited to one channel or another, the system natively manages multiple channels, including for the same property manager. This is a step up from any other comparable product in the Jomres marketplace because you are not constrained by the choices that I make. With a little know-how any competent third party developer will be able to use the existing thin plugins as a template to make their own channel manager thin plugins for Jomres because I've done most of the work for them already. I know this methodology works because I did the same thing with payment gateways and now there are 60+ of them on the market for Jomres.

On completion, more in-depth documentation will be made available on the manual.

Channel Management Framework Integration plugin

This plugin provides a variety of utilities and features that thin plugins can use.

One of the key elements when connecting systems to each other is to find commonality. A property feature on one site could be called "Balcony" and have an ID of 99, the same feature in Jomres could have a local ID of 45. When you import a property into Jomres, property features, for example, is one of the things that you'll want to add to the Jomres property, therefore the integration plugin allows you to create maps between different channel's elements (dictionary items), such as property features, room features, room types etc on the remote service, and then marry those up with corresponding elements within Jomres. Directly connecting services, however, will not use this functionality to build commonality, instead they'd use the CMF REST API to find dictionary items such as property features, room features etc and manage cross referencing remotely.

Other features it offers is a framework to talk to the CMF REST API, meaning that it will handle all communications between thin plugins and the Jomres system itself. It also offers functionality to download remote images. Think of it as a kind of factory plugin that offers tools to support the thin plugins. This makes the thin plugins themselves easier to create, which opens up the possibility of having lots more channels to be able to connect to Jomres.

Thin plugins

A variety are planned or in development.

Rentals United Channel Manager

Currently I'm working on developing the Rentals United thin plugin. This is being developed in tandem with the Integration plugin. After the CMF REST API plugin is completed I'll be able to release the first iteration (I expect there to be more during the Beta phase) of the Integration and RU plugins.

Cubilis

After the RU plugin is completed I'm expecting to add Cubilis as another thin plugin.

BMXML

This is the third planned Channel Manager thin plugin.

Jomres2Jomres

I'm particularly excited by this plugin because it offers a significant set of advantages to my users. The short description is that it allows sharing of bookings and properties across a variety of different Jomres based sites.

In the longer term, however my goal is to evolve this plugin in such a way that it's possible for my users to create complete networks of properties and sites that do not rely on outside Channel Managers at all.

Why is this significant, you ask?

Whenever a Channel Manager handles a booking on your behalf, it charges the account holder, typically the property manager, a fee. Property managers are already under considerable pressure. OTAs demand their slice, Channel Managers another slice of the cake. There isn't nearly enough left for the property manager themselves. These are the people who are up in the small hours fixing problems with heating, or paying for cleaners and agencies to find them more guests. They're the ones who have to find the funds to purchase the properties, pay the taxes and holiday rental licenses.

In short, the increasing number of channels and middlemen taking a bite out of the rental purchase cake is large and I'm intending to make the Jomres2Jomres plugin a way of removing some of these middlemen, if, like me, you have an idependent streak a mile wide.

As users you will build your own Jomres2Jomres networks (using the CMF plugins) and you will be in a position to build a complete slew of interconnected sites. There will not be any handling fees (charged by me, if you choose to implement those yourself, that's up to you). I simply ask for a single, flat fee per month to access these plugins. There's no sliding scale, and no percentage taken from bookings. Whether you take a hundred bookings a month, a thousand a month, or a million, the cost will always be the same.

XML interface thin plugin

This is very low on the priority list, and may not even need to be developed. The goal is to receive requests that adher to the OTA XML standard and then translate those requests into a form that the CMF REST API can handle, and to then return responses in an XML format. If the other Channel thin plugins are as easy to create as I suspect they will be, there may not even be much demand for this plugin.

Wrapping up

I expact the first iteration of the CMF REST API plugin to be largely feature complete by the end of February 2020 at the latest. After that the CMF Integration plugin and Rentals United plugins should follow soon after, however to give myself some wriggle room, I think that the three sets of plugins will go to Release Candidate by the end of June 2020. The likelihood is that they'll already be complete by then, but every wise developer knows that projects often hit snags and somtimes refactors can be necessary, so it's best to give myself a small buffer.

 

Existing CMF license holders will be pleased to learn that the first CMF plugins (CMF REST API/Integration/Rentals United thin plugin) are already available through the Jomres plugin manager. They are far from compete, but the CMF REST API is already well on it's way with 80 endpoints added, most within the last month.

 

 

  • Created on .

ABOUT US

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.

www.jomres.net 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