Modeling products

Product Types, Product Attributes, Products, and Product Variants are the key concepts to understanding how to model your product catalog in Composable Commerce.

  • After completing this page, you should be able to:

    • Describe the concepts of Product Types, Product Attributes, Products, and Product Variants.
    • Recall how the above concepts relate to each other.
  • Composable Commerce provides a customizable product data model. This module provides high-level guidance on the product data model of Composable Commerce and how to map your product catalog to it.

    We recommend completing the module before deciding on a strategy. It’s important to understand all the different ways to model product information and how they interact before you begin.


    The product data model in Composable Commerce contains the following elements:

    Product Type
    A set of attributes that acts as a template for a group of similar products. Product Types have Product Attributes, which define the characteristics of a group of products.
    Product Attributes
    A unique characteristic or piece of information about a Product. Product Attributes are defined in Product Types.
    An abstract good with a set of Product Attributes defined by a Product Type. Products themselves are not sellable. Instead, they act as a parent structure for Product Variants. Each Product must have at least one Product Variant, which is called the Master Variant.
    Product Variant
    A concrete sellable good. Product Variants are generally mapped to specific SKUs. Inventory is modeled per Product Variant.
    A grouping of Products. You can create Categories to group product characteristics, marketing concerns, or search concerns.

    The product information data model

    To begin, let’s look at how the different elements of the data model in Composable Commerce interact. This isn’t the complete data model, only the objects that let us model product information.

    A diagram showing the relationships between product types, products, product variants and categories.

    At a high level, entities (objects or resources in the API) relate to each other using containment and assignment. Product Types contain Attribute Definitions. Attributes are passed on to Products and Product Variants. Products and all their Product Variants are assigned to Categories.

    Product Types and Attributes

    A Product Type has zero or more Product Atributes.

    A Product Type has zero or more Attribute Definitions. Products, Categories, and Product Types can exist independently of each other, but Product Attributes are defined as part of a Product Type.

    Products and Product Types

    A Product has exactly one Product Type.

    An individual Product has exactly one Product Type. Multiple Products can use the same Product Type.

    Product Attributes

    A Product Type defines the attributes for Products that use that Product Type.

    A Product can populate all Product Attributes defined in its Product Type. If the Product Attribute is not a required field, it can remain undefined on the Product.

    Products and Categories

    A Product can be assigned to any number of Categories.

    A Product can be assigned to any number of Categories, and a Category can have any number of Products assigned to it.

    Products and Product Variants

    A Product can have up to 100 Product Variants.

    A Product has a minimum of one Product Variant, called the Master Variant, and can have up to a limit of 100 Product Variants per Product.

    Test your knowledge