Your cart cannot make the jump to Joomla 6. Your catalogue can — install the migrator, preview it, run it, uninstall it.
If you run a VirtueMart store, you have probably already discovered the awkward part of the Joomla 6 upgrade: VirtueMart 4 does not run on it. There is no in-place path. Upgrading Joomla and changing cart stopped being two separate decisions and became one project — and the first question in that project is always the same. What happens to my catalogue?
Today’s answer is Solidshop Migrator: a free, standalone Joomla 6 component that reads your VirtueMart store and rebuilds its catalogue inside Solidshop. Categories, brands, products, per-language translations, prices, variants, images and stock. You install it on the new site, run it, and uninstall it.
How it actually goes
The migrator runs on the destination and reads the source — never the other way round, and never in place. That is the only shape that works when the old cart and the new Joomla cannot live on the same site. In practice:
- Stand up a fresh Joomla 6 site, install Solidshop, create your store.
- Install the migrator and point it at the old database — host,
database, user, password, prefix. A read-only MySQL
user is enough; it never writes a row to your VirtueMart site. Old
host already gone? Upload a
.sqldump instead. - It detects your VirtueMart version, finds your content languages, counts what is there, and shows you a few product names so you can spot a character-encoding problem in ten seconds rather than after five thousand products.
- Choose the target store, the category the tree lands under, how the languages map, and where the images should come from.
- Preview. Then run. Then read the report.
The run works in small chunks with a live count, so a big catalogue never collides with your host’s PHP time limit — and if a run does die, starting it again resumes instead of restarting.
The preview is the point
A migration tool that dies at 60% with no explanation does more damage than no tool at all. So preview writes nothing, and it is not a separate estimate that can quietly disagree with reality — it is the real run with the writing switched off. Same reading, same mapping, same warnings.
What it hands you is a list: products whose extra category assignments will be dropped, products with more option axes than Solidshop supports, images it could not find, prices that lost detail, and every VirtueMart calculation rule it found. Read it, fix what you can, run it for real.
And a re-run is an update, not a duplicate. Get a language mapping wrong, notice on product number four hundred, fix it and run again — the same products are updated in place. That one property is what makes it safe to be brave.
What it does not move
Version 1 moves your catalogue. It does not move your history: orders, customers and reviews stay behind. Keep the old database as an archive for accounting — you can open the new shop without it.
It also does not translate your tax rules, and that one is a decision rather than a gap. VirtueMart models tax as free-form calculation rules, used interchangeably for tax, discounts and fees. Solidshop models it as zones and rates. There is no faithful automatic translation between the two, and a wrong one gives you a store that quietly charges the wrong VAT. We would rather list every rule we found, with its name and value, and have you rebuild two zone rules in five minutes — correctly, and knowing that you did.
The same principle runs through the whole tool. Where VirtueMart holds something Solidshop models differently — a product in six categories, a product with four option axes, a downloadable file, a shopper-group price — nothing is silently truncated or guessed. It is imported as far as it faithfully can be, and then named in the report so you can finish the job deliberately. That report is a genuinely useful migration document, and it is the thing we would most like you to judge the tool by.
Very large catalogue? Use the command line
The same migration runs from Joomla’s CLI, through a console plugin that ships in the same package — nothing extra to download, just enable it. The identical engine, driven from a JSON config file:
php cli/joomla.php solidshop:migrate --config=migration.json --dry-run \
--report=preview.html
Drop --dry-run for the real thing. It prints progress and
every warning as it goes, writes the same HTML report, and exits
non-zero if anything failed — so it is safe to drive from a
script. This is the answer for a catalogue in the tens of thousands, or
a host with a punishing execution limit.
It is free, and it stays free
Solidshop sells growth features to established merchants. It does not sell the door. Importers, migrators, the sitemap, the search indexer and the catalog API are all part of what you get for nothing, because charging someone to move in is a strange way to run a shop.
Once your catalogue is across, uninstall the migrator. One uninstall takes both parts with it, drops its own working table, and leaves your data alone. A one-shot tool has no business sitting on a live store.
Getting it
Solidshop Migrator is on the Downloads page and needs Solidshop 1.3.0 or newer on a Joomla 6 site. Your source should be VirtueMart 4 — a VirtueMart 3 store is detected and flagged, so update it on its existing Joomla first.
The migration documentation walks the whole thing: prerequisites, every option on the wizard, the command-line route, what re-running does, and the full honest list of what does not come across.
If you migrate a messy real-world catalogue and the report names something it should have handled, tell us what it said. The mapping is the part that gets better with real-world exposure, and yours is more interesting to us than sample data.