Skip to main content
Products in MerchantOps are versioned. Instead of overwriting a product each time it changes, the catalog keeps successive versions of it, so you can compare, label, and roll forward without losing earlier data. This page explains how versioning works and which version to trust. For the shared vocabulary, see Core concepts.

Versions of a product

A product’s key stays the same across every version, so all versions of a product share one identity. Each version has an auto-incrementing version number starting at 1 and, optionally, a note describing what changed and which version it was created from — an audit trail of how the product evolved.
key
stable across versions
The identifier shared by every version. Records with the same key, in your organization, are versions of the same product.
version
auto-incrementing number
A number that increases with each new version, starting at 1.

Enrichment adds versions, it doesn’t overwrite

Enrichment — and edits generally — create a new version rather than modifying the existing one in place. That means an enrichment run never destroys the data you started with: the merchant-supplied version remains, and the enriched result lands as a new version alongside it.
Enrichment merges data from several sources by priority — brand site > lakehouse > merchant input > AI-generated — and records the result as a new version.

The latest and production versions hold the richest data

Because each pass adds to what came before, the latest version is usually the most complete. You can also mark one version as the production version with the reserved production label — that’s the canonical version, and only one version of a product may hold the label at a time.
When you need a product’s best data, read the latest or production-labeled version. Some fields — such as brand and identifiers — are populated during enrichment, so they may be present only on an enriched version and absent from an earlier merchant-input one.
Because brand and identifier fields may only exist on enriched versions, don’t assume an early or unenriched version carries them. If a value looks missing, check the latest or production version before concluding it was never set.

How versions relate to publishing

Publishing is version-aware: what goes to a publishing target is a specific version’s content, and a product’s publish status (draft / live / changed) reflects whether its current content matches what was last published. See Products & variants for the publish-status summary.

Display groups & labels

How the production label marks the canonical version.

Products & variants

What a product version holds and how variants relate.