How to set up Joomla CRON for the Task Scheduler

Several Solidres features do their work in the background rather than while a page is loading: pushing availability and rates to your channels, importing iCal bookings, refreshing currency exchange rates, sending balance-due reminders. Joomla runs these through its built-in Task Scheduler, and Solidres ships the task plugins that plug into it.

There is one catch, and it is the single most common reason a background feature "does not work": Joomla's Task Scheduler does not run on its own. Something has to trigger it. This article shows you the three ways to do that, which one to pick, and how to confirm it is actually running.

PREREQUISITES:

  • Joomla 4.1 or later (the Task Scheduler was introduced in Joomla 4.1; screenshots here are Joomla 6)
  • Access to your Joomla administrator as a Super User
  • For the recommended method: shell access to your hosting, or a cron-job panel such as cPanel or Plesk

Which Solidres features use the Task Scheduler

Each Solidres feature that needs background work ships its own task plugin. The plugin is installed and enabled together with the feature, and it adds one or more task types that you can then schedule.

Task type What it does Shipped by
Solidres - Channel Manager Sync Pushes queued availability and rate changes to your channels Channel Manager plugin
Solidres - Channel Manager Watch Tracks the progress of each batch that was sent Channel Manager plugin
Solidres - Channel Manager Log Records completed sync operations in the activity log Channel Manager plugin
Solidres - Channel Manager Token Renews the Beds24 API token — only needed with the Beds24 provider Channel Manager plugin
Solidres - iCal Synchronises your iCal feeds iCal plugin
Solidres - Currency Updates currency exchange rates Currency plugin
Solidres - Invoice Sends balance-due reminder emails to customers Invoice plugin
Solidres - Hub Hub subscription management Hub plugin

You only create tasks for the features you actually use. If you do not use iCal, you do not need the iCal task.

How Joomla triggers scheduled tasks

Joomla offers three trigger methods. They differ in reliability, not in what the tasks do.

Method Needs Runs when nobody visits? Tasks per trigger Verdict
System cron (CLI) Shell or cron-panel access Yes All due tasks Recommended for production
Web Cron An external service to call a URL Yes One per call Good fallback with no shell access
Lazy Scheduler Nothing — on by default No One per trigger Development only

IMPORTANT Note the Tasks per trigger column — it surprises people. Web Cron and the Lazy Scheduler run only one due task per trigger. If you have the three Channel Manager tasks all set to one minute, a once-per-minute Web Cron call takes three minutes to work through them, and each task therefore effectively runs every three minutes. Only the command-line method with --all runs every due task in a single pass. If you sync with OTA channels, use system cron.

Option 1. System cron (recommended)

This is a real cron job on your server calling Joomla's command-line application. It runs whether or not anyone is visiting your site, it adds nothing to page-load time, and it is the only method that clears every due task at once.

Step 1. Find your PHP command-line binary

Connect over SSH and run:

which php
php -v

Make a note of the full path — commonly /usr/bin/php. Two things to watch for:

  • The CLI version can differ from the web version. php -v shows the command-line one; your site might be served by another. Joomla 6 needs PHP 8.1 or later, and Solidres 4.2 targets PHP 8.4.
  • Shared hosting often needs a version-specific binary, such as /usr/bin/php8.4, or on cPanel /opt/cpanel/ea-php84/root/usr/bin/php. If in doubt, ask your host which binary matches your site's PHP version.

Step 2. Find your site's absolute path

It is the folder that contains configuration.php — for example /home/youruser/public_html. From your site root:

pwd

Step 3. Test the command by hand first

Before scheduling anything, prove the command works. From your site root:

php cli/joomla.php scheduler:list

That lists the tasks Joomla knows about. Then run the due ones:

php cli/joomla.php scheduler:run --all

You should see a line per task and a summary. No tasks due! is a healthy answer too — it means the scheduler is reachable and nothing is currently pending.

NOTE cli/joomla.php is part of Joomla itself, so this works on any Joomla 4.1+ site. Unlike the other two methods it does not require the System - Schedule Runner plugin — but it does require the relevant Task - Solidres … plugins to be enabled, since those provide the task types.

Step 4. Add the cron job

Run crontab -e and add one line. Every minute, running all due tasks:

* * * * * /usr/bin/php /home/youruser/public_html/cli/joomla.php scheduler:run --all >/dev/null 2>&1

Replace the PHP binary and the site path with your own values. Every five minutes instead:

*/5 * * * * /usr/bin/php /home/youruser/public_html/cli/joomla.php scheduler:run --all >/dev/null 2>&1

A few notes on that line:

  • --all is not optional in practice. Without it Joomla runs a single due task per invocation.
  • >/dev/null 2>&1 discards the output so cron does not email you every minute. While you are still testing, drop it — or write to a log with >>/home/youruser/cron.log 2>&1 — so you can see what happened.
  • Run it every minute even if every task is hourly. Cron only decides how often Joomla checks; each task's own interval decides when it actually runs. A frequent check simply means tasks fire close to their due time.

Step 4 (alternative). cPanel, Plesk or DirectAdmin

