Welcome to Solidres - A Complete Hotel Booking Solution for Joomla & WordPress

Introducing the Solidres Channel Manager — your OTA connections, inside Joomla

For as long as Solidres has existed, selling your rooms on Booking.com, Expedia, Airbnb, Agoda or Vrbo has meant the same thing: open an account with a channel manager, re-create your property and every room type in their dashboard, copy mapping IDs back and forth, and then run your business out of two systems that both think they are in charge.

Today that changes. The Solidres Channel Manager is live — a channel connection service we operate ourselves, driven entirely from your Joomla administrator. No second dashboard. No second account. No second vendor.

What it actually does

Your Joomla site is the only system you run

Your property, your room types and your rate plans are created in the channel manager for you, straight from Solidres. You never re-type your inventory anywhere else, and there is no vendor dashboard to log into. The only thing you still do by hand is pick which channels you want to sell on — and that happens inside your Joomla administrator too.

Change a price, take a booking, cancel one, block a room for maintenance — Solidres works out exactly which dates are affected and sends only those to your channels. Nothing else is touched, so a one-night price change is a one-night update, not a full re-push.

In the other direction, a booking made on a channel lands in Solidres within seconds as a normal reservation, with the guest, the dates, the rooms and the per-night prices the channel sent. Modifications and cancellations are applied the same way.

Solidres stays the master of your inventory

Availability is calculated from your real rooms, minus confirmed reservations and blocked dates — so your own website and every channel are always selling the same rooms. Alongside availability and nightly rates, Solidres sends minimum stay, maximum stay and stop-sell, and pushes 500 days of both the moment a room type goes live.

Close your channels on the dates you would fill anyway

This is the feature we are most pleased with. On peak dates — a festival, a conference, high season — every OTA booking costs you commission on a room that would have sold regardless. Channel restrictions let you stop-sell those dates on your channels, or shape stays with closed-to-arrival and closed-to-departure, per rate plan — while your own website keeps taking bookings, commission-free. Restrictions push out like any other update, and reopening the dates is one click.

Your whole season in one screen

Every plan includes the new Inventory grid: availability, nightly rates, stay restrictions and stop-sell flags laid out per day, in one spreadsheet-style screen inside Joomla — showing exactly the numbers your channels see. Edit daily-mode rate plans straight in the grid, or bulk-update whole date ranges across several room types and rate plans in one pass, and the changes sync out like any other update. No more hopping between rate plan screens to prepare a season.

Nothing is ever silently dropped

If a channel booking arrives for dates you no longer have free, Solidres still saves it — as a cancelled reservation with a note explaining why — so you can see the overbooking and deal with it. Front Desk compares your Solidres numbers against what your channels currently hold, so a mismatch is visible immediately, and the activity log records every sync in both directions.

Honest about the state it is in

A status badge on your properties and room types tells you whether syncing is healthy, needs attention soon, or has stopped. If your subscription lapses, nothing is destroyed: your channel connections and mappings stay exactly as they are, and incoming channel bookings are held for you and delivered as soon as you renew.

You connect your own Booking.com, Expedia, Airbnb, Agoda or Vrbo accounts, and the guest relationship stays with you. We take no commission on any booking, and there is no per-booking fee and no cap on how many bookings you receive — what a channel charges is between you and that channel.

Your reservations, your guests and your data stay in your own Joomla database, handled by plugin code you can read: the Channel Manager plugin and the Inventory plugin are 100% open source, GPL, with no encoding, like the rest of Solidres. What your subscription pays for is the connection service we operate for you between your site and the OTAs.

What you need

  • A Joomla site with Solidres 4.2.0 or newer.
  • A Solidres subscription — any level. It carries the Rate Plan and Limit Booking plugins, which is where the prices, stay lengths and blocked dates sent to your channels come from.
  • The Channel Manager and Inventory plugins, included with your Channel Manager subscription.
  • A working cron job for Joomla’s Task Scheduler — our cron guide walks through it.
  • A site reachable from the internet, so channel bookings can be delivered to it.
  • A complete property address with map coordinates — channels will not accept a property without them.
  • Your own accounts with the channels you want to sell on.

Already running Solidres on a subscription? Then you have the Rate Plan, Limit Booking, Front Desk and Dashboard half of that list already — add a Channel Manager subscription and you are ready to connect.

