Overview of the concepts related to the Product catalog of your Project.
The product catalog is the central location where you can manage all your Product data definitions and sellable items. It acts as the foundation for your retail offerings.
This central repository lets you:
- Support structured data across all Products (Product Types).
- Define navigational pathways (Categories).
- Control Store-specific visibility (Product Selections).
- Manage how Products are shown to Customers on a storefront (Product Projections).
Definitions
Product
To support editorial workflows, each Product resource contains the following two representations of its Product data:
- Current: the published version that you need to present to your Customers on the storefront.
- Staged: the draft version to which your content editors can make updates, but it remains invisible to your Customers until explicitly published.
It isn't possible to stage certain Product data that's not intended to be exposed in the storefront, such as Tax Category or Price mode. These are immediately made available in the current representation after making any updates.
The Product lifecycle typically follows these steps:
- Creation: when a Product is created, both the current and staged representations are identical.
- Editing: when a content editor makes changes to the Product, they are applied to only the staged representation. The current representation remains unchanged and is visible to Customers.
- Publishing: when the editor is satisfied with the changes, they can publish the Product. This action copies the staged representation to the current representation and marks the Product as published.
- Further edits: after publishing, the editor can continue making changes to the staged representation, repeating the cycle.
- Unpublishing: if you don't want the Product to appear in the storefront, you can unpublish it. This action keeps the staged and current representations as they are, but it marks the Product as unpublished.
- Deletion: when a Product is no longer needed, you can delete it. This action removes both the current and staged representations from the Project. Only unpublished Products can be deleted.
Slug
/products/classic-leather-jacket instead of /products/a1b2c3d4.
Slugs must be unique across the Project.Product Variant
- Master Variant: every Product has one Master Variant. It ensures that even a simple Product always has at least one variant that can be purchased. It is typically presented as the default on Product detail pages. For how to identify and change the Master Variant with the API, see Product catalog APIs overview.
- Other variants: an array of additional variants.
- Variant data: contains the following information that changes for every variant:
-
Prices: specific Prices, including tiers, Customer Groups, and Channels.
-
Images: images that are specific to a color and size combination.
-
Attributes: values for Variant Attributes such as
color: Redorsize: L. -
SKU: unique identifier of each variant. The primary role of SKUs is to act as the permanent, machine-readable key for Inventory tracking, ordering, and fulfillment.
We recommend that you don't frequently change any SKU. Doing so can trigger unwanted performance-impacting changes in related resources like Product Selections.
-
Attribute
- Same for all: ensures consistency across all Product Variants, as the value is maintained at the Product level.
- Combination unique: guarantees no two Product Variants share the same combination of specified Attributes. Use this constraint for variant dimensions such as color and size.
- Unique: ensures Attribute values remain distinct within the same Product.
enum Attribute to differentiate variant types and define optional Attributes specific to each type.Product Projection
The two most important aspects of a Product Projection are as follows:
-
Publishing state: choose between current data and staged data. For how the publishing state works with the API, see Product catalog APIs overview.
-
Contextual data: you can "project" the data to fit a specific context. For example, you can query a Product Projection to show the following contextual data:
- Offered Price for a Product Variant by using the price selection process.
- Localized Attributes (like name and description) in a specific language, such as German.
- Inventory availability for a specific warehouse or sales Channel.
Projecting Prices keeps only the Prices that are relevant to a context, such as a country, Customer Group, or distribution Channel. Your storefront then doesn't need to sort through the full, often long, price list of a Product.
Attribute Group
An Attribute Group lets you group related Attributes for easier data entry and define granular editing permissions. For example, you can bundle color, material, and fit into a Core Specifications group.
meta_title and meta_description into an SEO Metadata group). You can then restrict editing permissions to specific teams (such as the Marketing team).Depending on the use case, you can grant editing permission to all Attributes, only Attributes within selected Attribute groups, or none. Only teams with editing permissions can edit Attributes.
Attributes can be shared among several Attribute Groups for easier management.
Product Type
The primary purpose of Product Types is as follows:
-
Define custom Attributes: configure the set of custom fields (Attributes) that a Product or its variants can have.
-
Configure Attribute structure: define where the values of Attribute are stored:
- Variant Attribute: Attributes that vary per SKU (like color or size).
- Product Attribute: Attributes that are identical across all variants (like
brandorwashing_instructions).
-
Control Attribute behavior: specify the constraints and search behavior for each Attribute:
- Constraints: enforce rules such as requiring an Attribute or making its value unique across variants.
- Searchability: specify which Attributes should be searchable, filterable, or used for facets in search queries, which is important for the storefront experience.
When designing Product Types, Products within the same type should share a significant overlap in their Attributes, typically around 80% or above. If Products within the same type don't share many Attributes, many fields remain empty or not applicable. This makes data management more difficult.
Aim to strike a balance between the following approaches:
- Specific Product Types: fewer Attributes, more relevant to each Product. Too many granular Product Types can complicate maintenance and integration.
- Generic Product Types: encompass a wide range of Products with many Attributes, but often result in unused fields for each Product.
The choice between specific and generic Product Types depends on where Product data is managed:
- When managing data in the Merchant Center: use multiple specific Product Types. Using specific Product Types ensures only relevant Attributes are displayed in the Merchant Center.
- When managing data externally: generic Product Types are more efficient to reduce the number of types and Attributes to synchronize.
Product Selection
A Product Selection is a resource that establishes a relationship between a Store and its Products. It determines which Products are available within the scope of a given Store.
You can use a Product Selection in the following key scenarios:
- Assortment control: allow different geographic regions or distinct brands operating within the same commercetools Project to display only their relevant Products.
- Product visibility: temporarily limit or expand the catalog for specific sales Channels without modifying Product content.
Two modes of Product Selections are available for specifying a subset of your Project's product catalog. In both modes, you specify each Product individually, but you either include the Products or exclude them explicitly, whichever is more convenient for you.
-
Individual: each Product that should be part of the Product Selection is added explicitly.
-
IndividualExclusion: each Product that should not be part of the Product Selection is excluded explicitly.
Our recommended workflow when using Product Selections is the following:
- create initial set of Products with their Variants.
- create Product Selections.
- assign Products and optionally Product Variants to the Product Selections.
In case you have product assortments that are shared among Stores like
we recommend creating a separate, shared Product Selection for the Products that the Stores have in common:
A Product Selection can be assigned to multiple Stores. A Store's assortment depends on assigned Product Selections and if they are active or inactive for the Store; if a Product Selection is not assigned to a Store, all your Products will be available in the Store.
- If Product Selections of type Inclusion are assigned to a Store and if all are inactive, the Store's assortment will be empty. If at least one of the assigned Product Selection is active, the Store's assortment will include Products from the active Product Selection.
- If Product Selections of type Exclusion are assigned to a Store and all are inactive, the Store's assortment will include all Products. If at least one of the assigned Product Selection is active, the Store's assortment will not include Products from the active Product Selection.
- If Product Selections of type Inclusion and Exclusion are assigned to a Store and all are active, exclusion of Products takes precedence.
Product Tailoring
We recommend that you use localized fields when the content differences among your Stores are related to language translation. And use Product Tailoring when the differences pertain to marketing, legal, or region-specific content.
Deleting a Store permanently removes all associated Product Tailoring data.
You can use Product Tailoring in the following key scenarios:
- Store-specific naming: change the Product name, description, or slug (URL) to use locally appropriate terms.
- Asset customization: override the set of images or Product assets to feature models or settings that are relevant for a specific local market.
In addition to managing resource access, a Store is a tool for tailoring Product information. By combining Stores and Product Tailoring, you can customize Product details such as names, descriptions, slugs, images, and selected Attributes on a per-Store basis. This lets you present targeted and relevant catalog content for different Customer segments, regions, or brands.
By tailoring product information to different markets, you can increase visibility, customer loyalty, and number of orders.
Product Search
Category
Categories have the following key characteristics:
- Hierarchical structure: Categories are designed to form a tree structure. You can have multiple root-level Categories; such Categories don't have a parent Category. And each Category can have zero to several child Categories.
- Product assignment: Products are explicitly linked to one or more Categories. This ensures that a single Product can appear in multiple locations in the storefront navigation simultaneously.
Categories are essential for the following Customer-facing features and content organization:
- Storefront navigation: Categories form the primary menu structure that Customers use to browse Products on your storefront.
- SEO optimization: Categories include fields such as slug (the URL part) and meta description that are crucial for search engine optimization (SEO).
When structuring your catalog, start by defining a primary Category tree (typically for navigation), then construct additional Category trees as needed (for example, for promotions).
Products can belong to multiple Categories, and there can be different Category hierarchies for various purposes and Channels. Categories are embedded in the Product search, enabling you to filter and search for Products by their respective parent and child Categories. You can create Categories and customize existing ones based on your specific content, workflows, and metadata requirements.
Assigning Categories to Stores only controls Category visibility in Stores. It does not change discount or search behavior that is based on a Product's own categories.
Categories include built-in fields for search engine optimization, such as unique and internationalizable URL slugs.
Review
Reviews have the following key characteristics:
- Customer feedback collection: Reviews store the rating score, text of the Customer's comment, author's details, and metadata such as the date and title of the Review.
- Product enrichment: the Reviews API provides aggregated statistics, such as average rating and total count. These statistics are calculated from all linked reviews and displayed as ratings badges on Product pages.
- Moderation and visibility: Reviews include a State field such as
approved,pending, orrejected. This lets you moderate content before it becomes visible on the storefront. Review States are user-defined and configured in a State machine, letting you control the names and allowed transitions.
Product data management
This section describes how to manage your product data to make them available for purchase.
Evaluate requirements
Before modeling your Product catalog, clarify the necessary commerce integrations and their requirements. Pay close attention to any systems that produce or enrich Product information, as they may impose constraints such as required fields or text-length restrictions.
Evaluate additional requirements that can influence the data model, including search functionality, promotions, and pricing. For example, promotions may require specific Attributes to define Product Discounts accurately.
The system where Product information is maintained has a significant impact on the data model.
- If you manage Products in the Merchant Center, build a model that allows for easy Product edits and supports robust data governance. Set up Attributes as enums or booleans, or group Attributes for intuitive UI navigation.
- If Product details are managed externally (for example, in a PIM system), you can simplify the model and focus on the primary commerce requirements.
As a general guideline, only include data essential for commerce operations, though exceptions exist when additional Product data benefits downstream integrations.
Collect data
Standardize and cleanse the data
Before importing Product data, it's essential that you standardize and cleanse the data to ensure consistency and accuracy across your Product catalog. This process can include the following steps:
- Removing duplicate entries
- Correcting errors
- Supplementing missing information
- Formatting the data into a consistent, standardized structure
Import the data
Several flexible options are available for importing data to suit the following business needs, from manual updates to large-scale automated synchronization:
Merchant Center manual entry
Users can create and edit individual Products and variants directly within the Merchant Center UI. This method is ideal for making small, ad-hoc updates and managing unique Product details one by one.
Merchant Center file upload
For bulk operations, the Merchant Center allows non-technical users to import data by using either CSV or JSON files. This is suitable for initial data migration or periodic mass updates of Products, Prices, and Inventory without needing API development.
Synchronous Products API
Asynchronous Import API
Libraries and CLI tools
Enrich the Product data
Add detailed content to raw Product data, including marketing descriptions, high-quality images, videos, feature highlights, and Customer reviews. SEO optimization improves Product appeal and search visibility.
Categorize and structure your Products
Organize your Products into logical hierarchies, Categories, and taxonomies to facilitate easy navigation and provide an intuitive Customer experience.
Manage Attributes and variants
Define and manage specific Product attributes (size, color, weight, material) and handle Product variations or configurable bundles and kits.
Manage pricing and Inventory
Maintain accurate base pricing, promotional offers, real-time Inventory levels, and availability statuses, often by integrating with ERP or inventory management systems.
Manage workflow and governance
Implement localization and personalization
Customize Product information, including translations, regional pricing, and specific content, for different markets and Customer segments.