Product Types and Product Attributes
Product Types consist of Product Attributes, and together these form the templates you will use to model your products.
After completing this page, you should be able to:
- Distinguish a Product Type from a Product Attribute.
When beginning a project, it is important to consider which aspects of your products will map to Product Types, Products, Product Attributes, and Product Variants. How you choose to define your products has an effect on store performance, load time, ease of product catalog management, and more.
A Product Type is a collection of Product Attributes that acts as a template for Products of the same type or kind. For example, a clothing store might have the following Product Types:
- Pants
- Shoes
- Shirts
- Accessories
In a clothing store, creating Product Types for different types of pants – shorts, long pants, cropped pants, etc. – is not beneficial, because the attributes of the different product types are similar. In this case, it would be better to use one Product Type for all pants and to store additional information as Product Attributes.
Many Projects only have one generic Product Type, but Product Types can be as broad or granular as needed. Pushing all information into one Product Type can lead to a complicated data model with high payloads and poor performance.
Product Types: keep in mind
Keep the following in mind when thinking about what Product Types to create:
- Product Types are a template of attributes that you can use to create Products.
- When you create a new Product, it must have a Product Type. After you've selected a Product Type for a Product, you cannot change it later.
- Once a Product Type is in use, you cannot deleted it without deleting all Products using the Product Type first.
- Product Types are generally restrictive: if you need flexibility, consider using a Category.
Product Types: helpful questions
When creating your data model’s Product Types, ask the following questions:
- What are the major groupings of products in your catalog?
- Could you model a given Product Type as a Category? Categories often provide more flexibility than Product Types in terms of providing front-end capabilities like faceted search.
Product Attributes
A Product Attribute is a property or feature of a Product. Every product consists of a collection of attributes. For example, a T-shirt might have the following Product Attributes:
- Colors
- Sizes
- Fabric
A Product or Product Variant can only use the Product Attributes defined in its Product Type.
You can add Product Attributes to a Product Type at any time, but you should be careful when removing Product Attributes that have values on Products. When doing so, the respective Product Attribute will be removed from all Products of the related Product Type by a background process together with its values.
Product Attributes: keep in mind
In the Product Attribute definition process evaluate the original data format to determine the right data type for the Product Attribute. You can find a list of data types for Product Attributes here.
Likewise, when setting your Product Attributes while you create your Product Type, it is important to think about the kinds of constraints you want to set for each Product Attribute.
If the same information is used in a large number of Products or Product Variants, it is more efficient to design it as a Custom Object and reference it using a Product Attribute.
Don't overcomplicate your Product Types with too many Product Attributes. You can add Product Attributes at any time, but removing Product Attributes that are already in use can be difficult.
Product Attributes: helpful questions
When modeling Product Attributes for a Product Type, ask the following questions:
- What is the purpose of this Product Attribute? Try to avoid creating Product Attributes that don’t have a clear use case that feeds into the front-end experience or touchpoints, even if they exist in another system in your company.
- Can a Product Attribute apply to more than one item? In general, avoid single-use Product Attributes.
- How many Product Attributes will remain empty with specific Products? If there are many Products with a lot of empty Product Attributes, then it would be better to create a separate Product Type.