Solidshop is distributed as a single Joomla package file that installs the core component, system plugin, payment plugins, and all supporting modules in one step.
Download Solidshop Core from the Downloads page. No account or licence key is required.
In your Joomla admin panel, navigate to System → Install → Extensions.
If you are new to Joomla: the admin panel is at
https://yoursite.com/administrator. Log in with the admin
credentials you created during Joomla installation.
Drag and drop Solidshop ZIP into the upload area, or click
“Browse for file” and select it. Joomla will install everything
automatically. You should see a success message listing the installed components.
After installation, Solidshop appears in the left sidebar of your Joomla admin. Click it to see the submenu with Dashboard, Stores, Products, Orders, and all other admin views.
What gets installed
The Core installer is a Joomla package that bundles eleven extensions and installs them in one pass. Once it finishes you have a complete storefront, an admin UI, the asynchronous email worker, and the storefront modules — no further downloads required.
| Extension | What it is |
|---|---|
lib_solidshop |
Shared Solidshop library — the namespaced classes (cart, tax, discount engine, invoice generator, events) used by the component, plugins, and modules. Installed first so everything else can depend on it. |
com_solidshop |
The core component — products, orders, checkout, tax, shipping, dashboard |
plg_system_solidshop |
System plugin for routing, event dispatching, and frontend integration |
plg_solidshoppayment_cod |
Cash on Delivery payment method |
plg_solidshoppayment_banktransfer |
Bank Transfer payment method — shows your bank account details and a payment reference on the order confirmation |
plg_task_solidshopemailqueue |
Scheduled task plugin that sends queued transactional emails in batches. Requires a one-time scheduler setup — see Set up the email queue below. |
mod_sshop_cart |
Shopping cart sidebar module |
mod_sshop_products |
Product listing/showcase module |
mod_sshop_search |
Product search form module |
mod_sshop_filters |
Product filter sidebar (category, price, brand, rating, tags) |
mod_sshop_languages |
Language switcher — links to the translated version of the current Solidshop product or category, falling back to the target language’s home menu on non-Solidshop pages |
Set up the email queue (required)
Solidshop sends transactional emails (order confirmations, status updates,
invoices) asynchronously
through a background queue. Each email is written to the
#__sshop_email_queue table the moment it’s triggered, and a
scheduled task ships them out in batches of twenty.
Without a working scheduler, queued emails simply pile up — nothing is sent. This is the single most common reason for “my order emails aren’t arriving” reports, so this section walks through the setup end to end.
The Joomla Scheduled Tasks component
Joomla 4.1+ ships with a built-in scheduler at
System → Manage → Scheduled Tasks
(com_scheduler). Many site builders miss it because it lives
under System rather than Components. This is where you add,
run, and monitor recurring jobs — including the Solidshop email queue
task.
Each scheduled task has:
- A type — the task plugin that does the work (e.g. Solidshop — Process email queue).
- A cron-style schedule — how often it should run (e.g. every minute, every 5 minutes, hourly).
- A status (Enabled/Disabled) and an execution history, so you can see whether each run succeeded or failed and how long it took.
How tasks actually get triggered
Creating a task only schedules it — something still has to fire the scheduler at the right interval. Joomla supports three trigger options. Pick whichever fits your hosting environment:
A real cron job on your server hits a Joomla CLI script every minute. This is the most reliable option because it runs even when nobody is visiting the site, and it has no impact on page-load performance.
On most Linux hosts, add this entry to your crontab
(crontab -e):
* * * * * /usr/bin/php /path/to/your/site/cli/joomla.php scheduler:run --all
Replace /path/to/your/site with your Joomla document
root and adjust the PHP path to match your environment. Most shared
hosts (cPanel, Plesk, DirectAdmin) expose a UI for adding cron jobs
— the command is the same; just paste it into the form.
A unique URL hits Joomla’s scheduler endpoint over HTTP. Useful when you don’t have shell access but you do have access to an external cron-as-a-service (cron-job.org, EasyCron, UptimeRobot, GitHub Actions on a schedule).
Enable the System — Schedule Runner plugin
(plg_system_schedulerunner) and switch its
Web Cron option on. Joomla will generate a secret URL of the
form:
https://yoursite.com/index.php?option=com_ajax&plugin=runschedulerwebcron&format=json&hash=<your-secret>
Configure your external cron service to call that URL every minute. Keep the URL secret — anyone with it can fire your tasks.
Joomla checks for due tasks on the back of normal frontend page loads. No cron job is required — it works out of the box on any host.
Enable the System — Schedule Runner plugin and turn on Lazy Scheduler. The trade-off: tasks only run when somebody visits the site. On low-traffic stores this can mean order confirmation emails are delayed by minutes or hours, so treat this option as a fallback — convenient for development, fragile for production.
Pick System Cron in production. Web Cron is a solid alternative when shell access isn’t available. Lazy Scheduler is convenient but unsuitable for live stores — emails won’t go out until somebody visits the site.
Create the Solidshop email queue task
With a trigger in place, create the task that processes queued emails:
Go to System → Manage → Scheduled Tasks and click New in the toolbar.
Pick Solidshop — Process email queue. This is
the plg_task_solidshopemailqueue plugin that ships with
the core package — it’s installed and enabled automatically,
so it appears in the type dropdown right after install.
On the Schedule tab choose Custom — Use
cron-like expression and enter * * * * * to run every
minute. Slower intervals work too (e.g. */5 * * * * for
every 5 minutes), but every minute is recommended for transactional
email so order confirmations arrive promptly.
Set Status to Enabled, save, then click Test in the toolbar. The Last Exit Code column should read OK. Place a test order and confirm the confirmation email arrives within a minute.
The same scheduler handles other Solidshop background jobs you may add later — invoice PDF generation, recurring invoices, subscription renewals, downloadable file expiry. They each ship as their own task plugin (in the optional plugins) and are configured the same way: one task per plugin, on whatever interval fits.