■ woocommerce development
B2B wholesale with NET terms. 10,000+ SKU catalogues. WooCommerce Subscriptions on stores doing $1M+ in recurring. Custom checkout logic Shopify Functions still can't reach. Built as proper applications — no page builders, no plugin-soup themes, no surprises six months in.

■ Who this is for
■ Probably not a fit
■ Decision matrix
Every WooCommerce engagement starts with the same conversation: is this actually the right platform? We build on Shopify too and we will tell you when it's the better call. Below is the decision matrix we run through on a discovery call, scenario by scenario.
| Scenario | Better pick |
|---|---|
| B2B wholesale with NET 30 terms, role-based pricing, EU VAT exemptions | WooCommerce |
| DTC brand under $50K/year GMV, single market, simple catalogue | Shopify |
| 10,000+ SKU catalogue with supplier-feed sync | WooCommerce |
| Subscription brand at $1M+ recurring on standard pricing | WooCommerce |
| Single-product brand needing fast launch and best-in-class checkout conversion | Shopify |
| Store needing custom checkout logic — split payments, partial deposits, complex discount stacking | WooCommerce |
| International brand with 8+ currencies, localised pricing, regional inventory | Shopify |
| Existing $2M+ Shopify store paying transaction fees not on Plus | WooCommerce |
| E-commerce inside a broader WordPress site — LMS + shop, memberships + shop, knowledge base + shop | WooCommerce |
| Founder who wants zero hosting, updates or server responsibility | Shopify |
The honest pattern across these scenarios: WooCommerce wins on ownership, customisation, and B2B / subscription depth. Shopify wins on time-to-launch, conversion-optimised checkout, and multi-region commerce. The wrong-platform engagements we see most often go in both directions — Shopify stores stuck on Plus paying fees they no longer need, and WooCommerce stores built when the founder wanted Shopify's no-maintenance promise. The matrix usually answers the question in under five minutes.

Case Study · WooCommerce + LMS
Orders processed
Engineering partnership
Stack
WooCommerce · LearnDash · WordPress · PHP · MySQL
■ Real work · Featured engagement
TEFL Institute of Ireland sells professional teaching qualifications to students across 80+ countries. The product surface is mixed — accredited courses, certification packages, optional add-on books, payment plans for higher-priced qualifications, and corporate enrolment for schools buying in bulk. The store has processed over 100,000 orders across the partnership.
WooCommerce was the right platform for two reasons that Shopify could not match. First, the storefront and the course delivery surface are the same product surface — a student buys a qualification on the store and immediately enters the LMS to begin coursework. We integrated WooCommerce with LearnDash through a custom enrolment plugin that maps product purchases to course access in a single transaction, with the receipt and course-start emails wired through the same template engine. Second, payment plans on higher-priced qualifications required custom invoicing logic — fractional capture, scheduled charges, dunning copy tailored to academic refund policies — that lives natively inside WooCommerce and was prohibitively difficult to reproduce on a hosted platform.
The decision that paid off most over the decade was treating WooCommerce as an application platform rather than as a collection of plugins. The B2B side (corporate enrolment, bulk pricing, invoice-on-account for accredited training partners) is custom code on top of WooCommerce's role system, not a stack of B2B plugins we'd be fighting with on every WooCommerce major version. Ten years on, the store still moves quickly on new features because the foundation is still readable code.
■ How we approach WooCommerce
We're not stack-agnostic on WooCommerce. After a decade of shipping WooCommerce stores — and auditing 100 WordPress sites for performance — we have strong views on what carries weight in production and what creates technical debt at month nine. Here's what we reach for, and the patterns we avoid.
Elementor, Divi and WPBakery are the single biggest cause of slow WooCommerce stores in our audit data. We build a custom child theme with Gutenberg / WooCommerce Blocks where the marketing team needs to author content. The performance and conversion gap on the storefront pays for the theme work inside the first quarter.
B2BKing, Wholesale Suite and similar plugins each carry a worldview about how B2B should work. Every B2B store we've shipped wants something the plugin author didn't anticipate. We build the B2B layer on top of WooCommerce's role and capability system in 600–1,200 lines of custom plugin code — cheaper to maintain than fighting plugin assumptions for two years.
WooCommerce Subscriptions when the product catalogue and the subscription are the same thing (recurring goods, memberships sold as products). Stripe Billing directly when subscriptions are decoupled from the catalogue and need usage-based pricing or invoice-level metering. We've shipped both. They're not interchangeable.
Redis object cache for query result caching. Cloudflare or BunnyCDN in front for static assets and a JS-aware page cache. Managed-WP hosting (Kinsta, WP Engine) or a properly tuned self-managed LiteSpeed box. Cart and checkout excluded from page caching. Heavy product queries rewritten to avoid the WP_Query N+1 problem. LCP target: under 2.0s on PageSpeed mobile.
WooCommerce, plugins and themes managed through Composer with version pins. Git-based deployment with CI checks. Staging environment that mirrors production. We do not edit code in the WP admin file editor — and we disable it on every site we ship.
WP REST API or WPGraphQL with WooGraphQL when the frontend needs richer interactivity than PHP rendering gives you. Good fit for mobile-first storefronts or React/Next.js marketing surfaces with the shop sitting behind an API. Not a default — most WooCommerce stores ship faster and run faster with PHP-rendered storefronts than with a JS frontend in front.
■ Real work
Plusheat sells boiler and home-emergency cover as a recurring subscription product across the UK — a category where the subscription is the product, where renewal mechanics matter more than any other surface, and where the customer expects to manage their cover in the same place they bought it. The platform has generated 40,000+ subscriptions and the company has raised over $300K in funding behind the business.
WooCommerce Subscriptions handles the renewal billing natively, but the production work was everywhere else. We built custom flows for partial-period upgrades (a customer on Bronze who wants to upgrade to Silver mid-period gets prorated charging on the existing card without losing cover), claim-aware dunning (a customer with an open claim on their cover is on a different dunning track than a customer with no claims), and an admin-side renewal queue that lets the customer service team see renewals failing-soon and intervene before the cover lapses. None of this exists on Shopify's subscription apps in any form we could reuse.
The structural reason WooCommerce was right here is what we call platform-ownership. At 40,000 active subscriptions paying recurring premiums, the dunning copy, the renewal email cadence, the failed-payment retry schedule and the cancellation flow are not configuration choices — they're the product. Owning that code in WooCommerce, rather than configuring it inside a third-party subscriptions app, kept the team's hands on the wheel during the months that mattered most.

