Drupal
25/07/2018

Feedback on Roomify distribution with Drupal

REX Roomify Drupal
Feedback on Roomify distribution as part of an online booking service (for vacation). An interesting interface for property owners and users as well… But we still have to make sure not to color outside the lines…for the lack of any pertinent documentation makes us wonder if it hadn’t been purposefully intended this way.

Within the context of online booking services for guest rooms for summer camp and ski holidays, we have examined the different options Drupal can offer. We have swiftly shifted to Roomify distribution which first seemed as a pertinent solution that would spare us the trouble of reinventing the wheel, to the least, and sliced bread, to the most.  How often do we hear people, in the community, lauding such distribution…While warning against advanced customizations, which usually appear to be dangerous, we had never used Roomify… This is what brought us to share our feedback that you might resort to in the framework of future projects or decision-making processes.

Drupal Roomify distribution

Roomify is a Drupal distribution that manages the availability, pricing and booking of online solutions. It is based on a BAT module (Booking and Availability Management Tools for Drupal) that gathered a sequence of Drupal booking management modules). The solution also allows integration with Drupal Commerce. Roomify thus offers the following key features : 

  • Creating accommodation packages with calendar pricing configurations and creating landing pages to promote certain offers;
  • Creating listing and detailed pages for the accommodation fine print;
  • Managing availabilities and accommodation pricing;
  • A search engine with a search refiner (and the ability to see top rated accommodations, top locations, etc.)
  • The Conversations feature to exchange messages with users on the website, and customize the offers thus enabling the customer to make instant reservations.
  • A general view of the calendar, to check all availabilities ;
  • Additional services such as bicycle rentals, guided visits, the possibility to make immediate reservations upon posting available accommodations;
  • Defining payment methods and payment processes supported by Stripe, Paypal, Authorize.net among others;
  • An easy to use and intuitive dashboard to review all the information with relevance to the activity (about the property, reservation, inquiries, etc.)
  • A comment box and rating feature which allow users to rate the place and comment the offered services.

Our job-oriented project required features similar to that of Roomify. This is why we immediately opted for this distribution to optimize the time allotted to project development.

Our feedback

In the framework of this project, we used : 

  • BAT to upload the information relevant to availabilities.
  • Drupal commerce to upload the information relevant to orders;
  • The Roomify reservation module based upon the reservation information (including orders among others).

Nicolas, lead-developer in charge of the project, can bear witness to the distribution’s various advantages :

“The distribution’s key advantage is its super well-designed and easy-to-use back-office. A lot of thought has been given to ergonomy; I believe that the owners and webmasters of a site that uses Roomify can easily manage their rooms/ guest houses. The distribution offers a lot of interesting features such as managing reservations and integration with Drupal Commerce thus facilitating e-commerce. This is how this distribution has made the set-up of accommodation management-related features and online payment much easier.” 

The property owner dashboard : 

Roomify Drupal

And then demands started to emerge, one after another, showing that Roomify is not as flexible as it seems.

In fact, Nicolas has underscored several major issues:

  • « The strong interdependence of modules »: It was very difficult for me to remove the unnecessary and useless features from the project. Every time I attempted to delete a feature, I got a bug report. I believe that this is strongly linked to the interdependence among modules, which further complicates the process of choosing which feature to keep and which to remove. Roomify, for instance, is an availability management tool for rooms and guest houses. Given that the project only requires managing rooms when the guesthouses option is unticked, a number of bugs appear. We had to add code lines to the modules cutoms and in the theme custom, and to hack certain Roomify modules, thus fixing persisting bugs and modifying the behavior of some functionalities to cater to the customers’ needs. In order to respect Drupal’s best practices, we left a wide majority of functionalities as is, because if we decided to hack the distribution, we will have to work with a hard to maintain website.” 
  • “Modules with bugs”: In addition to the bugs that emerged from the modifications we introduced to the modules’ behaviors, some modules had bugs from day1. The distribution, for instance, uses a module to write multilingual e-mail templates. However, several bugs were found in the latter, the translation option was dysfunctional, which brought us to install a patch on the module, and rework mailboxes in Roomify.” 
  • Functionalities with particular behavior:  We were struggling at the beginning of the project because of the back-office pages that wouldn’t load, or took a lot of time to load very slowly (20 seconds). We then found out that it was caused by a functionality of Roomify front-end theme, which, a priori, made no sense at all in the back-office. 
  • Lacking documentation: One of the solution’s biggest disadvantages. Roomify distribution lacks documentation. In fact, in light of the different encountered bugs, we have sought advice within the community to fix them, but to no avail. There are hooks, however not documented, in the distribution that can be used to modify certain behaviors, which provides us with tremendous learning time (which is usually not what distributions are made for).The distribution is not supported by a community that could broaden the scope of the solution’s availability, even if we’re talking about Open Source. " 
  • "Another negative aspect: the payment of deposits. Roomify allows customers to make one deposit upon reservation. When you choose this option, you can no longer request the online payment option, x days before visiting the property. This also applies to any seasonal rental.Moreover, Roomify neither provides information on the deposit amount, nor on the payment method. The missing functionalities are crucial to a distribution specialized in online accommodation reservation management, but this only involves those who opted for this distribution.”

Conclusion

A distribution aims at having an out-of-the-box tool, with ready-to-use functionalities to develop a job-oriented project, thus avoiding the idea of starting from scratch. We have never, in the framework of this particular project, achieved the true aim of distribution, for we spent most of our time trying to fix bugs or to modify the distribution’s behavior to create a perfect match with the project’s expectations (a customized pricing, availability and reservations management). In fact, Roomify does not provide much space to customize or develop the solution. 

It is necessary to take the distribution as is, while taking all the time needed to test all functionalities to check if they really fulfill the identified needs. If there are missing functionalities, it is then necessary to implement additional modules. If the distribution’s behavior does not cater to the sought-after needs, then it is recommended to find a different solution, thus avoiding the hazards of hacking that might lead to irreversible consequences in terms of the website’s maintenance ( with regards to security updates). 

Drupal usually offers modular codes to modify the behavior, by integrating additional modules. Nonetheless, with Roomify distribution, we cannot fully support this idea: changing Roomify’s behavior is a bad idea that generates tremendous additional development to debug and modify functionalities.  In addition, we are asking questions regarding the solution’s Open Source feature. If the code was really Open Source,  lack of API documentation (for the BAT Framework and Roomify as well) and the absence of a community which supports this distribution both suggest that with Roomify, one cannot fully enjoy the advantages Open Source can offer, to handle the technical solution, and maintain it accordingly, etc. With respect to BAT, authors have themselves written on the Drupal module’s webpage: “ It is not a tool used to build a website.” We have already warned you against BAT Framework potential upon which Roomify is based ! 

Check the website here : clubalpes-particulier.fr