Skip to content

Build & Replatform · Ecommerce development

Custom product configurator development and CPQ.

A custom product configurator lets a buyer build a product only from options that work together, see the price those choices produce, then add it to the cart or request a quote. We build configurators and the CPQ flow behind them on Magento and Hyvä, Shopify and custom stacks, with rules kept as data and configured orders sent straight to the ERP.

Last reviewed

What a custom product configurator does

Product options let a buyer choose. A configurator has opinions: it decides what can be chosen, what the result costs and where the finished build goes next. That comes down to four jobs:

  1. Only valid builds. Each choice narrows the next, so a buyer can't order, and a rep can't quote, a combination you can't make.
  2. A live price. The price follows the build as it changes: every option, size and quantity, at the buyer's own prices.
  3. Cart or quote. A build with a final price goes in the cart. One that needs a rep, an approval or a freight quote becomes a quote, with the build attached.
  4. Into the ERP. The order reaches the ERP as lines it can make and ship, so nobody re-keys it.

That's configure to order: the product gets made after the order, from exactly what the buyer configured. Most platforms handle part of the first two jobs natively and stop there. The sections below show where each one stops, quoting the vendor's own documentation.

Configure to order, in four jobs

Four jobs in order: only valid builds, a live price, cart or quote, then into the ERP.4 steps in order. 1, Only valid builds: Each choice narrows the next, so nobody can order what you can't make. 2, A live price: Follows every option, size and quantity, at the buyer's own prices. 3, Cart or quote: A final price goes in the cart; a build that needs a rep becomes a quote. 4, Into the ERP: Lines it can make and ship, so nobody re-keys the order. A bracket over steps 1 and 2: Most platforms handle part of these two natively, then stop. Step 4 is highlighted.1Only validbuildsEach choicenarrows thenext, sonobody canorder what youcan't make2A live priceFollows everyoption, sizeand quantity, atthe buyer'sown prices3Cart or quoteA final pricegoes in thecart; a buildthat needs arep becomes aquote4Into the ERPLines it canmake and ship,so nobodyre-keys theorderMost platforms handle part of these twonatively, then stopFour jobs in order: only valid builds, a live price, cart or quote, then into the ERP.4 steps in order. 1, Only valid builds: Each choice narrows the next, so nobody can order what you can't make. 2, A live price: Follows every option, size and quantity, at the buyer's own prices. 3, Cart or quote: A final price goes in the cart; a build that needs a rep becomes a quote. 4, Into the ERP: Lines it can make and ship, so nobody re-keys the order. A bracket over steps 1 and 2: Most platforms handle part of these two natively, then stop. Step 4 is highlighted.Most platforms handle part of these twonatively, then stop1Only valid buildsEach choice narrows the next, sonobody can order what you can'tmake2A live priceFollows every option, size andquantity, at the buyer's own prices3Cart or quoteA final price goes in the cart; a buildthat needs a rep becomes a quote4Into the ERPLines it can make and ship, so nobodyre-keys the order
Four jobs in order, and most platforms handle part of the first two natively and stop there.

Custom configurator, extension or SaaS app: how to choose

Do you need custom at all? Often not, and we'll tell you. Buy first: an app or extension that covers your rules is usually cheaper to own than code you have to maintain. Custom product configurator development earns its cost when the rules or the price are the business. Read the table by rows, mark the ones your product can't live without, and stop at the first column that covers all of them.

Buy first: stop at the first route that covers your rules