Case Study · Subscriptions
Funded company
Subscriptions generated
Stack
WooCommerce · WooCommerce Subscriptions · WordPress · PHP
■ How we work
One week. We run the decision matrix above against your actual product, channels and team. If WooCommerce isn't the right answer, we tell you on day one — most often pointing toward Shopify Advanced or Plus. If it is, we map the data model, the B2B / subscription layer, and the integrations before writing code.
Schema lock, plugin shortlist, custom plugin scope, theme architecture, hosting decision. For migrations, the URL redirect map and the SEO-equity plan get written here. Subscription migrations get particular attention — Stripe customer IDs, renewal dates and payment methods all have to move without re-authenticating cards.
Composer setup, Git deployment to staging, base child theme, WooCommerce core, the first custom plugin scaffolded. By end of sprint zero you can browse a real staging site against your real data.
Two-week sprints. Catalogue, B2B logic, custom checkout flows, subscription mechanics, integration wiring (CRM, ERP, ESP, accounting) shipped one slice at a time. Staging is always demoable. We do not big-bang launches.
Cache layer wired (Redis object cache, CDN, page cache rules), critical CSS extracted, image pipeline tuned, database tuned for catalogue size. LCP target under 2.0s on PageSpeed mobile. Penetration tested against the standard WooCommerce attack surface (file upload, REST API, checkout endpoints).
Phased cutover for migrations, hard cutover for greenfield. We stay on full availability for the first month after launch for both — real shopper traffic surfaces issues no internal test catches. After 30 days we move into the standard WooCommerce maintenance and feature retainer.
■ Honest comparison
| Freelancer | Plugin-stack agency | Shopify Plus team | Appycodes | |
|---|---|---|---|---|
| Treats WooCommerce as an application | Rarely | No | Wrong platform | Yes |
| Writes custom B2B logic instead of stacking plugins | Sometimes | No | N/A | Yes — default |
| Performance work as a core deliverable | Maybe | Mixed | Not relevant | Yes — LCP < 2s target |
| Refuses to ship a page builder | Varies | No | N/A | Yes — non-negotiable |
| Handles subscription edge cases (mid-period upgrades, claim-aware dunning) | Rarely | Mixed | Limited on Shopify | Yes |
| Shopify-to-WooCommerce migration experience | Mixed | Mixed | Goes the other way | Yes |
| 10+ year retention with WooCommerce clients | No | Rare | N/A | Yes — TEFL is 10+ yrs |
| Post-launch maintenance retainer | Often unavailable | Yes | Yes | Yes — same team |
We are not the right call for the smallest WooCommerce projects — a senior freelancer is fine for under-$10K work on an existing store. We are the right call when the WooCommerce build has real B2B, real subscription, or real catalogue complexity, and you want one team that has shipped enough of these to know which plugin to avoid and which custom code is worth writing.

