Skip to content

Shopify to WooCommerce Migration: Germany Guide

By Jasper Frumau WooCommerce

I’m a WordPress developer and I’ve been building WooCommerce stores for German clients since 2009. German store owners come to me with a recurring set of questions: the app stack on Shopify has crept past €150 per month, the Klarna integration is doing less than it should, customer data sits on US servers in ways that make their data protection officer uncomfortable, and the giropay shutdown at the end of 2024 left a payment-method gap that Shopify hasn’t filled cleanly. This guide is the answer I usually end up writing in email form — collected here, with the cost numbers, the legal points, and the technical setup that actually applies to running a WooCommerce store from Germany.

Shopify Payments is available in Germany, so the transaction-fee story is less dramatic for stores using it natively — the 2% third-party fee only applies if you route payments through Mollie, Stripe, or PayPal on Shopify. The reasons German stores migrate are mostly elsewhere: app costs, data residency under DSGVO, better Klarna integration, full Lastschrift control, and ownership of customer data on servers that physically sit in Falkenstein or Nürnberg rather than wherever Shopify decides to put them.

Quick Summary: German stores migrate from Shopify primarily to cut €100–200/month in app costs, gain DSGVO-compliant data residency on German servers, and get better Klarna/SEPA integration. Migration takes 2–4 weeks and typically costs €1500–€3000 — €1,500 for a clean Elayne-themed migration, €3,000+ for a custom design rebuild. Rankings are preserved with proper 301 redirects.

In This Guide

The Real Cost Comparison

Here is what a small German store doing €5.000–€15.000 per month actually pays on each platform.

Cost ItemShopify Basic (Germany)WooCommerce on Trellis
Platform / hosting$39 USD/month (~€36)€49–79/month (Hetzner DE)
Transaction fees0% on Shopify Payments, 2% otherwise0%
Payment gateway (cards)1,9% + 0,25 € via Shopify Payments1,80% + 0,25 € via Mollie (EEA consumer cards)
Apps / Plugins€80–200/month (6–8 apps typical)€0–40/month
Theme€180–380 one-time or €14/month€0–150 one-time (or custom)
SSL-ZertifikatIncludedIncluded (Let’s Encrypt via Trellis)

The transaction-fee line item is smaller for German stores than for Dutch or Belgian ones because Shopify Payments is available in Germany. Where the math still tilts toward WooCommerce is the app stack: the average Shopify store I audit runs 6–8 paid apps for things WooCommerce handles natively — DSGVO-conform cookie banners, SEPA, advanced shipping rules for DHL/DPD/Hermes, B2B pricing, multi-language. At €15–€30 per app per month, that is €100–€200 monthly going to apps alone, before you count the platform fee or the gateway fee. WooCommerce typically replaces that with free or one-time plugins.

When Migration Makes Sense (and When It Doesn’t)

Good reasons to migrate

  • Your monthly Shopify app bill has crept past €100–€150 for features WooCommerce handles out of the box
  • You want customer data and order data on servers physically located in Germany or the EU — Hetzner in Falkenstein or Nürnberg — for DSGVO confidence and clarity in your AVV (Auftragsverarbeitungsvertrag)
  • Your Klarna integration on Shopify is limited to what Shopify exposes — Pay Now, Pay Later, and Pay in 3 work better and cost less through Mollie or a direct Klarna integration on WooCommerce
  • You relied on giropay before it was shut down at the end of 2024 and haven’t found a clean replacement on Shopify — SEPA Lastschrift via Mollie or Stripe fills that gap on WooCommerce
  • You need granular SEPA Lastschrift control for B2B invoicing, recurring payments, or subscription models
  • You sell into the EU and want WPML or Polylang for multi-language without paying for Shopify Plus
  • You need a custom checkout that meets German consumer law specifics — Widerrufsbelehrung, AGB linking, exact shipping cost disclosure — without Shopify’s checkout restrictions

Reasons to stay on Shopify

  • You manage the store entirely yourself with no technical help and have no intention of changing that — WooCommerce needs more hands-on maintenance than Shopify. If you have a developer handling updates and monitoring, this stops being a reason to stay.
  • You rely on Shopify’s native POS for in-person sales at a Ladengeschäft or market stall
  • Your store is under six months old with minimal SEO equity — the migration overhead is not worth it yet
  • You’re on Shopify Advanced or Plus and use multi-location inventory or the wholesale channel for B2B