A ladder: NetSuite CPQ if reps configure there, then a SaaS app, then a platform extension, and last a custom rules engine.Question 1: Is your ERP NetSuite, with reps who already configure there? Yes: NetSuite CPQ first. It launches from SuiteCommerce product pages; any other storefront makes it integration work. No: go to question 2. Question 2: Does a SaaS configurator or app cover your rules? Few options with fixed or percentage prices, dependencies an admin can set, no rule that needs the rest of the build. Yes: A SaaS configurator or app. Hosted by its vendor and embedded in your store. No: go to question 3. Question 3: Does a platform extension cover them? Options that depend on other options; some extensions price from dimensions the buyer enters. Yes: A platform extension. A module in your platform that needs a compatible release for every upgrade. No: A custom rules engine. Rules span components, the price is a formula, quotes and ERP orders carry the full build, and rule changes need review and tests.1Is your ERP NetSuite,with reps who alreadyconfigure there?NetSuite CPQ firstIt launches from SuiteCommerceproduct pages; any other storefrontmakes it integration workYESNO2Does a SaaSconfigurator or appcover your rules?Few options with fixed orpercentage prices,dependencies an admin can set,no rule that needs the rest of thebuildA SaaS configurator or appHosted by its vendor and embedded inyour storeYESNO3Does a platformextension cover them?Options that depend on otheroptions; some extensions pricefrom dimensions the buyerentersA platform extensionA module in your platform that needs acompatible release for every upgradeYESNOA custom rules engineRules span components, theprice is a formula, quotes andERP orders carry the full build,and rule changes need reviewand testsA ladder: NetSuite CPQ if reps configure there, then a SaaS app, then a platform extension, and last a custom rules engine.Question 1: Is your ERP NetSuite, with reps who already configure there? Yes: NetSuite CPQ first. It launches from SuiteCommerce product pages; any other storefront makes it integration work. No: go to question 2. Question 2: Does a SaaS configurator or app cover your rules? Few options with fixed or percentage prices, dependencies an admin can set, no rule that needs the rest of the build. Yes: A SaaS configurator or app. Hosted by its vendor and embedded in your store. No: go to question 3. Question 3: Does a platform extension cover them? Options that depend on other options; some extensions price from dimensions the buyer enters. Yes: A platform extension. A module in your platform that needs a compatible release for every upgrade. No: A custom rules engine. Rules span components, the price is a formula, quotes and ERP orders carry the full build, and rule changes need review and tests.1Is your ERP NetSuite, with repswho already configure there?YESNetSuite CPQ firstNO2Does a SaaS configurator or appcover your rules?Few options with fixed or percentageprices, dependencies an admin canset, no rule that needs the rest of thebuildYESA SaaS configurator orappNO3Does a platform extension coverthem?Options that depend on other options;some extensions price fromdimensions the buyer entersYESA platform extensionNOA custom rules engine
An app or extension that covers your rules is usually cheaper to own than code you maintain, so custom comes last.
SaaS app, extension or custom rules engine, row by row · As of
FeatureSaaS configurator or appPlatform extensionCustom rules engine
RulesWhat the vendor's rule editor can express. Try your three hardest rules in the trial.What the extension's admin screens can express, such as options that depend on other options.Any rule you can write down, across products and components.
PricingThe vendor's price model, charged through your platform's cart. Ask how a formula price reaches checkout.Per-option add-ons; some extensions calculate from dimensions the buyer enters.Formulas, minimums, rounding, quantity breaks and contract prices, re-checked on the server.
QuotesOnly if the vendor offers them. Check that a quote carries the whole build.Your platform's quotes or a quote extension, if the options survive the trip.A quote with the configuration attached, priced the way your reps already work.
ERP hand-offWhatever its export or connector sends. Ask what lands on the sales order.The platform's order line: options as text, plus Magento's option-SKU suffix or a SKU the extension builds. 1A generated SKU or bill of materials, and order lines the ERP can build from.
Rule ownershipThe vendor's platform. Ask how you'd export the rules if you left.Your database, in the extension's format.Yours: a rules file in your repository, versioned and tested.
UpkeepA subscription, on the vendor's roadmap.A compatible release for every platform upgrade, and a Hyvä compatibility module if you run Hyvä. 3Code you own; its tests keep each change cheap to verify.

Our reading of each route, not one vendor's feature list, so test any product against your own three hardest rules. A SaaS configurator or app is hosted by its vendor and embedded in your store; an extension is a module installed in your platform; a custom rules engine is code and rule data written for your catalog. The extension cells cite Adobe and Hyvä; the other platform limits are in the sections below, each with its source.

An app or extension is the right buy when:

  • Options are few, and each carries its own fixed or percentage price.
  • An admin can set up the dependencies: this option appears only when that one is chosen.
  • No rule needs to know what else is in the build or the cart.

Custom wins when:

  • Rules span components: this bracket fits these three shelving uprights and nothing else.
  • The price is a formula: area times a rate, with minimums, rounding and contract prices.
  • Quotes and ERP orders have to carry the full build without re-keying.
  • Rules change often, and each change should be reviewed and tested before it ships.

One more check before anything custom. If your ERP is NetSuite and your reps already configure there, NetSuite has its own. As of October 27, 2026, NetSuite's CPQ overview says its CPQ Configurator "lets users configure complex items according to your business logic and add these items to transactions," and its SuiteCommerce Integration launches that configurator from a SuiteCommerce product page. On any other storefront, connecting to it is integration work, so weigh that against keeping the rules in the store. Ask that question before you pay anyone to build a configurator. Us included.

Complex product configurators need rules that stay maintainable

Why do configurators rot? Rules go in one exception at a time: this color doesn't come in that size, except for one account, except when it ships from the second warehouse. The exceptions end up scattered across templates, admin screens and JavaScript, so every new option means hunting for the rules it touches, and eventually nobody adds options at all.

A complex product configurator stays maintainable when its rules are data, not code:

  • One rules file. Options, values and constraints live in JSON: requires, excludes, allowed ranges, defaults and prices. Each constraint is written once.
  • One small engine. The same evaluator runs in the browser, to offer only valid choices, and on the server, to re-check every build at add to cart and at quote. A price calculated in the browser is never trusted on its own.
  • Tests, like code. Each rule carries cases: builds that must pass, builds that must fail, prices that must match. A change that breaks one doesn't ship.
  • Versions. Rule changes go through review, and every order records the rules version that priced it, so last quarter's quote can be honored or re-priced on purpose.

Rules as data: one file, one engine, two checks

One rules file feeds one engine that runs in the browser and again on the server, with tests on the rules and the engine.3 layers, top to bottom. 1, One rules file: Options, values and constraints in JSON, each constraint written once (Requires, Excludes, Allowed ranges, Defaults and Prices). 2, One small engine: The same evaluator, in two places. 3, split in 2: In the browser, Offers only valid choices; On the server, Re-checks every build at add to cart and at quote. Each layer feeds the one below it. Across layers 1 to 2: Tests, like code: builds that must pass, builds that must fail, prices that must match; a change that breaks one doesn't ship. Every order records the rules version that priced it.One rules fileOptions, values and constraints in JSON, each constraintwritten onceRequiresExcludesAllowed rangesDefaultsPricesOne small engineThe same evaluator, in two placesIn the browserOffers only valid choicesOn the serverRe-checks every build atadd to cart and at quoteTests, like code:builds that must pass,builds that must fail,prices that mustmatch; a change thatbreaks one doesn'tshipEvery order records the rules version that priced it.One rules file feeds one engine that runs in the browser and again on the server, with tests on the rules and the engine.3 layers, top to bottom. 1, One rules file: Options, values and constraints in JSON, each constraint written once (Requires, Excludes, Allowed ranges, Defaults and Prices). 2, One small engine: The same evaluator, in two places. 3, split in 2: In the browser, Offers only valid choices; On the server, Re-checks every build at add to cart and at quote. Each layer feeds the one below it. Across layers 1 to 2: Tests, like code: builds that must pass, builds that must fail, prices that must match; a change that breaks one doesn't ship. Every order records the rules version that priced it.Tests, like code: builds that must pass,builds that must fail, prices that mustmatch; a change that breaks one doesn'tshipOne rules fileOptions, values and constraints inJSON, each constraint written onceRequiresExcludesAllowed rangesDefaultsPricesOne small engineThe same evaluator, in two placesIn the browserOffers only valid choicesOn the serverRe-checks every build at add tocart and at quoteEvery order records the rules versionthat priced it.
The same rules run twice, in the browser and on the server, so a browser price is never trusted on its own.

Proof: Sprawling hand-maintained configurator rule sets replaced by a small declarative rules engine.

Option, dimensional and quantity-break pricing

