DEV Community

Sushil Barwal
Sushil Barwal

Posted on Originally published at dzimark.com

Shopify or WooCommerce for a UK store? What the developer ends up building and maintaining

Most "Shopify vs WooCommerce" comparisons are written for the store owner. This one is for the developer who gets the call afterwards: what you'll build, what you'll patch, and what happens when the client changes platform three years later.

Short version: on WooCommerce you own the whole stack. On Shopify you own the theme, the integrations and whatever the platform lets you plug in. The deciding question is usually who maintains it.

WooCommerce: you are the platform team

WooCommerce is a plugin for WordPress, running on hosting the client picks. That means the developer (or whoever is on retainer) inherits:

  • Hosting and PHP. Server choice, PHP upgrades, caching and database growth as order tables fill up.
  • Updates. WordPress core, WooCommerce, the theme and every plugin, each on its own release schedule. Some updates change templates, so a child theme that overrides WooCommerce templates needs checking after each major release.
  • Security and backups. Nobody else is watching the login page or testing restores.
  • Plugin sprawl. Every plugin adds scripts, settings and another vendor that can ship a breaking change.

In return you get control: rewrite the checkout, hook into any action or filter, and host it wherever the client likes.

Shopify: you build on someone else's platform

Shopify is hosted. Servers, core updates, security patches and uptime are Shopify's problem. Your work moves up a level:

  • Themes in Liquid. Online Store 2.0 themes use JSON templates and sections, so most of the work is building sections the client can rearrange in the theme editor without calling you.
  • Apps instead of plugins. Features come from the Shopify App Store. You review what each app injects into the storefront and whether it overlaps with another one. You can't open the app's code.
  • Shopify Functions for backend logic. Discounts, delivery and payment customisations run as Functions, compiled to WebAssembly (Shopify supplies templates for Rust and JavaScript). One licensing detail catches people out: Shopify's docs say stores on any plan can use public apps that contain Functions, but only Shopify Plus stores can use custom apps that contain Function APIs. If the client wants a one-off discount rule built just for them and they aren't on Plus, look for a public app or rethink the requirement.
  • No self-hosting. You can't move the store onto your own server. If the client needs that, Shopify is the wrong pick.

VAT display: both work, configured differently

UK consumers expect prices with VAT included, and both platforms can show them that way.

On Shopify, the global switch is in Settings > Taxes and duties: "Include sales tax in product price and shipping rate". Per-market display can be set to dynamic, included, or shown as a line item. Developers should know that tax overrides aren't recognised when dynamic tax-inclusive pricing is on, and that "Charge tax on this product" has to stay ticked on each product or the displayed price won't include VAT.

On WooCommerce, you turn on tax under WooCommerce > Settings > General, then use the Tax tab. Three settings matter: whether prices are entered with tax, how prices display in the shop, and how they display in the cart and checkout. Keep all three on the same basis or you'll chase rounding differences. WooCommerce warns when they conflict. The default tax classes are Standard, Reduced rate and Zero rate, which line up neatly with UK VAT rates, but you or the accountant still fill in the actual rates.

Neither platform decides which rate applies to a product. Shopify's UK tax pages say that's the merchant's responsibility, so point the client to GOV.UK or their accountant.

Checkout customisation: the biggest practical gap

This is where the platforms differ most for a developer.

On WooCommerce the checkout is code you can change: add fields, reorder steps, call an external API before payment. You also own every bug.

On Shopify the checkout is locked down by design. checkout.liquid is no longer supported for the information, shipping and payment steps. The replacement, checkout UI extensions, is listed as Shopify Plus only for the checkout itself, while Thank you and Order status page extensions are available on all plans except Starter. Branding the checkout through the GraphQL Admin API is also Plus only. Functions and web pixel extensions are available on all plans except Starter.

If a non-Plus client's brief says "add a custom step between shipping and payment", check their plan before you quote.

Data export, and what it means for a later migration

Plan for the exit when you build. Clients do move, in both directions.

Out of Shopify: products and customers export as CSV from the admin. Orders export as CSV too, but Shopify doesn't let you import orders back in by CSV, so moving orders between Shopify stores, or into Shopify from anywhere, goes through an app or the Admin API. Customer passwords can't be migrated, so customers have to set new ones after any move.

Out of WooCommerce: you have the database, so in theory everything is available. In practice you'll use the REST API (/wp-json/wc/v3/products, /customers, /orders) or the built-in product CSV exporter. Shopify's own WooCommerce migration guide notes that WooCommerce doesn't offer a customer CSV export with full address details, and that reviews aren't in the product export.

URLs: Shopify uses fixed subdirectories such as /products/, /collections/ and /pages/, and you can't rename them. A WooCommerce store moving to Shopify needs a redirect for nearly every product and category URL. A Shopify store moving away needs the same in reverse. Either way, keep a clean list of URLs from day one.

Habits that make any future move cheaper: unique SKUs, consistent variant attributes (Shopify allows up to three options per product), structured data in metafields or attributes rather than description HTML, and a written list of every app or plugin.

So which one?

Pick Shopify when the client has no developer on staff, wants a predictable monthly bill and a checkout they can't break, and can live within the extension model. Pick WooCommerce when they already run on WordPress, need unusual product or checkout logic, or want to own the hosting, and they're willing to pay someone to keep it patched.

FAQ

Can a non-Plus Shopify store customise the checkout?
Partly. Shopify Functions, through public apps, can change discounts, delivery and payment options, and Thank you and Order status page extensions work on all plans except Starter. Custom UI inside the checkout steps needs Plus.

Do both platforms show UK prices including VAT?
Yes. Shopify has a tax-inclusive pricing setting under Taxes and duties. WooCommerce has separate settings for how prices are entered and displayed, which should all match.

What's the hardest data to move between them?
Order history and customer passwords. Passwords can't be moved at all. Shopify doesn't accept orders by CSV import, so orders go in through an app or the API.

If you're weighing a move for a client and want a second pair of eyes on the data and redirect plan, Dzimark handles Shopify migrations from WooCommerce and other platforms.

Originally published on the Dzimark blog.

Top comments (0)