Variations allow you to generate child products on a product based with a number of options. In the following example, we have a size variation with three options (small, medium and large) and a color variation with three options (green, red and blue). This creates a variation matrix with nine possible unique combinations or "child products".
It’s possible to create many more variations and options than the simple example above. The limit is currently set to 250 possible unique combinations. Creating additional variations or options and attaching them to a product exponentially increases the number of unique combinations. For example, adding a third variation with three options to the example above would mean 3x3x3, a total of 27 unique child products would be created.
Variations are also re-usable, so you can attach the same variation to any number of products. In the example below we have a shoe size variation with five options. This variation has been linked to the two shoe products that should inherit this property. The T-shirt product is not linked to the Shoe Size variation. This means you won’t have to recreate a new size variation every time you add a new shoe. You can create a link between the existing variation and the new product.
Modifiers augment the properties of a base product by creating a collection of child products. They help you keep your stock organized. For instance, instead of creating 3 different base products for three different shirt colors, you’ll have one base product with a variation using 3 colors. A modifier will then decide how to change the child product’s properties, for instance you could have three different descriptions for each child product based on the color.
The process to use and set up variations on your product catalog is fairly linear. The diagram below highlights the first-time setup process. In short, you will want a base product to have variations, options, and modifiers defined. Then, link the product to the variations, and run the build endpoint to generate the variation matrix of child products.