Can the price follow the build? Yes, once you know which pricing models you're running. Most configurators mix four:

  • Per-option add-ons. A finish adds a fixed amount or a percentage of the base price.
  • Price by dimensions. Width times height times a rate, or length times a rate per foot, with a minimum charge and rounding to the increment you actually cut.
  • Quantity breaks. The unit price drops at set quantities, sometimes counted across the whole build rather than one SKU.
  • Customer-group and contract prices. The same build costs a trade account less, at the price the ERP holds.
Warning

Magento catalog sales skip fixed-price options

As of October 27, 2026, Adobe's customizable options page says it plainly: "A catalog price rule discount is not applied to the fixed price customizable options." Run a 20 percent catalog sale and the base price drops while every fixed-price option keeps its full price. A percentage-priced option follows the sale, because Magento works it out from the discounted price. Cart price rules work the other way: an option can't trigger one, but once something else does, Adobe says the discount applies to "the cart contents, which includes the markup for the customizable option."

Magento's native custom options cover the first model and stop: because the options "are based on variations of a single SKU, they cannot be used to manage stock or as the basis of price rule conditions." That's why a Magento price calculator usually outgrows them: area pricing, minimums and rounding need an extension that calculates from entered dimensions, or a pricing engine of your own.

Cart or quote: CPQ inside the storefront

CPQ stands for configure, price, quote. Inside a store it comes down to one decision per build: can the price stand on its own?

  • Yes: the cart. Every option, size and quantity has a rule-based price, the checkout can calculate shipping, and nobody has to approve anything. The buyer pays, and the order goes to the ERP.
  • No: a quote. The build needs a rep's price, an approval, an engineering check or a freight quote. The buyer submits the configuration, a rep prices it, and the accepted quote becomes the order.

Many stores need both, split by rule: standard builds check out, and anything past a set size or quantity, or with a non-standard option, routes to a quote.

Cart or quote, one build at a time

A decision: a build whose price stands on its own goes to the cart; one that needs a person becomes a quote.Can the price stand on its own? Every option, size and quantity has a rule-based price, checkout can calculate shipping, and nobody has to approve anything. Yes: The cart. The buyer pays, and the order goes to the ERP. No: A quote. A rep's price, an approval, an engineering check or a freight quote: a rep prices the build, and the accepted quote becomes the order. Note: Many stores split by rule: past a set size or quantity, or with a non-standard option, a build routes to a quote.Can the price stand on itsown?Every option, size and quantityhas a rule-based price,checkout can calculateshipping, and nobody has toapprove anythingThe cartThe buyer pays, and the order goes tothe ERPYESNOA quoteA rep's price, an approval, anengineering check or a freightquote: a rep prices the build,and the accepted quotebecomes the orderMany stores split by rule: past a set size or quantity, or with a non-standard option, a buildroutes to a quote.A decision: a build whose price stands on its own goes to the cart; one that needs a person becomes a quote.Can the price stand on its own? Every option, size and quantity has a rule-based price, checkout can calculate shipping, and nobody has to approve anything. Yes: The cart. The buyer pays, and the order goes to the ERP. No: A quote. A rep's price, an approval, an engineering check or a freight quote: a rep prices the build, and the accepted quote becomes the order. Note: Many stores split by rule: past a set size or quantity, or with a non-standard option, a build routes to a quote.Can the price stand on its own?Every option, size and quantity has arule-based price, checkout can calculateshipping, and nobody has to approveanythingYESThe cartThe buyer pays, and the ordergoes to the ERPNOA quoteA rep's price, an approval, anengineering check or a freight quote: arep prices the build, and the acceptedquote becomes the orderMany stores split by rule: past a set sizeor quantity, or with a non-standardoption, a build routes to a quote.
One decision per build: a price that stands on its own checks out, and anything that needs a person becomes a quote.

Adobe Commerce B2B quotes natively. Magento Open Source doesn't: an extension or custom module adds quotes there. As of October 27, 2026, Adobe's Negotiable Quotes page says buyers "submit the quote as a request to negotiate the price from the shopping cart," a sales rep "can create a quote from the Admin on behalf of a specific company buyer," and after acceptance "additional discounts cannot be added to the negotiated quote" and "shipping options are locked on checkout." Company accounts and B2B quotes have to be switched on. Natively, the buyer chooses to ask for a quote. Sending a build to a quote by rule is custom work on either edition. For other platforms, see the quotes and approvals row in our B2B ecommerce capability matrix.

