Ecommerce Web Application Development

by Masoud Golchin
Engineer reviewing an ecommerce web application dashboard and checkout on a desktop monitor

Most ecommerce web applications do not crash on launch day. They generally crash three months later, after a database lookup that used to take one second now takes twenty. An order can also go to payment twice because a webhook was retried without an idempotency key. The marketing team can also push a promotion the storefront cannot render in time for a campaign. In 2024, global retail ecommerce was predicted to reach $6.334 trillion, or 20.1% of all retail sales, based on eMarketer’s e-commerce forecast. With that much ecommerce volume, developing ecommerce web applications can no longer be treated like developing a website. It’s developing a complicated system of revenue that needs to function effectively and consistently with actual usage, actual edge cases, and actual people deciding things within the system.

This guide is intended for use by technical leads, product owners, and operators who need to scope a system that will support the business for the next one to two years. It provides information on system architecture, tradeoffs made by ecommerce platforms, and the steps needed to develop a system that can grow instead of needing to be completely rebuilt.

What Ecommerce Web Application Development Actually Involves

A brochure site is a document. An ecommerce web application is a distributed system with a shopfront stuck to the front of it. When a shopper clicks “Buy,” at least four things have to align: the product exists at that price, the inventory count is accurate, the payment has gone through, and the order got into the system that will fulfill it. Every one of those steps can fail independently, and that failure has an associated cost to the business.

Practitioners posting on X and in Stack Overflow threads keep coming back to the same point: most modern ecommerce back ends are event-driven systems, not CRUD systems. An order is processed, a payment is made, the inventory is decremented, and a fulfillment is initiated, and each of those needs idempotency keys, retries with backoff, and a dead-letter queue for events that will not process. Ignoring that “we are only doing a hundred orders a day” is how stores get charged multiple times when Stripe retries a webhook.

Event driven ecommerce architecture diagram showing order payment inventory and notification flow
This detailed flow diagram clearly shows how an e-commerce order is a chain of interconnected events, with explicit revert paths illustrating that each step, such as updating inventory or processing payment, can fail independently. · Source: medium.com

Even the shopfront application (which is the visible part of the application) has seen increased demands. Google has introduced Core Web Vitals, which set various guidelines for ecommerce sites. These guidelines affect the search engine rankings and actual sales conversions for web pages.

  • LCP under 2.5 seconds is the main goal in ecommerce so the main product image and price can display before the shopper loses focus.
  • INP under 200 milliseconds enables instant responses to user interactions such as product filter selection, variant selection, and the “Add to Cart” button.
  • CLS under 0.1 keeps a late-loading trust badge or shipping estimator from pushing the checkout button almost out of sight for the shopper.

These aren’t vanity metrics. In a well-known story among practitioners, a large national parts distributor underwent a migration of their system and met every functional spec, but a tool to look up inventory once took at most a second and now took 20 to 30. Order velocity collapsed within a week and the team reverted the system. The lesson that was learned from similar situations is that performance is a spec, not an aspirational goal. If it is not load tested before launch with a substantial volume of data, it will not be able to handle the load once it is launched.

The Platform Decision: Shopify, WooCommerce, or Custom

Every platform pitch you receive is probably from someone who relies on your decision. It would be more practical to approach the decision by listing the limitations your business has and picking the smallest system that works with those limitations.

AspectShopifyWooCommerceCustom / Headless
Time to first orderWeeksWeeks with a WordPress teamMonths
Product modelCapped at 100 variants per productEffectively unlimited, hardware-boundWhatever you design
Checkout controlConstrained outside PlusFull control, plugin quality variesFull control, you own every failure mode
Ongoing ownershipShopify handles infrastructureYour team owns hosting and plugin updatesYour team owns everything
Best fitStandard catalogs, fast launch, DTCContent-heavy stores, existing WordPress footprintCustom rules, multi-brand, unusual checkout, marketplaces

The 100 variant Shopify limit is documented in this Shopify and WooCommerce comparison, and is the unspoken reason many Shopify evaluations end. If you sell a product in twelve sizes across four materials in three colors, you are already at the limit. WooCommerce or a custom solution is the correct choice, and it is better to find this out in week one as opposed to month six. Our Shopify vs WordPress for ecommerce guide has a more in depth discussion of the pros and cons of each solution.

When headless earns its complexity

