Photo: free stock photography (Unsplash licence) — see imprint
Inventory before you touch anything
List every plugin, every template override and every custom entity in the Shopware 5 shop. For each one decide: replaced by Shopware 6 core, replaced by a new plugin, rebuilt, or dropped. Most migrations that blow up did so because nobody wrote this list at the start.
SEO URLs are the real risk
Your rankings live on your old URL structure. Export every indexed URL before migrating, map it to its Shopware 6 equivalent and ship 301 redirects on day one. A shop that loses its URL map loses months of organic traffic — and that is a revenue problem, not a technical one.
Migrate data twice
The first migration run is a rehearsal on staging with a full production copy. You will find broken variant mappings, empty custom fields and duplicate customers — every single time. The second run, on go-live weekend, should be boring because you already fixed all of it.
Do not migrate the mess
A migration is the cheapest moment you will ever have to delete 4,000 dead products, six unused customer groups and that 2018 discount rule nobody dares to touch. Carrying junk into the new shop makes every future feature more expensive.
- Write the plugin inventory before quoting the project.
- 301-map every indexed URL — day one, not later.
- Always do a full dry run on staging first.
We do this for a living — Shopware, Node.js, React, ERP integration and automation for B2B.
Talk to an engineer