Whatever the platform, the quote carries the whole configuration, so the rep negotiates price, not specs, and the accepted quote reaches the ERP without re-keying.

Configured orders straight into the ERP

Does someone re-key every custom order? Not if the build arrives in a shape the ERP can make. An ERP product configurator sends it one of two ways, and we pick the one your production already reads:

  • A sales-order line that carries the build. The base item, with every choice in its own field. In NetSuite those are transaction line fields, which "appear in the sales order, item fulfillment, item receipt, subscription, and invoice records as columns in the item line."
  • A generated item with its bill of materials. The build becomes its own SKU: an assembly item with a bill of materials that "lists the quantities of raw materials, assemblies, sub-components, and parts you need to manufacture a product." Build against NetSuite's Advanced Bill of Materials: NetSuite says bills of materials embedded in an assembly item "will no longer be supported" from 2023.1.

The store reads component stock and lead times back over NetSuite's REST web services and SuiteQL, and works out the ship date from them. One Magento catch on the way out: Adobe's option SKU is "a suffix that is added to the product SKU," so an order line can arrive as a combined SKU the ERP has never seen. We map it, or replace it.

The hand-off: two shapes, one read-back

The store sends the build to the ERP as a sales-order line or a generated assembly item; stock and lead times come back.Which way each record syncs between Store and ERP (NetSuite, or any ERP with an API). Store to ERP: The configured order, as a sales-order line. Every choice in its own transaction line field. Store to ERP: Or as a generated assembly item. Its own SKU, with a bill of materials built against Advanced Bill of Materials. ERP to Store: Component stock and lead times. Read back over REST web services and SuiteQL, to work out the ship date. On Magento, the option SKU is a suffix on the product SKU, so a line can arrive as a SKU the ERP has never seen: we map it, or replace it.StoreERPERP: NetSuite, or any ERP with an API.The configured order, as a sales-order lineEvery choice in its own transaction line fieldOr as a generated assembly itemIts own SKU, with a bill of materials built againstAdvanced Bill of MaterialsComponent stock and lead timesRead back over REST web services and SuiteQL, towork out the ship dateOn Magento, the option SKU is a suffix on the product SKU, so a line can arrive as a SKUthe ERP has never seen: we map it, or replace it.The store sends the build to the ERP as a sales-order line or a generated assembly item; stock and lead times come back.Which way each record syncs between Store and ERP (NetSuite, or any ERP with an API). Store to ERP: The configured order, as a sales-order line. Every choice in its own transaction line field. Store to ERP: Or as a generated assembly item. Its own SKU, with a bill of materials built against Advanced Bill of Materials. ERP to Store: Component stock and lead times. Read back over REST web services and SuiteQL, to work out the ship date. On Magento, the option SKU is a suffix on the product SKU, so a line can arrive as a SKU the ERP has never seen: we map it, or replace it.ERP: NetSuite, or any ERP with an API.StoreERPThe configured order, as a sales-order lineEvery choice in its own transaction line fieldOr as a generated assembly itemIts own SKU, with a bill of materials builtagainst Advanced Bill of MaterialsERPStoreComponent stock and lead timesRead back over REST web services andSuiteQL, to work out the ship dateOn Magento, the option SKU is a suffixon the product SKU, so a line can arriveas a SKU the ERP has never seen: wemap it, or replace it.
The build arrives in a shape production already reads, and stock and lead times flow back to set the ship date.

That's how we build a NetSuite product configurator; other ERPs with an API work the same way. The sync method is on our ERP integration page.

Magento and Hyvä product configurators

