Applies to VirtueMart 3, 4.8 and 5 beta · Joomla 3 to 6 Updated 16 Oct 2026

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

StageJoomlaVirtueMartStatus
Where many old shops are3.103.xNo support, no security fixes
Step 1 – supported base5.44.8Stable, supported
Step 2 – test65 betaOn a staging copy only
Step 3 – go live on 665 stableWhen 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

  1. Audit: Joomla, VirtueMart and PHP versions; every extension, payment and shipping plugin; every override in templates/your-template/html/com_virtuemart; custom code.
  2. Back up files and database, and restore the backup on staging.
  3. Count your data on staging: products, categories, orders, customers. You will compare after each step.
  4. Update VirtueMart to the latest 4.x on the Joomla you have, then upgrade Joomla to 5.4 with the template and extensions.
  5. Fix overrides, update or replace payment and shipping plugins.
  6. Place test orders with every payment and shipping method. Our test-order checklist.
  7. Go live in a quiet hour, with a final sync of orders and customers placed since you built staging.
  8. 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 →