Migrating PrestaShop to Shopify means moving a catalog built on combinations, customer groups and modules into a platform with variants, collections and apps, and giving every old PrestaShop URL a 301 redirect to its new address. The product data is the easy part. The decisions sit in the things PrestaShop does natively or through modules that Shopify does differently.
We are noprob agency and we run these moves with the Shopify Launch Sprint. This guide covers only what is specific to PrestaShop. For what is the same on every platform, read our guide to migrating to Shopify. For rankings, use the migration SEO checklist. For the budget, see how much a Shopify migration costs. If you are coming from a different PHP platform, the WooCommerce to Shopify guide covers that one.
Shopify vs PrestaShop: why do merchants switch?
Most merchants leave PrestaShop because of the running cost around the software, not the software itself. PrestaShop is open source and its core is free. What you pay for is everything that turns it into a shop: modules, a developer who knows them, and hosting that keeps up. Four things come up again and again.
- The module stack. Each paid module is a licence, an update cycle and a possible clash with another module that changes the same template or class. The stack grows one useful feature at a time and nobody owns the whole list.
- Upgrades between major versions. Moving from one major version to the next (1.7 to 8, 8 to 9) is a project: theme, modules and custom code must all be compatible, and the one that is not blocks the rest.
- Hosting and PHP. The server and its PHP version are yours to keep current, and each PrestaShop release supports only some PHP versions (see the system requirements). If your store runs on PHP, check yours: CERT-EU’s advisory 2026-018 describes two flaws rated CVSS 9.2 that allow remote code execution without authentication. Fixes exist in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, and PHP 8.1 and earlier have no official fix. On Shopify there is no PHP server for you to patch.
- Developer dependency. Changing a template, a checkout step or a price rule often means asking the one person who understands the overrides.
PrestaShop is not a bad platform. Native multistore, customer groups and per-country behaviour are real strengths, and below we say where Shopify needs more work to match them. If your store is stable, on a supported version, with a developer you trust and few modules, there is no urgency. The case for moving is when the module bill and the fear of the next upgrade are the main things you manage.
Do we have a PrestaShop case study?
No. We have not migrated a PrestaShop store, and we will not present another platform’s result as if it were one. Our two real Shopify migrations are Integratori DTC Nazzi, from WooCommerce, and Cumini, from a proprietary platform tied to the ERP. Nazzi is the closest profile: PHP, self-hosted, a stack of plugins, and a history of orders and URLs to carry across. That is a similarity, not proof that PrestaShop behaves the same.
What we bring is a process that is the same on every platform: inventory, data mapping, redirect map, test orders and a go-live date on the calendar. Everything PrestaShop-specific below you can check against PrestaShop’s own documentation, which we link as we go.
Which PrestaShop concepts have no one-to-one match in Shopify?
Six: combinations, attributes and features, the category tree, customer groups with specific prices, multistore, and carriers. Each needs a decision before any CSV is imported, because the answer changes the data you export.
Combinations become variants, with lower limits
A PrestaShop combination is a version of a product built from attributes such as size, colour or capacity. Shopify’s equivalent is a variant, and the ceiling is lower: Shopify has limits on options and variants per product, which you should read in its variants documentation before planning. A product with many attribute groups may not fit as it is. For each one decide: split it into separate products, drop an attribute, or collect it as a line item property through an app.
One trap is the price. A PrestaShop combination can carry its price as a difference from the product’s base price, so an export may show that difference instead of the final price. Check in your export which one you have, rebuild the final prices if needed and verify a sample before importing the full catalog.
Attributes and features: one builds variants, the other describes
PrestaShop’s own documentation draws the line: attributes create combinations, while features appear as an information table. In Shopify, the attributes that change price or stock become options. Features such as material, composition or weight become metafields, which the theme can display and filters can use (Shopify metafields).
The category tree becomes collections plus menus
PrestaShop categories are a tree, and a product’s default category shapes its URL. Shopify collections are flat. Keep the tree in the navigation menu, build each collection from product tags or conditions, and use the default category mainly to decide where the old URL redirects.
Customer groups and specific prices raise the B2B question
PrestaShop customer groups carry a percentage discount, a tax-included or tax-excluded price display and the option to hide prices, and products can add specific prices on top. Shopify has no identical object. If your groups are loyalty tiers, discounts and customer tags do the job. If they are wholesale buyers with their own prices and tax display, look at Shopify’s B2B features and check which plans include them. Before building anything, count the groups and specific prices you really use: stores often carry rules nobody remembers.
Multistore is where Shopify asks for more work
PrestaShop’s multistore runs several shops from one back office. In Shopify, shops that are really countries or languages usually become markets inside one store, with their own currencies, languages and domains. Shops that are separate brands with separate catalogs become separate Shopify stores. Decide which is which before planning the work, because it changes both the scope and the redirect map.
Carriers and shipping rules become shipping profiles
PrestaShop carriers, zones and price or weight ranges have to be rebuilt in Shopify’s shipping settings, which work with shipping profiles and rates per zone. In PrestaShop these rules are spread across carrier, zone and range pages. Write them down in one table first, then rebuild them and test each with an order.
How do you audit PrestaShop modules before migrating?
Sort every installed module into one of four buckets: native in Shopify, a Shopify app, custom code, or retire. Do it before touching data, because the module list is the real scope of the project.
- Native: discounts, gift cards, abandoned checkout emails, SEO fields, redirects and the blog already exist in Shopify.
- App: reviews, subscriptions, advanced filters, wishlists. You pay a monthly fee, so compare it with the licence you pay today.
- Custom code: the ERP or warehouse sync and the rules that exist only in your store. With our Custom AI System, code is written from scratch for your store only, without piling apps on top.
- Retire: modules installed for a campaign years ago, three modules doing the same job, a module that exists only to fix another module. In plugin-based stores this bucket is usually bigger than the owner expects.
A migration is the cheapest moment to delete modules. Do not rebuild one you do not remember installing.
How do you build the redirect map from PrestaShop URLs?
Build it from the PrestaShop database IDs, not from a crawl alone: friendly URLs carry the ID of each product and category, which gives you a reliable key to join old addresses to new Shopify handles. The default product route documented by PrestaShop is {category:/}{id}-{rewrite}{-:ean13}.html, which produces addresses such as /summer-dresses/7-printed-chiffon-dress.html. The schema is editable under Shop Parameters, Traffic and SEO (SEO and URLs), so read yours there before assuming anything. That page documents only the product route: the other patterns below are what we would expect, not something we have verified on a PrestaShop store.
- Products: /category/ID-name.html. Export the catalog with ID, URL rewrite and default category, rebuild each old path, and map it to /products/new-handle.
- Categories: commonly /ID-name. Map to /collections/handle.
- CMS pages: commonly /content/ID-name. Map to /pages/handle.
- Brands and suppliers: commonly /brand/ID-name and /supplier/ID-name. Map to a vendor collection if you keep brand pages, otherwise to the nearest collection.
- Language prefixes: /it/, /en/ and so on. Every language needs its own rows.
- Combination URLs: depending on the schema they may carry the combination ID. They all point to one Shopify product, so several rows share one target.
- Filter and sort parameters from faceted navigation: do not map them one by one. Redirect the base category and let Google drop the rest.
Apart from the product route, the patterns above are unverified expectations, and your schema decides: check each one in your back office and against the real URLs in Search Console before you write the file. Shopify imports redirects from a CSV in the admin, one row per old URL. It redirects only from URLs that are broken on the new store, cannot redirect some reserved paths, and limits how many redirects a store can hold, so check the limit for your plan (URL redirects).
Not every old URL deserves a redirect. On Nazzi’s archived WooCommerce addresses we checked 215 URLs one by one and delivered the CSV of 301 redirects. The logic is the same here: redirect what has a real successor, and let pages with no equivalent disappear. For the method, see Google’s guidance on site moves with URL changes and our SEO checklist.
How do you set up payments, invoicing and taxes for an EU store?
Set them up in this order: taxes, payment provider, shipping rates, then invoicing, and test each with a real order before the domain switches. The details depend on your country, so we stay general and point to the official pages.
- Taxes: Shopify offers Shopify Tax in the EU and UK or manual rates. How VAT and the One-Stop Shop scheme apply to you is a question for your accountant: the platform only applies the rates you choose.
- Payments: check whether Shopify Payments is available in your country and which local methods your customers use. If you keep your current provider, connect it in Shopify and run a test order.
- Invoicing: PrestaShop produces numbered PDF invoices from the back office (Invoices). Do not assume Shopify’s default order documents satisfy your country’s invoice rules. Settle it with your accountant and pick the app or accounting integration before go-live.
- Invoice history: export past PDF invoices before the old server is switched off. Importing orders does not move your invoice archive.
How long does a PrestaShop to Shopify migration take?
With the Shopify Launch Sprint the store is ready on day 14 and go live falls between day 15 and 30, the same calendar we use on every platform. With PrestaShop the first days go to the module audit, the combination decisions, the group and carrier rules and the redirect map. The earlier those are settled, the less the calendar moves. One honest limit: the 14 days are the Sprint’s calendar, not a timing measured on a PrestaShop project, because we have not done one.
Frequently asked questions
Can I import PrestaShop products into Shopify?
Yes, through a CSV file or a migration app. Shopify’s migration page lists the options and recommends importing products first, then customers, then orders. PrestaShop’s import documentation shows the file structure it uses for products and combinations.
Do my PrestaShop modules work on Shopify?
No. Modules are PHP code for PrestaShop. Each one becomes a native feature, an app, custom code or nothing at all.
A final note
Most of the risk in leaving PrestaShop sits in what nobody wrote down: a module installed years ago, a customer group with its own prices, a carrier rule, an old URL with links. Write that list before you plan anything else, and the rest of the project gets much more predictable.
The Shopify Launch Sprint moves your store to Shopify in 14 days with our Custom AI System: a fixed calendar, a public price and 4 written guarantees.

Antonio Manitta
Founder & eCommerce Manager at NoProb Agency
For over 7 years I have helped fashion, supplements, and DTC brands scale their eCommerce. I work in long-term partnership with three brands at a time, building stable systems that compound.
About NoProb →
















