Migration

OpenCart migration in Europe: products, options, customers and SEO

OpenCart migration for EU stores, step by step: options into variants, customers and GDPR consent, index.php 301 redirects and extensions.

The CloudCart team15 min read
An old wooden shelf with mismatched puzzle pieces next to a bright laptop showing a tidy online store, with parcels moving between them
In this article · 10 sections
  1. When is it worth leaving OpenCart?
  2. What moves from OpenCart and what doesn't
  3. OpenCart options and CloudCart variants
  4. OpenCart URLs and 301 redirects
  5. Customers, passwords and newsletter subscribers
  6. Replacing OpenCart extensions for shipping, payments, VAT and invoices
  7. OpenCart migration in 6 steps
  8. Who does the move: our team, you or your developer
  9. Which platform to move to from OpenCart
  10. Frequently asked questions

In short: an OpenCart migration to CloudCart moves your products with their options, images, categories, manufacturers, customers, articles and old URLs, and our team moves the order history. OpenCart options become variants with a final price, every old URL gets a 301 redirect, including the index.php?route= forms, and a move by our team takes up to 45 days and costs €0 with a 24-month contract, through Dec 31, 2026.

OpenCart is open-source PHP software with no license fee that you install on your own hosting, so the server, security, updates and every extension for shipping, payments, invoices and VAT are your job. This guide is for owners of a working OpenCart store anywhere in Europe who want to leave without losing Google rankings or customers. The facts about OpenCart come from its official documentation, linked at each point, and the terms of the move are on the OpenCart to CloudCart migration page.

When is it worth leaving OpenCart?

Leaving OpenCart is worth it when hosting, extensions and developer hours cost more each month than a hosted plan, or when every update breaks an extension. An up-to-date, stable store with its own developer has no technical reason to move.

What you seeWhat it meansWhat to do
The OpenCart version hasn't been updated in yearsthe core and extensions keep their known security holesplan the migration before your next peak season
Some extensions stop working after an updateeach extension has a different author and nobody answers for the whole storecompare the cost of the update with the cost of moving
The site slows down when a campaign startsthe hosting can't take the traffic, and a bigger server costs morea platform with hosting included
You pay separately for shipping, payment, invoice, VAT, SEO and filter extensionsa platform with no license fee costs money every monthadd up the renewals and compare them with a monthly plan

Add up 12 months of hosting, developer hours, extension licenses and paid changes and divide by 12. CloudCart plans billed annually, excluding VAT, are Baby Pack €14, Starter Pack €33, CC Pro €83 and CC Master €249 a month, according to CloudCart pricing, with hosting, security, updates and the SSL certificate included.

What moves from OpenCart and what doesn't

The catalog, customers, content and old URLs move from OpenCart, and our team moves the order history. Customer passwords, the theme and the extensions don't move.

Data in OpenCartHow it goes into CloudCartWhat to know
ProductsCSV or XML import, the Admin API or our teamname, description, price, SKU, barcode, weight and tags each have their own field
Options (size, color, material)variants, up to 3 option groups in the CSV importeach combination gets a final price instead of "+€5"; details in the next section
Imageswith the products, as comma-separated URLsthey are downloaded and stored in CloudCart, so you can shut down the old server
Categorieswith the products or by our teamthe tree is rebuilt with the same hierarchy
Manufacturersthe manufacturer (vendor) field in the importeach manufacturer page also gets a new URL for the redirect map
CustomersCustomers → Import from CSV, the Admin API or our teama CSV brings in name, email, group, note and marketing consent; addresses come through our team or the Admin API
Order historymoved by our teamkept separately with us, for reference and accounting
Blog posts and information pagesthe Blog CSV Import app or our teamcheck the images inside the text before you shut down the old server
Old URLs301 redirects from a CSV filethey cover pages; PDF files and images don't go through them
Theme and extensions (OCMOD, vQmod)don't movereplaced by a CloudCart theme and built-in features

Important: the standard OpenCart admin has no product CSV export. According to the OpenCart maintenance documentation, System → Maintenance → Backup & Restore saves the database as an .sql backup. For a CSV you need an export extension; without one, our team takes the data directly from the old store.

OpenCart options and CloudCart variants

In OpenCart each product option has separate values, and each value can add to or subtract from the base price. According to the OpenCart documentation on options, the types are Select, Radio, Checkbox, Text, Textarea, File, Date, Time and Date & Time. In CloudCart a variant is a full combination, such as "M, red", with its own price, SKU and stock.

During the migration the price of each combination is worked out from the base price plus the option adjustments. A T-shirt example:

