Hi,
Thank you for contacting us and I'd be happy to assist.
For the structure that you're planning to achieve, the use of taxonomies alone won't work, because:
A). If you'd register 3 separate taxonomies for each level ( Style, Pattern, and Color ), they can't be connected/associated with each other.
B). And if you register a single taxonomy with hierarchal levels, you won't have the flexibility to select the terms for each level, in separate fields.
For this reason, I'll recommend using a combination of taxonomies and custom post types. Using 3 separate taxonomies for each level will help in the front-end filtering of the results. While attaching these taxonomies in a restricted and connected way, the custom post types with relationships will come in handy.
You can register 3 custom taxonomies for each level, for your 'Products' post type:
a). Style
b). Pattern
c). Color
But, you'll not be assigning these taxonomy terms through the regular taxonomy interface, because you need it in a restricted way.
Next, you can register these custom post types:
a). Style
b). Pattern
c). Color
d). Combination
As the names indicate, the 'Style', 'Pattern', and 'Color' post types will have posts with the same titles as the ones in their respective taxonomies.
The 'Combination' post type will have a one-to-many relationship with all other 3 post types so that each 'Combination' post can have exactly one 'Style', 'Pattern', and 'Color', post associated with it. This will allow you to establish which are the allowed combination for the 3 levels.
Lastly, there will be a one-to-many relationship between the 'Products' and 'Combination' posts. And when a combination post will be joined to a product, you can programmatically, assign relevant 'Style', 'Pattern', and 'Color' taxonomy terms to that product too.
I hope this makes sense and let me know if any point is not clear.
regards,
Waqar