Shopware 6 to J2Commerce 6
Free
$0.00

Bring Your Shop Home.

Your website is Joomla. Your workflow is Joomla. Your hosting is yours. So why does your shop live somewhere else, on a stack that needs a specialist and eats your weekends?

The Shopware 6 Migrator moves the whole store into J2Commerce — catalogue in every language, variants, tier pricing, customers, media, promotions, and every order with its full history. Your customers log in with the passwords they already have.

0
Password reset emails sent
0
Rows retyped by hand
1 click
To resume after any interruption
0
Minutes your old store goes offline

Everything Comes With You

Not "most of it." Not "the products, and we'll figure out orders later." All of it.

It Refuses To Let You Do It Wrong

Twenty-six migration steps in four organised lanes, each one refusing to run until the things it depends on have run first. Tax before products. Customer groups before pricing. Orders last. You cannot break the sequence by clicking the wrong tile at 2am.

Nobody Resets Anything

Every migrated customer logs in with the password they already have. Even the old, undecryptable ones — verified against what the customer actually types on first login, then quietly upgraded in the background. They notice nothing. Because nothing happened to them.

Both Languages. Actually Both.

Products and categories migrate in every language you sell in — and the pairs get linked, so your language switcher does what a language switcher is for. Missing official language packs get downloaded and published for you.

Variants That Never Existed, Now Do

Real variants migrate as real variants. And configurable products that never materialised their combinations get built out into actual, sellable variants — instead of arriving as empty shells you discover during your first sale.

Your Trade Pricing Stays Trade Pricing

A quantity tier price whose rule cannot be pinned to one customer group is skipped and reported — never quietly imported. Your wholesale rate does not go on public display because a rule name was ambiguous.

Orders, Whole. Not Headlines.

Line items, discounts, per-rate tax breakdown, shipping charge, both address snapshots, payment records and the full status history. Historic statuses write silently — no confirmation email fires, no dormant payment gets touched.

Media Pulled From The Live Store

Images and datasheets downloaded straight from your running shop, then attached to their products in the exact gallery order you arranged. No folder archaeology. No page full of broken image icons on launch day.

Your Search Rankings Survive

Product and category addresses are taken from the live, canonical ones your shop is serving right now. Everything that genuinely changed comes out as a downloadable redirect list, ready for your server. Bookmarks keep working.

Proof, Not Vibes

A reconciliation report asserts every count and every sum and produces something you can hand to a client. Plus a downloadable log of every run. You don't have to feel confident about the migration. You get to check.

Groups, Options, Brands, Coupons

Customer groups become real user groups. Properties become product options with their full value pools. Brands keep their identity. Promotions become coupons — and the automatic ones that never had a code get one, so they don't vanish.

Tax That Stays Correct

Tax records resolve by their real identity, never by matching a rate number. Two different rules that happen to share a percentage stay two different rules. The setup your accountant blessed survives the move intact.

Rehearse It Until It's Boring

Wipe everything the migration created and run it again from zero. Break it on staging five times, fix your mappings, then do it once on production on a calm Tuesday afternoon. Both reset tools make you type a confirmation word, because they should.

The Email You Are Never Going To Send

You know the one. "We've upgraded our store! Please reset your password."

Here is what happens when you send it, and you already know, which is why you keep closing the tab. A meaningful slice of your customers do not reset anything. They do not file a ticket. They do not email you. They see a login screen that does not recognise them, decide your store is broken, and buy the same thing somewhere else within ninety seconds.

You never find out. It just shows up later as a number going the wrong way.

So the migrator does not send it. Modern passwords copy across as-is. The older undecryptable ones get verified against what the customer actually types on first login, then quietly upgraded behind the scenes. And a live countdown on your dashboard tells you exactly how many people are still on an old format, so you know the precise moment it's safe to let go.

Not a guess. A number.

Four Questions Only You Can Answer

Some things genuinely cannot be guessed. So the migrator asks instead of inventing — and it only ever asks about things that actually exist in your data.

Order statuses: your old shop tracks the order, the payment and the delivery as three separate states. Your new one tracks a single status. Every combination that actually appears in your order history gets listed, and only those. The obvious ones pre-fill. The ambiguous ones are yours.

Shipping and payment methods: every method actually used on a real order, listed with its order count. Attach it to something you already run, or build it from the source.

And pricing rules — the one that saves B2B stores. Your rule names are composites like a customer group, a product line and a discount mashed into one label. No algorithm on Earth reliably decodes that. So you decide, rule by rule.

Every migration tool that silently guesses at your pricing is one bad guess away from showing your trade rate to the general public.

Built For People Who Get Interrupted

Small batches. A strict time budget on every request. Every committed row remembered.

Close your browser halfway through ninety thousand orders. Take a call. Let the server hiccup. Come back tomorrow and click the same button. It resumes exactly where it stopped and does precisely zero duplicate work.

Meanwhile your old shop never goes offline. Connect over an encrypted remote link and migrate from a live store on another server while it keeps taking orders — or run same-server for raw speed. You switch over when you are ready, not when a progress bar decides.