Will it work on your Magento store, Hyvä included? Yes. A Magento product configurator sits on one of three levels, and we use the lowest one that does the job:

  1. Native Magento 2 custom options. Right for a few add-ons with fixed or percentage prices, within the limits above: no stock per option, no price-rule conditions, and catalog sales that skip fixed-price options.
  2. A mature custom-options extension, extended. An established options extension adds dependent custom options; some add stock per option value or prices from dimensions the buyer enters. When one already covers most of the job, we extend it rather than replace it. Replacing it means rebuilding its setup on every product. Extending keeps that setup and hands what the extension can't express, often rules across components or formula prices with minimums and rounding, to the JSON rules engine above. On Hyvä, check first that a compatibility module exists for it, and who maintains it.
  3. A Hyvä-native configurator. When the rules outgrow the extension, we build the configurator for Hyvä itself: Alpine.js and Tailwind CSS on the storefront in place of Luma's RequireJS and jQuery widgets, driven by the JSON rules engine above and re-checked on the server. Hyvä's technical vision names the stack: "we use Tailwind CSS and Alpine.js," having "got rid of the parts we would gladly live without (Knockout, RequireJS, and jQuery)."

Before you buy any storefront extension, a Magento product designer or web-to-print module included, check for a Hyvä version: Hyvä's docs say "modules based on the Magento luma or blank themes require a Compatibility Module to work with Hyvä." Anything we build at the second or third level ships as a Magento module with its own tests, so an upgrade checks a Magento 2 product configurator like the rest of your code. The rest of the platform work is on our Magento development page.

Shopify and custom-stack configurators

Can Shopify handle a complex configurator? Up to a documented point. As of October 27, 2026, Shopify's help center says "each product can have up to three options" and "you can create up to 2,048 variants for a product," and warns that some themes and apps "might not support more than 100 variants." Past those limits a combination can't be a variant, so a Shopify product configurator leans on two other tools:

  • Line-item properties. Shopify's theme docs describe them as a way to "include additional information for a variant that's added to the cart." They carry the build. Repricing the line is Cart Transform's job.
  • Cart Transform. A Cart Transform function can expand a line into priced components, merge lines into a bundle, or update a line's price, title and image. Expanding works on any plan through a public app. Updating has a plan gate: "Only development stores or stores on a Shopify Plus plan can use apps with lineUpdate operations." Shopify also "rejects lineExpand, linesMerge, and lineUpdate operations if a selling plan is present," so a configured subscription needs another route.

An app is enough when options are few and each has its own price. When the price is a formula the cart has to enforce, Plus and a custom function earn their place: Shopify's Functions docs say "only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs." The rest of that call is on our Shopify development page.

Headless is the middle path: the configurator gets the whole product page, while the platform behind it keeps the catalog, the cart and its limits. A fully custom stack drops those limits too. Our headless commerce page covers when headless pays off.

BigCommerce, briefly: as of October 27, 2026, it allows 600 variants per product and modifiers that change the price by rule, but "inventory cannot be tracked for individual product modifiers." A BigCommerce product configurator that needs stock per option uses variants or custom code.

Variant ceilings per product

Bar chart: Shopify allows 2,048 variants per product, BigCommerce 600, and some Shopify themes and apps may stop at 100.Bar chart, as of October 27, 2026: Variants per product, on a scale from zero. Some Shopify themes and apps: 100, May not support more: a warning, not a platform limit (drawn dashed). BigCommerce: 600. Shopify: 2,048. Shopify also allows three options per product.Some Shopify themes andappsMay not support more: awarning, not a platform limit100BigCommerce600Shopify2,04805001,0001,5002,000Variants per productShopify also allows three options per product.Bar chart: Shopify allows 2,048 variants per product, BigCommerce 600, and some Shopify themes and apps may stop at 100.Bar chart, as of October 27, 2026: Variants per product, on a scale from zero. Some Shopify themes and apps: 100, May not support more: a warning, not a platform limit (drawn dashed). BigCommerce: 600. Shopify: 2,048. Shopify also allows three options per product.Some Shopify themes and appsMay not support more: a warning, not aplatform limit100BigCommerce600Shopify2,04801,0002,000Variants per productShopify also allows three options perproduct.
As of : Past these counts a combination can't be a variant, so the configurator carries it. Sources: Shopify Help Center: Adding variants; BigCommerce: Variants and modifiers.

