Combining/linking tw or more variants so they depend on each other

Topic summary

Goal: Link two product options (e.g., Brand → Model) so the Model list dynamically updates based on the selected Brand.

Feasibility and constraints:

  • Not achievable with standard theme settings; requires an app or custom development (e.g., metafields + JS) and is complex.
  • Clarification: products have variants composed of options. There’s a legacy (vintage theme) tutorial for linked options. Beware Shopify’s 100-variant limit when combining many brands/models; may require rethinking product structure.

Proposed solutions:

  • App-based: Easify Product Options (free plan available) supports conditional logic to show model options based on the chosen brand. A demo and a ready-made phone case template illustrate this flow. Images/demos are central to understanding the setup.
  • Custom build: Possible via advanced theme customization or metafields, but involves significant logic to react to selector changes. Service offers available.

Status/outcome:

  • No final resolution yet. Concrete next steps are to try an options/conditional-logic app (e.g., Easify) or pursue custom development, considering variant limits and theme type (vintage vs. modern).
Summarized with AI on January 13. AI used: gpt-5.

First of all, apologies for any upcoming grammar mistakes, but I hope you’ll understand what I’m trying to say! :grin:

Let’s consider a scenario where I have two variants on a product page for mobile phones: the first is “Brand,” and the second is “Model.” How can I link these two variants together? For instance, if I select “Samsung” for the first variant, the second variant should display a list of available models for Samsung. Similarly, the same should occur for other brands such as iPhone, Xiaomi etc.

I aim to create a separate model list for each brand, with the variants mutually connected.

Is there any app available for this purpose?

Thanks!

1 Like

I don’t believe this is possible with regular theme customization. Maybe with an app. Or, if you don’t mind them being a variant, and you are open to them being a field that will make the model appear in your product as a property, and not a variant, it’s possible to do it through metafields, but it will still be a complex work, as it would need to check things and change things as the variant selector changes

Yes, I assumed it couldn’t be done through a simple method. I’ve been searching for apps but can’t find anything close to what I described. I’ll try to continue researching, but it seems like I currently don’t have a solution. If you have something that could help me or is somewhat similar, please send me a link.

Thanks anyway!

As I mentioned, I thought of this second solution. It’s complex, but I believe it’s achievable and would work. You can get in touch with me if you want so that we can discuss it better

1 Like

Disambiguation, a product has variants, a variant has product-options.

@lemon_haze

This is a linked product options customization, for the online sales channel themes.

there is a tutorial for vintage themes only:

https://community.shopify.com/topic/615156

Keep in mind that products have 100 variant limit so mixing multiple “brands” and choices easily runs into this problem. So often will need a different advanced theme customization and consideration for the products information architecture.

If you need this customization done for you then contact me by mail for services.
ALWAYS please provide context, examples: store url, theme name, post url(s) , or any further detail in ALL correspondence.
Contact info in signature.

Hi @lemon_haze ,

For managing product options on your Shopify store, you should consider using the Easify Product Options app (free plan available). It allows you to effortlessly create product options and leverage its conditional logic feature to establish relationships between different options :blush: .

To help you visualize its capabilities, I suggest taking a look at the below demo:

Also, there’s a ready-to-use Phone Case option set template mirroring the above demo for you to get started quickly: