The short answer
OpenCart is free, open-source ecommerce software that you host yourself. It’s quick to set up and easy to extend, which is why many retailers started on it. Running it as an established business means looking after the hosting, the PHP version, extensions from many different developers, and upgrades between major versions.
Moving OpenCart to Shopify takes that layer away. The data moves well: migration tools support OpenCart as a source, and products, customers and orders map onto Shopify. The work is in three places: turning OpenCart’s options into Shopify variants, getting data out of a platform with no native CSV export, and redirecting URLs that, by default, are query strings.
I’ve engineered more than 350 Shopify stores and migrated over 500,000 products in 20 years. This guide covers where OpenCart is today, what moves, how options and URLs map, the tools, and when staying on OpenCart is the better call.
Want to know how your OpenCart store would map across? I’ll check in the free audit.
Book a free auditWho this guide is for
This guide is for established retailers on OpenCart, whether on version 2, 3 or 4, with a catalogue that has grown over the years, a list of extensions, customers and orders to keep, and search rankings worth protecting. Many such stores were built by a developer who has since moved on, which makes every upgrade and change harder than it should be.
If your OpenCart store is current, stable and well looked after, read when to stay on OpenCart first.
Where OpenCart is today
OpenCart is developed as an open-source project, with its releases published on GitHub. As of October 2026:
| Branch | Latest release | Minimum PHP |
|---|---|---|
| 4.1 | 4.1.0.4, marked “Latest” on GitHub | 8.1 (enforced in 4.1.0.4) |
| 3.0 | 3.0.5.1, released alongside 4.1.0.4, adding PHP 8.5 support | 8.1 for 3.0.5.x; 7.3 for older 3.0 releases |
Because OpenCart is self-hosted, the version of PHP on your server matters too: newer OpenCart releases need PHP 8.1 or later, and older releases may not run on current PHP at all, which can make hosting changes and upgrades harder to schedule.
Two things follow. Stores on older 3.0 releases or on version 2 are running software well behind the current branches, often with extensions that won’t work on newer versions. And moving from 3 to 4 is a substantial upgrade, because extensions and themes built for 3 generally need replacing. That upgrade is the natural moment to compare staying with moving.
What moves to Shopify
| OpenCart | Shopify | What to watch |
|---|---|---|
| Products | Products | Usually straightforward |
| Options and option values | Options and variants, or add-ons | Stock and price are held per option value, not per combination |
| Master and variant products (v4) | Products with variants | Map each group to one Shopify product |
| Attributes | Metafields | Ideal for filters and specification tables |
| Categories | Collections and menus | Nested trees become collections plus navigation |
| Manufacturers | Vendor field or collections | Brand pages may need their own template |
| Customers and customer groups | Customers, tags or B2B companies | Group pricing decides the approach |
| Orders | Historical orders | Imported after products and customers |
| Reviews | Review app | Imported and matched to products |
| Coupons | Discount codes | Rules checked against Shopify discounts |
| Information pages | Pages | Rebuilt in the theme and redirected |
| Extensions | Apps, theme features or nothing | Many are no longer needed |
Options, variants and stock
OpenCart’s options are where most migrations need judgement. In OpenCart’s database, stock, price adjustments (with a plus or minus), points and weight are stored per individual option value, not per combination of options. So a T-shirt with a size option and a colour option has stock for “Large” and stock for “Blue”, but not for “Large Blue”.
Shopify works the other way round. Each variant is a specific combination, with its own stock, price and SKU, built from up to three options, up to 2,048 variants per product. So before import, combinations and their stock have to be worked out:
- Single-option products map directly: each option value becomes a variant.
- Multi-option products need combinations generated, with stock and prices decided for each. Where the old store didn’t track combination stock, that’s a business decision, not a technical one.
- Options that don’t affect stock, such as text fields, file uploads or add-ons, use a product options app or theme feature instead of variants.
- OpenCart 4 master and variant products map to one Shopify product with its variants.
Price adjustments need the same care. In OpenCart, choosing an option can add or subtract an amount from the base price. On Shopify, each variant simply has its own price, so the final price of every combination is calculated before import and checked against the old store for a sample of products. The same goes for weights, which affect shipping rates.
OpenCart attributes, the descriptive specifications grouped into attribute groups, map naturally to Shopify metafields, where they can power filters and specification tables.
Cleaning the catalogue
OpenCart catalogues that have grown over years tend to share the same untidiness, and the migration is the moment to fix it:
- Missing or duplicate model codes and SKUs, resolved so every Shopify variant has a unique SKU for stock, feeds and marketplaces.
- Option names and values normalised, so “Colour” and “Color”, or “XL” and “X-Large”, become one consistent set.
- Attributes consolidated, merging overlapping attribute groups into clean metafields buyers can filter on.
- Descriptions tidied of old inline styling and editor leftovers.
- Disabled and out-of-range products left behind, with their URLs redirected to the best live alternative.
- Images checked so every product has its main image first and descriptive alt text.
OpenCart URLs and redirects
OpenCart’s SEO URLs are switched off by default in both version 3 and version 4. Without them, URLs are query strings:
| Page | Default OpenCart URL | With SEO URLs | Shopify |
|---|---|---|---|
| Product (v3) | index.php?route=product/product&path=20&product_id=42 | /product-keyword | /products/product-handle |
| Product (v4) | index.php?route=product/product&language=en-gb&product_id=42 | /product-keyword | /products/product-handle |
| Category | index.php?route=product/category&path=20 | /category-keyword | /collections/category-handle |
| Information page | index.php?route=information/information&information_id=4 | /page-keyword | /pages/page-handle |
Most established OpenCart stores have SEO URLs switched on, but many have both formats indexed, because query-string URLs were live before SEO URLs were enabled, or because some links still use them. The redirect map covers both: each product ID and each SEO keyword is mapped to its new Shopify URL. Product URLs that include a category path are covered too.
Shopify allows up to 100,000 redirects on standard plans, and its folders such as /products/ and /collections/ can’t be renamed. My Shopify migration SEO guide covers how the map is built and tested.
Getting data out of OpenCart
OpenCart has no native CSV export for products. Its built-in backup tool exports database tables, including customers and orders, as SQL, and CSV exports need an extension. For a migration, that usually means one of two routes: a migration tool that connects to the store directly, or reading the data from the database and mapping it into Shopify’s formats.
Shopify’s Store Migration app doesn’t list OpenCart as a source. Cart2Cart supports OpenCart to Shopify across a wide range of versions, moving products, categories, manufacturers, customers, orders, coupons and reviews, with 301 redirects and SEO URLs as options. LitExtension also supports OpenCart, noting that options and attributes “may need careful handling”. Matrixify can import OpenCart data once it’s converted to its template. My Shopify migration tools guide compares them.
Customers and orders
Customers, addresses and order history move, with newsletter consent carried on each record. Shopify’s guidance is to import products first, then customers, then historical orders, so each order links correctly. Orders arrive as historical records with notifications switched off, and order statuses are mapped so completed, cancelled and refunded orders report properly.
Shopify says customer passwords can’t be migrated from another store by CSV. LitExtension says OpenCart passwords aren’t transferred; Cart2Cart offers an extension for it. Shopify’s customer accounts sign customers in with a one-time code sent to their email, so a clear launch email is usually all that’s needed.
OpenCart customer groups, often used for trade pricing, become customer tags or, where prices differ by group, Shopify B2B companies and catalogues. Since April 2026, Shopify’s Basic, Grow and Advanced plans include core B2B features with up to three active catalogues.
Extensions and themes
- Retire caching, SEO, security and performance extensions; Shopify handles that layer.
- Rebuild in the theme product tabs, filters, specification tables, badges and layout extensions.
- Replace reviews, email marketing, feeds, marketplace connectors and accounting links with Shopify apps or integrations.
Extension data deserves a check: reviews, loyalty points and blog extensions often store their data in their own tables. Those are listed at the audit and extracted separately. Your OpenCart theme doesn’t transfer; the new store is designed and built as a Shopify theme.