Headless commerce allows for the separation of the customer-facing frontend from the commerce backend. This approach is especially useful in larger catalogs and multi-vendor setups. A detailed example of this approach can be found in the headless commerce case study. Specifically, a mobile sale page load time decreased from 5.2 to 1.8 seconds, and mobile conversion increased 34 percent, after the specialty retailer separated its Magento connection from its React storefront and deployed edge caching. The separation cost $380K and took sixteen weeks to complete. Both the cost and the time should be considered. The results didn’t come from simply going “headless” — they came from careful engineering around hydration, deferred scripts, and a checkout flow that avoided adding new delays.

Headless is worth its complexity when:

  • Content and commerce teams are required to publish independently at different frequencies.
  • The current platform is a constriction on either performance or merchandising.
  • You have either an internal or a partner resource that can manage more integrations, more performance control, and more release pipeline management.
  • There is a specific business limitation, not a general feeling that the existing stack is outdated.

Our write-ups on headless CMS choices for ecommerce and our write-up on Next.js ecommerce architecture trade-offs provide more detail and perspective on how these builds produce a return on investment.

A Reference Stack, and Why It Matters Less Than You Think

The conversation around technology has narrowed and matured, particularly around ecommerce. On the frontend, most serious ecommerce web applications are built on some combination of Next.js or React with TypeScript, styled with Tailwind CSS, using a component library like shadcn/ui, and React Query for state management. On the backend, popular choices include Node, Django, or Laravel, coupled with PostgreSQL for the primary database and Redis for caching coupled with Kafka or SQS for asynchronous messages. Observability is built on top of this: structured logs, metrics collected in Prometheus and displayed in Grafana, and order fulfillment traces.

Core Web Vitals dashboard showing LCP INP and CLS metrics for an ecommerce site
This Core Web Vitals assessment clearly quantifies LCP, INP, and CLS, demonstrating that web performance is a precise specification, not just an aspiration. · Source: www.debugbear.com

None of that decides whether the store works. What decides is whether the team applies the boring parts consistently:

  • Postgres discipline, which includes indexes, query plans, partitioning, and zero-downtime migrations. Ecommerce workloads are query-heavy and can be uneven. A missing index on an order status join can turn a quick lookup into a task that takes thirty seconds.
  • Idempotency has to be implemented everywhere money moves, including payment webhooks and order creation as well as inventory decrements. Each of those operations must have a unique key in order to avoid the unnecessary creation of a second order and a second shipment.
  • API hygiene at scale is critical too, including cursor pagination, transparently limiting the field results, early results filtering, and data compression.
  • Frameworks are cheap, but making a product page render fast on low-end devices is not.

There are not a lot of big brand names, but that is the point. The stacks merged, but the execution did not.

The Development Stages Where Projects Are Won or Lost

A good process will allow you to see the important decisions before the code irreversibly sets those decisions. The order of the stages below is more or less a standard, but the questions you ask during these stages are what really differentiate a successful launch from a failure that is bound to end in a redo.

Discovery

Bring something tangible. This could be a product spreadsheet. Bring a sample of last month’s orders. Bring the promotion rules or the shipping exceptions that make your support inbox overflow with emails. Bring the weird returns that confuse your support staff. Generic feature lists bring generic estimates. Bringing real data brings an actual chance for an accurate estimate. After discovery, you should have a feature list that is tied to defined business goals along with a risk register and a system map showing which application owns what data.

Design

Wireframes for the shopping path first with the other details coming second. The deliverable must include the sad paths. This means you need to show the design for the paths for cases like out-of-stocks, declined cards, expired discounts, interrupted checkouts, and fulfilled but unsatisfactory purchases. A checkout that only works in the happy path is not a design.

Engineering

An MVP requires a compromise. Select one payment method, one shipping option, one merchandising decision, and protect the buying path. Everything else can wait. In the WooCommerce build for NudFud, the difficult task was not the checkout. It was convincing the product, certification, and content structures to enable consumers to evaluate variants prior to purchase. That’s the kind of scoping call MVP engineering exists to make.

Testing

Test the corner cases, not the obvious success path. Declining payments, double submissions, race conditions on inventory, expired/partially processed webhook calls. A Stack Overflow thread on a Web application stress test (257 upvotes, thirty answers) exists because most development teams significantly underestimate this.

Launch and post-launch

Launch is not an event, it is a plan. Deployment order, data verification, analytics checks, a support owner on call, and a documented rollback. Once launched, the store will provide an indication on how well it is operating. Search queries with no results, failed steps of the checkout process, and support requests that repeat are worth your attention more than the roadmap you created a month ago.