In OpenCartThe sumThe variant in CloudCart
Base price €39, size M no adjustment, color red no adjustment39 + 0 + 0M, red: €39
Size XL +€5, color red no adjustment39 + 5 + 0XL, red: €44
Size XL +€5, color black +€339 + 5 + 3XL, black: €47
  1. Pick the options that change the product. Size, color, material or weight become variant groups. The CSV import takes up to 3 groups per product, in columns v1, v2 and v3.
  2. Work out the price of each combination. Base price plus adjustments, as in the table.
  3. Group the rows by product. Each variant row has a variant.parent_id column with the same identifier as the product in the file, so all combinations land under one product.
  4. Add the variant image. If a color has its own photo, its URL goes on the variant row and shows for that combination.
  5. Check stock. OpenCart counts quantity per option value. CloudCart counts it per combination, so split the quantities before the import.

Text, File, Date and Time options hold what the shopper types at checkout, such as an engraving, and don't become variants. List those products separately.

Important: the CSV import always creates new products and doesn't update existing ones. If you run the same file twice, you get duplicate products. Test with 20 to 30 products first, check the variants, and only then upload the full catalog. Column mapping is explained in bulk product import from CSV, Excel and XML.

OpenCart URLs and 301 redirects

301 redirects keep your Google rankings after an OpenCart migration when every old URL leads to the same page in the new store. OpenCart URLs depend on the "Use SEO URL" setting. Without it, according to the OpenCart SEO URL documentation, a product URL looks like /index.php?route=product/product&path=20_27&product_id=45. With the setting on, the URL is the keyword from Design → SEO URL. The same documentation warns that changing a keyword breaks old links.

Page typeWhat it can look like in OpenCartWhat goes in the map
Product without SEO URL/index.php?route=product/product&product_id=45one row to the same product
Product through a category path/index.php?route=product/product&path=20_27&product_id=45every form of the URL leads to the same new URL
Product with SEO URL/espresso-coffee-1kgone row to the same product
Category/coffee or the form with route=product/categoryone row to the same category
Information page/delivery, /termsto the same information page
Deleted productany URL with no new matchto its category or a replacement product, never to the homepage

In a multilingual OpenCart store each language version is its own URL in Google and needs its own row in the map.

If you switched SEO URLs on later, Google may have indexed both forms, so add the index.php URLs to the map as well. In CloudCart the redirect keeps the part after the question mark, so an OpenCart URL with route and product_id redirects exactly. The * character stands for any text: /index.php?route=product/product&path=*&product_id=45 catches product 45 from any category. Use it carefully, because a row ending in product_id=4* also catches products 41, 450 and so on.

Build the list from the sitemap, Design → SEO URL and 12 months of the Search Console Performance report. Google Search Central's guide to moving a site with URL changes recommends keeping redirects for at least a year. In CloudCart they live in Marketing → SEO → 301 redirects: you add them one by one or upload a two-column CSV, up to 100 rows on Baby Pack, up to 2,000 on Starter Pack and unlimited on CC Pro and CC Master. The gclid, fbclid and main UTM parameters pass through the redirect, so Google and Meta ads keep being tracked. In one URL change in a live store, 13,418 redirects went through the Admin API in 30 minutes, with no errors.

Customers, passwords and newsletter subscribers

OpenCart customers move with name, email and group, and their passwords don't. OpenCart stores passwords as a hash, a one-way form, so no platform can read them. In CloudCart every imported customer gets an automatically generated new password.

  1. Prepare the file. Columns for first name, last name, email, customer group, note and marketing consent (yes or no). OpenCart groups such as "Wholesale" or "Resellers" are created automatically by name; customer groups are available from Starter Pack up.
  2. Open the import. In CloudCart go to Customers → Import. Before the upload the admin asks for a two-factor authentication code.
  3. Match the columns. For each column you choose the CloudCart field and start the import, which runs in the background.
  4. Tell customers about the new password. At their first sign-in customers set a new password through "Forgot password".

Important: put "yes" in marketing consent only for customers who subscribed to the newsletter in the old store, and import everyone else with "no" (also the value when the column is missing). Under Article 7(1) of the GDPR you must be able to prove consent. A customer who unsubscribed gets no marketing email in the new store either.

The new platform processes customer data on your behalf, so Article 28 requires a written processing contract with it, and your privacy policy should name it before the switch. Move your 14-day withdrawal terms and returns page across unchanged; the rules for them are in EU returns policy for online stores, and the cookie banner in cookie banner and GDPR for an online store.

The CSV import doesn't take delivery addresses; our team or your developer moves them through the Admin API.

Replacing OpenCart extensions for shipping, payments, VAT and invoices

OpenCart extensions for shipping, card payments, VAT and invoices don't move, because they are code installed on your server. In CloudCart they are built in and switched on from the admin with your existing contracts.

