WooCommerce vs Shopify comes down to who runs the software. Shopify is a hosted platform: you pay a monthly plan, Shopify handles servers, security and checkout, and you work inside its limits. WooCommerce is a free, open-source plugin for WordPress: you pay for hosting and extensions, you own the code and the database, and you are responsible for updates, speed and security.
Pick Shopify if you want a store running this month with little technical upkeep and your catalog fits three options per product. Pick WooCommerce if you already run WordPress, have a developer on call, or need product data structures Shopify does not offer. Most comparisons stop at cost and ease of use. This one also looks at how each platform stores products, variants and custom fields, because that decides how hard your catalog is to manage now and how much work it is to move later.
Shopify and WooCommerce side by side, criterion by criterion
The table below compares both platforms on the points every buyer asks about, plus the catalog limits most reviews skip. Shopify prices are the US dollar prices on Shopify's pricing page on 12 October 2026. Shopify shows prices in local currency, so they differ by country and by monthly or yearly billing. Sort or filter by any column.
WooCommerce vs Shopify decision table
| Software cost | Basic $39/month, Grow $105, Advanced $399 (monthly billing); Plus from $2,300 | Free plugin; WordPress is free | Shopify cost is predictable; WooCommerce cost moves with hosting and extensions |
|---|---|---|---|
| Hosting | Included | You choose and pay a host | WooCommerce speed with 50,000 SKUs depends on the server, not on WooCommerce |
| Card fees (built-in payments) | Shopify Payments: 2.9% + 30¢ on Basic, down to 2.25% + 30¢ on Plus | WooPayments: 2.9% + $0.30 for US cards, no monthly fee | Compare on your own order volume and card mix |
| Fee for other payment providers | 2% (Basic), 1% (Grow), 0.6% (Advanced), 0.2% (Plus) | None from WooCommerce | Matters if you need a specific payment provider or a B2B invoice gateway |
| Variants per product | 2,048 | No documented cap | Large size and color grids fit both, but test themes and apps above 100 |
| Options per product | 3 | As many attributes as you add | A fourth buyer choice needs a workaround on Shopify |
| Custom fields | Metafields and metaobjects | Custom attributes and post meta from plugins | Shopify fields are typed; WooCommerce fields are as consistent as your plugins |
| Languages | Built in, managed per market | Needs a plugin such as WPML or Polylang | Translations live in different places, which affects every sync |
| Product CSV | 15 MB per file, matched by URL handle | Built-in importer, matched by ID or SKU | SKU matching makes WooCommerce updates easier to script |
| Code access | Theme code and apps only | Full PHP and database access | Deep changes are possible on WooCommerce, and so is breaking things |
What you actually pay for each platform
Shopify's plans bundle hosting, the checkout and core features. On the US pricing page, Basic costs $39 a month on monthly billing ($29 a month billed yearly), Grow $105 ($79), Advanced $399 ($299), and Plus starts at $2,300 a month. Online card payments through Shopify Payments cost 2.9% + 30¢ on Basic, 2.7% on Grow, 2.5% on Advanced and 2.25% on Plus (each plus 30¢), with 1% added for international cards. If you use another payment provider, Shopify adds its own fee of 2% on Basic, 1% on Grow, 0.6% on Advanced and 0.2% on Plus. Prices change by country: the euro version of the same page lists Basic at EUR 28 a month.
WooCommerce itself costs nothing. Your bill is hosting, a domain, a theme and the extensions you need, such as a subscription plugin, a B2B pricing plugin or a multilingual plugin. WooCommerce's own payment service, WooPayments, charges 2.9% + $0.30 per transaction for US cards (1.5% + EUR 0.25 for Dutch cards) and lists no setup or monthly fee for online payments. You can also use any other gateway without a platform surcharge.
The hidden cost on WooCommerce is time: plugin updates, conflicts after updates, backups and speed work. The hidden cost on Shopify is apps: features that are a free plugin on WordPress are often a monthly app subscription on Shopify. Price both against the same feature list, not against the headline plan price.
Setup effort, maintenance and who owns the code
Shopify takes the server off your plate. You pick a theme, add products, connect payments and launch; Shopify patches the platform and runs the checkout. The trade-off is control: you cannot change the checkout logic or the database, and anything beyond the theme goes through apps or Shopify's APIs.
WooCommerce runs wherever WordPress runs: a PHP and MySQL host with HTTPS that meets WooCommerce's server requirements, which ask for a current WordPress and PHP version and at least 256 MB of memory. Meet those and you can change anything, from the cart to how product data is stored. That freedom is why agencies like WooCommerce and why a store with 40 plugins can become slow and fragile. Support splits the same way: every Shopify plan includes 24/7 live chat support, while WooCommerce help comes from your host, the developer of each paid extension and the WordPress forums. Keeping WordPress, the theme and every plugin patched is your job; on Shopify it is not.
Both platforms scale to large catalogs. On Shopify, scale is a matter of plan limits and app quality. On WooCommerce, it is a matter of hosting, caching and database tuning. Both can also serve as the back end for a separate headless storefront later.
Apps on Shopify, plugins on WordPress
Shopify's App Store apps run on Shopify's side or on the developer's servers and plug into the admin. Installing and removing them is clean, but each app keeps its own data, and many store product details in their own metafields or databases. WordPress plugins run inside your site and write to your own database, usually as post meta. That makes the data yours, but every plugin uses its own field names, so two plugins can store the same EAN in two places.
Before you choose, write down the five extensions you cannot live without (for example B2B price lists, bundles, product reviews, a feed tool and translations) and check what each costs and where it stores its data on both platforms. Where an extension keeps your product data matters more than its star rating, because that is the data you will have to move or sync later.
SEO and payments: where the two platforms differ
Both can rank well. Shopify gives every product an SEO title, meta description and URL handle, generates the sitemap and robots.txt, and adds canonical tags; you cannot change the fixed /products/ URL prefix. Our Shopify SEO checklist covers the rest. WooCommerce lets you pick the permalink base and needs an SEO plugin such as Yoast SEO or Rank Math for titles, descriptions and schema; see WooCommerce SEO for the product-level settings.
On payments, Shopify's own checkout is the main reason merchants choose it, and Shopify's multi-currency help says only stores on Shopify Payments get every multi-currency feature. WooCommerce supports almost any gateway, such as Stripe, PayPal or Square through their plugins, with no platform fee on top.
How Shopify models products, options and variants
A Shopify product holds the shared content: title, description, vendor, product type, tags, images and SEO fields. Under it sit variants, the sellable versions with their own SKU, barcode, price, weight and stock. Variants are created from options. According to Shopify's Help Center, a product can have up to three options and up to 2,048 variants, and up to 250 media items. The variant cap was 100 until Shopify raised it on 15 October 2025; our Shopify variant limit guide explains where themes and apps still stop at 100.
Everything else goes into metafields: typed custom fields on products, variants, collections and other resources, such as material, care instructions or a warranty period. Metaobjects are your own record types, for example a size chart that many products reference. Shopify's product category also brings category metafields with fixed values, such as fabric or neckline. See our Shopify metafields guide for namespaces, types and definitions.
Languages are part of the platform. You add and publish languages, and markets decide which languages each region gets; content is translated with Shopify's Translate & Adapt app, a CSV import or a translation app, according to Shopify's languages documentation.
How WooCommerce models simple and variable products
WooCommerce stores products as WordPress posts, with prices, stock and most other values in post meta. Core product types are simple, grouped, external/affiliate and variable; virtual and downloadable are flags you add to a product. A variable product is the parent, and each variation is a child with its own price, SKU, stock, weight, image and GTIN, UPC, EAN or ISBN field.
Variations are built from attributes, and WooCommerce has two kinds. Global attributes are created once under Products, then Attributes, and reused across products; they get taxonomy names such as pa_color and can power filters and archive pages. Custom attributes belong to one product, and you type their values separated by a pipe, such as Medium | Large | XL. WooCommerce's variable product documentation lists no maximum number of variations, but notes that the dynamic dropdowns on the product page only work for products with 30 or fewer variations.
Custom fields in WooCommerce are post meta, added by plugins or code: an EAN plugin might write _ean, a brand plugin _brand, an SEO plugin its own keys. Languages need a plugin. The WPML Multilingual & Multicurrency for WooCommerce plugin translates simple, variable, grouped and external products, and needs a paid WPML plan for the translation features; Polylang has its own WooCommerce add-on.
One sock pack, modeled on both platforms
Take a 3-pack of merino crew socks sold in two sizes (39 to 42 and 43 to 46) and three colors (Charcoal, Navy, Olive). That is six sellable versions, each with its own SKU and EAN. Material, care instructions and country of origin are the same for every version.
On Shopify: one product with Option1 name Size and Option2 name Color, six variants each carrying a SKU (MER-3P-CH-3942 and so on), a barcode and a price. Material and care instructions go into product metafields, for example custom.material. A third choice, such as gift box or no gift box, would take the last option slot; a fourth would not fit.
On WooCommerce: one variable product with two global attributes, pa_size and pa_color, both marked as used for variations, and six variations with their own SKU and GTIN. Material can be a custom attribute that only shows in the Additional information tab, or post meta from a plugin. A gift box could simply be a third attribute.
The product data is identical, yet the field names, the place each value lives and the CSV columns are different. That difference is the real cost of switching platforms.
Where each Shopify field lands in WooCommerce
| Product | Variable product (or simple if one variant) | Yes |
|---|---|---|
| Option (max 3) | Attribute used for variations, global or custom | Yes, choose global for filters |
| Variant (max 2,048) | Variation | Yes |
| Variant barcode | GTIN, UPC, EAN or ISBN field | Yes |
| URL handle | Product slug (permalink) | Yes, but plan redirects |
| Collections | Product categories and tags | Partly: smart collections have no equivalent |
| Product metafields | Custom attributes or post meta | Needs a field-by-field plan |
| Metaobjects | No core equivalent | No: rebuild as attributes, pages or a plugin |
| Shopify product category | No core equivalent | No: map to your own categories |
| Translations (Translate & Adapt) | WPML or Polylang translations | Needs a plugin and a separate import |
CSV files and APIs: how portable your catalog is
Both platforms export products to CSV, and neither CSV is a full backup. Shopify's Help Center caps a product CSV at 15 MB per file. Shopify's CSV documentation says variant rows hang under the first product row through the URL handle, product metafields are exported as extra columns, variant metafields are not supported, collections are not included in exports, and CSV files cannot delete products. Our Shopify product CSV guide lists the columns with examples.
WooCommerce's built-in importer and exporter handles simple, variable, grouped and external products and variations, which point to their parent by SKU or ID. Attributes use numbered columns such as Attribute 1 name, with a global flag; custom fields use a meta: prefix; updates match rows by ID or SKU. The core importer cannot set image alt text, and the maximum file size is set by your server.
For ongoing syncs, both have APIs. Shopify's Admin GraphQL API is the current way to read and write products, with rate limits based on query cost. WooCommerce has a REST API that runs on your own server, so its limits are your hosting's limits.
What switching platforms later costs in catalog work
Moving a store means moving products, customers, orders, URLs and apps. Migration tools and agencies handle the store side. The catalog side is where most of the hours go, because the two data models do not line up: three-option products, metafields, metaobjects, plugin meta and translations all need a decision. A catalog that already lives outside the store, with its own attribute names and SKUs, moves with far less rework.
Catalog data to secure before you switch platforms
Which platform fits which kind of store
- A new brand with under a few thousand SKUs, no developer and one or two markets: Shopify. The plan cost buys you time, and three options per product is enough for most fashion and home catalogs.
- A content-heavy store already on WordPress: WooCommerce. You keep your blog, your SEO history and your hosting, and add a shop.
- B2B, configurable or highly technical products: WooCommerce, or Shopify Plus if the budget allows. Many attributes and custom pricing logic fit WordPress better than three option slots.
- Several languages and countries: Shopify if you want it built in; WooCommerce if you are fine running WPML or Polylang and keeping translations in sync with every plugin.
- Several channels next to the store: either, as long as the product data has one home outside the store, so the store is one channel among several.
Keeping one catalog for Shopify, WooCommerce or both
Whichever platform you pick, the product data does not have to live only inside it. WISEPIM is a PIM, not a storefront or a migration service: it imports products from Shopify and WooCommerce, lets you fill and translate titles, descriptions and attributes with AI, and exports them back, with opt-in auto-sync about 30 seconds after you save a product. It also imports CSV and Excel files with column mapping, so a platform export can become a clean catalog with your own attribute names. If you ever change platforms, that catalog is already in one place, ready to export to the new store.

