Skip to content
SISSOFT
Back to blog
Case study11 min

Case study: migrating electronic-mag.ro — 351,000+ products off PrestaShop to headless

How we moved our own B2B store with over 351,000 products off PrestaShop to a headless stack (Sylius/Symfony + Next.js), with 1:1 URL mapping and 301 redirects. Challenges, architecture decisions and lessons.

The best way to explain what a serious migration means is through a real project. electronic-mag.ro is our reference store: a B2B store with over 351,000 products, moved off PrestaShop to a modern headless stack — Sylius/Symfony on the backend, Next.js on the frontend, on dedicated Hetzner infrastructure. Here are the challenges, decisions and lessons.

The context: a huge B2B catalog

electronic-mag.ro isn't an ordinary store. Over 351,000 products, a B2B audience with high-volume orders, real B2B pricing and list requirements, and a catalog that keeps growing. At this scale, every technical decision multiplies by hundreds of thousands — a slow query isn't one lost second, it's seconds × the whole catalog × all traffic.

The challenge: why PrestaShop struggles at scale

PrestaShop is a reasonable platform at small and medium sizes. But at hundreds of thousands of products, the monolithic architecture starts to creak:

  • Slow filtering and search — on very large catalogs, listings and facets become expensive, and the mobile experience suffers.
  • Sluggish admin — bulk operations and catalog navigation become frustrating for the team.
  • Performance and server cost — keeping speed up demands ever more resources.
  • Extensibility limits — B2B logic and custom integrations hit the platform's constraints.

Point optimizations help for a while, but eventually you hit the architecture's ceiling. That was the moment to migrate.

Migration goals

We started with clear targets, not "let's redo the site":

  • Significantly better performance, especially on mobile (green Core Web Vitals).
  • Zero organic-traffic loss — the catalog is massively indexed, any mistake would have been costly.
  • An admin and architecture the team can operate and extend easily.
  • Predictable, controlled infrastructure costs.

The chosen architecture: headless Sylius/Symfony + Next.js

We decoupled backend from frontend. Sylius/Symfony (API-first) is the "brain" — products, prices, B2B rules, orders — a mature open-source e-commerce core you fully own. Next.js is the frontend: pre-rendered pages, served fast, with first-class SEO. The two communicate via API, scale independently, and the frontend can be aggressively optimized without touching business logic. We explain headless commerce in depth here.

Why not just "optimize PrestaShop"? Because at 351,000 products and B2B requirements, the real gain comes not from a cache plugin but from an architecture built for scale.

Data migration: 351,000 products with no loss

The most delicate part. We exported products, variations, categories, attributes, customers and orders from PrestaShop and mapped them into the new data model, with integrity checks at each step. At hundreds of thousands of rows, you can't verify by hand — you build automated validations confirming that product counts, prices, product-category relationships and customer accounts arrived correctly and completely.

SEO at migration: the part that scares everyone

With a massive indexed catalog, a badly done migration would have meant a traffic disaster. The approach was the disciplined one: a full inventory of indexed URLs, a 1:1 mapping of every old URL to its new equivalent, clean 301 redirects (no chains), preserving on-page structure and structured data, then monitoring in Google Search Console after cutover. The stated goal: zero organic-traffic loss — tracked in Search Console after launch. We detailed the full method here.

Performance: from a heavy monolith to a fast frontend

A Next.js frontend with pre-rendered pages starts with a big Core Web Vitals advantage over a loaded PrestaShop monolith. We optimized images, cut JavaScript, tuned caching and removed render-blocking — focused on real mobile experience, not just lab scores. What LCP, INP and CLS mean, briefly.

Infrastructure: dedicated Hetzner servers

A catalog this size deserves guaranteed resources, not a cloud with unpredictable costs. It runs on dedicated Hetzner infrastructure, configured and managed by us: consistent performance, backups and costs under control.

The result

Our own B2B store with over 351,000 products, moved off PrestaShop to a headless stack we fully own: faster, easier to operate and extend, with predictable infrastructure and 1:1 URL mapping with 301 redirects at the transition; stated goal: zero traffic loss. See the project in the portfolio.

What you can take from this for your store

  • At a large catalog, the problem isn't solved with plugins — it's solved with architecture.
  • SEO is protected with process (inventory → mapping → 301 → monitoring), not luck.
  • Data migration at scale needs automated validation, not manual checks.
  • Headless pays off exactly where the classic platform breaks: scale, speed, control.

If you have a large catalog on PrestaShop (or another platform) and hit the same limits, we can discuss a similar migration.