Plans and pricing

One subscription per property, priced by the number of rooms you actually sync. Only room types you switch on for syncing count towards the limit — a room type you keep off your channels is off your bill too.

  • CM Starter — up to 5 rooms — $19/month, billed annually at $190
  • CM Small — up to 15 rooms — $35/month, billed annually at $350
  • CM Standard — up to 30 rooms — $65/month, billed annually at $650
  • CM Plus — up to 60 rooms — $109/month, billed annually at $1,090
  • CM Pro — unlimited rooms — $179/month, billed annually at $1,790

Every plan includes all channels, unlimited bookings, no commission, no per-booking fee, the Inventory grid and unlimited support tickets.

The figure per month is the monthly equivalent — you are charged the annual amount once, and there is no automatic renewal: no subscription profile quietly charging your card. We email you before your subscription ends and you renew when you decide to. Your first Channel Manager order is covered by a 30-day money-back guarantee — for any reason, or no reason at all.

See the plans and pricing →

How it compares with our MyAllocator and Beds24 integrations

Solidres has connected to MyAllocator and Beds24 for years, and both integrations keep working today — nothing breaks under you. The difference is where the work happens:

  • Extra account to open: none, versus one with the vendor.
  • Property, room types and rate plans: created automatically from Solidres, versus re-created by hand in the vendor dashboard.
  • Mapping IDs: assigned automatically, versus copied over by hand.
  • Where you manage channels: inside Joomla, versus in the vendor dashboard.
  • Who you contact for help: us, for the whole chain — versus us or the vendor, depending on the problem.
  • Billing: one vendor, versus two.

One piece of housekeeping worth saying plainly: the MyAllocator integration is deprecated and will be removed in a future Solidres release. Beds24 stays supported and you can stay on it as long as you like. If you are on MyAllocator, plan the move to the Solidres Channel Manager at a time that suits you rather than leaving it to the last minute. There is no automatic migration between providers yet — switching means disconnecting from your current one and mapping your channels again, so give it a quiet week.

Getting started

  • Subscribe to the plan that matches your room count — and to Solidres itself if you are not already a subscriber — then copy your Download ID from your solidres.com account.
  • Install the Channel Manager, Inventory, Rate Plan and Limit Booking plugins, set the Channel Manager’s provider to Solidres Channel Manager, and add the three scheduled tasks that keep the sync running.
  • Connect your property with one click, then switch syncing on for each room type you want to sell online.
  • Map your channels in the channel management screen, run the first full sync, and you are live.

Every step is written out, with screenshots, in How to configure Solidres Channel Manager, and the cron side in How to set up Joomla cron for Task Scheduler. Most properties are connected and syncing the same afternoon; individual channels can take one to two weeks to go live on the channel’s own side.

Try it

The Solidres Channel Manager needs Solidres 4.2.0, released today, so update first — then pick your plan and connect your first property. If one specific channel is the reason you are buying, ask us before you subscribe and we will confirm it.

This is the biggest thing we have built for Solidres, and it is the start rather than the finish. Tell us how it goes — your feedback shapes where it goes next.

Solidres 4.2.0 is here — 25 languages, dark mode, and our own Channel Manager

Solidres 4.2.0 is out. It is a big one — not because of a single headline feature, but because it is the release where several things we have been building in the open all summer finally land in the stable channel at the same time: 25 languages, the new date picker, dark mode across the board, a spreadsheet-style Inventory grid — and the foundation the brand-new Solidres Channel Manager runs on.

The headline: your own channel manager, inside Joomla

4.2.0 is the minimum version for the Solidres Channel Manager, our own channel connection service: your property, room types and rate plans are created on the channel side for you, availability and rates sync both ways automatically, and channel bookings land in Solidres within seconds — all from your Joomla administrator, with no second dashboard and no second vendor. It launches today alongside this release.

We have written it up properly in its own post: Introducing the Solidres Channel Manager →

Two things in 4.2.0 exist because of it and are worth calling out here:

  • Channel restrictions — stop-sell, closed-to-arrival and closed-to-departure, per rate plan and per date, pushed to your channels like any other update. Close your channels on the dates you would fill anyway, and keep taking commission-free bookings on your own site.
  • The Inventory grid (new plg_solidres_inventory plugin) — availability, nightly rates, minimum and maximum stay and restriction flags for every room type and rate plan, laid out day by day in one screen. Edit cells inline, or bulk-update several date ranges across several room types and rate plans in a single pass, and everything saves through the normal Solidres pipelines. It is genuinely the fastest way to prepare a season, and it shows you exactly the numbers your channels see.

What you previewed with us, now shipping

Solidres speaks 25 languages. The translation effort we wrote about in July is in the box: every locale at full parity with en-GB across the component, the modules and every add-on plugin, with consistent terminology throughout — and the new Channel Manager, Inventory and Rate Plan strings translated along with everything else.

The modern date picker is everywhere. The zero-dependency range picker now covers the whole booking funnel, the search modules, the hub, the admin reservation form and the availability calendars, with an OTA-style occupancy popover on the search bar. Every remaining single-date field moved to Joomla’s own native calendar. The old jQuery UI engine is still there as the Legacy option, so nothing changes under you until you switch.

Dark mode across the component. The remaining hard-coded colours in the core stylesheets and the Lumina booking views are tokenised, with proper overrides under both prefers-color-scheme and Joomla’s own dark theme. Light mode is pixel-identical to before.

Fixes that matter

Roughly two dozen real bugs, several of which were blocking people outright:

  • Rate Plan: creating a rate plan with no check-in day restriction silently failed to save and reloaded the list with no message. It saves, and the editor now tells you when something goes wrong. Rate plans are also honoured everywhere again on a site that migrated off the legacy Complex Tariff editor — previously the frontend pricing pipeline quietly fell back to default-tariff-only mode and ignored them.
  • My Profile: a logged-in customer clicking My Profile got a 404. Fixed, and a customer can now only edit the profile row they actually own.
  • Availability calendar: the check-out diagonal disappeared for every reservation that spanned two months. It is back.
  • Dates shifting by a day: saving a date in an admin field could store the day before it, for anyone east of UTC. Fixed — calendar dates now round-trip exactly.
  • Router: SEF links built for a plugin-owned view could fatal outright. Experience links in particular now build correctly with no com_solidres menu item.
  • Update checker: it ran dozens of duplicate queries on every admin page load, refetched on every page when the update server was unreachable, and could cache an error response and read it back as pending updates. Rewritten, with a themed badge for the update notice instead of the old plain message.
  • File Verification (System view) works again, and now covers the frontend, media and API paths that never had checksums generated for them.
  • Uninstalling Solidres while add-on plugins and modules are still installed is now blocked, with the offending extensions listed, instead of silently stranding them.
  • Validation messages appear in your own language on every page that validates a form, not just the four that happened to load the locale file. 64 of Joomla’s 78 language tags now resolve.
  • Room type editor: deleting a room row from the Rooms tab worked again, and the add-row button has a label instead of a raw language key.
  • Hub: the embed form tab in the property editor rendered the wrong layout and had never run under Joomla 6. Rewritten in vanilla JavaScript, no jQuery, dark-mode safe.
  • Beds24: a booking the channel already collected payment for is now marked paid, with the amount mirrored into the payment history, and payment reminders no longer chase a settled booking.
  • Feedback: deleting a reservation with the Feedback plugin enabled was fatal. Fixed.
  • Sample data is now a single generated file, imported inside a transaction — a half-imported sample set used to leave you stuck with no way to retry.

Security

4.2.0 is also a security release. In summary, and without the detail that would help anyone reproduce them:

  • Image uploads are validated by extension against a hard allow-list and by decoding the actual bytes, rather than trusting what the browser said the file was.
  • The media manager now only accepts record field names from a per-type allow-list, checks a form token on every task, and requires edit or create rights rather than just the right to open the screen.
  • Frontend controllers that inherit from administrator controllers now publish an explicit list of permitted tasks and refuse everything else, so back-end methods are no longer reachable under a site task name.
  • Payment gateway callbacks got a systematic pass: signatures and secure hashes are verified before anything is written, an unconfigured shared secret counts as a failure rather than an exemption, every callback is bound to the reservation it names, retried callbacks change nothing, and the amount is checked against what is actually owed. This runs through a shared, unit-tested settlement path instead of being restated — or omitted — per gateway.
  • The refund endpoint requires a form token and a genuine refund right, and refuses a booking with nothing captured to send back.
  • Channel manager inbound deliveries are authenticated, and the channel console endpoints require a signed-in manager of that property plus a token.

