With WooCommerce you can sell anything because there are various product types that you can set up with it. One of these product types is Variable Product.
To define a variable product, first you need to add Attributes to it, then you can create Variations. But what is exactly the difference between attributes and variations?
Product attributes are data that describe the product in details.
For example, if you are selling a dress, an attribute for it could be the size of that dress, or its color.
If you are selling courses, an attribute could be the skills required to attend that course.
In both the examples above you define in details the product. For the dress, you are defining what are the sizes and the colors, for the course instead you are defining what are the skills required to attend that course, so people know if they should buy it or not.
Product attributes can be added to almost any type of product, being it Variable, Simple, etc.
Variations instead, are the choices that the customer has when purchasing the product and they are based on the product attributes.
For a simple product, attributes are not mandatory, but for a variable product they are because the variations have to be based on some options that the customer has, the attribute terms.
In the example of the dress, you have the attributes size and color. When the customer purchases that dress you need to know exactly what size and what color they want, and they need to know instead if a specific size of a specific color is available or not.
The combination of all the attribute terms is a variation.
Let’s see a practical example with the dress to make it easy to understand.
You have this dress in three different sizes and two colors, this means that the product has two attributes:
Each attribute has its own terms:
Each combination of two terms (one from the Size attribute, and one from the Color attribute) is a variation.
- Small, White
- Small, Black
- Medium, White
- Medium, Black
- Large, White
- Large, Black
The product has in total six variations, because the customer can choose any size with any color.
When creating variations though, we can make it simpler. We don’t need six variations for that product, because all colors are available in all sizes, so we can just defined two variations:
- White, Any Size…
- Black, Any Size…
This would be the same of creating the six variations above. And we could make it even simpler, with only one variation:
- Any Color…, Any Size…
Still, this is the same thing, because the customer can choose any color of the dress, and it will be available in any of the sizes. The price would be the same.
Defining variations this way is only possible when the stock is not based on an attribute term, or if the price is the same for the variations. If any of these data is different for each variation, you’ll have to define them singularly.
What the customer sees in all the cases above does not change. They still see six possible options, with the three colors and the two sizes, what changes is the product management for the store admin.
In the example of the course instead, we only have one attribute, such as the skills:
- Skills Required
- PHP Knowledge
- CSS Knowledge
- HTML Knowledge
The customer will know that they must have those skills to succeed in the course, but they can’t choose anything. They just have an extra information about the product.
Attributes are extra information about the product, variations are the combination of choices that the customer has when purchasing the product.
Attributes are optional for all products, except for Variable products. Variations and attributes are instead mandatory for a variable product.