Say you sell block-printed cotton kurtas. You have about 80 designs, each in five sizes, a following on social media, and a cousin who has been packing orders by hand from WhatsApp messages. You want a proper store, and everyone you ask gives you a different answer about Shopify or WooCommerce.
This post follows that seller, who is made up, through the first two years on each platform. Short version: for a new brand with a standard checkout, we would usually start on Shopify. For a business that already lives on WordPress, or needs checkout rules a hosted platform won't allow, WooCommerce. The interesting part is why, and it shows up at month six, not on day one.
One thing to say before we start. We set up and customise stores on both platforms through our Shopify and WooCommerce development service, but we have not published a store case study yet. Where we draw on first-hand engineering below, it comes from other products we built, and we say which.
Day one: the decision is really about who runs the store
The technical difference is simple to state. Shopify is hosted: you pay a subscription, Shopify runs the servers, patches them and keeps checkout up. You change the look through themes and add features through apps from its app store. WooCommerce is a free plugin for WordPress. You host it, on your own server or on managed WordPress hosting, and everything is open: the PHP code, the database, the server. Nothing stops you changing anything. Nobody else is going to patch it either.
For our kurta seller, the person adding products and handling orders is the cousin, who is quick on a phone and has never opened a server log. That fact matters more than any feature list. On Shopify she can add a design, run a festival sale and see the day's orders without calling anyone. On WooCommerce she can do the same things, but somebody has to be there when a plugin update breaks the checkout page on a Saturday.
So on day one, Shopify. If the same seller had a five-year-old WordPress blog with good search traffic and a developer on retainer, the answer would flip, because moving that content would cost more than running WordPress does.
Here is the comparison we walk sellers through, kept to the rows that actually change the decision:
| Shopify | WooCommerce | |
|---|---|---|
| Hosting and patches | Done for you | Yours, or your host's |
| Time to first sale | Weeks, with a theme and a few apps | Longer: hosting, WordPress, plugin, theme, extensions |
| Running cost shape | Monthly plan plus paid apps, and a possible transaction fee with a third-party gateway | Free plugin; you pay hosting, premium extensions and someone's time |
| Checkout changes | Within Shopify's rules; deep changes limited outside its top plan | Anything, by someone who knows how |
| Content and blogging | Basic blog and pages | Full WordPress |
| Sale-day traffic | Absorbed for you | Depends on the host and caching |
We deliberately don't quote plan prices. They change often enough that any number here would be wrong within the year, so check the pricing pages on the day you decide.
Day one, continued: payments, GST and the list nobody reads
Indian buyers expect UPI, cards, netbanking and wallets, and plenty of first-time buyers want cash on delivery. Both platforms connect to the major Indian payment gateways through apps or plugins, so the gateway is rarely the deciding factor. Its per-transaction fee usually is the biggest variable cost, on either platform. Our Razorpay fee calculator gives you a feel for the numbers before you have a single order.
GST is where first stores most often go wrong. Every invoice needs your GSTIN, the right rate per product, the CGST and SGST or IGST split depending on where the parcel goes, and a number from a series your accountant accepts. Both platforms do this through settings plus an invoicing app or plugin. We set the rates up with the seller's accountant and place test orders before any customer sees an invoice. On Pakka, a delivery platform we built, monthly GST invoices for business customers carry a gapless serial per financial year. That is a custom build, not a store, but the rule carries over: gaps in an invoice series are the thing your accountant will ask about first. Our guides to invoice number series and GST e-invoicing for software go further.
Before the kurta store opens, we would also want test orders on real phones for every payment method, COD, a refund and a return; shipping zones and a courier connected; a returns policy and a privacy policy that match what the store and its apps actually collect (our DPDP readiness checklist covers the privacy side); and every login in the seller's own name.
Day one, the catalogue
This is the bit that decides whether month six hurts, and it is the same on both platforms.
Eighty designs in five sizes is eighty products with five variants each, not four hundred products. Get that wrong and filters, stock counts and search all break together. Each variant gets its own SKU, in a pattern the courier labels can carry, because the SKU is what ties an order to its stock, its invoice and its return. The HSN code and GST rate live on the product, so nobody edits invoices by hand. Collections follow how people shop (festive, office, cotton for summer) as well as how the seller thinks about stock, and each collection doubles as a page that can rank in search.
If the kurtas also sell on a marketplace or at an exhibition stall, decide now which system owns the stock count. Overselling the last size M of a popular print is how sellers usually learn this lesson. It's a small data model, and it is the part that moves cleanly if you ever change platform.
Month six: the bills and the rules
Six months in, the seller has a few hundred orders a month and two new problems.
The first is the app bill. Product reviews, a better search, a size-chart pop-up, a bulk editor, an invoicing app. Each is a monthly fee and each adds a little script to every storefront page. On plenty of Shopify stores the apps end up costing more than the plan. Our habit is to use an app only when the theme and settings genuinely can't do the job, and to remove the ones nobody uses, which is also the quickest speed fix on Shopify.
The WooCommerce version of the same store has a different bill: hosting that survives a Diwali sale, premium extensions for shipping and invoices, and the hours someone spends updating WordPress, the theme and every plugin. Those hours are real money even when nobody invoices for them.
The second problem is COD. Refused parcels come back at the seller's cost, and the stock is out of sale for the round trip. The rules that protect the margin are the same on either platform:
- COD only up to an order value you can afford to lose on a refusal, prepaid above it.
- A quick confirmation by call or message before a COD parcel ships.
- A small reason to prepay, such as free shipping on prepaid orders only.
- COD switched off for PIN codes your courier data shows are refused often, while keeping prepaid open there.
Someone also has to match the courier's batched COD remittances, net of charges, to the orders they cover. That's reconciliation, and it is tedious enough that it's worth a small export rather than a spreadsheet nobody trusts.
Here the platforms do differ. On WooCommerce a developer can write any of those COD rules directly. On Shopify you work within what checkout and its apps allow, so check which rules you can actually enforce before you commit. If the kurta seller's COD rules are ordinary, Shopify is still fine at month six. If they are unusual, say a partial prepayment on COD orders above a value, WooCommerce starts to earn its upkeep.
One rule holds wherever the code lives: the amount charged comes from the server, never from the browser. On Pakka, business quotes are priced on the server and bulk order rows are validated and priced there before anything is booked. A store's custom plugins and checkout code need the same discipline, because a price the browser can edit is a price someone eventually will.
Month six, speed
Most of the seller's buyers open the store on a mid-range Android phone on mobile data. A store that feels quick on an office laptop can crawl there. The usual causes are product photos uploaded at full camera size, heavy themes, and apps or plugins that each add their own script. On WooCommerce, a cheap shared host does the most damage, and caching plus properly sized images fix a lot of it. A slow product page also ranks worse than a fast one with the same content, which is why speed is the first thing our SEO work checks.
Year two: who looks after it, and whether to move
By year two the store has history: URLs that rank, customer accounts, gift cards, a returns pattern. Two things decide whether it stays healthy.
The first is upkeep. On Shopify the platform patches itself, so upkeep is about apps: what each can access, which ones you stopped using, whether a theme update broke a custom change. On WooCommerce upkeep includes the server. WordPress, the theme and every plugin get updated in a staging copy first, then live. Backups are held away from the server they protect and actually restored now and then. And someone checks that a payment still goes through after each update. If nobody on the team wants that job, it belongs in a maintenance plan rather than in someone's spare time. A store that stops taking payments on a Friday evening because a plugin updated itself is the most expensive kind of saving.
The second is whether the platform still fits. Stores move both ways: from Shopify to WooCommerce when they outgrow the rules, from an old WooCommerce site to Shopify when nobody wants to run servers any more. Products, customers and order history export and import. The theme does not, because Shopify themes and WordPress themes are different technologies, so it is rebuilt.
Every move has the same risks: product URLs that change, images that come across at lower quality, customers who need a password reset, gift-card balances that live in the old platform. We map every old URL to its new one with a permanent redirect before the switch, run both stores side by side for a few days, and compare order totals and stock counts before the old one goes dark. Skip the redirects and you throw away two years of search traffic in an afternoon.
When the answer is neither
Sometimes, by year two, the kurta seller isn't running a store any more. Other weavers want to sell through the site, each with their own dashboard, commission and payout. That is a two-sided marketplace, not a store, and it needs a custom platform; our marketplace app development page explains what that involves.
The same goes for a wholesale side that grows large: customer price lists, minimum quantities, credit terms, GST invoices addressed to the buyer's GSTIN, a sales person ordering on a customer's behalf. WooCommerce handles some of this with plugins, and Shopify supports B2B on its higher plans. But once quotations, approvals and credit limits need to feed the accounts, it is often cleaner to keep the consumer store on its platform and build the wholesale ordering as custom business software on the same catalogue.
If you're the seller
Sit with the person who will run the store and walk one order through on paper: a customer pays by UPI, asks to swap the size, then returns it. Mark every step where someone does something by hand. The platform that removes the most of those steps, at a running cost you can live with, is your answer. For a new brand that is usually Shopify. For a business already built on WordPress, it is usually WooCommerce, with someone named to keep it updated.