Your Old Store Walks Into Your New One Like It Always Lived There
The component that actually knows where your products, orders, customers, addresses, coupons, taxes, and images need to land. Plug in. Press Migrate. Stop sweating.
Migration. The Word That Makes Store Owners Sweat.
You've been putting this off, haven't you. The catalog you've built over years. The thousands of orders. The customers, addresses, saved carts, the discount codes you handed out last Black Friday. All of it lives in the old place. All of it has to end up in the new place. And the little voice in your head has been whispering “what if it breaks” for six months.
That's not migration. That's a hostage situation, and your data is the hostage. The longer you wait, the more data you have to move, the higher the stakes, the worse the eventual scramble. The store down the street already moved. They're outrunning you while you stare at a phpMyAdmin window like it's going to migrate itself.
Stop Being Held Hostage By Your Own Database
Not a CSV exporter. Not a generic data importer that asks you to map 80 fields by hand. An actual migration engine that knows where everything goes.
One-Click Dashboard
Open the component. See every tier. Press Start. Watch the progress badge tick through. No console commands required.
Tier-Based Engine
Catalog → customers → orders → images → menus → templates. Each phase finishes before the next starts. A bad row doesn't blow up the entire run.
Pre-Flight Analyzer
Before a single row moves, the analyzer scans your source database and tells you what's coming, what's risky, and what needs your attention. You see the report. You decide.
ID Mapping That Doesn't Break References
Source ID 4827 becomes destination ID 12. The map gets stored. Orders still reference the right products. Customers still own the right addresses. The thing nobody else gets right.
Image Migration That Actually Works
Discovers every product image. Copies the file. Rewrites the reference. Your three years of product photography land in the new store still attached to the right product. No gray boxes.
Menu Migration — SEO Stays Alive
Your Joomla menus that pointed at old store views get rewritten to point at the new ones. Your URLs stay alive. Your Google rank doesn't get nuked.
CSS & Template Migrator
Your custom CSS and custom templates from the old store get translated and ported across. Your custom look survives the move. Your designer doesn't get a 2 a.m. phone call.
Akeeba Backup On Autopilot
One toggle. The migrator asks Akeeba to take a fresh backup before it touches a row. Your safety net is automatic. If anything goes sideways, you're already covered.
Verification — Receipts For Everything
Products in: 2,847. Products out: 2,847. Orders in: 18,219. Orders out: 18,219. One screen tells you “you're whole.” The difference between a confident go-live and a panicked one is having receipts.
Row-Level Error Log
Anything that didn't import lands here with source row, destination row, and actual error message. You debug surgically. You stop grepping log files at midnight.
Runs History — Forever
Every migration run logged. Re-run, audit, compare. Your migration history becomes a paper trail you can show your accountant, your partner, or your future self.
CLI Commands For Massive Stores
Migrating a million-product catalog from a laptop browser is a recipe for a timeout. Run it from the shell instead. No browser babysitting. No spinner forever.
Stores That Stopped Procrastinating
Install It. Press Migrate. Have Dinner.
You can keep telling yourself the migration is too risky, too expensive, too disruptive. You can keep limping along on a store platform that's slowly bleeding you. Or you can install the migrator, point it at your old database, press Start, and have your new store running by dinner.
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, Component
- J2Commerce Version 6.x
- Joomla Version 6.x
Arabic Unitag
Chinese, Traditional
Danish
Dutch
English
English, USA
Finnish
French
German
Greek
Hebrew
Italian
Japanese
Norwegian Bokmål
Persian Farsi
Polish
Portuguese, Brazil
Portuguese, Portugal
Russian
Spanish
Swedish
TurkishFix PR928 conflict handling, natural-key matching and an authorization sweep
Fix PR929 close the menu-write authorization gaps and stop the review screen wiping languages
Fix PR930 restore in-place menu items from a recorded link instead of guessing
Fix PR979 diskless report exports, full locale sync
Fix PR984 close the carried-forward authorization and disclosure gaps
Fix PR994 encrypt the source-store connection by default
Fix PR1003 retire the J2Store 4 adapter
Fix PR1004 migrate the store template setting to a template that exists
Fix PR1006 stop packaging local tooling files into the component zip
Fix PR1007 make the artifacts download_token migration re-runnable
Fix PR1008 move migrated credentials out of the export surface, repair the WordPress verifier
Fix PR1012 carry migrated passwords into Joomla's own format
Fix PR1028 retire the interim credential store
Fix PR1033 complete the shipped locale set
Fix Fix migration stopping early with holes on large tables — the skip-join now paginates the raw source before filtering, so every order, cart, and history row migrates
Fix Fix batched ID-map writes silently dropping rows on an InnoDB deadlock — add a transient-error retry with backoff
Fix Fix table-name resolution corrupting names whose body contains the DB prefix (e.g. prefix commerce_ turned j2commerce_weights into j2weights)
Fix Fix Reset Migration ID Map and the other destructive tools — the typed-confirmation phrase is now sent to the server and the prompt states exactly what to type
Improvement Keep the status summary bar as the last item so tool cards render above it instead of hidden below
Fix
Improvement Widen migration coverage for shortcode-only stores
Improvement Store-settings fix, easycheckout menus, diagnosable tools
Improvement Robust category migration + help URL [version bumped]
Improvement Sanitize legacy-encoded config values so Migrate Store Settings doesn't error [version bumped]
Fix Reset Migration ID Map no longer reports a false error
New Feature Configure Connection link to all adapters
Fix
Fix
New Feature Encrypt stored Mode B/C source-database passwords at rest (AES-256-CBC)
New Feature Add Setup Guide onboarding wizard for first-time migration setup
New Feature Add connection probe-table validation before a migration run
Fix Complete db_password_encrypted schema (install SQL + 6.0.0 update SQL)
Improvement Rebase local feature work onto 6.0.8 base
Update Keeps repo translations, Mode B connection fix, and Linux Akeeba field-case fix
Update Requires Joomla 6.x + J2Commerce 6.x
Fix
Fix Akeeba field types load on Linux
Improvement Updated help links
Improvement Reliable Mode B connection
New Feature Images tile progress
Fix move HikaShop tile layout from component into HikaShop plugin
New Feature support for 19 more languages
Fix Fixed wrong package inclusion
New Feature Update server for automatic updates
New Feature J2Commerce v6 and Joomla 6 support
The J2Store 4 / J2Commerce 4 Adapter Is Already In The Truck
This is the one you came here for. If your store is on J2Store 4 or J2Commerce 4 right now, you already have the moving truck loaded — it shipped in the same package as the migrator itself.
The adapter knows the source layout cold. Products, variants, orders, order items, customers, addresses, coupons, vouchers, taxes, geozones, shipping methods, payment methods, custom fields, downloads, subscriptions — every table you care about has a mapped path into the new store.
- You don't write column mappings
- You don't translate primary keys
- You don't try to figure out where variant options live in the new schema
- The adapter handles all of it. You watch the dashboard turn green.
The hardest part of any migration is the source-to-destination map, and that map is already drawn for the two source platforms most existing customers are on. The work somebody else would charge you four figures to do — the migrator does it before lunch.
Tier-Based Migration That Doesn't Crash When One Row Misbehaves
Most generic “import everything in one transaction” tools die the second they hit a single bad row. Half your catalog made it, half didn't, and the half that didn't is the half you care about most. You roll back. You panic. You try again. Same result.
This migrator works in tiers, and inside each tier, in batches. A bad row gets logged, the batch finishes, the tier moves on. At the end you have a list of every problem child with exactly what went wrong. You fix those. You re-run the tier.
The phrase you want at 11 p.m. on go-live night is “the rest finished, here's the list of 3 rows to look at” — not “everything failed, start over.”
Verification After Every Run
The migration finishes. Now what? Now you need to trust that everything came across. Not believe — trust, with evidence.
The verification service compares source row counts to destination row counts for every entity. Products in: 2,847. Products out: 2,847. Orders in: 18,219. Orders out: 18,219. Images in: 11,402. Images out: 11,402. One screen tells you you're whole.
If something didn't make it, the verifier names it and the error log explains why. You fix and re-run that slice. You don't re-run the whole migration. You don't lose what already worked.
Stay Updated
Subscribe for free and be the first to know about the latest features, updates, and new additions.