Dear Tom · Catalog
Dear Tom, how do I handle the Shopify variant limit?
Published 2023-10-03 · Updated 2026-06-11
This question arrived in 2023, when the answer was "100 variants, hard stop, here are the workarounds." The limit itself has since changed — so this is the updated answer, kept at the same address because the question still gets asked the old way.
Question:
I offer highly customizable products on my Shopify store and have run into the 100-variant limit. What are my options to work around this limitation without confusing my customers?
Answer, 2026 edition:
The limit is 2,048 variants per product now, not 100. Shopify lifted the old ceiling with the new GraphQL product model, rolled out across 2024–2025. If your catalog was bumping against 100, there's a fair chance the honest fix today is structural: rebuild the product with its real option matrix and let the new limit absorb it.
Two caveats before you celebrate:
- The option-type limit didn't move. You still get 3 option types per product (size / color / material, say). 2,048 is the ceiling on combinations, not on axes.
- Legacy integrations still think it's 100. The old REST product endpoints were retired for new development, but plenty of older apps and custom integrations were built on them and were never updated. If you're seeing a 100-variant error in 2026, the error is the app's, not Shopify's — and updating that integration beats working around it.
When 2,048 still isn't the answer
Genuinely configurable products — engraving text, uploaded artwork, made-to-order dimensions — shouldn't be variant-ized at all. The decision tree:
- 1. Line item properties for per-order input. Anything the customer types or uploads belongs on the line item, not in a variant. Properties don't count against the limit and flow through to the order for fulfillment. Options apps are mostly a UI over this mechanism.
- 2. Split the product along its least-shopped axis. If one option (frame material, base model) is chosen first and rarely changed, each value of it can be its own listing with the remaining options as variants. Link the listings clearly — done carelessly this is the version that confuses customers.
- 3. A configurator backed by Cart Transform. For true combinatorial products, a custom configurator prices the combination and a Cart Transform function assembles the cart from component SKUs. Inventory stays truthful at the component level, and the customer sees one configured product. This is custom app work — the right kind, because it's load-bearing for the whole catalog.
The error message, for the record
The legacy message — "You've reached the limit of 100 variants for this product" — now indicates an outdated integration in the write path, not a platform ceiling. Trace which app or script created the product before deleting variants to "make room"; you'd be solving the wrong problem.
Catalog fighting the variant model?
Email Tom what the product is and how customers configure it — the right structure usually falls out of that one answer.
Email Tom →