No SSH? Every mainstream panel has a cron screen, and the command is identical.

  • cPanelAdvanced → Cron Jobs. Choose Once Per Minute under Common Settings (or set the fields to *), then paste the command.
  • PleskWebsites & Domains → Scheduled Tasks → Add Task, task type Run a command.
  • DirectAdminAdvanced Features → Cron Jobs.

Step 5. Turn the Lazy Scheduler off

With a real cron job in place, the Lazy Scheduler is redundant and only adds work to your visitors' page loads. Go to System → Manage → Scheduled Tasks, click Options, open the Lazy Scheduler tab and set Lazy Scheduler to Disabled. Save.

Option 2. Web Cron (no shell access)

If your host gives you no cron facility at all, Joomla can expose a secret URL that an external cron service calls on a schedule.

  1. Go to System → Plugins and make sure System - Schedule Runner is enabled.
  2. Go to System → Manage → Scheduled Tasks and click Options.
  3. Open the Web Cron tab and set Web Cron to Enabled, then Save.
  4. Joomla generates a Global Key and shows the full Webcron Link (Base). Copy that link.

The link looks like this — note it is a front-end URL, not an administrator one:

https://www.example.com/index.php?option=com_ajax&plugin=RunSchedulerWebcron&group=system&format=json&hash=YOUR_KEY

Give that URL to any external cron service (cron-job.org, EasyCron, Uptime Robot and similar all work) and have it called once a minute.

IMPORTANT Each call runs one due task. If you need several tasks to keep close to their schedule — the Channel Manager's three, for instance — either call the URL several times a minute, or target each task individually by appending its ID: &id=42. The ID is the number shown in the ID column of the Scheduled Tasks list. Even so, system cron remains the better answer for channel syncing.

WARNING Treat the Global Key like a password — anyone holding the URL can trigger your tasks. Never post it in a forum, a support ticket or a screenshot. If it leaks, set Reset Access Key to Yes and save to issue a new one, then update your cron service.

Option 3. Lazy Scheduler (development only)

Out of the box, Joomla uses the Lazy Scheduler: when a visitor loads a page and a task is due, Joomla quietly runs one in the background. It needs no setup, which is exactly why it is the default.

It is also fragile, and unsuitable for anything time-sensitive:

  • No visitors means nothing runs. A quiet night is a night with no syncing and no reminder emails.
  • One task per trigger, so a queue of due tasks drains slowly.
  • It is throttled. The Request Interval (seconds) setting — 300 by default, minimum 60 — caps how often a page load may trigger the scheduler.
  • Your visitors pay for it in page-load time.

It is fine on a development site, and fine for something genuinely relaxed like a daily exchange-rate refresh on a busy site. It is not acceptable for OTA channel syncing, where a stale rate becomes a mispriced booking.

Creating and scheduling a task

Whichever trigger you chose, the tasks themselves are created the same way.

  1. Go to System → Manage → Scheduled Tasks and click New.
  2. Pick the task type from the list — for example Solidres - Channel Manager Sync. If a Solidres task type is missing, its plugin is not installed or not enabled; check System → Plugins for Task - Solidres ….
  3. Give it a Title. The default is fine.
  4. On the Details tab set the schedule. Choose Interval, Minutes and enter 1 for the Channel Manager tasks; Interval, Hours or Interval, Days suit the slower ones. Cron Expression (Advanced) is there if you need precise timing such as "every day at 04:00".
  5. Save & Close, and make sure the task is enabled in the list.

Suggested intervals

Task type Suggested interval Why
Solidres - Channel Manager Sync Interval, Minutes = 1 Rate and availability changes should reach your channels quickly
Solidres - Channel Manager Watch Interval, Minutes = 1 Follows each batch the Sync task sent
Solidres - Channel Manager Log Interval, Minutes = 1 Keeps the activity log current
Solidres - iCal Interval, Hours = 1 iCal is a polling format; hourly is the usual compromise
Solidres - Invoice Interval, Hours = 1 Balance-due reminders are not urgent to the minute
Solidres - Currency Interval, Days = 1 Exchange-rate feeds update daily

These are starting points, not requirements. Tune them to your property.

NOTE A long-running task can hit the Task Timeout (seconds) limit under Options → Configure Tasks (300 by default). If a big import is being cut short, raise it — and check your PHP max_execution_time too.

Checking that it works

Three quick checks, in order of directness:

  • Run one by hand. In the Scheduled Tasks list, use the Run Manually button on a task. It runs immediately and reports the outcome, which separates "my cron is not firing" from "this task is failing".
  • Read the list columns. Last Run and Next Run tell you whether anything is triggering the scheduler at all. If Last Run never changes, the trigger is the problem, not the task.
  • Watch the feature itself. For channel syncing, add the Channel manager activities widget to Solidres → Dashboard — it logs every sync operation in both directions.

Troubleshooting

Symptom Cause and fix
Nothing runs, and Last Run stays empty Nothing is triggering the scheduler. Run the command by hand over SSH — if that works, the cron entry is wrong (usually the PHP binary path or the site path).
Only one task runs each time The --all flag is missing from the cron command, or you are on Web Cron / Lazy Scheduler, which run one task per trigger by design.
Could not open input file: cli/joomla.php The site path is wrong. Use the absolute path to the folder holding configuration.php.
command not found from cron, though it works over SSH Cron runs with a minimal PATH. Always use the full binary path, /usr/bin/php rather than php.
PHP version or missing-extension errors The CLI binary is a different PHP build from your site's. Ask your host for the binary matching your site's version.
The Web Cron URL returns a 403 Web Cron is disabled in Options, the hash does not match the Global Key, or you are calling the administrator URL. Re-copy the link from Options.
A Solidres task type is not offered on the New Task screen Its Task - Solidres … plugin is not enabled. Check System → Plugins.
Tasks run but the feature still looks stale The trigger is fine, so the problem is in the feature. Use Run Manually and read the reported output.

Good practice

  • One cron entry is enough. A single scheduler:run --all covers every task, Solidres and otherwise. Do not add one entry per task.
  • Log while you are setting up, then go quiet. Redirect to a file until you trust it, then discard the output.
  • Keep the Global Key secret if you use Web Cron, and reset it if it is ever exposed.
  • Re-check after a host migration or a PHP upgrade. A changed binary path or site path silently stops cron, and the first symptom is usually a channel-sync complaint days later.

If your channel manager is the reason you are here, carry on with How to configure Solidres Channel Manager — it covers the three Channel Manager tasks in the context of the full setup.

How to configure Solidres Channel Manager

The Solidres Channel Manager panel on a connected property, showing the connection status and the Manage OTA channels, Full sync, Refresh subscription status and Disconnect buttons

The Solidres Channel Manager is our own built-in channel manager. It connects your Solidres properties straight to online travel agencies such as Booking.com, Expedia, Airbnb, Agoda and Vrbo, so your availability and rates stay in sync and channel bookings land in Solidres automatically.

Unlike the MyAllocator and Beds24 integrations, there is no second dashboard, no second account and no second vendor to pay. You never re-create your property, your room types or your rate plans anywhere else — Solidres provisions all of it for you. The only thing you still do by hand is pick which OTA channels you want to sell on, and even that happens inside your Joomla administrator.

IMPORTANT The MyAllocator integration is deprecated and will be removed in a future Solidres release. It keeps working for now, but a new setup should use the Solidres Channel Manager or Beds24, and existing MyAllocator users should plan the move rather than wait.

PREREQUISITES:

  • Solidres 4.2.0+
  • An active Solidres Channel Manager subscription — one subscription per property
  • An active Solidres subscription, any level — it is what carries the Rate Plan and Limit Booking plugins below
  • Channel Manager plugin v3.1.0+ installed and enabled
  • Task - Solidres Channel Manager plugin installed and enabled (bundled with the Channel Manager plugin — installed and enabled automatically when you install it)
  • Rate Plan plugin installed and enabled, with at least one dated rate plan per synced room type — without one, availability syncs but no price ever reaches a channel
  • Limit Booking plugin installed and enabled — blocked dates, and availability editing in the Inventory grid
  • Inventory plugin installed and enabled (included with your Channel Manager subscription)
  • Your Download ID entered in Solidres → Options → Subscription & updates
  • A complete property address with map coordinates (OTA channels will not accept a property without them)

How the Solidres Channel Manager works

Solidres is the master of your inventory. Everything flows out of Solidres and into your channels, and reservations flow back:

  • Solidres → channels. Whenever something changes — a rate plan price, a booking, a cancellation, a limit-booking rule — Solidres queues only the affected dates and pushes them out on the next scheduled task run. Availability is calculated from your real rooms minus confirmed reservations and blocked dates.
  • Channels → Solidres. When a guest books on an OTA, the reservation is delivered to your site within seconds and saved as a normal Solidres reservation, with the guest, the dates, the rooms and the per-night prices the channel sent.

NOTE Solidres is the only place you manage rooms, rate plans, prices and availability. There is no separate channel manager dashboard to log into, and no second copy of your inventory to keep in step — the Manage OTA channels screen described in STEP 7 exists purely to connect your channels and map them to your Solidres room types and rate plans.

Subscription plans

The Solidres Channel Manager is sold as its own subscription, priced per property and tiered by the number of rooms you sync. Only room types you actually enable for syncing count towards the limit.

Plan Rooms synced
CM StarterUp to 5
CM Small6 – 15
CM Standard16 – 30
CM Plus31 – 60
CM Pro61 and above

Current pricing is on the subscription page. Each property you connect needs its own subscription — if you run three properties on one Solidres site, you need three.

Every plan also includes the Inventory plugin, downloaded from your solidres.com account alongside the Channel Manager plugin: a spreadsheet-style grid at Solidres → Inventory where you see and edit availability, nightly rates, stay restrictions and channel restriction flags per day, with bulk updates across date ranges. It is mentioned throughout this article.

You also need a Solidres subscription

The Channel Manager subscription pays for the connection service and gives you the Channel Manager and Inventory plugins. Everything it sends to your channels, though, is built in Solidres itself, by plugins that are part of a Solidres subscription — any level:

Plugin Why the Channel Manager needs it Comes with
Rate Plan Required. Nightly prices, minimum stay and maximum stay all come from a rate plan. The free edition's built-in standard tariff has no validity dates, and a tariff without dates is never sent to a channel — so without Rate Plan your availability syncs and your prices never do. Solidres subscription
Limit Booking Blocks rooms and closes dates everywhere, including your own website, and pushes the change to your channels. It is also what makes the availability row of the Inventory grid editable — without it that row is read-only. Solidres subscription
Front Desk Optional. Compares your Solidres availability against what your channels currently hold, so a mismatch is visible immediately. Solidres subscription
Dashboard Optional. Hosts the Channel manager activities widget, which is where the sync activity log is displayed. Solidres subscription

IMPORTANT If you are upgrading from an older Solidres, the legacy Complex Tariff plugin satisfies the rate plan requirement in the same way — its tariffs carry validity dates too. Rate Plan is its replacement and is the one to use on a new setup.

Setup

Please follow the following steps to join:

STEP 1. Buy the subscriptions and enter your Download ID.

Purchase a Solidres Channel Manager subscription on solidres.com — and, if you are not already a Solidres subscriber, a Solidres subscription as well, for the Rate Plan and Limit Booking plugins described above. Then copy your Download ID from your solidres.com account.

In Joomla, go to Components → Solidres → Options → Subscription & updates and paste it into the Download ID field. This is the same Download ID you already use for extension updates — it is how the Solidres Channel Manager recognises your subscription, so the connection cannot be made without it.

STEP 2. Enable and configure the Channel Manager plugin.

Go to System → Plugins, search for Solidres - Channel Manager plugin and enable it.

Open it and set Provider to Solidres Channel Manager, then save. That is the whole configuration — there are no API keys, tokens or invite codes to manage.

IMPORTANT The provider is a site-wide setting. Switching it changes which channel manager every property on the site talks to, so only one provider can be active at a time.

STEP 3. Set up the Joomla Scheduled Tasks.

Three background jobs keep the sync running. The Task - Solidres Channel Manager plugin that provides them ships inside the Channel Manager plugin and is enabled for you on install — confirm it under System → Plugins if in doubt, then go to System → Manage → Scheduled Tasks and create one task of each of the following types:

Task type Interval What it does
Solidres - Channel Manager Sync 1 minute Sends queued availability and rate changes to your channels
Solidres - Channel Manager Watch 1 minute Tracks the progress of each batch that was sent
Solidres - Channel Manager Log 1 minute Records completed sync operations in the activity log

NOTE There is a fourth task type, Solidres - Channel Manager Token. It renews the Beds24 API token and is not needed for the Solidres Channel Manager — leave it out.

Joomla's Scheduled Tasks only run when something triggers them, and for channel syncing the choice of trigger matters: lazy scheduling and Web Cron both run only one due task per trigger, so the three tasks above would take three passes to cycle through. A real cron job on your server runs all of them in one go. Our How to set up Joomla CRON for the Task Scheduler guide walks through it, including the exact command and the cPanel and Plesk equivalents.

STEP 4. Complete your property details.

Edit your property in Solidres → Properties and make sure all of the following are filled in — OTA channels require them, so the connection will refuse to start until they are:

  • Street address
  • City
  • Country
  • Map coordinates (latitude/longitude)

Also check the property's currency: your channel rate plans are created in that currency and cannot be changed afterwards without reconnecting.

STEP 5. Connect the property.

Still editing the property, open the Channel Manager tab and click Connect to Solidres Channel Manager.

If anything is missing the button is disabled and the panel lists exactly what to fix first. Otherwise the connection completes in a few seconds and Solidres creates your property in the channel manager for you.

The Channel Manager tab of a property showing the Connect to Solidres Channel Manager button

The panel then switches to Status: Connected and lists Property UID, Connected since, Last full sync, Subscription plan (with its room limit) and Subscription expires — plus four buttons: Manage OTA channels, Full sync, Refresh subscription status and Disconnect.

The Channel Manager tab of a connected property showing the property UID, connection date, last full sync, subscription plan and the four action buttons

NOTE If the connection times out, or you close the tab before it finishes, simply click Connect again. Retrying is safe: while a property is still connected, connecting again returns the property you already have instead of creating a duplicate. (This is not the same as connecting again after a deliberate Disconnect — see Disconnecting below, which does create a new one.)

STEP 6. Choose what each room type syncs.

Edit a room type, open its Channel Manager tab and set Sync options:

Sync option What is sent to your channels
None — disconnect from channelsNothing. The room type is not on your channels and does not count towards your room limit.
AvailabilityFree-room counts only
RatePrices and minimum/maximum stay only
BothAll of the above

On the first save with any option other than None, Solidres creates the room type and a channel rate plan for every eligible rate plan under it, then pushes 500 days of availability and rates. The read-only Room type ID field fills in once that has happened.

The Channel Manager tab of a room type with Sync options set to Both and a read-only Room type ID

Repeat for every room type you want to sell online. Room types you leave on None stay off the channels and off your bill.

IMPORTANT Setting Sync options back to None on a room type that was syncing disconnects it: it is removed from the channel manager together with its rate plans and channel mappings, and your channels stop selling it. Your Solidres room type, its rooms and its existing bookings are not affected. Switching sync back on later creates a new room type in the channel manager, so you will have to map it to your channels again.

STEP 7. Connect your OTA channels.

Back on the property's Channel Manager tab, click Manage OTA channels. The channel management screen opens in a dialog inside your Joomla administrator.

For each channel you want to sell on:

  • Add the channel and sign in with the credentials or hotel ID that channel gave you.
  • Map each channel room and rate to the matching Solidres room type and rate plan.
  • Activate the channel and run its initial sync.

NOTE Every channel has its own onboarding rules — some connect instantly, others need the OTA to approve the connection first, and going fully live on the channel's own side can take one to two weeks. Follow the instructions the channel shows you in this screen.

STEP 8. Run the first full sync.

Once your channels are mapped, go back to the property's Channel Manager tab and click Full sync. This queues 500 days of availability and rates for every synced room type.

The push is processed by the Solidres - Channel Manager Sync task, so allow a few minutes. When it finishes, Last full sync updates and your inventory is visible on the channels.

You only need to do this by hand after a big change (for example after mapping new channels), and it can run at most once per 24 hours — if you click it again sooner, the message tells you when the next run is allowed. Day-to-day edits sync on their own, so you will rarely need it.

STEP 9. Add the activity log widget.

Go to Solidres → Dashboard, click Widgets in the toolbar, add a new widget of type Channel manager activities and save it. This gives you a running log of every sync operation, in both directions — including warning entries when a channel accepted an update but rejected some of its values — so you can confirm at a glance that things are flowing.

The Channel manager activities widget on the Solidres dashboard listing recent sync operations

What syncs, and what does not

Channels sell rooms by the night, so only rate plans that can be expressed as a nightly price are sent. Solidres syncs a rate plan when all three of the following are true:

  • it is enabled (published);
  • its type is Rate per room per stay or Rate per person per stay;
  • it has no customer group assigned — member and negotiated rates stay private and are never published to an OTA.

Rate plan types

Rate plan type Synced? Notes
Rate per room per stay Yes The nightly price is sent as-is.
Rate per person per stay Yes Sent as the price for one adult multiplied by the room type's maximum occupancy. This is deliberately an upper bound — smaller parties still get the correct, lower price when they book directly on your site.
Package per room No A fixed price for an exact stay length has no nightly equivalent on a channel.
Package per person No Same reason.
Rate per room type per stay No Booking a whole room type is not an OTA concept.

IMPORTANT If a room type is set to sync but none of its rate plans are eligible, the room type's Channel Manager tab shows the warning No rate plan is synced for this room type. Availability will still sync, but the room will have no price on your channels until you add an eligible rate plan.

Rate plan modes

Mode How the nightly rate is calculated
7-day weekThe price for each weekday, repeating across the validity range.
DailyThe price entered for that date. Dates you left empty send no rate at all — availability still syncs, but the channel keeps its previous price for those days.
WeeklyThe week price divided by 7, for every night in the week.
MonthlyThe month price divided by 30, for every night in the month.

Alongside the rate, Solidres sends minimum stay, maximum stay and stop-sell — see Channel restrictions below for closing dates on your channels by hand.

Not sent to channels

  • Percentage pricing beyond the first adult's price, unoccupied prices, and child age buckets — a channel gets one nightly price per rate plan.
  • Allowed check-in days.
  • Extras and services booked on the channel — they arrive as note lines on the reservation rather than as Solidres extras.
  • Guest credit card details for channels where the property collects payment. Retrieve those from the channel's own extranet.

NOTE Unpublishing a rate plan does not delete it from your channels. It is paused with a stop-sell across its remaining validity, and your channel rate mappings survive — so a seasonal rate plan can be switched off and back on without re-mapping anything. Changing a rate plan's type, or assigning a customer group to it, does remove it from your channels permanently.

Channel restrictions

Sometimes you want your channels to stop selling certain dates while your own website keeps taking bookings. Components → Solidres → Channel restrictions does exactly that: each restriction covers one property, one or more of its rate plans (listed by room type) and a date range, and applies any combination of three flags on your channels:

Flag What the channels do
Stop sell The covered nights cannot be sold at all — no new stays touching those dates. Existing bookings are not affected.
Closed to arrival No check-ins on the covered dates. Stays passing through those dates remain bookable.
Closed to departure No check-outs on the covered dates. To block departures the morning after a closed range, include that morning's date in the range.
The Channel restrictions edit screen showing the channels-only notice, a date range, rate plan checkboxes grouped by room type and the stop sell, closed to arrival and closed to departure switches

Give each restriction a title that records why the dates are closed — "Close OTAs for regatta week", "Renovation floor 2" — pick the rate plans, set the date range and switch on the flags you need. The restriction is pushed to each selected rate plan, for up to 500 days ahead — to close a whole room type, simply select all of its rate plans. Only published restrictions are pushed; unpublishing or deleting one reopens the dates on your channels automatically (dates still covered by another restriction stay closed). If a selected rate plan's room type is not synced yet, the restriction saves with a warning and simply takes effect once the room type is synced.