Products a configurator fits

Is your product a configurator product? Probably, if anyone on your team has ever had to say "that combination doesn't exist." The patterns, with familiar examples:

  • Made to measure, priced by size. Window blinds, cut-to-size glass and acrylic, rugs, fence panels.
  • Built to order from compatible parts. Bicycles, modular shelving, lighting systems.
  • Made to order with paid add-ons. Sofas in a choice of fabric and legs; watches with a choice of case, strap and engraving.
  • Personalized with the buyer's own text or files. Monogrammed luggage and engraved awards, with a proof to approve before anything is made.

Most real products mix two or three: a made-to-measure item with paid add-ons, at a trade account's price. And one pattern that isn't a configurator job: if every combination is a stocked SKU you already sell, you need variants and good filters.

How a configurator project runs

What happens first? We start from your orders, not a feature list.

  1. Map the rules and the price logic from real orders. Past orders, past quotes, the spreadsheet your reps price from, and the exceptions only one person remembers. Each becomes a written rule.
  2. Model them as data, with tests. Options, constraints and prices go into the rules file, and every rule gets cases that must pass and cases that must fail.
  3. Replay past orders until the prices match. Every historical build runs through the engine. Each mismatch is either a bug in the rules or a price nobody meant to charge, and you decide which.
  4. Launch. The configurator goes live with the server checking every build, and orders and quotes flowing to the ERP.
  5. Hand over the rules. Your team gets a rules file it can edit, and the tests that say whether a change is safe.

What does a product configurator cost? The work moves with five drivers: the number of rules, the pricing model, the platform, the ERP connection and the quote flow. We scope from your rules and don't publish prices. Our guide to what an ecommerce website costs covers what the market typically charges, with sources.

Questions about custom configurators and CPQ

What is a product configurator?

A product configurator lets a buyer build a product from options. It shows only the combinations that can actually be made, prices the build as it changes, and sends the result to the cart or to a quote. A custom one also hands the configured order to the ERP as lines production can build from, so nobody re-keys it.

When is a custom configurator better than a SaaS app?

When the rules or the price are the business. Custom wins when rules span products or components, when the price is a formula with minimums, rounding and contract prices, when quotes and ERP orders must carry the full build, or when rule changes need review and tests. For a few options with fixed add-on prices, an app or extension is the better buy.

Can a configurator handle complex rules and dynamic pricing?

Yes, when the rules are data rather than code. We keep options, constraints and prices in one rules file, evaluate it with a small engine in the browser and again on the server, and test every rule like code. Dimensional prices, minimums, rounding, quantity breaks and customer-group prices all run from that one file.

What is CPQ, and is it the same as an ERP?

CPQ stands for configure, price, quote: turning a buyer's choices into a valid product, a price and a quote. It isn't an ERP. The ERP holds the items, stock, costs and sales orders, and CPQ produces the quote that becomes one of those orders. NetSuite shows the split: NetSuite CPQ is a collection of SuiteApps installed on top of the ERP.

Can configured orders go straight into NetSuite or our ERP?

Yes. The order arrives either as a sales-order line that carries every choice in transaction line fields, or as a generated assembly item with its own bill of materials. The store reads component stock and lead times back from the ERP and works out the ship date from them. Nobody re-keys the build, and other ERPs with an API work the same way.

Can Shopify handle a complex product configurator?

Up to a point. As of October 27, 2026, a Shopify product can have up to three options and 2,048 variants. Line-item properties carry the buyer's choices, and repricing a cart line with Cart Transform's lineUpdate operation needs Shopify Plus or a development store. Past those limits, an app, a custom function on Plus or a headless storefront takes over.

How much does a product configurator cost?

It turns on five drivers: how many rules the product has, the pricing model, the platform, the ERP connection, and whether builds go to the cart, a quote or both. We don't publish prices; we scope from a written map of your rules. Our ecommerce website cost guide covers what the market typically charges, with sources.

Send us the spreadsheet your reps actually quote from. Tell us the product, the platform, the ERP and how a configured order gets made today. We'll reply in writing with how we'd model the rules and where each one would live.