PrestaShop to Shopify Migration: A Practical Guide for Store Owners
A PrestaShop to Shopify migration is rarely about the products themselves. It is about everything PrestaShop has quietly been doing around them: combinations with their own references and stock, modules that own data in their own tables, multistore rules and friendly URLs with numeric IDs baked into every link. This guide walks through how to move all of it without losing sales, search traffic or customer history.
It is written for store owners and ecommerce managers who are deciding whether to replatform, or who have decided and now need a plan.
Why merchants are leaving PrestaShop now
PrestaShop is a capable open-source platform, and plenty of stores run well on it. The pressure to move usually comes from the work of keeping it running.
- Version support has moved on. PrestaShop 9.0.0 was released in June 2025. Under PrestaShop's own support policy, security maintenance for the 1.7.8 branch ended with that release, and 8.2 is now in extended support (critical and security fixes only) until 10.0 ships. If you are still on 1.7, you are running unmaintained software.
- Upgrades are projects, not clicks. PrestaShop 9 requires PHP 8.1 or later. Moving from 1.7 often means a PHP upgrade, a theme rebuild and checking every module and override for compatibility. Many merchants reach that point and ask whether they should rebuild on a platform where hosting, security patches and checkout updates are someone else's job.
- Modules and overrides add up. A typical mature PrestaShop store has dozens of modules, several paid, some abandoned by their developers, and a few core overrides nobody remembers writing. Each one is a dependency you maintain.
Shopify swaps that maintenance for a subscription. Hosting, PCI compliance, checkout and platform updates are handled for you, so your team's time goes on trading rather than patching.
What moves and what doesn't
Most PrestaShop data has a clear home in Shopify. Some of it needs reshaping, and a small amount can't move at all.
- Products and combinations: Move. Combinations become Shopify variants. Shopify allows up to 2,048 variants per product but only three options, so a product with four attribute groups (for example size, colour, material and length) needs a decision before import.
- Features: Move, as metafields. PrestaShop features (such as "Composition" or "Style") map well to product metafields, which can then power filters and product page specs.
- Categories: Move, as collections. Shopify collections are flat, so nested category trees are rebuilt with menus and collection logic rather than a parent-child hierarchy.
- Images: Move. Check that combination images are linked to the right variant after import.
- Customers and addresses: Move. Customer groups usually become customer tags, or B2B companies on Shopify Plus.
- Customer passwords: Don't move. They are stored as one-way hashes that Shopify can't import. Customers activate their Shopify account or sign in with a one-time email code.
- Order history: Moves, via an import tool or the API, as historical orders. It does not go through Shopify's native CSV importer, which handles products and customers only.
- CMS pages: Move, as Shopify pages.
- Specific prices and catalogue price rules: Rebuilt as Shopify discounts, automatic discounts or B2B price lists.
- Customisation fields (text or file uploads on a product): Rebuilt as line item properties with a product options app or theme code.
- Module-owned data (reviews, loyalty points, wishlists, blog posts): Moves only if the replacement app has an import route. Check this before you choose the app.
- Carriers and shipping rules: Rebuilt in Shopify shipping settings or a shipping app. They don't import.
Pre-migration checklist
Do this before anyone touches Shopify. It is the part that decides how smoothly launch goes.
- Confirm your exact PrestaShop version (1.6, 1.7, 8 or 9) and PHP version. Migration connectors and export methods differ between them.
- List every active module under Modules > Module Manager, and mark each one as keep (replace with an app), drop or rebuild.
- Find overrides. Check the /override folder. Each file there changes core behaviour that Shopify will need to replicate or you will need to retire.
- Count your data: products, combinations, customers, orders, CMS pages and languages. These numbers decide whether an app migration is enough.
- Crawl the live site with a tool such as Screaming Frog, and export every indexable URL with its title, meta description and canonical.
- Pull 12 months of landing page data from Google Search Console and Google Analytics, so you know which URLs actually earn traffic and links.
- Document integrations: ERP, warehouse, marketplaces, accounting and email. Note which direction data flows and who owns each connection.
- Agree a content freeze window for product edits during the final sync.
Step-by-step PrestaShop to Shopify migration
1. Get the data out
You have three practical routes:
- A migration app or service such as Cart2Cart or LitExtension. These connect to your PrestaShop store and copy products, customers, orders and other common records into Shopify. For a straightforward catalogue, they are quick and cost-effective.
- Back-office exports plus SQL. PrestaShop's grids (products, customers, orders) have CSV export buttons, and Advanced Parameters > Database > SQL Manager lets you run SELECT queries and export the result as CSV. That is useful for pulling combinations, features and module tables exactly as you need them.
- The PrestaShop Webservice API, enabled under Advanced Parameters > Webservice, for scripted extraction.
Whichever route you take, treat PrestaShop as read-only during extraction. Your rollback plan depends on it.
2. Map and transform
This is where most of the work lives. Build a mapping sheet that says, for every PrestaShop field, where it lands in Shopify:
- Combination attributes become variant options, and each combination's reference, EAN13, price impact and quantity become variant fields.
- Features become metafield definitions, created in Shopify before import.
- Category assignments become collection memberships, and the default category often becomes a product type or a primary collection metafield.
- Prices need checking for tax handling. PrestaShop stores prices tax-excluded and applies tax rules; decide whether Shopify prices will be shown including or excluding tax and convert accordingly.
3. Import in rehearsal
Import into a development store first. Matrixify is the common tool for spreadsheet-based imports of products, customers, historical orders, metafields and redirects. Run the full import at least once, then compare record counts and spot-check 20 to 30 products with combinations, a sample of customers and a sample of orders against PrestaShop.
When importing historical orders, make sure notifications are switched off and inventory isn't adjusted. We cover how we handled this for a live brand in our JellyBean Tanning migration write-up.
4. Build the storefront and replace modules
Build the theme, set up navigation from your old category tree, configure shipping, taxes and payments, and install the apps that replace your modules (covered below).
5. Final sync and cutover
Freeze product edits, run a delta import of new customers and orders since the rehearsal, upload redirects, then point your domain's DNS at Shopify. Keep the PrestaShop store accessible on a private URL for reference, but not public.
SEO: mapping PrestaShop URLs to Shopify with 301 redirects
PrestaShop's friendly URLs carry numeric IDs, which makes them easy to map but impossible to keep. Shopify uses fixed paths: /products/, /collections/, /pages/ and /blogs/.
Know your PrestaShop URL patterns
On a default PrestaShop 1.7 or 8 install, friendly URLs follow routes set in Shop Parameters > Traffic & SEO:
- Products: {category:/}{id}{-:id_product_attribute}-{rewrite}{-:ean13}.html, for example /men/1-1-printed-t-shirt.html
- Categories: /3-clothes
- Brands: /brand/2-brand-name
- Suppliers: /supplier/1-supplier-name
- CMS pages: /content/4-about-us
- CMS categories: /content/category/2-legal
If more than one language is active, each URL gets a language prefix such as /en/ or /fr/. Your routes may have been customised, so always work from a crawl of the live site, not from the defaults.
Build the redirect map
- Export every indexable URL from the crawl, plus any URL with traffic or backlinks in Search Console.
- Use the numeric ID in each PrestaShop URL to join it to the right record in your product or category export. This is far more reliable than matching on names.
- Map products to /products/<handle>, categories to /collections/<handle>, CMS pages to /pages/<handle>, and brand pages to a brand collection.
- Include combination URLs. Because the default product route includes the combination ID, one product can have several indexed URLs. Redirect each to the product, or to the variant URL where it is worth keeping.
- Map each language prefix to the matching Shopify market subfolder if you are keeping multiple languages.
- Import the redirects as a CSV in Shopify admin under Content > Menus > URL redirects.
Shopify only triggers a redirect when the old URL would otherwise return a 404, and it allows up to 100,000 redirects per store (20 million on Shopify Plus). A large catalogue with many combinations and languages can produce a surprisingly long list, so count before you commit.
After launch
Submit the new sitemap in Search Console, crawl the old URL list against the live site to confirm every one returns a 301 to a 200, and watch Search Console's page indexing report for a few weeks. Some ranking movement during any replatform is normal; a steady stream of 404s is not.
Apps and integrations that replace PrestaShop modules
Shopify has native features for much of what PrestaShop needs modules for. For the rest, these are common replacements:
- Faceted search (ps_facetedsearch): Shopify's free Search & Discovery app, using your product options and metafields as filters.
- Product packs: The Shopify Bundles app.
- One-page checkout modules: Not needed. Shopify's checkout is already one page.
- Reviews: Judge.me or Okendo, both of which can import reviews from a CSV.
- Loyalty and rewards: Smile or LoyaltyLion.
- Email marketing: Klaviyo or Shopify Email.
- Multilingual content: Shopify Markets with Shopify's Translate & Adapt app.
- Multistore: Shopify Markets for regions sharing one catalogue, or expansion stores on Shopify Plus for separate brands.
- B2B customer groups and price rules: Shopify's B2B features, with the most complete toolset on Shopify Plus.
Before you install anything, check that the app can import your existing data. An app with no import route can mean losing years of reviews or points balances.
Timeline and team
A PrestaShop to Shopify migration typically takes four to six weeks, depending on catalogue size, integrations and design scope. Large multistore or multilingual catalogues, B2B pricing or ERP integrations can take longer.
A typical plan looks like this:
- Week 1: Discovery. Audit modules, overrides, data volumes, URLs and integrations.
- Weeks 2 to 3: Data mapping, rehearsal imports and theme build.
- Weeks 3 to 5: App setup, integrations, redirect map and testing.
- Week 5 or 6: Final sync, cutover and post-launch monitoring.
On your side, you need one decision-maker, someone who knows the catalogue well enough to check imported products, and whoever owns your integrations. On the delivery side, you need a Shopify developer, someone who owns data migration and someone who owns SEO. In a managed migration, one team owns all three.
321+
Shopify stores launched since 2018.
$243M+
GMV across client stores.
5.0
Average rating from 159 reviews.
Common PrestaShop migration mistakes
- Ignoring the three-option limit until import day. Products with four or more attribute groups need restructuring first.
- Matching URLs by product name instead of by PrestaShop ID. Names change and duplicate; IDs don't.
- Forgetting combination URLs and language prefixes in the redirect map.
- Leaving notifications on during the historical order import and emailing old customers about old orders.
- Choosing apps before checking imports, then finding reviews or loyalty balances can't come across.
- Copying every module's behaviour instead of asking whether the business still needs it.
- Launching without a crawl of old URLs against the new site.
PrestaShop to Shopify migration FAQ
Yes. Passwords are stored as one-way hashes, so they can't be moved. Customers activate their Shopify account from an invitation email or sign in with a one-time code.
Yes. Historical orders can be imported with a tool such as Matrixify or through the Shopify API, so customers see past orders in their account and your reporting keeps its history.
Not if every indexable URL is mapped to a relevant Shopify page with a 301 redirect, metadata is carried over and the launch is monitored. Expect some movement for a few weeks after any replatform.
Yes. The Shopify store is built and tested separately while PrestaShop keeps trading. A short freeze on product edits before the final sync is usually all that's needed.
An app such as Cart2Cart or LitExtension is often enough for a modest catalogue with simple products, few integrations and limited organic traffic. A managed migration is worth it when search traffic matters, combinations or custom fields need careful mapping, or integrations must keep working on day one.