NOTE Channel restrictions apply to your connected channels only — your own website keeps selling the covered dates, and your availability numbers do not change anywhere. To close dates everywhere, including your own website, use a limit booking instead.

When to use it

The classic case is the peak-date closeout. On dates you will fill anyway — a festival, a conference, high season — every OTA booking costs you 15–25% commission on a room that would have sold regardless. Stop-selling those dates on the channels while your own site keeps taking bookings is routine revenue management: the OTAs simply show no availability, and your direct guests still book. Closed to arrival and closed to departure shape stays instead of blocking them — for example, closed to arrival on a festival Saturday stops one-night stays from fragmenting the weekend, forcing Friday–Sunday bookings.

Pick the tool that matches your intent:

You want to… Use Effect
Close dates everywhere Limit booking, with all rooms selected Your own website stops selling too, and the channels receive zero availability
Close the channels, keep selling direct Channel restriction The flags are pushed to your channels; your website is untouched
Restrict check-in weekdays on your own website The rate plan's allowed check-in days Your website only; not sent to channels

Note that a channel restriction closes sales, not the hotel: if arrivals are genuinely impossible on a date (reception closed, for example), close it everywhere with a limit booking as well.

NOTE With the Inventory plugin (included with your Channel Manager subscription) installed, you can also toggle stop sell, closed to arrival and closed to departure per rate plan, per day, directly in the Solidres → Inventory grid. Grid toggles create and adjust channel restriction records for you, so both screens always show the same picture — use the grid for quick day-level tweaks and this screen for named, date-range closeouts.

IMPORTANT Two things to keep in mind before closing channels on a large scale. First, check your OTA contracts: some historically demand rate parity and occasionally last-room availability, and while such clauses have been banned or weakened in much of the EU, your own contract governs. Second, the big OTAs factor availability into their search ranking, so habitually closing out desirable dates can cost you visibility. Deliberate but sparing use is the professional norm.

Day-to-day operation

Once everything is connected there is nothing routine left to do. Solidres pushes an update automatically whenever you:

  • save a rate plan (price, minimum/maximum stay, validity);
  • save, cancel or delete a reservation — including bookings made on your own site;
  • add or remove a limit-booking rule;
  • save, publish, unpublish or delete a channel restriction;
  • edit availability, rates, stay lengths or restriction flags in the Solidres → Inventory grid (the Inventory plugin is included with your Channel Manager subscription) — grid edits go through the same save paths, so they sync exactly like the changes above;
  • change a room type's rooms or occupancy.

Only the affected dates are sent, so updates stay small and fast.

Bookings arriving from a channel

A channel booking becomes a normal Solidres reservation within seconds:

  • the guest is created or matched in your customer list;
  • the reservation's origin is the channel name (Booking.com, Airbnb and so on) and the channel's own reference number is stored with it;
  • rooms are assigned from the mapped room type, with the per-night prices the channel sent;
  • if the channel collected the payment the reservation is marked as paid; if you collect at the property it is left pending;
  • modifications update the same reservation in place, and cancellations move it to the cancelled state and release the dates back to your channels.

NOTE If a channel booking arrives for dates that have no availability left, Solidres still saves it — as a cancelled reservation with a note explaining why. Nothing is ever silently dropped, so you can see the overbooking and deal with it.

Keeping an eye on things

  • Properties list — a Channel Manager badge next to each connected property: green when syncing, amber when something needs attention soon, red when syncing has stopped — either because the subscription lapsed or because the property was disconnected on the channel manager side (each red state has its own icon and tooltip). Click it to copy the property ID.
  • Room types list — a connection badge next to each synced room type. Its tooltip carries the channel room ID, and clicking the badge copies that ID.
  • Front Desk — the availability grid compares your Solidres numbers against what your channels currently have, so a mismatch is visible immediately.
  • Inventory grid (included with your Channel Manager subscription) — Solidres → Inventory lays out availability, rates, stay lengths and restriction flags per day in one spreadsheet-style screen, exactly as they are pushed to your channels — and lets you edit most of them there. Rate plans in Daily mode are editable in the grid (per-room plans inline, per-person plans through a popover); plans in 7-day week, Weekly or Monthly mode are shown as calculated nightly rates and are read-only there — edit those in the rate plan itself. The availability row needs the Limit Booking plugin to be editable.
  • Channel manager activities widget — the full sync log, in both directions.

Your subscription and room limit

The property's Channel Manager tab shows your plan, its room limit and the expiry date. Refresh subscription status re-checks all of it immediately — use it right after renewing or upgrading instead of waiting for the hourly check.

Four notices can appear on that tab:

Notice What it means What to do
Your Solidres Channel Manager subscription expires on … Your subscription ends soon and syncing to your channels stops on that date. Renew before then — the notice carries a Renew subscription button.
This property syncs n rooms, but the … plan covers m You have enabled more rooms than your plan allows. Syncing keeps working for a 14-day grace period. Upgrade the subscription (the notice carries an Upgrade subscription button), or set Sync options to None on a room type until you are back under the limit.
Your Solidres Channel Manager subscription has expired. Availability and rate updates are paused and incoming channel bookings are held for you. Renew — syncing resumes instantly. The notice carries a Renew subscription button.
This property was disconnected on the channel manager side on … The property is no longer live in the channel manager, so availability and rate updates no longer reach your channels. The Status line shows Disconnected on the channel side. Click Refresh subscription status to re-check — if the property has been reconnected, syncing resumes automatically. If it stays disconnected, click Disconnect to clear the local link and then connect the property again, or contact Solidres support if the disconnect is unexpected.

NOTE An expired subscription is never destructive. Your channel connections and mappings stay exactly as they are, and incoming channel bookings are held for you rather than lost — they are delivered as soon as you renew. The same is true when a room limit is exceeded: outgoing updates pause, but reservations keep arriving.

Disconnecting

Use Disconnect on the property's Channel Manager tab to stop using the channel manager for that property. It removes the property from the channel manager and clears every local mapping — the property UID, the room type IDs and the rate plan IDs.

WARNING Disconnecting is not reversible. Unlike retrying an interrupted connection in STEP 5, connecting again after a disconnect provisions a brand-new property — the old one is never reused — so all of your OTA channel connections and room/rate mappings have to be set up again from scratch. To take a single room type off the channels, set its Sync options to None instead.

Your Solidres property, its room types, its rooms and all of its reservations are untouched by a disconnect.

Troubleshooting

Message Cause and fix
Set the Channel Manager plugin provider to 'Solidres Channel Manager' to manage the connection here. The plugin is still set to MyAllocator or Beds24. See STEP 2.
Save this property first, then return to this tab to connect it to the Solidres Channel Manager. You are on a brand-new property that has never been saved. Save it, then reopen the tab.
Enter your Solidres Download ID in the component options (Options → Subscription & updates) before connecting. See STEP 1.
The following property details are required before connecting: … Fill in the listed fields on the property. See STEP 4.
No active Solidres Channel Manager subscription was found for this Download ID. Buy or renew the subscription on solidres.com, then click Connect again. If you just bought it, use Refresh subscription status.
Every subscription is already in use / property limit reached Each property needs its own subscription. Buy another one, or disconnect a property you no longer sync.
The Solidres Channel Manager service could not be reached. A temporary network problem, or your server blocking outbound HTTPS. Retry in a few minutes; if it persists, contact Solidres support.
The Solidres Channel Manager is busy processing earlier updates for this property. Normal after a burst of changes. The update is queued and retried automatically — no action needed.
Availability and rate updates are paused. Either the subscription lapsed or the room-limit grace period ended. See Your subscription and room limit above.
A full sync already ran for this property in the last 24 hours. Normal — the channel allows one full sync per day, and day-to-day changes sync automatically anyway. The message tells you when the next full sync is allowed.
A full sync is already queued for this property. Normal — the queued sync is pushed by the Solidres - Channel Manager Sync task within a few minutes. Just wait for it.
This property has been disconnected from the Solidres Channel Manager. The property was disconnected on the channel manager side. See the disconnected notice in Your subscription and room limit above.

Nothing is syncing at all

  • Check that System → Manage → Scheduled Tasks really runs — an unrun Sync task is the single most common cause. Use Run Manually on the task once to confirm, and see How to set up Joomla CRON for the Task Scheduler if it never runs on its own.
  • Check the Channel manager activities widget for error and warning entries — a warning means the channel accepted the update but rejected some of its values, so check the affected rates and restrictions.
  • Check the room type's Sync options is not None, and that its Room type ID is filled in.
  • Check the rate plan is eligible — see What syncs, and what does not.

Channel bookings are not arriving

  • Your site must be reachable from the internet. Bookings cannot be delivered to a local or password-protected site.
  • Confirm the channel is activated and mapped in Manage OTA channels.
  • If you moved your site to a new domain, contact Solidres support so the delivery address can be updated.

NOTE Held or failed bookings are never thrown away. If something goes wrong on your side, contact Solidres support and the reservations can be re-delivered.

How it compares with MyAllocator and Beds24

Solidres Channel Manager MyAllocator / Beds24
Extra account None Required
Property, room types and rate plans Created automatically from Solidres Re-created by hand in the vendor dashboard
Mapping IDs Assigned automatically Copied over by hand
Where you manage channels Inside Joomla In the vendor dashboard
Rate plans per room type One channel rate plan per eligible Solidres rate plan Room-level or price-slot mapping
Rate Plan plugin Required — no dated rate plan, no price on your channels Required — same rule, it is where prices come from either way
Billing One vendor — your Solidres subscription and your Channel Manager subscription, both from us Two vendors — your Solidres subscription, plus the channel manager's own bill
Long-term support Our own service, developed alongside Solidres Beds24 supported; MyAllocator deprecated and scheduled for removal

Both integrations keep working today — see How to configure MyAllocator Channel Manager and How to configure Beds24 Channel Manager. Beds24 stays supported; MyAllocator is deprecated and will be removed in a future Solidres release. There is no automatic migration between providers yet: switching means disconnecting from the old one and setting your channels up again on the new one.