Merchants running a gateway with no secure hash or shared secret configured should configure one before updating: those callbacks are now refused rather than trusted.

Update today

Solidres 4.2.0 needs Joomla 6 and PHP 8.4. Update from the Joomla updater as usual, or download it from your solidres.com account — the full changelog ships with the release.

If you are a subscriber, you already have the Rate Plan, Limit Booking, Front Desk and Dashboard plugins that the Channel Manager builds on. If you are not, a subscription is what brings them, along with the templates and support. And if selling on Booking.com, Expedia, Airbnb, Agoda or Vrbo from inside Joomla is what you have been waiting for, the Channel Manager is ready.

Restaurant Management System 2.0.0 is out, and it is built for Joomla 6.

Restaurant Management System 2.0.0 is out, and it is built for Joomla 6.

This release is a rebuild rather than a refresh. RMS now sits on Joomla’s modern extension architecture from top to bottom, which is what makes it ready for Joomla 6 today and for Joomla 7 when it arrives.

What changed

  • Rebuilt on the current Joomla extension layout. Namespaced MVC throughout, service providers, dispatchers, and a proper site router in place of the old legacy entry points.
  • Assets through the Web Asset Manager. CSS and JavaScript are declared in joomla.asset.json instead of being injected inline, so your template can override or reorder them the same way it does for core extensions.
  • No deprecated API calls left. Everything Joomla 7 removes is gone from the codebase, so upgrading the CMS will not break RMS.
  • All seven site modules updated — booking, search, restaurants, menu items, locations, map and currency.
  • A quality gate behind every release. Static analysis, a unit test suite and a PSR-12 coding standard now run before anything ships.

Requirements

RMS 2.0.0 needs Joomla 6.0 or newer, PHP 8.4 and MySQL 8.4. The installer checks the first two and stops with a clear message rather than half-installing.

Upgrading? Get your Joomla site to 6.0 first, then install RMS 2.0.0 over your existing copy. The installer cleans up the files the old layout left behind, so there is nothing to remove by hand.

Two packages

  • RMS Single — one restaurant. Booking, menus and orders, without the multi-restaurant directory.
  • RMS Multi — several restaurants on one site, with the search and restaurant listing views included.

Both packages install the component and all seven modules in one go.

Mail Catcher 2.1.0 is out — interception, auto-purge and .eml export

Every Joomla developer has a version of this story. You copy the production database to a staging site to reproduce a bug, run a test order, and a few seconds later four hundred real customers receive an order confirmation for a purchase they never made. Or you spend an afternoon chasing a registration email that a user swears never arrived, with nothing to go on but a hopeful glance at the server mail log.

Mail Catcher has always solved the second half of that problem: it catches, logs and shows you every email your Joomla site sends. Version 2.1.0 solves the first half too, and adds the housekeeping, export and search tools that a mail log needs once it has been running for a few months.

Decide what happens to your mail

The headline feature of 2.1.0 is interception. Under Components → Mail Catcher → Options there is now an Interception tab with a single Mode setting:

  • Log and send — mail is logged and delivered normally. This is the default, and it is exactly how earlier versions behaved.
  • Log only — mail is captured in full and never leaves the server. Nothing reaches anyone.
  • Redirect to test address — mail is delivered to the address you nominate instead of to the real recipients. Separate several addresses with a comma if the whole team should see them.

The setting applies to every email the site produces — Joomla core, your own code and every third party extension — because Mail Catcher works at the Joomla mailer level rather than hooking individual components. There is nothing to configure per extension.

In redirect mode the log still records the original To, Cc and Bcc, so you can always see who a mail was really meant for. Anything that was held back is flagged Intercepted in the list, with a filter to match, and the Resend action follows whichever mode is active at the time you use it. To release a held mail for real, switch the mode back to Log and send, then resend it.

Set a freshly cloned staging site to Log only once, and the story at the top of this post cannot happen.

A log that cleans up after itself

A busy site logs a lot of mail, and until now clearing it out was a manual job. Mail Catcher 2.1.0 ships a Task Scheduler plugin with a purge routine: create a task under System → Scheduled Tasks, point it at “Mail Catcher – Purge caught mails”, and give it rules.

