Custom Ecommerce Development: Configure, Extend or Rebuild?
No7 Engineering Team
Growth Architecture Unit

Custom ecommerce development is worth its cost in three places: pricing rules that depend on data the platform does not own, integrations with systems such as an ERP or warehouse, and checkout logic. If a native setting or a well-built app handles the workflow without slowing the storefront, configure it instead of building it. Write code only when a platform limit blocks how you take orders or price them.
The examples below use Shopify and BigCommerce, and the same configure, extend or rebuild question comes up on other hosted platforms.
Where does custom ecommerce development deliver a real return?
Custom code is justified when it removes a platform limit in checkout rules, pricing that depends on ERP data, or warehouse and ERP synchronisation. Outside those areas it mostly adds code you have to maintain.
Custom ecommerce development is code you own (an app, an integration service or a checkout extension) that meets a business rule the platform settings cannot. Code you own has to keep up with platform changes, so spending it on commodity presentation such as carousels or blog layouts buys maintenance, not advantage.
Start with these three categories:
- Checkout rules: stopping an order that breaks a rule, such as a maximum quantity per customer or a product that cannot ship to a region.
- ERP-dependent pricing: credit limits, contract prices or payment terms held outside the platform, beyond what native B2B price lists cover.
- System synchronisation: keeping orders, stock and customer records in step with an ERP, a warehouse management system or a product information system.
When to configure native settings and vetted apps
Configure when native settings or a vetted app already model your catalogue and checkout flow. Configuration keeps you on the platform's upgrade path and costs the least to launch.
A standard retail model rarely needs code. Collection discounts, international markets and shipping profiles are admin settings on both platforms. Where your plan supports B2B, Shopify's B2B features add trade price lists without code. A reviews app or a transactional email tool solves a narrow problem with little setup.
The risk with configuration is app sprawl. When a team installs apps to avoid development, the storefront gathers overlapping script tags, leftover data and monthly fees. Two review widgets and a tracking script nobody uses can slow mobile rendering before the customer reaches checkout. Configuration is only the cheaper option while the app list stays short and audited.
For project planning across platforms, read our overview of ecommerce scoping and delivery before committing budget.
When to extend using custom apps and platform APIs
Extend when you need your own logic inside the platform but do not want to host a commerce engine. You keep the platform's checkout and hosting and change behaviour only at the points the vendor exposes.
On Shopify, Shopify Functions run your code inside checkout. They cover discount logic and cart and checkout validation, which blocks an order that breaks a rule. Delivery customisation renames, sorts or hides the delivery options on offer, and payment customisation hides or reorders payment methods. Per Shopify's API availability note, custom apps using Function APIs are limited to Shopify Plus stores. Public App Store apps that contain Functions work on all plans.
Checkout UI extensions add your own interface to checkout. On the information, shipping and payment steps they are available only to Shopify Plus stores. Extensions on the Thank you and Order status pages work on every plan except Starter. Structured data lives in metafields and metaobjects. On BigCommerce, the REST Management API lets you sync orders, inventory and customer records with outside systems without touching storefront code.
For the cost side of this layer, see our breakdown of Shopify custom app development cost, and for deployment patterns, our review of Shopify Functions in production.
The ongoing cost of extending is API upkeep. You work within rate limits and webhook retry rules. Shopify also releases a new API version every quarter and supports each stable version for at least 12 months, so budget for a scheduled upgrade rather than an emergency one.
When to rebuild, decouple, or replatform
Rebuild or decouple only when a platform limit stops the business model working. Typical cases are several brands that need one storefront the platform cannot model, or a data model the platform cannot represent.
A headless storefront such as BigCommerce Catalyst or Shopify Hydrogen lets a team build its own frontend. It can also merge regional stores behind one interface or release frontend changes apart from the backend. A multi-vendor marketplace or a product configurator can go further and need a custom backend, for example on an open-source engine such as Medusa.
The cost teams often miss is hosting. Hydrogen can deploy to Oxygen, Shopify's edge hosting, which keeps hosting off your team. A frontend you host yourself moves caching, CDN setup, session routing and zero-downtime releases onto your engineers, and a traffic spike becomes your on-call problem rather than the platform's.
If a platform move is on the table, read our guide to BigCommerce development costs in the UK before signing a multi-year contract.
A framework for choosing between configure, extend, or rebuild
Configure by default, extend when a business rule touches checkout or an integration, and rebuild only as a last resort. Price the maintenance before you write any code.
Architecture Decision Matrix
| Approach | Best For | Primary Mechanism | Maintenance Profile |
|---|---|---|---|
| Configure | Standard catalogues, native B2B price lists, fast launch | Admin settings, vetted apps | Vendor updates, no hosting |
| Extend | ERP-driven pricing rules, integrations, checkout rules | Shopify Functions, Management APIs, custom apps | Middleware upkeep, API version upgrades |
| Rebuild / Decouple | Multi-brand frontends, data models the platform cannot represent | Headless frameworks (Catalyst, Hydrogen), custom APIs | Frontend hosting unless on Oxygen, monitoring |
Test each new requirement in this order:
- Check native settings: can admin settings, metafields or built-in B2B features meet the requirement with no third-party code?
- Check vetted apps: does a reputable app solve it without adding render-blocking JavaScript to the storefront?
- Check extension points: can a Function, a checkout extension or a webhook consumer carry the logic?
- Keep integrations outside the store: put ERP and warehouse logic in a small service of its own, so checkout stays on the platform.
- Rebuild only when blocked: replatform or decouple only when the data model or checkout itself blocks revenue.
Two worked examples for pricing and integration requirements
Two common requests show how the order above plays out: one is a pricing rule, the other is an integration.
Take a wholesaler that needs quantity breaks per trade account. Discount codes handle this poorly. Shopify's B2B catalogues attach a price list and quantity rules to each company location, so the configure route needs no code where your plan supports B2B. The extend route starts only when a rule depends on ERP data, such as a credit limit. Functions cannot call outside systems by default: Shopify grants network access only to custom apps on Plus and Enterprise stores, on request. On Shopify Plus, a custom app syncs each account's limit from the ERP into a metafield. A validation Function reads it and blocks checkout when the order would exceed it. Rebuilding the storefront for wholesale pricing is not worth it.
Consider a merchant whose warehouse system accepts only fixed-width files over SFTP every two hours. The platform publishes order events as JSON webhooks over HTTPS, so something has to translate. Check first whether a marketplace export app can write the file on a schedule. If not, the extend route is a small worker on Cloudflare Workers or AWS Lambda. It consumes order webhooks, batches them and writes the file to the SFTP server. A platform migration is unnecessary because the problem sits entirely in the middleware.
| Requirement | Route | Technical Mechanism | Why |
|---|---|---|---|
| Trade account quantity breaks | Configure | B2B catalogue with price list and quantity rules (B2B-capable plan) | Native, no code to maintain |
| ERP credit limit at checkout | Extend | Custom app (Shopify Plus) syncs limit to a metafield; validation Function blocks checkout | The limit originates in the ERP |
| Legacy WMS SFTP export | Extend | Webhook consumer and SFTP worker | File format lives outside the store |
| Product reviews on the storefront | Configure | Vetted app with theme blocks | A custom review engine adds nothing customers notice |
What a scoped custom build actually contains
A scoped build has a written specification with testable acceptance criteria, staging environments, a repository you own with automated tests, and agreed maintenance terms. A vague scope is how budgets drift.
Five parts belong in every scope:
- Architecture specification: data models, data flow diagrams, webhook retry handling and API rate-limit budgets.
- Acceptance criteria: testable requirements for the normal path and the edge cases, including timeouts and invalid payloads.
- Staging and sandbox environments: development stores and middleware environments that mirror production.
- Repository ownership and CI/CD: your own Git repository with automated tests and repeatable deployments.
- Maintenance terms: who upgrades API versions, applies dependency security patches and watches uptime, and on what schedule.
Without written acceptance criteria, nobody can say when an integration is finished, and edge cases surface later as support tickets.
The short version
Custom code belongs where it protects margin or connects systems the platform cannot reach on its own. Before commissioning any work, list the apps you already run and remove the ones nobody uses, note exactly where each workflow fails, and write acceptance criteria for the fix. Then set up a development store or sandbox, map the data flows between the store and your ERP or warehouse, and agree who owns API version upgrades. That sequence usually shows whether you need a setting, an extension or a rebuild before any money is spent on code. If you would rather have this handled than scoped, that is what our ecommerce development work covers.
Frequently Asked Questions
The questions buyers and engineers ask us most about this topic.
When does custom ecommerce development make sense over standard apps?
Custom development makes sense when a business rule touches checkout, depends on ERP data such as a credit limit, or needs an integration no maintained app provides. Catalogue display, basic discounts and native B2B price lists are settings to configure, not code to build.
What is the difference between extending a platform and rebuilding headless?
Extending uses native APIs, webhooks, and extension points like Shopify Functions to run custom logic inside the hosted platform. Rebuilding headless replaces the storefront with your own frontend, such as Shopify Hydrogen or BigCommerce Catalyst. That gives more frontend control; Hydrogen can run on Shopify's Oxygen hosting, while a frontend you host yourself makes caching, CDN setup and uptime your team's job.
What are the biggest pitfalls when scoping bespoke ecommerce development?
The biggest pitfalls are vague acceptance criteria, no budget for API version upgrades (Shopify releases a new version every quarter), and custom code for commodity features that standard apps already handle. Clear specifications with explicit error handling and rate-limit budgets prevent scope and budget drift.