Upgrade to OpenCart 4, or move?
| Upgrade to OpenCart 4 | Move to Shopify | |
|---|---|---|
| Data | Upgraded in place | Migrated and restructured |
| Extensions and theme | Usually need replacing for version 4 | Replaced by a Shopify theme and apps |
| Hosting and PHP | Still yours; PHP 8.1 or later | Not your concern |
| URLs | Check how SEO URLs carry over | All change; every one redirected |
| Future upgrades | Yours to plan and test | Shopify updates continuously |
If you have a developer you trust and want to keep control of your code, upgrading keeps that control. If you’d rather spend the time selling, moving is the stronger long-term choice.
Payments and integrations
- Payments. OpenCart payment extensions are replaced by Shopify Payments or your provider’s Shopify integration. Shopify Payments is available in the UK and many other countries; Shopify adds a fee when you use a third-party provider instead.
- Shipping and tax. Shipping methods, geo zones and tax classes are rebuilt as Shopify shipping profiles and tax settings, and tested with real orders.
- Stock, accounting and marketplaces. Each connection is named in the scope and tested before launch.
Ways to migrate OpenCart to Shopify
Migration app
Cart2Cart or LitExtension move products, customers and orders, with redirects as an option.
Right for: small, tidy stores with an in-house team.
Freelancer
Can work well. Check they’ve handled OpenCart options, query-string URLs and extension data before.
Right for: mid-sized stores with a clear brief.
Managed migration
Data, options, redirects, design, integrations and launch handled as one project, with a fixed fee and scope in writing.
Right for: established retailers with revenue and rankings to protect.
Preparing your OpenCart store before the move
- Take a full backup of files and database, and keep it after launch.
- Note your OpenCart version and every extension installed, with what each does today.
- List products with more than one option and decide how combination stock should be set.
- Check whether SEO URLs were always on, or switched on later, so both formats are mapped.
- Pull your top pages from Search Console so the URLs that matter are checked at launch.
- Keep hosting live until the move is confirmed.
How an OpenCart migration runs
My Shopify migration package runs over four weeks from signed brief to a live store. Very large catalogues and complex integrations can take longer, and I’ll tell you if yours will after the audit, before you commit.
- Week 1: audit and mapCatalogue, options, extensions, integrations and rankings reviewed; every OpenCart URL mapped.
- Week 2: design and buildA custom theme built around the restructured catalogue while OpenCart keeps trading.
- Week 3: move and connectData imported in the right order, integrations connected and tested, redirects loaded.
- Week 4: test and launchCheckout tested on real devices, a final data sync, DNS switched, then 30 days of monitoring and fixes.
Multi-store and languages
OpenCart can run several stores, and several languages, from one installation. On Shopify, several countries or languages for one brand usually become a single store using Shopify Markets, with up to 20 languages on standard plans and 30 on Plus. Genuinely separate brands usually become separate Shopify stores, or expansion stores on Shopify Plus if they share a brand. Each language version’s URLs are mapped to the matching Shopify market URL, so international rankings come across too.
Launch week
- A short content freeze on OpenCart, so nothing is lost between the final sync and launch.
- A final delta import of customers and orders placed since the main migration.
- Redirects tested in bulk, including query-string and SEO URL formats, with top pages checked by hand.
- Stock checked on multi-option products, against the combinations agreed at the audit.
- DNS switched carefully, changing only the website records so email keeps working.
- The new sitemap submitted in Search Console, and crawl errors watched daily.
What improves after the move
- No more hosting, PHP or version upgrades to plan and test.
- Accurate combination stock, so customers can’t order a size and colour you don’t have.
- Clean, readable URLs with every old one redirected.
- Fewer moving parts, with features built into the theme rather than spread across extensions.
- A team that can manage the store without the developer who built it.
Choosing a Shopify plan
OpenCart is free to download, so Shopify’s monthly plan can look like a new cost. The fair comparison is with what you spend now on hosting, extensions, security and the developer time to keep everything working together. Shopify’s US pricing lists Basic at $39, Grow at $105 and Advanced at $399 a month billed monthly, with local prices on its UK site; all include unlimited products and, since April 2026, core B2B features for trade customers. I recommend a plan after the audit, based on how you actually sell; my Shopify Plus migration guide covers when the top plan is worth it.
Protecting rankings
Beyond the redirect map, meta titles, descriptions and keywords for products, categories and information pages are carried into Shopify’s SEO fields, category descriptions move into the new collection templates, and image alt text moves with each image. A baseline of rankings, clicks and organic revenue is captured before launch and checked daily afterwards, because Google says rankings can fluctuate while a moved site is recrawled and recommends keeping permanent redirects in place for at least a year.
What an OpenCart migration costs
My Shopify migration package starts from $19,997 USD, or £14,997 + VAT for UK clients, with flexible plans depending on the deposit paid. It includes the audit, a custom theme, migration of products, images, customers, orders and content, every old address redirected, integrations connected, launch and 30 days of post-launch fixes. I’m UK-based and work remotely with retailers all over the world. Outside the UK, the package starts from $19,997 with no VAT, quoted in US dollars after the free store audit.
Against that, set what you stop paying: hosting, extension licences, upgrade work and developer time. My Shopify migration cost guide covers what moves the price, and my PrestaShop to Shopify migration guide covers a similar move from another open-source platform.
Common mistakes
Assuming option stock maps to variants. OpenCart tracks stock per option value; Shopify per combination.
Redirecting only SEO URLs. Query-string URLs may still be indexed and linked.
Forgetting extension data. Reviews and loyalty data often live outside the core tables.
Moving attributes as text. Structure them as metafields so they power filters.
Cancelling hosting too early. Keep OpenCart running until the final sync is done.
When to stay on OpenCart
- You’re on a current release with a developer you trust and extensions that work.
- You rely on custom code that would be expensive to rebuild anywhere else.
- Your store is small and simple. If you do move, a migration tool may be enough, and I’ll tell you if it is.
For established retailers facing a major OpenCart upgrade, moving to Shopify is often the better use of the same budget. For the full service, see my Shopify migration service, and for a large catalogue move in practice, the Lipton’s Shopify migration case study, with more than 2,800 products migrated.
Get a straight answer on whether to move from OpenCart.
Book a free auditOpenCart to Shopify migration: FAQ
Sources
OpenCart releases and PHP minimums: github.com/opencart/opencart releases (4.1.0.4 and 3.0.5.1) and installer source code for each release, accessed 24 October 2026. OpenCart URL defaults, SEO URL setting and option data structure: OpenCart 3.0.5.1 and 4.1.0.4 source code, accessed 24 October 2026. OpenCart exports: LitExtension, “OpenCart import export”, updated 7 October 2026. Migration tools: shopping-cart-migration.com and litextension.com OpenCart to Shopify pages, matrixify.app and Shopify’s Store Migration listing, accessed 24 October 2026. Shopify variants, redirects, import order, customer passwords and B2B: Shopify Help Center and changelog, accessed 24 October 2026. KA Consultancy prices and proof points as published on the Shopify migration services page.