E-Commerce Development: Choosing the Right Approach
E-commerce development ranges from hosted platforms to fully custom builds. Here's how to choose the right approach based on your business requirements and budget.
Strategic Systems Architect & Enterprise Software Developer
The Spectrum of E-Commerce Solutions
E-commerce development is not a single problem — it is a spectrum of solutions ranging from hosted platforms where you configure and customize, to fully custom applications where you build everything from scratch. The right choice depends on your product catalog complexity, transaction volume, integration requirements, and budget. Choosing incorrectly in either direction wastes money.
At one end: hosted platforms like Shopify, BigCommerce, and Squarespace Commerce. You get a store builder, payment processing, inventory management, shipping integration, and a customer-facing storefront out of the box. Customization happens through themes, apps, and limited code modifications. This is the right choice when your primary business is selling products and you want to focus on merchandising rather than software development. Setup in days, not months. Cost in hundreds per month, not tens of thousands.
In the middle: headless commerce platforms like Shopify Hydrogen, Medusa.js, and Saleor. These provide commerce functionality (product catalog, cart, checkout, orders) as APIs, and you build a custom frontend. You get the best of both — the commerce engine is battle-tested and maintained by the platform, while the customer experience is fully custom. This suits businesses that need unique customer experiences, complex product configurations, or multi-channel delivery (web, mobile app, kiosk, marketplace).
At the other end: fully custom e-commerce built on a general-purpose framework. You build everything — product management, cart logic, checkout flow, payment integration, order processing, inventory tracking. This is rarely the right choice for selling physical products because you are rebuilding solved problems. It is the right choice for unique commerce models: subscription boxes with complex customization, B2B ordering with customer-specific pricing, digital product marketplaces, or auction-style platforms where no existing commerce engine fits the model.
Platform Selection Criteria
The decision is not about which platform is "best" — it is about which platform's constraints are acceptable for your specific business.
Catalog complexity. If you sell simple products with a few variants (size, color), any platform works. If you sell configurable products with dependent options, custom pricing rules, or products that are assembled from components, you need a platform with a flexible product model. Shopify's product model is opinionated — 100 variants per product, 3 option types. Medusa.js and custom builds impose no such limits.
Checkout customization. Shopify's checkout is excellent but heavily locked down on standard plans. If you need custom checkout steps, unique payment flows, or complex discount logic, you either need Shopify Plus (expensive) or a headless approach where you control the checkout experience end-to-end. Payment integration with Stripe gives you maximum flexibility for custom checkout flows.
Integration requirements. What systems does the store need to connect to? ERP for inventory and fulfillment? CRM for customer data? Marketing automation for email campaigns? Accounting software for financial reporting? Evaluate the platform's integration ecosystem. Shopify has thousands of apps. Custom platforms require building each integration.
Performance requirements. E-commerce conversion rates are directly tied to page speed. Every 100ms of additional load time reduces conversion by approximately 1%. Hosted platforms handle performance optimization for you but within their constraints. Headless and custom approaches give you full control over performance optimization but require you to do the work.
Budget reality. A Shopify store costs $29-299/month plus transaction fees and app costs. A headless commerce build costs $30,000-100,000+ in development plus ongoing hosting and maintenance. A fully custom build costs $50,000-200,000+ plus a development team for ongoing maintenance. The right investment level matches your revenue and margin reality.
Headless Commerce Architecture
Headless commerce has become the default recommendation for mid-to-large e-commerce businesses, and for good reason. The architecture separates the commerce engine (products, orders, payments, inventory) from the customer-facing experience (the website, mobile app, or any other channel).
The commerce engine runs as a backend service, exposing APIs for every commerce operation: browse products, add to cart, apply discounts, checkout, process payment, track order. The frontend consumes these APIs and renders a fully custom experience. You can build the frontend with any modern framework — Nuxt, Next.js, Remix, Astro — using whatever rendering strategy optimizes for your use case.
This architecture enables multi-channel commerce. The same product catalog and order system serves your website, your mobile app, your in-store kiosks, and your marketplace integrations. Content and commerce converge — your marketing pages, blog posts, and product pages can live in a single frontend application with seamless navigation between content and shopping experiences.
The data flow for a headless checkout typically works like this: the frontend creates a cart session via the commerce API, adds line items as the customer shops, applies discounts or promotions via API calls, collects shipping information and calculates rates, then hands off to a payment processor (typically Stripe or the commerce platform's payment system) for secure payment capture. On successful payment, the commerce engine creates an order and triggers fulfillment.
For SEO, headless commerce requires intentional work. Product pages need proper structured data (Product schema with price, availability, reviews), canonical URLs, and server-side rendering for search engine visibility. A technical SEO audit should be part of every headless commerce launch.
Critical Technical Considerations
Several technical decisions in e-commerce have outsized impact on business outcomes.
Search and filtering. Product search and faceted filtering (by price range, category, attributes) must be fast — under 200ms response time. Database queries with multiple filter conditions on large catalogs are slow. Dedicated search services like Algolia, Meilisearch, or Elasticsearch provide the speed that SQL queries cannot match for this use case.
Cart and session management. Abandoned cart recovery is a significant revenue stream for e-commerce businesses. Your cart must persist across sessions — if a customer adds items, closes the browser, and returns the next day, the cart should still be there. Store cart state server-side, tied to the customer's account or a persistent anonymous session. Client-side-only cart storage (localStorage) does not survive browser cache clears.
Inventory management. Overselling — accepting orders for products that are out of stock — creates expensive customer service problems. Inventory decrements must be atomic and happen at checkout, not at cart addition. If two customers have the same item in their carts and only one is in stock, the first to complete checkout gets the item, and the second receives an out-of-stock notification. This requires database-level concurrency control, not application-level checks.
Payment security. Never handle raw credit card data. Use Stripe Elements, Shopify's checkout, or similar tokenized payment flows where card numbers never touch your server. This keeps you out of PCI DSS scope and dramatically reduces security liability. Implement proper webhook handling for payment confirmations — never rely solely on client-side payment confirmation, as it can be spoofed.
Mobile experience. Mobile commerce accounts for over 70% of e-commerce traffic. Your product pages, cart, and checkout must work flawlessly on mobile devices. Touch targets must be at least 44px. Form inputs must use appropriate input types (tel for phone, email for email) to trigger the correct mobile keyboard. Test the complete purchase flow on real mobile devices, not just browser emulation.