The Migration Process Step by Step

1. Audit your Shopify store before you touch anything

Export a full list of every URL on your Shopify store. Every product page, collection page, and blog post has a URL that may rank in Google.de or have links pointing to it. You need this list before migration so you can build the redirect map afterward. Use Screaming Frog to crawl and export every URL that returns a 200 status — that becomes your definitive list, more reliable than any manual export.

2. Set up WordPress and WooCommerce on a German server

I set up WooCommerce stores on a Trellis and Bedrock stack — Nginx, PHP 8.3, Redis object cache, FastCGI page cache. For German clients I default to Hetzner Cloud in Falkenstein or Nürnberg. The data residency story is clean: the server is in Germany, the host is a German company (Hetzner Online GmbH, headquartered in Gunzenhausen), and the AVV is straightforward to put in place.

This matters specifically for WooCommerce because cart and checkout pages must be excluded from the page cache. Get that wrong and you get ghost cart sessions: customers see items in their cart that have already been purchased, or sessions expire mid-checkout. A correctly configured Trellis server handles the cache exclusions automatically. Basic shared hosting typically does not.

For the store design, it doesn’t have to be rebuilt from scratch. Elayne is the FSE block theme I develop — it has full WooCommerce support built in with product page templates, shop archive layouts, cart and checkout styling, and a pattern library that covers the most common store page types. If your Shopify store’s design doesn’t need to be replicated exactly, Elayne significantly cuts the design phase of a migration.

3. Migrate your products

Export your products from Shopify under Products → Export. WooCommerce has a built-in CSV importer under Products → Import that handles most Shopify fields directly: title, description, price, SKU, inventory, variants. Two things need manual work: Shopify’s variant format is different and needs cleaning in the CSV before import, and product image URLs still point at Shopify’s CDN — those need to be re-uploaded to WordPress.

For stores under 200 products, manual image re-upload is the cleanest approach. For larger catalogs, WP All Import handles image URLs automatically during the import process.

4. Recreate your collections as categories

Shopify calls them collections, WooCommerce calls them product categories — they are functionally the same thing. Set up your category structure in WooCommerce before importing products so each product gets its category assigned correctly on import. Doing it the other way around means manual cleanup on every product.

5. Set up payment gateways for German customers

WooCommerce supports every major payment gateway used in Germany through free official plugins. The combination most German stores end up with looks like this:

  • Molliemollie-payments-for-woocommerce (free). One plugin covers SEPA Direct Debit (Lastschrift), Klarna (Pay Now, Pay Later, Pay in 3), credit cards, Apple Pay, Google Pay, PayPal, and Sofort (the parts of Sofort that haven’t been absorbed into Klarna). Business verification with Mollie takes 1–3 days for German entities and the AVV they provide is DSGVO-conform. Pricing: EEA consumer cards at 1,80% + 0,25 €, SEPA Direct Debit at 0,35 €, Klarna at 2,99% + 0,35 €.
  • Stripewoocommerce-gateway-stripe (free, official). Strong choice for credit cards and Apple/Google Pay in Germany. Pairs well with Mollie — use Mollie for SEPA and Klarna, Stripe as the card-payments backbone.
  • PayPal — the official PayPal plugin. Still essential in Germany; PayPal remains one of the two or three most-used checkout methods despite being more expensive than the alternatives.
  • Klarna direct — if you do high enough Klarna volume to negotiate direct rates, the Klarna Payments for WooCommerce plugin connects to Klarna without going through Mollie. For most stores under €500k/year revenue, Mollie’s Klarna integration is the simpler choice.

Two payment specifics worth flagging:

  • SEPA Lastschrift is the German equivalent of direct debit and remains widely trusted, particularly for B2B invoicing, subscriptions, and higher-ticket orders. Shopify supports it through Shopify Payments but with limited control over mandate handling and notification timing. WooCommerce via Mollie gives you the standard SEPA pre-notification window (5 days) configured exactly as German banks expect.
  • giropay was discontinued on 31 December 2024. If your Shopify store still has a giropay option that effectively does nothing, or if customers ask why giropay disappeared at checkout, the answer for WooCommerce stores is straightforward: SEPA Lastschrift via Mollie covers the same use case (direct bank payment), and Klarna’s Pay Now option covers the “instant bank confirmation” use case that giropay served.

