The Product With Eleven Options and Only One Hundred Variants

Share
The Product With Eleven Options and Only One Hundred Variants. Abstract shopify illustration in orange and dark grey on debugly.dev

The merchant sold a configured product, a frame with a size, a finish and a glass option, six values each. The math is two hundred and sixteen combinations, and the storefront needed every one to be purchasable with its own stock and its own price. The platform's variant limit is one hundred. The product did not fit, and nobody discovered this in planning, because the limit is not a number anyone writes down when sketching a catalogue. It is discovered at the moment the two hundred and sixteenth variant is refused.

This is the collision between a combinatorial catalogue and a fixed variant ceiling, and the interesting part is not the limit itself but the workarounds it forces, because each workaround moves the truth about stock and price into a different, less governed place.

This was an Online Store 2.0 store, and the limits observed are the platform's: three option names per product and one hundred variants per product, with the combinatorial explosion arriving long before either feels generous.

Why the limit bites at one hundred

The variant model is a table: one row per combination, each row with its own sku, price, inventory and image. A table is the right model for a small number of combinations, and the ceiling exists because an unbounded table per product makes every bulk operation, every sync and every edit scale with the product's combinatorics, which is a cost the platform caps at one hundred.

The merchant's catalogue is not unusual. Configured products, apparel with size and colour and length, furniture with size and finish and material, all cross one hundred quickly, because combinations multiply while intuition adds. Three options of five each is one hundred and twenty five, already over. The merchant experiences the limit not as a policy but as a product that cannot be listed honestly.

The workarounds and what they cost

Splitting into multiple products. The common fix is one product per value of the largest option, so the frame in each finish becomes its own product with size and glass as its two options. The combinatorics now fit, but the catalogue's unity is gone: the customer chooses the finish on a product page boundary rather than a selector, search and collections show six near duplicate products, and the merchant maintains six products where the truth is one. The split also fragments reviews and rankings across the duplicates.

Line item properties instead of variants. Moving the overflowing option to a line item property, a free text or dropdown note attached at add to cart, keeps one product and one variant row, but the property carries no inventory and no price of its own. Stock for the combinations is no longer enforced, which is the oversell race from the bundle that sold twelve units the store did not have, reborn as an option, and a price difference per property must be applied by custom logic, which is a second source of pricing truth.

A configurator app or custom endpoint. The most capable fix builds the combination outside the variant table, computing price and checking stock from a custom model at add to cart. It is honest and scalable, and it is also a parallel commerce system, with its own stock model, its own price logic and its own failure modes, sitting beside the platform's, and the two must be reconciled constantly.

Each workaround is a decision about where the truth lives, and each moves some of the truth out of the governed variant table into a place with weaker enforcement, which is exactly where the incidents in this series keep originating.

The architecture question underneath

The limit forces a question the merchant should answer deliberately: which dimensions are variants and which are fulfilment attributes. A dimension that changes price or stock must be a variant, because those are the properties the variant table enforces. A dimension that changes only what the warehouse does, an engraving, a cable length cut to measure, can be a line item property honestly, because it does not need per combination stock.

The defect is not using properties. It is using properties for a dimension that needs enforcement, because then the store sells combinations it cannot track. The review question for any configured product is therefore: for each option, does it change price or stock, and if yes, is it inside the variant ceiling, and if not, which dimension gets promoted and which gets split.

Living inside the ceiling

For catalogues that genuinely exceed the model, the durable patterns are the ones that keep enforcement inside the platform.

Model the highest cardinality dimension as separate products and accept the duplication, mitigating it with a collection and a shared template so the customer experiences one product family even though the data model is several. The duplication is a cost paid in the admin, not in enforcement, which is the right place to pay it.

Use metafields or a linked model for the price deltas and stock of the split dimensions, read by the theme and by the cart logic, so the truth, though outside the variant row, lives in one structured place with one writer, which is the single source of truth discipline from the price that changed by a cent, applied to the configurator.

And test the add to cart path for every combination class, asserting stock decrements and price matches the model, because the configurator's whole value is enforcement, and enforcement is exactly what regresses silently.

The rule

The variant ceiling is a budget on combinatorics, and a configured catalogue must spend it on the dimensions that need enforcement, price and stock, while demoting the rest to properties or splitting them into products. The limit is not the defect. The defect is a workaround that moves price or stock truth outside the only table that enforces it.

When the two hundred and sixteenth combination is refused, the store is being asked an architecture question, and the answer decides whether the catalogue is honest or merely listed. The inventory enforcement half of this lesson is the bundle oversell post in this series, and the pricing truth half is the currency rounding one.