You can delete mails older than a number of days, keep only the newest N mails, or combine both — keep 30 days but never more than 5,000 rows, for instance. Two switches let you spare anything that matters: never delete failed sends, so delivery problems stay available for debugging, and never delete unread mails, so nothing disappears before you have looked at it. Attachment files are removed from disk along with the rows, and each run reports how many mails it deleted.

Export a message the way it was actually sent

Mail Catcher stores the complete raw MIME message, and 2.1.0 finally lets you have it. Every caught mail now has a Download .eml button, both in the list and in the message preview. Open the file in Thunderbird, Outlook or Apple Mail, feed it to a deliverability checker, or attach it to a support ticket — it is the message exactly as it went out, not a reconstruction.

The preview also gained a Headers tab showing the raw MIME header, which is where you go when you need to know what an extension actually put in Reply-To, what Content-Type and encoding were negotiated, or whether that custom header you added really made it into the message.

Finding one email among thousands

The Mails list got the treatment it deserved. You can now filter by date range (from, to, or just one end), by mailer, by sending status, by delivered or intercepted, and by read or unread. Search covers the subject, the body, the sender and the IP address; type an address and it searches recipients, Cc and Bcc instead; type id:1234 and it goes straight to that mail.

Mark as read and Mark as unread are toolbar actions now, so you can clear a hundred rows in one go. And a new quick icon on the administrator dashboard shows how many caught mails you have not read yet, linking straight to the list already filtered — failed or unexpected mail becomes something you notice, rather than something you have to remember to go and check.

Now in 23 languages

The administrator interface has been translated into 23 languages: Arabic, Hebrew and Persian with full right to left support, Chinese (simplified and traditional), Japanese, Korean, Thai, Vietnamese, Hindi, Indonesian, Turkish, Russian, Greek, Polish, Czech, and the major Western European languages. Plural forms were done per locale rather than machine-mapped, so counts read naturally in each one.

Safer and faster under the hood

Caught HTML mail now renders inside a sandboxed frame, so a malicious email can no longer run scripts in your administrator session simply because you previewed it. Attachment downloads are restricted to the folder belonging to their own mail. Deleting a mail now also deletes its attachment files, which previously lingered on disk forever. And two new database indexes keep the list, the filters and the dashboard responsive on logs with hundreds of thousands of rows.

Upgrading

Mail Catcher 2.1.0 is a normal update through the Joomla Update Manager, or you can download the package and install it over the top. The database schema updates itself, and the two new plugins are installed and enabled for you.

Nothing changes in how your site sends mail until you decide it should. The interception mode defaults to Log and send, no purge task is created for you, and the quick icon simply appears on your dashboard. Upgrade first, then turn on the pieces you want.

In short

  • Interception modes: log and send, log only, or redirect to a test address
  • Task Scheduler routine to purge caught mails by age and/or count
  • Download any caught mail as .eml, plus a raw Headers tab
  • Unread counter on the administrator dashboard
  • Date range, mailer and read/unread filters, and bulk mark read/unread
  • 23 administrator languages, including right to left scripts
  • Sandboxed HTML preview, hardened attachment downloads, attachment cleanup on delete
  • Faster list and dashboard on large logs

Mail Catcher 2.1.0 is available now for Joomla 6, and is 100% open source. If you run into anything, open a ticket under Support → Tickets and we will take a look.

Solidres now speaks 25 languages

We rebuilt every translation from the ground up — and added seven brand-new languages. Here’s what changed and why.

Language shouldn’t stand between you and a booking. Whether a guest is reserving a room in São Paulo, Seoul or Istanbul — or you’re managing your property from an admin screen in your own language — every word of Solidres should feel like it was written for that audience. With this release, it is.

We’ve just completed the largest localization effort in Solidres’ history: a complete, ground-up overhaul of the extension’s translations. Solidres is now fully translated into 24 languages in addition to English — every screen, every message, every button, across the booking component and all of its add-ons.

  • 25 languages, including English
  • 7 brand-new languages
  • 181 files per language
  • 130k+ strings translated

Coming in Solidres 4.2.0

All of this ships in Solidres v4.2.0 and carries forward into every subsequent release of the Solidres extensions. The moment you update, the new and improved translations are simply there — nothing to install separately, no extra configuration. Just switch your Joomla site (or a visitor’s browser) to a supported language and Solidres follows.

