The Drupal Commerce Product module defines a fieldable product entity that can have multiple bundles and creates a default product type upon installation. The Product UI module defines a default UI for managing product types, forms for adding and managing products, and Views integration for viewing products.
The Product Reference module defines a field that references any number of products from other entities for display to the end user. Products themselves aren't currently meant to be viewed but rather referenced by the nodes (or other points of display) that market the products. The Cart module defines a display formatter for the product reference field that takes the referenced product IDs and builds a simple Add to Cart form using the data. When multiple products of the same type are referenced, the Add to Cart form will include widgets to select the appropriate product for purchase based on the fields of that product type.
For example, an apparel store might sell every style of t-shirt in small, medium, and large. With the core components, the process from product creation to merchandising for each style of t-shirt is:
- Create a new "T-shirt" product type and add a required Size field to it with the available sizes as options.
- Add a new T-shirt product for each Size with a unique SKU, likely using a pattern based on the Size (SHIRT-001-S, SHIRT-002-M, etc.).
- Create a "Product" node type and add a required Product Reference field to it that is multiple entry, uses the product autocomplete widget, and uses an Add to Cart Form display formatter.
- Add a new Product node for the style of t-shirt with images and descriptive text marketing the t-shirt for sale. Reference each variation of the style of t-shirt through the Product Reference field.