Catalog products and variant selection

A catalog product groups concrete product variants into one buyer-facing presentation. A blue T-shirt can therefore offer four sizes on one detail page while price, availability, and the cart continue to use the selected variant.

Keep the concepts separate

ConceptOwnsDoes not own
Product familyTechnical attribute schema and variant axesBuyer-facing grouping, URL, and publication
Product variantSKU, price target, stock target, and cart itemShared product-detail identity
Catalog productBuyer-facing identity, shared product number, and allowed variantsVariant SKU, price, stock, and checkout decisions
Catalog product publicationChannel visibility, search visibility, and presentation variantVariant publication or lifecycle
Catalog product site routeCanonical URL and presentation context per site and localeProduct identity or a forced purchase variant
Product collectionCurated or dynamic merchandising selectionVariant-family rules
BundleA sellable composition of several itemsBuyer-facing variant family

Example: a T-shirt with colors and sizes

Create every purchasable combination as a product variant. A blue T-shirt in S, M, L, and XL therefore consists of four variants. The catalog product connects those variants with any other colors that should be selectable on the same detail page.

The family_axes selection mode requires all members to belong to one product family. That family defines the variant axes, such as color and size.

Distinguish product number, key, and SKU

The optional product number identifies the shared catalog product, for example TSHIRT-BLUE. It is unique within a tenant and can be used in administration and public catalog product searches. Each purchasable size keeps its own SKU, such as TSHIRT-BLUE-M.

The technical key is generated from the name when the catalog product is created and remains immutable. It supports internal contracts and is neither the product number nor the URL. You can add or change the product number later, while the site route controls the URL independently for each site and locale.

Which variant is shown first

Workspace evaluates selection input in this order:

  1. explicit URL options,
  2. proven search, filter, or collection context,
  3. site-route presentation context,
  4. the catalog product publication's presentation variant,
  5. the first public purchasable variant, followed by the first public variant in deterministic order.

A search for red T-shirts may therefore present the red option. A size is carried from context only when its axis is explicitly configured as contextual. Otherwise explicit_only applies and the visitor must choose a size.

If the configured presentation variant is no longer public, Workspace uses the next allowed variant in the fixed order. An explicitly selected combination that remains public but is unavailable stays visible; Workspace does not silently replace its color or size.

Presentation is not a purchase decision

The public response separates two fields:

  • presentationVariantId controls the initial presentation, such as imagery and the preliminary pricing request.
  • resolvedVariantId is present only when the selection identifies exactly one concrete variant.

selectionStatus is one of none, partial, resolved, invalid, or unavailable. missingAxes identifies choices that are still required. Only a fully resolved variant may be added to the cart together with the current server pricing revision.

URLs per site and locale

Catalog product identity is independent of a URL. Each site and locale may therefore have its own catalog product site route. The canonical URL has no option parameters; color and size are presentation state and are not included in the sitemap.

An active route must be unique per site and locale. If Workspace detects multiple active targets for the same normalized path, it serves none of them. Resolve the conflicting routes in administration.

Managing files and assets

The Files tab manages files uploaded for the catalog product. Workspace binds them to the current catalog product so that they are not accidentally offered for selection on another product.

The Assets tab links one of these files to PIM metadata such as purpose, status, ordering, and translated alternative text. Media purposes are maintained separately as master data. If files, purposes, or other required master data are missing, the relevant tab shows a readiness notice with a link to the appropriate next step.

Linking a file does not publish it. Only the explicit asset publication action marks it as released; unpublishing returns it to draft. Both actions are audited. The asset is delivered publicly only while the linked storage object is public and the catalog product remains approved in the current sales channel.

Collections and search results

Lists and Site components separate their result target from their link target. resultMode chooses whether an item represents a catalog product or a product variant. linkMode chooses whether the link opens the shared catalog product page or a concrete variant. A catalog product link carries proven axis context into the shared selection page.

Check publication readiness

A catalog product publication does not publish its members. Every variant still needs a valid variant publication and must satisfy the existing lifecycle, content, price, media, and availability contracts.

Before approval, Workspace checks at least that members exist, family_axes uses one family, the presentation variant is a member, member variants are public in the selected channel, no approved listed catalog product overlaps in that channel, and released catalog product content exists.

Removed, hidden, or unpublished variants are never returned as candidates or diagnostic details by the public API.

While any catalog product publication is approved, its member set is locked. Unpublish every approved channel publication before adding, changing, or removing variants.