Why we rewrote the existing translations

Here’s the honest backstory. For years, every language except English (en-GB) was contributed by Solidres users — generous members of our community who translated the parts they needed, when they needed them. We’re deeply grateful for that work; it carried Solidres across the world.

But it also left the translations uneven:

  • Some languages were only partially translated — newer features, add-ons and admin screens were never covered, so users would suddenly hit English text (or raw placeholder keys) in the middle of an otherwise localized workflow.
  • Some languages were translated by several different people over time, each with their own wording choices. The same concept — a “reservation”, a “room type”, a “check-in” — could appear worded three different ways within a single language.
  • As Solidres itself grew, the gap widened: every new feature added English strings that the community translations hadn’t caught up with.

So rather than patch the gaps, we started fresh. Every existing language was re-translated in full from the English baseline, in a single consistent voice, and brought to complete parity with English — the same set of strings, covering the same features, worded the same way from screen to screen.

Localized, not just translated. Where a concept differs by country, we adapted rather than translated word-for-word — for example, Brazilian Portuguese refers to a company’s CNPJ rather than a literal “VAT number”, and right-to-left languages (Arabic, Hebrew and Persian) read the way their speakers expect. Brand names like Solidres, Joomla, PayPal and Stripe stay in their original form everywhere.

Seven brand-new languages

Alongside rebuilding what we had, we opened Solidres up to millions more speakers with seven languages it never supported before:

  • 简体中文 — Chinese (Simplified) (zh-CN)
  • 繁體中文 — Chinese (Traditional) (zh-TW)
  • 한국어 — Korean (ko-KR)
  • Türkçe — Turkish (tr-TR)
  • Bahasa Indonesia — Indonesian (id-ID)
  • فارسی — Persian (fa-IR)
  • हिन्दी — Hindi (hi-IN)

The full lineup

Here’s every language Solidres now ships with. Seventeen were rebuilt to full parity; seven are new; English remains the source of truth.

New languages are marked (New); all others were fully re-translated.

  • English (UK) — Baseline (en-GB)
  • العربية — Arabic (ar-AA)
  • Čeština — Czech (cs-CZ)
  • Deutsch — German (de-DE)
  • Ελληνικά — Greek (el-GR)
  • Español — Spanish (es-ES)
  • فارسی — Persian (fa-IR) (New)
  • Français — French (fr-FR)
  • עברית — Hebrew (he-IL)
  • हिन्दी — Hindi (hi-IN) (New)
  • Magyar — Hungarian (hu-HU)
  • Bahasa Indonesia — Indonesian (id-ID) (New)
  • Italiano — Italian (it-IT)
  • 日本語 — Japanese (ja-JP)
  • 한국어 — Korean (ko-KR) (New)
  • Nederlands — Dutch (nl-NL)
  • Polski — Polish (pl-PL)
  • Português (BR) — Portuguese (Brazil) (pt-BR)
  • Română — Romanian (ro-RO)
  • Русский — Russian (ru-RU)
  • ไทย — Thai (th-TH)
  • Türkçe — Turkish (tr-TR) (New)
  • Tiếng Việt — Vietnamese (vi-VN)
  • 简体中文 — Chinese (Simplified) (zh-CN) (New)
  • 繁體中文 — Chinese (Traditional) (zh-TW) (New)

Nothing left half-translated

This wasn’t just about the booking form. Every part of Solidres now speaks your language — the core booking engine, the administrator screens, and every add-on: Hub, Experience, Invoicing, Feedback, Discounts, the Channel Manager, Rate Plans, Statistics, the new Dashboard and Front Desk, Housekeeping and more. Each language carries the same complete set of strings, so you won’t drift from your language into English partway through a task.

Don’t see your language?

Every one of these translations exists because Solidres users asked for it. That’s still how we decide what comes next. If your language isn’t on the list — or you’d like to help refine one that is — post a new feature request on the Solidres forum and tell us. Real demand is exactly what moves a language up the queue.

Solidres is the accommodation booking engine for Joomla. This translation overhaul ships in Solidres 4.2.0 and continues in every release that follows. Thank you to everyone who contributed translations over the years — this work stands on yours.

All the things you need to make your work easier. Did you like Solidres?