Products, Options, and Variants
Products
When we use the term “product” (also “Style”, “Style Level”, “Master Product”, "Top Level Product") in Merchstack, we are referring to a single thing that is available in a store. Products contain the marketing information, descriptions, options, and assets that are shown to the customer.
Typically, this is not the item that is actually sold, which is where variants come in. Let's consider an example, like a Dunder Mifflin A4 Vanilla Envelope. This product may come in many colors (e.g. Blue, Yellow, White) or weights (e.g. Standard, Heavy). In this case, a customer needs to specify more than just which product they want, they also need to specify color and weight to identify something that can be purchased and fulfilled.
Options
A product can have options. Options, and Option Groups, are the product-level definitions for how versions of a product vary from one another. Put another way, the options are the choices we must make to select which variant we want to purchase as a customer. Option Values are the variant-level values for each Option within the Option Group.
In the example above, our options are Color and Weight. Each of these individually is an Option, collectively
they are the Option Group. Whereas selections like Blue (Color) and Heavy (Weight) are the Option Values.
Variants
A variant is an orderable item. This is an item you can see and touch in the real world. A variant is essentially a product plus specific selected options.
To continue with our example, if we decide we want the Blue (Color Option) Heavy (Weight Option) Dunder Mifflin A4 Vanilla Envelope (Product), a merchant would be able to go into their warehouse and find that specific product. That specific combination Blue + Heavy + Dunder Mifflin A4 Vanilla Envelope = a variant.
Variants typically have specific data, like Price and Inventory, that wouldn’t be found on the Product or Options. I can’t order the Product or Options in isolation, because they don’t actually exist in the physical world. Since I can only order variants, variants are where I define certain transactional data, like my SKU, or stock keeping unit, price, and inventory.