6. Handle order history

Order history migration is the most commonly skipped step — and in most cases that’s the right call. Shopify order data doesn’t map cleanly to WooCommerce’s database structure, and forcing it in creates risk for payment records, tax reports, and customer accounts. The practical approach: export Shopify order history as a CSV and archive it, start fresh in WooCommerce from the go-live date. Accounting records for the Shopify period stay in Shopify, which keeps your Steuerberater happy and your GoBD-relevant records intact.

This is the part where Shopify’s “we handle everything” promise quietly stops being true. German e-commerce sits under more specific consumer-protection law than most EU jurisdictions, and the requirements apply regardless of which platform you run.

  • Impressum (§5 TMG) — Every commercial German website must have a clearly accessible Impressum page with full legal entity name, address, contact, registration details, and VAT ID. On WooCommerce this is a standard WordPress page linked in the footer. No platform restrictions.
  • Widerrufsrecht and Widerrufsbelehrung — Distance-selling regulations require a 14-day right of return with a specifically-worded notice (Widerrufsbelehrung) and a withdrawal form (Muster-Widerrufsformular). Standard plugins like Germanized for WooCommerce handle the legally-compliant text generation, checkout-step Widerrufsbelehrung display, and the post-purchase email containing the withdrawal form.
  • DSGVO / GDPR — On WooCommerce you own the database. Personal data sits on your server (in Germany, if you choose Hetzner), under your control. The AVV with your hosting provider is a one-time document, easy to put in place with Hetzner. Cookie consent under TTDSG is handled by plugins like Complianz or Real Cookie Banner, both German-built and DSGVO-conform out of the box.
  • Verpackungsgesetz (VerpackG) — Stores that ship physical goods to German customers must register with the LUCID Verpackungsregister and license their packaging through a dual system (Der Grüne Punkt, Interzero, and others). This applies regardless of platform — Shopify doesn’t help with it, WooCommerce doesn’t either. Worth mentioning because German store owners frequently ask, and the answer is that this is a business compliance task separate from the technical migration.
  • Preisangabenverordnung (PAngV) — Prices must be displayed including VAT, with shipping costs clearly indicated before the customer commits. Germanized handles the Grundpreis (unit price) display for products sold by weight, volume, or count.
  • VAT / Mehrwertsteuer — Germany uses a 19% standard rate and 7% reduced rate for eligible products (books, food, etc.). WooCommerce handles both natively, and Germanized adds proper B2B reverse charge logic for EU sales without requiring Shopify Plus. For sales within Germany, the 19% rate applies to most physical goods; the 7% rate covers essentials like groceries, books, and certain agricultural products.

The single most useful WooCommerce plugin for the German market is Germanized for WooCommerce — it covers the Widerrufsbelehrung, the post-checkout email with the withdrawal form, the Grundpreis display, the Lieferzeit (delivery time) handling, the legally-required checkout button text (“Zahlungspflichtig bestellen”), and the order confirmation email content. Free version covers most stores; the Pro version adds invoice generation, advanced VAT handling, and B2B features. This is one plugin that replaces three or four Shopify apps doing the same job.

Protecting Your Google.de Rankings During the Migration

This is where most DIY migrations go wrong. Shopify and WooCommerce use different URL structures by default. Launch WooCommerce without redirecting the old Shopify URLs and every product page that ranked in Google becomes a 404 overnight. That’s recoverable, but it costs 2–4 months of ranking recovery time — and for a live store, that’s real lost revenue.

The URL structure difference

Page typeShopify URLWooCommerce default URL
Product page/products/product-name/product/product-name
Collection / category/collections/category-name/product-category/category-name
Blog post/blogs/news/post-name/post-name (or custom)
Static pages/pages/page-name/page-name

Every Shopify URL with rankings or backlinks pointing to it needs a 301 redirect to its WooCommerce equivalent. On a Trellis-hosted site, I put these redirects in an Nginx config file — they’re served at the webserver level, zero PHP execution overhead, no redirect plugin needed. That’s cleaner and faster than any WordPress redirect plugin.

