An owner of an online shop running on the Joomla and VirtueMart stack who wants to switch CMS (in most cases because of technical SEO problems) to something more modern gets the same opinions from what are called experts: "You need to move to Shopify," or "You need to move to Magento, it runs fast, pure e-commerce, no blog, modern."
About Shopify
Shopify is a monthly fee plus a percentage of sales. You do not need to think about the technical side of running an online shop. You pay a fixed amount every month and a percentage of sales. If you have no interest in dealing with technical SEO, Shopify is a reasonable choice with stable, quality support.
- Shopify plans start at around forty euros per month (Basic) and go up to several hundred. Plus transaction fees if Shopify Payments is not used. Plus Shopify takes from one and a half to two percent of each sale. Plus extensions for your online shop: SEO work, custom fields, invoice generation from your templates, integrations with accounting software. On Shopify these are monthly subscriptions.
- For an online shop operating in the EU and accepting payments through Redsys, Bizum, Klarna or LiqPay in Ukraine, the picture looks like this: the Shopify subscription, the app subscriptions, plus a percentage of every sale. Over several years the total adds up to a sum that could have been spent once on a quality modernisation of VirtueMart and running it for many more years, or (if you really want a change) migrating once to OpenCart and paying only for hosting.
- Architecture constraints. The European payment systems Redsys and Bizum are not all integrated into Shopify; some work only through third party apps (paid). Complex business processes require Shopify Plus (considerably more expensive).
- Shopify is your choice if: you do not want to deal with technical issues and are ready to pay a rental fee for that (when you pay for developing your own online shop, it ends up being yours as a finished product; with Shopify you are paying rent for that same shop, and if anything happens you cannot take it with you). Your shop's business processes are standard and fit within the Shopify ecosystem. For a VirtueMart shop that has reached the point of needing to migrate to another CMS, these conditions are usually not met.
About Magento
Magento is a CMS created for online shops with a large and complex product catalogue. In that niche Magento genuinely has no competitors. But VirtueMart shops, by objective data (that is simply how things have turned out), almost never operate in that niche.
Magento 2 requires Elasticsearch or OpenSearch, Redis, and RabbitMQ as mandatory components. This is not "recommended for performance," it is mandatory. Without them Magento will not work. Hosting for Magento 2 is significantly more expensive than a standard VPS where VirtueMart has been running for years.
Periodically Magento releases a major upgrade. Each upgrade is a new small but important project: testing and adapting (where necessary) the extensions. The owner of a VirtueMart shop has neither the team, nor the desire, nor the money to deal with Magento upgrades every year and a half.
According to StoreLeads data, the active Magento Open Source shop base shrank from around 160 thousand at the end of 2021 to 112 thousand in the first quarter of 2026. Magento lives and grows in the enterprise segment. Migrating there now is possible, but complex.
If you have several shops on one admin panel with a shared catalogue and you have a Magento developer, migration is an option. For an owner accustomed to VirtueMart, in my view, Magento is an ecosystem with infrastructure that is not built for your scale.
We do migrations to Magento when a client is in that niche. For a VirtueMart shop, migration to Magento is almost always excessive.
If migration from VirtueMart is genuinely needed, I recommend OpenCart
For the type of online shop described earlier in this article running on the Joomla and VirtueMart stack, my choice is OpenCart. Not because OpenCart is fashionable, growing, or trending. The arguments are: OpenCart matches the reality of your online shop, the same PHP, the same VPS (or cPanel hosting).
About Joomla and VirtueMart
VirtueMart on Joomla 5 continues to receive updates, runs on PHP 8, and works adequately with several thousand product cards in an online shop.
The main reasons why owners consider switching CMS:
- slow loading,
- difficulty meeting modern technical SEO requirements (markup for LLM, language tags, correct 404 error handling in VirtueMart, where the derived URL text of a product category returns a 200 server response),
- the online shop cart in a default configuration that has not been updated for a long time,
- extensions whose own developers have stopped supporting them,
- the feeling that "the site looks like it is from 2012."
All these problems do exist, but they can be solved without changing CMS. Update PHP, remove unsupported (that is, potentially dangerous) extensions, change the template, work on Core Web Vitals, add Schema.org markup, modernise the checkout process through the cart. This is our specialisation. In most cases that is enough, and the online shop starts a new chapter. More detail on our Joomla and VirtueMart modernization page.
Migration to another CMS becomes unavoidable when the problem is genuinely in the CMS, not in the online shop's technical SEO. If after reading this you decide that migration is clearly necessary for your shop, this article will walk you through it step by step. If you decide that Joomla and VirtueMart modernisation is in your interest, we will do it properly. VirtueMart is our strong suit. We are equally interested in both VirtueMart modernisation and migration to OpenCart.
About OpenCart
Active development. OpenCart 4.x is the main development line, with regular releases and patches. It is maintained by a small group of developers around the project founder Daniel Kerr, the GitHub repository is active, security patches are released, and the community runs a forum and an extension marketplace. The OpenCart 3.x line receives only maintenance updates for those still on it.
Architecture of version four. OpenCart 4 dropped the OCMod mechanism, which modified core files through XML search and replace. In its place came an Event System that fires before and after controller actions without touching the core itself.
Technical stack. OpenCart 4 requires a minimum of PHP 8.1 and runs on PHP 8.2 and 8.3. Bootstrap 5 in the admin panel. No exotic dependencies such as Elasticsearch or Redis, just PHP and MySQL or MariaDB. In other words, exactly the same stack that your VirtueMart is already running on.
An inconvenient fact. OpenCart is a CMS with a shrinking active shop base. According to StoreLeads data, the number of active OpenCart shops fell from around 225 thousand at the start of 2024 to 160 thousand by the end of the third quarter of 2026. That is minus thirty percent over two and a half years. OpenCart is actively developed, the community is alive, extensions are released, and the CMS is stable and reasonably predictable. The downward trend does not mean OpenCart is dying. It means you should choose a CMS based on the task at hand, not based on hype and fashionable technologies.
For reference: Magento in the small and medium business segment is declining at a comparable rate, and PrestaShop and WooCommerce are also losing share under pressure from Shopify and BigCommerce. The choice for a VirtueMart shop owner who has decided to move to a new CMS now is an answer to the question: which CMS best fits my business and my resources?
Why OpenCart 4 suits the typical VirtueMart shop
The same infrastructure. OpenCart 4 will run on your current hosting with PHP 8 and MySQL or MariaDB.
Extension purchases. The OpenCart Marketplace works on a single purchase model: you pay for an extension once. A big difference compared to Shopify.
You choose your own hosting or server. Full control over the database and file system. You own the shop in the same sense that you currently own VirtueMart.
Multiple languages out of the box. OpenCart 4 natively supports several separate storefront domains managed from one admin panel, with separate templates, catalogue, pricing, and languages.
What migration from VirtueMart to OpenCart 4 looks like technically
Change of architecture. VirtueMart is a component inside Joomla; it lives in the Joomla database, uses Joomla ACL, Joomla routing, Joomla templates, and Joomla plugins. OpenCart has its own database, its own catalogue structure, and its own templates.
Products and categories. VirtueMart uses a parent child model: a product has a parent category, a SKU, with stock, price, and a unique URL. OpenCart works differently: a product is one record in the database. If separate SKUs and unique URLs for each product variant matter to you (for ads, for Google Shopping feeds, for separate analytics), that logic will need to be either developed for OpenCart or accepted as working differently on the new CMS.
Customers, groups, and B2B prices. VirtueMart shopper groups (for example, wholesale customers with different prices) migrate to OpenCart as customer groups. Group names and structure migrate without problems. But the logic of price application is different: in VirtueMart prices are tied to complex calculation rules, in OpenCart a more straightforward discount rules mechanism is used. All current pricing rules will need to be rebuilt for OpenCart.
Order history. Orders, order lines, statuses, and totals migrate. But order statuses in VirtueMart and OpenCart are numbered differently. A separate task concerns totals: VirtueMart often stores the final order total as a single complex record that mixes discounts, tax, and shipping, while OpenCart breaks this into separate lines.
Customer passwords. A separate and often underestimated topic.
URLs and SEO. Your current VirtueMart URLs such as /shop/category/product.html do not match the OpenCart URL structure.
Template and design. Your current Joomla template does not migrate to OpenCart. The design needs to be rebuilt on an OpenCart template.
Problems when migrating from VirtueMart to OpenCart
URLs and 301 redirects do not transfer automatically.
An automatic migration tool transfers products and categories with their titles and descriptions, but the URL structure on the new CMS will be different. Your old URLs such as example.com/shop/category-name/product-name.html after migration will become example.com/index.php?route=product/product&product_id=X or the SEO friendly example.com/product-name (depending on OpenCart settings).
The order of work: before switching DNS, export the list of all indexed URLs, build a redirect map from old URL to new URL, configure .htaccess (or OpenCart Redirect Manager) with 301 redirects, and only then switch DNS. No automatic migration tool does this for you. This is a separate piece of work.
Customer passwords break.
VirtueMart uses the Joomla authentication mechanism: passwords are hashed with BCrypt or Argon2id. OpenCart has historically used a different hashing mechanism, and by default the hashes from VirtueMart simply do not work in OpenCart. Customers who try to log in will get an error. The automatic migration tool does not solve this.
The solution: either a login module for OpenCart that recognises the old Joomla hash on a customer's first successful login, or new passwords for all customers after migration with an email notification "we have updated the platform, please set a new password."
Order statuses do not carry over.
VirtueMart statuses (the default ones and those you created or modified) do not correspond to OpenCart statuses. Without an explicit mapping, the migration script places an order into status number zero, and the order history will not be preserved: the admin cannot see which orders were fulfilled, which were cancelled, and which are in progress.
The solution: before migration, create a correspondence table between VirtueMart and OpenCart order statuses (create any missing statuses in OpenCart) and add that table to the migration script.
Joomla articles do not transfer to OpenCart during migration.
VirtueMart runs inside Joomla, and alongside the shop in Joomla there is typically a blog, "About us" pages, FAQ, landing pages for advertising campaigns, a contact page, and menus. OpenCart is only a shop.
MijoShop.
MijoShop is a hybrid: the OpenCart engine embedded inside Joomla as a component. Technically it allows you to get an OpenCart shop while keeping the entire Joomla environment around it. It has existed for many years.
But the project's activity is noticeably declining, updates are released less frequently, and the extension marketplace for MijoShop is sparse. It can be considered as a temporary solution or for very specific cases.
Changing CMS. What will happen to SEO on the new site
Any CMS change will affect the SEO metrics of the new site. This applies to migrating from VirtueMart to OpenCart in exactly the same way as migrating to Shopify or Magento.
What happens to SEO during migration. The URL structure changes. The HTML markup of pages changes. Loading speed changes (not necessarily for the worse, but it changes). Internal linking changes. The sitemap changes. The robots.txt changes. Google and other search engines see this as a significant change to the site and recalculate page rankings from scratch. Usually this is a temporary fluctuation in positions lasting several weeks. With a poorly executed migration the drop stretches to months.
When OpenCart is not suitable
Complex filters on product category pages.
OpenCart in standard configuration relies on MySQL queries with runtime joins through the oc_product_attribute, oc_product_option_value, and oc_category_path tables. While the catalogue is small this works quickly. When the catalogue goes above several thousand SKUs (especially if each product has many filters), MySQL starts doing full table scans and creating temporary tables on disk. Performance degrades. The standard solution is to connect an external search backend (Elasticsearch or MeiliSearch), but that is already an architecture complexity that brings OpenCart closer to Magento in infrastructure complexity. If your shop is at that scale, it makes more sense to look directly at Magento, where all of that is built in.
Joomla content is inseparable from the shop.
If your blog, articles, and landing pages are an active marketing system integrated with VirtueMart (for example, articles automatically pull in product cards, landing pages dynamically show special offers from the shop, blog categories are linked to product categories), the option of "Joomla as CMS plus OpenCart as shop in parallel" requires complex integration work. In that case it is better to stay on VirtueMart.
What to do next
Three options:
- Modernise VirtueMart, without migrating;
- Migrate to OpenCart;
- Migrate, but not to OpenCart, rather to something else: Shopify, Magento, WooCommerce.
VirtueMart modernisation
We do this. Full description on the Joomla and VirtueMart modernization page. In brief: audit, PHP upgrade to 8.x and Joomla to the current version, extension testing, template and Core Web Vitals modernisation, markup, updated cart, sitemap and technical SEO setup. The result is the same VirtueMart, running in line with modern requirements, with the full history and accumulated SEO reputation preserved, without migration.
Migration from VirtueMart to OpenCart
Our standard service:
- Audit in the context of technical SEO,
- 301 redirect setup,
- product transfer with VirtueMart to OpenCart product mapping, work on child products, work to preserve SKUs and old site URLs on the new site, development of a login module for customers with old passwords, order status mapping and correct history transfer,
- OpenCart template customisation,
- EU VAT and GDPR setup through tested extensions,
- payment system integration (Redsys, Bizum, Klarna, Stripe, PayPal, LiqPay, Nova Poshta, whatever you need),
- monitoring after migration to OpenCart for the first six weeks with targeted fixes (if needed).
Frequently asked questions
How long does migration from VirtueMart to OpenCart take?
Standard is up to four weeks.
What will happen to my current SEO positions after migration?
There may be temporary fluctuations.
Will the old orders be on the new site?
Yes, along with products, categories, and customers.
What will happen to the blog articles from the old site after the shop migrates?
Leave Joomla as the CMS for content and set up OpenCart in parallel (our standard pattern).
How does OpenCart 4 handle EU VAT and GDPR?
Basic Tax Rates through Geo Zones work out of the box. Full EU VAT logic (One Stop Shop, VIES validation of B2B customers, reverse charge for intra community supplies) and GDPR compliance (cookie consent, forget me, data export on request) require paid extensions.
I have around seven thousand products in my shop. Will OpenCart work?
Yes. OpenCart 4 in standard configuration on a decent VPS handles a catalogue of up to several tens of thousands of products.
Can I migrate myself using a ready made migration tool?
You can of course, but if this is a live business it is not advisable.
Get in touch
We can discuss your situation. Write to us.