MVP Cost, Timeline, and What Moves Them

Founders want a single price and a single delivery date, but ecommerce projects rarely deliver either with certainty. A store with a standard catalog and a hosted checkout carries a much different risk profile than one juggling subscriptions, custom pricing, marketplace logic, and several back-office integrations. As a planning range:

MVP approachTypical cost rangeTypical timeline
Shopify or WooCommerce MVP$10,000 – $50,0004 – 12 weeks
Custom or headless MVP$50,000 – $150,000+3 – 6 months

Each of the aspects that contribute to the final cost — scope, migration volume, integration quality, content readiness, and how quickly your team makes decisions — can increase or decrease final costs by a factor of two. Clean product data and a single decision-maker can allow a team to make more progress on a project, whereas a team still establishing the process of order fulfillment may face more complex issues. For more breakdowns of specific features and platforms, see our final spreadsheet on the cost of developing an ecommerce website.

Signals that justify more investment

Scaling decisions should follow the evidence from your own store, not a competitor’s press release. The signals worth paying attention to are usually operational:

  • When you promote your store and customer traffic spikes, errors may occur during the checkout process.
  • Inventory updates arrive late enough that the storefront lies about stock.
  • Search doesn’t understand the terms customers actually type in.
  • Your store provides services to customers in new locations; however, your platform requires custom coding for new pricing, taxes, and shipping rules.
  • Content releases and commerce releases end up blocking each other.
  • The team spends more time fixing integrations than improving the customer experience.

If two or three of these issues are present on a continuous basis, then it is time to consider fully rebuilding your technology platform. For more detail on our process for rebuilding technology platforms, check out our playbook on ecommerce rebuilds.

The Failure Patterns That Cost the Most

Most projects that fail do so for the same reason: a set of repeatable process failures that are more often than not the result of operational issues rather than technical issues.

One popular example concerned a senior engineer whose two direct-to-main commits (without review) broke the deploy pipeline. The failure wasn’t a lack of skill — it was the missing review, staging, and CI gates that should have caught it. Another example is a contractor who takes two months to build something, and then claims “the site cannot be made responsive on large screens without breaking.” This is not a technical response. It is a communications failure, which most likely is a result of incomplete scope and the lack of acceptance criteria for different types of devices.

The patterns worth designing against:

  • Backends built as CRUD. These lack idempotency, retries, dead-letter queues. Duplicated orders and silent failures occur.
  • Migrations without rollbacks. Teams rebuilt everything after a mistake in export caused the previous state to be permanently lost.
  • Direct-to-main deploys. Deploy breaks without a PR review, staging, or a gate. Revenue is lost during business hours.
  • Performance treated as polish. Load testing is skipped, regressions in latency occur, and are found in production.
  • Ignoring operations. Sales usually experiences performance issues before Engineering does. This was the case in the parts-distributor example, and the platform was reverted.
  • Fragmented data ownership. No decisions have been made regarding which system is the source of truth for products, inventory, order, customer data, so these all disagree at some point.

Live chat, promotions, and personalization services can only be layered on top of a strong foundation. If a shopper needs assistance during checkout, live chat should be a core component of the service, not a plugin.

How Refact Approaches Ecommerce Web Application Development

We have built over 200 other projects in the ecommerce, publishing, SaaS, and MVP spaces. Our ecommerce work has shown that the available platform is rarely our biggest concern. Our biggest concern is the story the store needs to tell in the first 90 days and which restrictions will come into play on day 91.

Two examples from our work demonstrate our point. For NudFud, a Toronto-based plant-based snack brand, the hard part was the product story: certifications, ingredients, and variant comparisons all had to fit inside the buying path without slowing it down. That’s a content-modeling problem before it’s an engineering one. On the Shopify store for Broya Living, another startup specializing in direct-to-consumer, bone broth subscriptions, the difficulty was as much about the path as it was about the platform. Reducing friction in browsing, subscribing to, and checking out of the store was the main focus of the work. Different scenarios, different stores, same focus.

Our approach is “Clarity before code”: constrain scope and build the smallest system. We stay long enough to see the store through its first real season of use.

What to Ask Before You Sign Anything