The redirect checklist

  • Map every /products/ URL to its new /product/ equivalent
  • Map every /collections/ URL to its new /product-category/ equivalent
  • Redirect /blogs/news/ blog posts to their new WordPress slugs
  • Redirect /pages/ static pages to their WordPress equivalents
  • Submit the updated sitemap to Google Search Console immediately after launch
  • Monitor GSC for 404s in the first 4 weeks and add any missed redirects

If your Shopify store has strong rankings on google.de, crawl it with Screaming Frog before you switch DNS and export every URL returning a 200. That list is your redirect map — don’t rely on memory or manual exports.

Realistic Timeline and What It Costs

A straightforward migration for a small German store — under 200 products, no custom integrations — takes 2–4 weeks from start to go-live. Here is where that time goes:

PhaseWhat it involvesTime
Setup and auditWordPress + WooCommerce install on Hetzner DE, URL export, hosting config1–2 days
Product importCSV clean-up, import, image re-upload, category assignment2–5 days
Theme / designRebuilding or adapting the store design in WordPress3–7 days
Payments + taxMollie/Stripe setup, Germanized for legal compliance, MwSt rules, Versandzonen1–2 days
Redirects + SEORedirect map, Nginx config, Search Console update1–2 days
Testing + launchEnd-to-end payment tests, mobile, email notifications, DNS switch1–2 days

A professionally done migration for a small store typically runs €800–€1.500 depending on product count and whether the design needs rebuilding from scratch. That cost is usually recovered in 3–6 months from the elimination of Shopify app costs and Shopify Payments fee differential.

What You Gain and What You Give Up

What you gain

  • Customer data and order data on a German server, under your control, with a clean AVV from Hetzner — the cleanest DSGVO story you can give your data protection officer
  • Lower app costs — Germanized alone replaces what would be 3–4 Shopify apps doing legal compliance work
  • Better Klarna integration with the full Pay Now / Pay Later / Pay in 3 / Financing range available via Mollie or direct Klarna
  • Granular SEPA Lastschrift control for B2B, subscriptions, and recurring payments without platform restrictions
  • WPML or Polylang for multi-language stores serving DACH, EU, or international audiences — without paying for Shopify Plus
  • Full control over the checkout — exact wording, exact field order, exact Widerrufsbelehrung display — to meet PAngV and consumer-law requirements
  • Flexibility to customize anything in code without hitting platform API limits

What you give up

  • Shopify’s built-in fraud analysis (replaceable with Stripe Radar, which is excellent)
  • The simplicity of Shopify’s admin for non-technical users — WooCommerce is more powerful but also more involved to manage
  • Native Shopify POS if you sell at a Ladengeschäft or Wochenmarkt (Square or Stripe Terminal integrate with WooCommerce but need separate configuration)
  • Shopify’s hosted checkout — WooCommerce checkout is self-hosted and requires proper SSL and caching setup to be reliable

The Most Common Mistakes to Avoid

  • Skipping the redirect map — every unredirected Shopify URL becomes a 404 in google.de the moment you switch DNS. Build the redirect map before switching, not after.
  • Caching the cart and checkout pages — WooCommerce cart sessions break under full-page caching. Cart, checkout, account, and order-received pages must be excluded from caching rules. This is the most common technical mistake on migrations from hosts that configure caching aggressively.
  • Skipping Germanized — running a German WooCommerce store without Germanized means manually wiring up the Widerrufsbelehrung, the legally-required checkout button text, the Grundpreis display, and the post-purchase email content. Possible but pointlessly painful — Germanized is free and handles all of it.
  • Launching without testing every payment method end to end — run a real test transaction on every gateway before switching DNS. SEPA Lastschrift in particular has a mandate flow that needs to be verified with a real bank account.
  • Forgetting transactional emails — WooCommerce sends order confirmations via WordPress’s mail function, which most hosting servers block by default. Set up SMTP — Postmark or Mailgun — before launch, not when customers start complaining they didn’t get their order confirmation.
  • Forgetting the cookie banner under TTDSG — German cookie consent rules are stricter than the EU baseline. Use Complianz or Real Cookie Banner; both are German-built and DSGVO-conform.

Maintenance: The Part That Puts People Off — And Shouldn’t

