Managing complexity
Every configured item in a cart is priced again at checkout, by Shopify. Checkout will not accept a cart it cannot finish verifying, so a project that asks for more checking than it can complete is refused rather than waved through. How much checking your project asks for depends far more on how you write your pricing rules than on how many parts you have.
This page tells you which choices are cheap, which are expensive, and what happens when you go too far.
The short version
- Parts that carry a typed price are cheap. A hundred of those is not a problem.
- Parts linked to a real product are the expensive kind. Each one ships as its own cart line for checkout to verify, and the whole cart may carry about 118 of those lines, so they run out long before typed-price parts do - around thirty is where it starts to bite.
- Nesting is cheap - far cheaper than one more formula.
- Quantity formulas are the expensive thing - and specifically, how many different ones you write.
- Nothing breaks quietly. If a project is too complex, 3D Bits refuses to publish it and tells you what is binding.
The one rule worth remembering
Reuse the same formula text across parts. Do not write a slightly different one for each.
This is the single biggest lever you have, and it is not obvious.
Checkout remembers each distinct formula it has already worked out. Write the same
ceil(width / 4000) on thirty parts and it is worked out once. Write thirty formulas that
differ only slightly - ceil(width / 4000), ceil(width / 4001), and so on - and every one is
worked out separately.
The two projects are the same size. One is worked out once; the other thirty times. Checkout is fast enough today that both publish, but the shared-formula project keeps far more room for parts and options, and a large project of bespoke long formulas is refused for its size before anything else.
If several parts need genuinely different quantities, prefer one shared formula driven by a different input over many bespoke formulas.
What a project can carry
Rough guidance, with everything else left simple:
| Your project | Configured items per cart |
|---|---|
| Up to 100 parts with typed prices, fixed quantities, no formulas | 4 (the maximum) |
| 30 parts, six levels deep, all sharing one formula | 4 |
| 30 parts, six levels deep, each with its own formula | 4 |
| 20 parts nested twenty levels deep, one shared formula | 4 |
| Up to about 29 parts linked to real products you ship | 4 |
| Around 35 parts linked to real products you ship | 3 |
| Around 50 parts linked to real products you ship | 2 |
| Around 100 parts linked to real products you ship | 1 |
| 119 linked parts or more | refused - will not publish |
"Configured items per cart" is how many of your configured products a shopper can have in one cart at the same time. Ordinary products do not count toward this limit. Every publish states the number for the project in its result, whether or not the project lowers it.
Three things to read from that table:
- Fixed quantities cost almost nothing. If a part's quantity never changes, type the number instead of writing a formula for it.
- Depth is not what costs. Twenty levels is barely more than six.
- A linked part is not a cheap part. A part with a typed price is only an amount, but a part linked to a product you ship is a real cart line, and every line is one more thing checkout has to verify. The first four rows assume typed prices throughout - swap those hundred parts for a hundred linked ones and the cart holds one of that product at a time.
Fixed ceilings
These do not move, whatever else you do:
- 4 configured items in one cart
- 20 levels of part nesting
- 1,000,000 units of any single part
Priced options
Each option that adds money is remembered in the rules, and in Product lines charging each one that is switched on becomes its own cart line. Many priced options therefore cost you in two ways at once. The table below is about Product lines; Bundled parts is counted differently and is covered under Charging methods.
What costs is how many priced options one configuration can have switched on at the same time, not how many you have authored. Twenty priced options spread across a few dropdowns post only as many lines as there are dropdowns, because a dropdown holds one choice at a time. The same twenty given a switch each can all be on together, and post twenty. Roughly:
| Priced options a shopper can have on at once | Configured items per cart |
|---|---|
| up to about 29 | 4 |
| around 35 | 3 |
| around 50 | 2 |
| around 100 | 1 |
| 119 or more | refused - will not publish |
If you have a great many, consider:
- Combining them into one line. There is a setting for charging all options through a single combined line instead of one line each.
- Bundled parts charging, which nests the parts under one cart line so checkout only has to verify that one. It charges through the same products and keeps every part on the order.
- Single line charging, which prices everything into the product itself.
See Charging methods for the trade-offs.
When publishing is refused
3D Bits works out the cost before it saves anything, so an over-complex project is caught at publish rather than by a shopper at checkout. The message names what is binding:
- Too large - the rules themselves do not fit. Reduce the number of parts or priced options.
- Too expensive to work out - almost always distinct quantity formulas. Share one formula across parts, or replace formulas with fixed numbers where the quantity never varies.
- Too many cart lines - a single configuration would add more lines than checkout can verify. Combine option lines, or switch charging method. Bundled parts is usually the answer here: a bundle's parts do not count against the roughly 118 lines the whole cart may carry, so one configured item can nest about 130 of them under its one line - counted as the parts a configuration can charge at once, not every part authored.
A project that publishes with a lower cart limit has not failed. It simply means shoppers can buy fewer of that configured product at once, and 3D Bits tells the shopper clearly if they try to exceed it.
If you need more headroom
In rough order of how much they buy you:
- Share one quantity formula across as many parts as possible.
- Replace formulas with fixed numbers wherever a quantity never varies.
- Simplify the formulas themselves - a short expression is cheaper than a long one.
- Reduce priced options, or combine their cart lines.
- Switch to Bundled parts charging, which changes what is counted rather than how much of it there is. Its own limit is how many parts one configuration can charge at once - parts that exclude each other on the same choice do not count together - about 130 of them, and it halves as a shopper buys more of the same configured product in one cart.
- Split the product into two simpler configurators if it is really two products.
Nesting deeper, or adding more parts with fixed quantities, is nearly free - so restructure toward those rather than away from them.