WooCommerce Attribute vs. Variation: The Difference
How WooCommerce Attributes and Variations Relate
Attributes are defined first, either globally (reusable across many products, managed under Products → Attributes) or locally (specific to just one product), and each attribute has a set of possible values (Color might have Red, Blue, Green). Only when an attribute is explicitly marked "used for variations" does it contribute to generating actual variations — the specific combinations customers can select and purchase, each independently configurable.
Why This Two-Level Structure Exists
- Not every attribute needs to drive pricing or stock differences — a "Material" attribute might be purely informational (shown on the product page) without needing separate stock tracking per material, in which case it wouldn't be marked for variations.
- Global attributes let a consistent set of options (like a standard size range) be reused across many products without redefining them each time, while still allowing each product to generate its own specific variations from that shared attribute.
- A product can have several attributes, only some of which are used for variations, giving flexibility between purely descriptive information and genuine selectable, individually priced/stocked options.
- Understanding this distinction is usually the fix for the common "variations aren't showing" problem covered elsewhere — it almost always traces back to this specific attribute-to-variation relationship not being configured as expected.
Setting This Up Correctly
- Decide which attributes need to be selectable, individually priced options versus purely descriptive information.
- Mark only the relevant attributes "used for variations."
- Generate variations from those marked attributes in the Variations tab.
Need help structuring attributes and variations for a complex catalog? See custom WooCommerce development.