It just works.

Four Different Stores. Four Identical Outcomes.

Different catalogue, different panic, same end result.

Katrin runs an industrial fastenings distributor. Four customer groups. Tier pricing across 3,100 products, gated by rules her predecessor invented and never documented. 14,000 orders across seven years.

Her entire business is the trade pricing. If a contractor logs in and sees retail, she loses the account — and possibly the four accounts he talks to on Thursdays.

She runs it on staging first. The pricing rule screen lists every rule actually driving a price and she works through them one at a time. Two she genuinely cannot decode, so she excludes them and handles those products by hand — which is the right outcome, because the alternative was importing them blind.

Thirty spot-checks across all four groups. Prices right. Production the following Tuesday. Zero pricing enquiries in launch week — and for Katrin, that silence is worth more than the whole project cost.

Marco runs a Joomla agency. His client sells across two markets in two languages: 1,900 products, a deep category tree, six years of orders they are legally required to retain, and a search presence they spent real money building.

He cannot lose the second language. He cannot lose the URLs. He cannot bill for a month of data entry.

He connects over an encrypted remote link so the shop never goes down. Language check first — it installs and publishes the missing content language for him. Catalogue migrates in both languages with the pairs linked so the switcher works. Redirect map exported and handed to the sysadmin before go-live.

Launch day: old links resolve, both languages work, and the reconciliation report goes straight into the client handover pack. The client's only comment is that the admin looks nicer now.

Jonas sells outdoor gear. 740 products, a lot of them configurable. 5,200 orders. 1,600 customer accounts, many of them people he has emailed personally.

He has been quoted for the move twice and flinched at both numbers. His actual blocker was never the money — it was the mental image of emailing 1,600 people to tell them to reset their password.

Thursday evening: connection check, lookups. Friday night: catalogue. Saturday morning while the coffee is still hot: customers and orders. He notices the configurable products that never had proper variants come across as real, sellable ones.

Monday morning his regulars log in with the passwords they have always used. Nobody emails him. Nobody notices. Weeks later the dashboard counter reads zero. That's what a good migration feels like: nothing.

Priya runs a specialist parts store. 90,000 orders. Her support team pulls order records daily to verify purchase dates and configuration notes against multi-year warranty claims.

A migration that dies at 20,000 orders is worse than no migration at all — it's a half-truth her team will trip over for years.

Resumable batching means she runs orders across three evenings without babysitting a browser tab. All 90,000 arrive with line items, tax breakdowns, address snapshots and status history. Then she runs the reconciliation report and reads the counts back against the source before she signs off.

Her warranty desk works on day one exactly as it did on day zero. Nobody there even knows the platform changed.

You've Already Rehearsed This Migration a Hundred Times.

Every version in your head ended in a spreadsheet weekend and an apology email to your customers. This one ends on a Tuesday afternoon with a reconciliation report and nobody noticing anything happened.

Your shop has been living out of a suitcase long enough.

Translated In The Following Languages

Arabic Unitag (ar-AA), Chinese, Traditional (zh-TW), Danish (da-DK), Dutch (nl-NL), English (en-GB), English, USA (en-US), Finnish (fi-FI), French (fr-FR), German (de-DE), Greek (el-GR), Hebrew (he-IL), Italian (it-IT), Japanese (ja-JP), Norwegian Bokmål (nb-NO), Persian Farsi (fa-IR), Polish (pl-PL), Portuguese, Brazil (pt-BR), Portuguese, Portugal (pt-PT), Russian (ru-RU), Spanish (es-ES), Swedish (sv-SE), Turkish (tr-TR)


  • Developer J2Commerce
  • Extension Type Migration
  • J2Commerce Version 6.x
  • Joomla Version 6.x
Language Translations
Arabic UnitagArabic Unitag
Chinese, TraditionalChinese, Traditional
DanishDanish
DutchDutch
EnglishEnglish
English, USAEnglish, USA
FinnishFinnish
FrenchFrench
GermanGerman
GreekGreek
HebrewHebrew
ItalianItalian
JapaneseJapanese
Norwegian BokmålNorwegian Bokmål
Persian FarsiPersian Farsi
PolishPolish
Portuguese, BrazilPortuguese, Brazil
Portuguese, PortugalPortuguese, Portugal
RussianRussian
SpanishSpanish
SwedishSwedish
TurkishTurkish

Fix Hold downloaded document bytes to the same standard as the image and SVG branches

Fix Keep two source files whose names sanitise identically on separate paths

Improvement Bump the adapter to 6.0.9

Update Document bytes are now signature-checked against the extension they were classified under, and a

Update row that does not match is reported rather than written. Written media paths carry a short

Update discriminator taken from the source media uuid, so names that reduce to the same string no longer

Update share one path; files a previous run wrote under the old naming are still found and reused

Stay Updated

Subscribe for free and be the first to know about the latest features, updates, and new additions.