The number one reason store owners hesitate to leave Shopify is maintenance. Shopify handles its own updates. On WooCommerce, someone has to keep WordPress, WooCommerce, and plugins updated, make sure backups are running, and respond if something breaks.

That concern is legitimate — but it’s based on the assumption that you’re doing it yourself. You don’t have to be. The Trellis hosting setup I use handles server-level security patching, PHP version management, and automated backups automatically. On top of that, I offer WordPress maintenance plans that cover plugin updates, monitoring, and a developer on call when something needs fixing. The monthly cost is comparable to two or three of the Shopify apps you’re already paying for.

I’ve had clients move to Shopify specifically to avoid maintenance overhead — and then come back to WooCommerce once they saw what managed WordPress maintenance actually looks like in practice. The difference between “I have to figure this out myself” and “Jasper handles it” is significant. Maintenance doesn’t have to be your problem.

Frequently Asked Questions

Will my google.de rankings survive the migration?

Yes, if the redirect map is complete and implemented before you switch DNS. A 301 redirect tells Google “this page moved permanently” — PageRank transfers, rankings hold. The risk is missed redirects, not the migration itself. I crawl the Shopify store before any DNS change, build the redirect file from actual 200-status URLs, and monitor Google Search Console for 404s in the weeks after launch. Stores with established google.de rankings don’t lose them when this is done correctly.

Will customer data stay in Germany or the EU?

If we host on Hetzner Cloud in Falkenstein or Nürnberg — yes, all customer data, order data, and database backups stay on servers physically located in Germany. The AVV with Hetzner is straightforward. This is one of the cleanest improvements over Shopify, which hosts customer data on its own global infrastructure (mostly US-based) regardless of where your store or your customers are.

Does my Shopify store stay live during the migration?

Yes. The WooCommerce store is built and tested on a temporary URL. Your Shopify store keeps taking orders throughout. The DNS switch only happens once the new store has been fully tested — including end-to-end payment tests on every gateway. The actual cutover is typically a few minutes of DNS propagation.

Do I need to re-enter all my products manually?

No. Shopify’s product CSV export maps to WooCommerce’s importer for most fields — title, description, price, SKU, inventory, variants. What needs manual work is images (re-upload for small catalogs, automated via WP All Import for larger ones) and any custom metafields that don’t have a direct WooCommerce equivalent.

Do you speak German? How do we communicate?

I work in English with my German clients — most German developers and business owners are fluent enough that this hasn’t been an issue, and writing technical specs is faster in a shared language. I work remotely, so communication happens via email and async messaging; for calls, we find a slot that works across timezones. For customer-facing content on your store — checkout text, emails, legal pages — that’s all in German, handled by Germanized’s translations and your own copy.

What happened to giropay and what do I use instead?

giropay was shut down by the German banks on 31 December 2024 (some payment providers stopped accepting it from 30 June 2024). The replacement on WooCommerce isn’t a single product — it’s a combination. SEPA Lastschrift via Mollie covers the “pay directly from my bank account” use case. Klarna’s Pay Now option covers the “instant bank confirmation at checkout” use case. Most German customers who used giropay are comfortable with either of these, and offering both gives full coverage.

How do I keep my domain?

If your domain was registered through Shopify, transfer it to a registrar like INWX, united-domains, or Cloudflare before the migration — Shopify charges a premium for domain registration and you’re better off managing it independently. If the domain is already at an external registrar, it’s a simple DNS update pointing to the new server. Either way, the domain stays yours throughout.

Not in Germany? See our Netherlands migration guide.

If your Shopify app bill has crept past €150 a month, or your data protection officer keeps asking awkward questions about where customer data actually sits, or you’ve been working around the giropay gap with a workaround that isn’t quite working — send me the details and I’ll give you an honest estimate of what migration would cost versus what you’d save. If it doesn’t make financial sense for your store, I’ll tell you that too.

Need a WooCommerce Developer for Your Store?

We build and optimize WooCommerce stores for SMEs — from custom checkout flows and payment integrations to performance tuning and ongoing maintenance. Fixed-price quotes available.

  • Custom checkout and cart optimization
  • Payment gateway integration (Stripe, Mollie, PayPal)
  • WooCommerce performance and speed optimization
  • Ongoing store maintenance and support

Leave a Reply

Your email address will not be published.