Upon reviewing a proposal, you need answers to the following questions.

  1. What has to be demonstrated in the first release? Describe the customer journey from product discovery to an ordered and delivered product. Everything not on this journey can be done later.
  2. What platform aligns with the catalog? Assess the variants, subscriptions, pricing rules, tax logic, and the team’s capability in that order.
  3. Who owns each integration? Name the source of truth for inventory, orders, customers, payments, and shipping. If multiple systems claim the same data, you have a bug that will happen for certain.
  4. What happens when something breaks? There must be documented handling for payment declines, missing inventory, webhooks that time out, and deployment interruptions.
  5. What will you use to determine readiness? Agree on checkout, performance, accessibility, analytics, and security criteria before the start of development.
  6. Who owns the store post-launch? Clarify ownership of response and updates along with the cadence of updates.

Once the store is live, base your decisions on evidence rather than opinion. Using a tool such as Querio for data warehouse insights can help a team analyze LTV, CAC, and cohort data without having to wait for an analyst to create a report each time.

None of this is glamorous. Idempotency keys, PR reviews, load tests, and rollback plans are the less glamorous aspects of building an ecommerce web application. They are also the aspects that will determine if the store you launch will be the store you are still running in eighteen months. If you are having trouble figuring out which of these decisions to make before you embark on a year-long build, that early scoping work is exactly what Refact’s ecommerce development team is primed to do.

Written by
Masoud Golchin
Masoud Golchin

Masoud Golchin is a backend developer at Refact, working on server-side systems, internal tooling, and infrastructure. He builds and maintains the services that support both client projects and the team’s day-to-day development workflow. His work includes backend logic, developer tools, system reliability, and the technical foundations that allow products to scale and operate consistently. At Refact, Masoud focuses on creating practical engineering solutions that help the team move faster while keeping systems organized, maintainable, and dependable.

More from Masoud Golchin
Share

FAQS

Commonly asked questions

Get in touch

What is ecommerce web application development?

It is the design and engineering of a web-based system that handles the full commerce workflow: product catalogue, storefront, cart, checkout, payments, inventory, orders, customer accounts, and the integrations that connect them to fulfilment, marketing, and finance. It is closer to building a distributed system than a website, because each step (payment, inventory, notification) can fail independently and needs its own error handling.

How much does an ecommerce web application MVP cost?

A Shopify or WooCommerce MVP typically lands between $10,000 and $50,000 over four to twelve weeks. A custom or headless MVP typically runs $50,000 to $150,000 or more over three to six months. The final number is driven by catalogue complexity, integrations, migration volume, and how quickly the team makes decisions, not by the platform label.

What are the biggest mistakes in ecommerce web application development?

Treating the backend as a CRUD app without idempotency or retries, skipping load testing until production, deploying without PR review or staging, running migrations without a rollback plan, and letting more than one system claim ownership of the same data. Most of these are process failures rather than technical ones, and they cost more than any framework choice.

Should I use Shopify, WooCommerce, or build custom?

Start with the catalogue and the checkout. Shopify fits standard catalogues and fast launches, but caps variants at 100 per product and constrains checkout customization outside Shopify Plus. WooCommerce fits content-heavy stores and complex variant models on a WordPress footprint. A custom or headless build is worth it when you have unusual pricing, marketplace logic, or a business constraint the platform genuinely cannot express.

When does headless commerce actually pay off?

Headless pays off when content and commerce teams need to publish on different cadences, when the current platform is the measurable bottleneck on performance or merchandising, and when you have the capacity to own more integrations and monitoring. A documented migration to a React storefront on Magento moved mobile page load from 5.2s to 1.8s and lifted mobile conversion 34%, but that result came from disciplined engineering, not from the label.

Related Insights

More on Ecommerce

See all Ecommerce articles

Shopify vs WordPress for Ecommerce: A Real Guide

You’re looking at two tabs, one with Shopify and one with WordPress. Shopify seems easier with its promise of a store without the need to hire a developer, but you’ve read WordPress is free. What’s really at stake is whether either platform will hold up cheaply and dependably a year and a half from now, […]

Shopify Speed Optimization: A Real Playbook

Your Shopify homepage achieves a score of 95 in Lighthouse. Your product page fails to close the sale. Treating Shopify speed optimization as a score project is the primary issue that leads to this disconnect. Real customers arrive at product URLs from Google Shopping, paid social, or email. Each of these pages has distinct images, […]

Hiring Shopify Plus Developers in 2026

A public company spent roughly six months and approximately one million dollars developing a single Shopify store with finance back-end integration. Another team placed nine mostly senior engineers on a single shop migration and took almost a year to do it. Neither of these projects was doomed because of Shopify. Both of these projects failed […]