The OpenCart extensionWhat you have in CloudCartMore
ShippingGLS, DHL and DHL Express built in, plus Sendcloud and EuShipment for shipping across Europe: shipping labels and tracking from the ordershipping and couriers
Card paymentsCloudCart Pay with Visa, Mastercard, Apple Pay and Google Pay, or Stripe, PayPal, Mollie and Revolut with your own accountCloudCart Pay
EU VAT and OSSVAT rates by country, OSS for cross-border B2C sales and the no-VAT reason printed on the invoiceOSS VAT for online stores
Invoicesinvoices and credit notes issued from the orderinvoices
Inventory and ERPready-made connections with inventory and ERP softwareintegrations
Product feedsGoogle Shopping, the Meta catalog, Glami, Skroutz, Compari and eMAG from one catalogsales channels
Search and filtersAura Search finds products by meaning and with typosAURA
One store per languagea separate store per country with its own language and currency, fed from the same catalogmultilingual online store in Europe

On launch day turn off invoicing in OpenCart so no order gets two documents, and keep access to recent orders for returns. If you sell in or into Bulgaria, the Bulgarian couriers are built in too, see Econt, Speedy and BOX NOW shipping labels.

OpenCart migration in 6 steps

  1. Inventory. Count products, option combinations, categories, manufacturers, customers, orders and articles, and list the old URLs and active extensions.
  2. Backup. Download the database from System → Maintenance → Backup & Restore and keep the image folder from the server before you change anything.
  3. Import. CSV or XML for products, Customers → Import for customers, Blog CSV Import for articles, or our team. You request a move by our team in the new store's admin, Services → Migration.
  4. Redirect map. Every old URL gets a new one, including the index.php forms and every language version. The map is uploaded as a CSV.
  5. Tests. Compare the counts in the old and new store and launch only at zero difference. Place a test order with every carrier and payment method, and check the VAT for each country you sell to and the invoice.
  6. Switch and monitor. Point the domain at a quiet hour, the SSL certificate is issued automatically, and email stays with your current provider through its MX records. Watch 404 errors in Search Console for 60 days.

The move-day list is in the ecommerce replatforming checklist, and every way to move data in importing products into CloudCart.

Who does the move: our team, you or your developer

There are three ways to the same result; the choice depends on the catalog size and your time.

The pathBest forCost
The CloudCart teamlarge catalogs, many option combinations, several languages, a store with no CSV export€0 with a 24-month contract, through Dec 31, 2026; up to 45 days
You, with the CSV and XML importscatalogs you know wellonly the plan price
Your developer, through the Admin APIteams that want to check every recordthe developer's time; the API is available from Starter Pack up, up to 10,000 products at a time

The CSV import takes up to 100 products on Baby Pack, 2,000 on Starter Pack, 7,500 on CC Pro and 10,000 on CC Master. Details are on the online store migration page.

Which platform to move to from OpenCart

The choice after OpenCart depends on who will maintain the store and where you sell, and sometimes the sensible answer is to stay.

ChooseWhenWhat you take on
CloudCartyou sell in one or several EU countries, want EU VAT with OSS, couriers, payments and invoices built in, and don't want to look after a server and extensionsa monthly plan; theme and features within the platform
WooCommerceyou already have a WordPress site and a developer and want full control of the codehosting, security, updates and plugins, as with OpenCart
Shopifyyou want a large international app store and accept paying for apps on top of the plana monthly plan plus apps for local couriers, invoices and VAT reporting
Stay on OpenCartthe store is up to date, the extensions work and you have a regular developerthe same as now

The two open-source platforms are compared in WooCommerce vs OpenCart for EU sellers, the hosted option in Shopify vs WooCommerce for EU sellers, and all three side by side in the best ecommerce platform in Europe.

Frequently asked questions

The standard OpenCart admin has no product CSV export. System → Maintenance → Backup & Restore downloads the database as an .sql file, which serves as a backup. For a CSV file you use an export extension, and if you don't have one, our team takes the data directly from the old store.

Options that change the product, such as size or color, become variants in CloudCart. Each combination gets a final price, the base price plus the OpenCart adjustments, and its own stock. Text, File and Date options are not variants, so list them separately.

Not if every old URL, including the index.php?route= forms and each language version, has a 301 redirect to the same new page and titles and texts move unchanged. Some movement in the first weeks is normal. Watch 404s in Search Console for 60 days and keep the redirects for at least a year.

Import marketing consent only for customers who gave it and be able to prove it. The new platform processes the data on your behalf, so you need a written processing contract with it and an updated privacy policy before the switch.

A move by the CloudCart team is €0 with a 24-month contract, for requests through Dec 31, 2026, and takes up to 45 days. If you move on your own, you pay only the plan, which for new stores is €1/month for the first 3 months. The commission on sales is 0%.

Questions about moving from OpenCart? Write to support@cloudcart.com.

Sources

  1. OpenCart maintenance documentationdocs.opencart.com
  2. OpenCart documentation on optionsdocs.opencart.com
  3. OpenCart SEO URL documentationdocs.opencart.com
  4. Google Search Central's guide to moving a site with URL changesdevelopers.google.com
  5. Article 7(1) of the GDPReur-lex.europa.eu
The CloudCart teamChecked against the platform documentation. Questions: support@cloudcart.com

Build your online store

The first 3 months on every plan are €1/month. Questions: support@cloudcart.com

Create a store for €1