Commerce Line Item Taxonomy Reference Filtered by Product Selection Here's the scenario:


I'm selling furniture. I have a chair we'll call Mission Chair.
The Mission Chair comes in oak or maple, both are priced differently. I have a field in my product
I have a product display created which references these 2 products 
Customers need to choose 1 of 5 stain colors, but each type of wood has 5 different choices (and they're not the same choices)
The stain choice is required, but does not affect the price.


In my Product Variation Type, I have a term reference field which is referencing a Wood Species vocabulary.

I assume I would create a term reference field on the line item type where they would make the stain color choice. What I need to figure out is how do I do some kind of contextual filter to only show the stains available for the chosen wood species? (which is a taxonomy term on the chosen product - not the display, the product variation)

Should the stains be child terms in the same vocabulary as the wood species, or should it be a separate vocabulary with an additional term field that references a specific wood species (taxonomy reference, the same vocabulary the product variation uses) for each stain color term, and then filter on that somehow?
You have two basic approaches you can use: either treat the stain color as a customization or treat it as a second attribute.  Which you pick depends on a little on your backend process needs and the experience you want to provide.

If you use a second attribute and have a product variation for each stain in each wood, Commerce's default add to cart form should provide the user experience you are describing. You might find it helpful to take a look at this tutorial.

If you want to treat stain as a customization you'll likely want a couple extra modules -- in particular Commerce Customizable Product.  Commerce Guys have a tutorial covering that scenario.