The Problem
Hotels need a booking engine, a property management system, and a public-facing website, but most solutions are either expensive SaaS subscriptions or require stitching together multiple tools. QloApps is a fork of PrestaShop (the admin/ directory and Core/ structure are direct PrestaShop lineage) that repurposes the e-commerce platform for hospitality. It gives a hotel a single PHP/MySQL application that handles room inventory, reservations, and the customer-facing booking flow.
What This Does
The codebase is a PHP 8.1+ application with two main layers. The admin/ directory (162 files) contains the back-office: ajax.php, ajax-tab.php, backup.php, and a full filemanager/ sub-application for media handling. The Core/ directory holds the foundation layer — Core/Foundation/Database/ provides an EntityManager and EntityRepository pattern, and Core/Business/ contains domain logic for CMS, email, payment options, and stock management. The Adapter/ directory (12 files) bridges the legacy PrestaShop-style classes (like AdapterConfiguration and AdapterDatabase) to the newer Core abstractions.
The project is a fork of the main QloApps repository (14k+ stars upstream), so it inherits a mature feature set: multi-currency, multi-language, theming, and a module system. The README documents PHP 8.1–8.4 and MySQL 5.7–8.4 as supported.
How To Use It
The README describes two install paths: a manual web-based installer and a Docker image (webkul/qloappsdocker on Docker Hub). There is no package.json, composer.json, or Makefile in the file listing, so no build step is evident — this is a traditional PHP application served directly by Apache/Nginx.
Setup — for a manual install, clone the repo, point a web server at the document root, and visit the installer. For Docker:
docker pull webkul/qloappsdocker docker run -d -p 80:80 webkul/qloappsdocker
Configuration — the installer handles database credentials and server checks. Required PHP extensions are PDOMySQL, cURL, OpenSSL, SOAP, GD, SimpleXML, DOM, Zip, Phar. Set memorylimit to 128M, uploadmaxfilesize to 16M, and maxexecution_time to 500 in php.ini.
Running it — after installation, the admin panel is at /admin/ and the storefront at the root. The admin/ajax.php and admin/ajax-tab.php entry points handle the AJAX backend.
Real-World Use
A small hotel group with 10–50 rooms deploys QloApps on a single VPS. The front office uses the booking engine to take reservations with room-type selection and date ranges. The back office (admin/) manages inventory, rates, and channel availability. Because it's PrestaShop-derived, the hotel can install add-ons from the QloApps marketplace for payment gateways or channel managers.
Code Health & Issues
High — No test files detected. The repository has zero test files across 200 files. For a booking system handling payments and personal data, untested code paths are a real risk. Med — Mixed architectural patterns. The Adapter/ layer exists to bridge legacy PrestaShop code to the Core/ foundation, which signals an incomplete migration. New code should target Core/, but the volume of admin/ code suggests much of the logic still lives in legacy controllers. Low — CI is minimal. .travis.yml exists but Travis CI is deprecated; there's no GitHub Actions workflow in the file list. Low — Documentation is thin. Only 5 doc files; the README covers install but not API contracts or module development.
The Bottom Line
QloApps is a viable open-source option for hotels that want self-hosted booking software without SaaS fees. The PrestaShop heritage gives it a mature admin UI and ecosystem, but the missing test suite and legacy-to-modern code migration are real maintenance concerns. It suits hotels with basic technical support or a PHP developer on retainer, not teams expecting a zero-maintenance product.