What is Shopify's variant limit now?
At the time of writing (2026-10), a Shopify product can have up to 2,048 variants and up to three options (for example size, color, material). The long-standing limit was 100 variants. Shopify's developer changelog dates the increase for all merchants to 2025-10-15, and its Help Center lists no plan restrictions for it.
If you are reading an older article that says "100 variants, no way around it", it is out of date on the first half. The second half, the three-option limit, still applies according to the Help Center page. Check that page for the current numbers before you plan anything, because limits like these change.
Why does the old 100-variant advice still matter?
Because the number in the admin is not the whole story. Shopify's own changelog warns that merchants using apps that are not on the supported GraphQL product APIs "may have a downgraded or broken experience" when creating or viewing products with more than 100 variants. The Help Center adds that themes supporting more than 100 variants may need updates, and that some apps do not support high variant counts.
So the real question has moved from "can Shopify hold this product?" to "does everything attached to my store handle it?" Before you build any workaround, test one real product with the full variant count on a development store or a duplicate theme:
- Does the product page selector still work and stay readable?
- Do your inventory, shipping, feed and review apps list every variant?
- Do exports and imports finish without errors?
- Does the page still load quickly with the full variant list?
If all four pass, you may not need a workaround at all.
What are the workarounds when you hit a limit?
There are four common ones. Each trades something.
- Split into several products. Make "Boot, leather" and "Boot, suede" separate products and link them with a swatch or a related-products block. Good when the split matches how customers think. You lose one shared page and have to keep descriptions and reviews in sync.
- Store the extra choice as data, not as a variant. Metafields are key-value pairs that extend a product with extra information, according to Shopify's developer documentation. Good for choices that do not change price or stock, such as an engraving text or a care note. They do not give you separate stock or a separate SKU.
- Use a bundle. Shopify describes a bundle as a set of two or more related products, and creating one needs a bundles app. Good when the customer is really buying a combination of things that each exist as a product.
- Use an options or configurator app. Good for custom text, uploads and add-ons. Be careful with price and stock accuracy: ask the app vendor whether a choice becomes a real variant or only a note on the order, because your inventory and reports may not see the second kind.
A rule of thumb that holds for all four: if a choice changes price, stock, shipping weight or what you must produce, it should be a real variant or a real product. If it changes none of those, it can be data.
When does going custom make sense?
Rarely, and not because of the number 100 or 2,048. We would look at a custom build only when the variant problem is a symptom of something else:
- The catalog is really a configurator. Every choice changes price or production, and the combinations are rules, not a list. A table of 2,000 pre-made combinations is the wrong model for that.
- The data lives somewhere else. Your ERP or production system already knows what is possible, and copying it into Shopify variants creates sync errors.
- The storefront experience is the product. A visual builder, live price preview or quote flow that a theme and apps cannot give you.
- Several workarounds are stacked on each other. Three apps and a pile of theme code to fake one thing is a cost of its own.
In those cases the usual answer is still not "leave Shopify". It is often a custom configurator or app in front of Shopify, with Shopify keeping checkout, payments and orders. Leaving Shopify entirely is a bigger decision and should be argued on its own: tax, payments, apps you use, who runs the store day to day. If you are weighing it, our e-commerce work starts from that comparison and not from a preference for building.
How do you choose between the options?
Answer these in order and stop at the first that fits:
- Is the product within 2,048 variants and three options, and does your theme and every app handle it? Use native variants. Done.
- Do the extra choices change nothing about price or stock? Use metafields or an options app.
- Are the extra choices really different products? Split the product.
- Is the customer buying a set of existing products? Use a bundle.
- Do choices follow rules that change price, stock or production? Price a configurator, built as a custom component on top of Shopify.
- Is the catalog data owned by another system? Price an integration, and decide whether a custom storefront is justified.
Costs are not given here on purpose. App pricing, theme work and custom work all vary, and any number we gave you would be a guess. Ask for line-by-line quotes for the two cheapest options that fit, and compare what each does when your catalog changes next year.
When this is not for you
- If your products have fewer than 100 variants, nothing here applies. Do not build anything.
- If your only issue is a slow or confusing variant selector, that is a theme question. A theme developer is the right person, not a custom build.
- If you are choosing a platform from scratch with a very small catalog, Shopify's native variants are very likely enough, and we would not recommend custom work.
- If you want us to promise a result in sales or speed, we will not. We can tell you what a change involves and what it does not fix.
What should you do next?
Take one real product that hits your current limit, write down which choices change price, stock or production, and send that list. With it, a first conversation can tell you which of the paths above fits, or that you need none of them. You can book a free call and we will go through it with you.



