If you run a shop on VirtueMart, Joomla 6 raises one question before any other: does VirtueMart come with you? This guide gives the honest answer for October 2026, the route we recommend from an old VirtueMart 3 shop to Joomla 6, and the checks that keep a shop selling while it upgrades.
The short answer
- VirtueMart 4 does not run on Joomla 6. The VirtueMart team said so plainly with the 4.6 release. VirtueMart 4.8.2 (August 2026) is the current stable version, for Joomla 3.10, 4 and 5.
- VirtueMart 5 is the Joomla 6 version. It is in beta – published as test builds numbered 4.9.x – and the team reports it already running on Joomla 6.
- For a live shop today: Joomla 5.4 with VirtueMart 4.8. Joomla 5.4 gets security fixes until 12 October 2027, so there is time to do Joomla 6 properly.
We keep the current status in Does VirtueMart work on Joomla 6?
The route: two steps, not one jump
| Stage | Joomla | VirtueMart | Status |
|---|---|---|---|
| Where many old shops are | 3.10 | 3.x | No support, no security fixes |
| Step 1 – supported base | 5.4 | 4.8 | Stable, supported |
| Step 2 – test | 6 | 5 beta | On a staging copy only |
| Step 3 – go live on 6 | 6 | 5 stable | When VM 5 is stable and your plugins support it |
Step 1 is worth doing now on its own: it gets the shop onto supported, patched software. Step 2 tells you, months before you need it, what Joomla 6 will cost for your shop. Step 3 waits for a stable VirtueMart 5 – not for your patience to run out.
Where the work really is
VirtueMart 3 updates to 4 much like a normal update. The data – products, categories, orders, customers – usually comes across fine. The work is around it:
- Template overrides. Cart and checkout overrides copied from VirtueMart 3 miss the security tokens newer versions require – the classic "Invalid token" in the cart. See how to fix it and how to review overrides.
- Payment and shipping plugins. Each needs a version for your target Joomla and VirtueMart. Some have none. Check them first.
- Third-party add-ons – one-page checkouts, feeds, importers. VirtueMart 5 moves some functions to static calls and drops its jQuery dependency, so older add-ons may need updates for Joomla 6.
- URLs. Router changes can move product and category URLs, which costs rankings unless you redirect. Keep your URLs.
- The server. Joomla 6 needs PHP 8.3+ and MySQL 8.0.13+ or MariaDB 10.4+. Older hosting plans often can't.
Upgrade checklist
- Audit: Joomla, VirtueMart and PHP versions; every extension, payment and shipping plugin; every override in
templates/your-template/html/com_virtuemart; custom code. - Back up files and database, and restore the backup on staging.
- Count your data on staging: products, categories, orders, customers. You will compare after each step.
- Update VirtueMart to the latest 4.x on the Joomla you have, then upgrade Joomla to 5.4 with the template and extensions.
- Fix overrides, update or replace payment and shipping plugins.
- Place test orders with every payment and shipping method. Our test-order checklist.
- Go live in a quiet hour, with a final sync of orders and customers placed since you built staging.
- Later: copy the upgraded shop to a new staging and try VirtueMart 5 beta on Joomla 6.
The full walkthrough for step 1: Upgrade VirtueMart 3 to 4.8 on Joomla 5, step by step.
Stay patched in the meantime
VirtueMart has had several security releases in the last eighteen months – 4.4.8, 4.4.10, 4.6.0 and 4.8.0. The last one fixed a flaw in the Skrill payment plugin and added token checks across the shop. Whatever your Joomla plans, keep VirtueMart current: what 4.8.0 means for your shop.
Why VirtueMart 4 and Joomla 6 don't mix
The reason is visible in the code. In VirtueMart 4.6 (component and bundled plugins), we counted the old Joomla class names: JFactory 1,277 times, JHtml 429, JRoute 376, JText 219, JFile/JFolder 178. That's 333 of 624 PHP files. Joomla 6 removed those names from core; they now load only through the compatibility plugin, and the Joomla 7 branch installs that plugin disabled. A namespaced VirtueMart 5 isn't a nice-to-have, it's the only way forward.
For developers: a data baseline in one query
Before and after each step, count every VirtueMart table at once instead of a handful by hand:
# terminal – row counts of all VirtueMart tables (adjust database and prefix)
mysql -N -e "SELECT CONCAT('SELECT ''', table_name, ''', COUNT(*) FROM ', table_name, ' UNION ALL')
FROM information_schema.tables
WHERE table_schema = 'shop_db' AND table_name LIKE 'jos\_virtuemart\_%';" \
| sed '$ s/ UNION ALL$/;/' | mysql -N shop_db > counts-$(date +%F).txt
diff counts-before.txt counts-after.txt
Running a shop on an old Joomla or VirtueMart? We audit it, move it to a supported base and plan the step to Joomla 6 – the shop keeps selling.
VirtueMart Joomla 6 upgrade →