How to configure Solidres to be compatible with GDPR

Since Joomla 3.9, Joomla! Project officially introduces its Privacy Suite to be compliant with GDPR right from the Core. Solidres fully integrates with Joomla! Privacy Suite. More information can be found in the Joomla! Documentation

Below is a quick setup tutorial to guide you through all necessary steps to install additional extensions to make your Joomla site becomes GDPR compatible.

1. Download "Solidres_GDPR_Package.zip" from this link, then extract it and you will see two .zip files and a folder.

2. Open your Joomla Extensions Installer and install pkg_datacompliance-0.0.1.a1.zip, it will install com_datacompliance and associated plugins into your Joomla site.

This component is developed by Akeeba here: https://github.com/akeeba/com_datacompliance and published under GPL license.

If you encounter an error message that says you need to install FOF v3 framework, then open the folder "Optional" in your extracted folder (step 1) and install file lib_fof30.zip. If you encounter an error message that says "AkeebaFEFHelper is not found", then open the folder "Optional" in your extracted folder (step 2) and install file file_fef.zip.

3. Install plg_datacompliance_solidres_v0.1.0.zip using Joomla Extension Installer.

4. Now you can access component "Akeeba Data Compliance" from Joomla backend, menu Component. Go to the Options in the top right, confirm the settings, choose your Privacy Page and re-save it.

5. Go to Joomla Menu Manager and create a new menu item with type "Akeeba Data Compliance - Data Processing Options", this menu will be accessible for registered users only and they can use it to confirm their consent about data usage at your website, they can also see two option to export and delete their personal data in your site.

NOTE This component is only compatible with PHP 7 at this moment.

NOTE This solution is sufficient for now. However, for a long-term plan, you should wait for the official com_privacy from Joomla! Project: https://github.com/joomla-projects/privacy-framework. We are working closely with them to find a best implementation and integration.

How to configure subscription and commission

This feature requires Hub plugin.

For subscription:

1. Enable subscription in Solidres Config - Hub

How to configure subscription and commission in Hub plugin

2. Add subscription levels in the backend

How to configure subscription and commission in Hub plugin

3. Create a new menu with type "Solidres - Show front end subscription levels" to show subscription levels in the front end for the user to subscribe

How to configure subscription and commission in Hub plugin

And this is the result of the front-end:

How to configure subscription and commission in Hub plugin

4. Enable and add your PayPal email account for "Solidres - PayPal payment plugin for Hub subscription" in Joomla plugin manager

How to configure subscription and commission in Hub plugin

5. When a new subscription is created, you can manage it in menu Subscriptions

How to configure subscription and commission in Hub plugin

6. Setup automatic subscription expiration notification using CRON task

If you want Solidres to send automatic subscription expiration notification email to the subscribers, you'd need to setup CRON task for that.

You need to copy this file: /plugins/solidres/hub/cli/srsubscriptionnotify.php to the Joomla CLI root folder: /cli/srsubscriptionnotify.php

Then you can setup CRON task to run that file, please refer to your hosting provider for specific CRON instructions as it is different for each hosting provider.

For commission:

1. Enable commission in Solidres Config - Hub

How to configure subscription and commission in Hub plugin

2. Add commission rates on the backend

How to configure subscription and commission in Hub plugin

3. You can manage all generated commission in menu Commissions

How to configure subscription and commission in Hub plugin

How to configure iCal

Solidres for Joomla has iCal plugin which can be used for bi-directional availability communication between Solidres and 3rd system/services. This plugin is available for all paid Joomla subscribers.

1. Installation

First, you need to download iCal plugin from your Download page, then install and enable it, also make sure that you are using the latest version of User plugin as well.

2. Configuration

You need to generate API key for your user account, this API key will be used by iCal plugin. To generate API key, edit your user account in your Joomla User Manager and then click Save, Solidres will automatically generate your unique API key. If the API key is already generated, please skip this step.

To export your reservations as iCal format:

Edit your room type and you will see tab iCal. Make sure that your room type has at least 01 reservations, if your room type has no reservation, Solidres won't show the export URL. You can use this URL in your 3rd system/services like Google Calendar for example. Each room type has its own unique export URL.

To import external reservations to your Solidres as iCal format:

Manual: you can use the import field "Upload ICS file" which allows you to import external iCal files from 3rd system/services. Just choose the iCal file and then save your room type to import it.

Automatic (CRON): you can use the new Joomla Scheduled Tasks component. The configuration can be found in this tutorial.

Manual: you can use the import field "Upload ICS file" which allows you to import external iCal files from 3rd system/services. Just choose the iCal file and then save your room type to import it.

Automatic (CLI cron job): first you need to enter the external iCal URL that you want to import automatically into field "Import ICAL URL", then configure an automatic CLI cron job to execute the following script: JOOMLA_ROOT/cli/ical.php.

Automatic (Web cron job): first you need to enter the external iCal URL that you want to import automatically into field "Import ICAL URL", then edit plugin iCal in Joomla Plugin Manager and configure the "Cron token" field and save it, then you can use the URL in field "Web CRON URL" for your web cron job.

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