About the author
Ritesh leads engineering at Appycodes and has spent the last decade shipping WooCommerce stores for B2B, subscription, and high-SKU brands across the UK, US and Ireland — including the 10+ year TEFL Institute partnership and the Plusheat subscriptions platform. His focus is on WooCommerce as an application platform: custom code over plugin stacks, performance as a deliverable not a phase, and the boring maintenance work that keeps stores running through major version upgrades.
■ Other services
Explore the rest of what we build.
MVP to production builds, multi-tenant, billing, AI features.
Learn moreiOS + Android in one codebase. Push, offline, OTA updates.
Learn moreConvert your Lovable / Claude / Bolt web app to React Native or Flutter — backend reused.
Learn morePrerender, schema, Core Web Vitals — engineering-led SEO.
Learn moreB2B marketplaces, membership sites, headless WordPress.
Learn moreCustom themes, migration to Shopify, Shopify apps, supplier-feed automation.
Learn morePost-launch stability, security, monthly improvements.
Learn moreTake an AI-built prototype to a production-ready product.
Learn moreConvert AI-built web prototypes into native mobile apps.
Learn moreSubmit, configure and optimise for App Store + Play Store.
Learn moreModernise legacy systems with zero-downtime migrations.
Learn moreEngineering capacity for agencies, under your brand.
Learn moreFrom idea to live product — design, build, launch, growth.
Learn moreCustom REST/GraphQL APIs and third-party integrations.
Learn moreMulti-tenant AI SaaS with subscriptions and admin dashboards.
Learn moreMarketplaces with credit, KYC, and trust infrastructure baked in.
Learn moreCustomised Moodle deployments and bespoke Moodle mobile apps.
Learn moreSubscription recovery, dunning, migrations, combinatorial billing matrices.
Learn moreMagento, WordPress, BigCommerce → Shopify. Redirect-engineering first.
Learn moreForensic incident response — Magecart, backdoors, DDoS, GDPR Art. 33.
Learn moreFour production Laravel platforms. ERPs, contracts, tendering.
Learn moreWebhooks, metering, proration, dunning, multi-currency, reconciliation.
Learn moreWorkers, R2, WAF, Bulk Redirects. The full surface, not just the orange cloud.
Learn moreTender automation, contract operations, compliance calendars, calculators.
Learn moreRLS, multi-role auth, production-hardening Lovable / Bolt / v0 prototypes.
Learn moreWP + Next.js with preview, ISR, auth handoff, media pipeline, search.
Learn moreSchema-first builds, multilingual setups, migrations from WP / Contentful / Strapi.
Learn moreFour production Vue platforms. Vue + Laravel as the default pairing.
Learn morenginx, PHP-FPM, slow-query analysis, plugin audit. Diagnostic engineering, not plugin installs.
Learn moreSurgical plugin work — namespaced, idempotent, version-controlled. Not functions.php.
Learn moreKB + forum + adjacent surfaces. Search, version-aware routing, role-based visibility.
Learn moreMulti-day festivals, white-label venue groups, offline-capable door-staff apps.
Learn moreProduction RAG with chunking, hybrid retrieval, reranking, grounding, eval.
Learn moreMake.com, n8n, Zapier, and custom Node workers — chosen by volume.
Learn moreCalculator- and location-driven SEO surfaces with real data and SSR.
Learn more