Straight from the database
OpenCart’s admin exports are limited, so we read products, options, customers and orders from the MySQL database with a tested mapping.
OpenCart stores in the region are often self-hosted, several versions behind, and held together by extensions from different developers. The migration is as much about retiring that risk as moving the catalogue.
OpenCart uses either SEO keyword URLs or query strings such as index.php?route=product/product&product_id=42. We export both forms for every product and category, map each to its Shopify handle, and test how every legacy pattern resolves before launch, adding a small redirect layer where the platform cannot match a query string on its own.
OpenCart’s admin exports are limited, so we read products, options, customers and orders from the MySQL database with a tested mapping.
Required select and radio options become variants; optional text and file options become line-item properties on the order.
Arabic and English descriptions stored per language ID are imported as Shopify translations, not merged into one field.
Every installed extension is listed and either replaced by a Shopify feature or app, or dropped because it is no longer needed.
Stored card data never migrates. Customers pay through Shopify’s PCI-compliant checkout from day one.
After a safe period the old server is archived and switched off, closing an unpatched attack surface.
Each legacy pattern gets a 301 redirect to its Shopify equivalent, tested before the domain moves.
/index.php?route=product/product&product_id=<id> /products/<handle> /index.php?route=product/category&path=<id> /collections/<handle> /<seo-keyword> /products/ or /collections/<handle> /index.php?route=information/information&information_id=<id> /pages/<handle> OpenCart order exports usually end up re-typed into accounting software. On Shopify with ZaadBooks, invoices and credit notes are created from the orders themselves, with VAT on each line.
Yes. Because we read the database directly, the OpenCart version matters less than the data’s condition. We clean duplicates and broken image links during the move.
They are replaced by Shopify’s built-in features or apps, or rebuilt as a custom app when nothing suitable exists. The audit lists each one with its replacement before any work begins.
Yes. Password hashes cannot be imported into Shopify, so customers receive an activation email at launch. Their details and order history are already in place when they log in.
Only briefly. We keep it read-only for a few weeks as a reference, then archive the database and close the server.
Shopify and the bag logo are trademarks of Shopify Inc.
A 30-minute call gets you a fixed-price scope.