> ## Documentation Index
> Fetch the complete documentation index at: https://docs.merchantops.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Core concepts

> The vocabulary of MerchantOps — products, variants, types, the lakehouse, jobs, and enrichment.

## Catalog model

<ResponseField name="Product" type="the sellable item">
  A product has a stable `key` within your organization and carries a name,
  product type, brand, and a list of attributes (its `source` records where the
  data came from). Products are **versioned** — the latest (or production)
  version holds the richest data, and enrichment adds new versions rather than
  overwriting. See [Versioning](/catalog/versioning).
</ResponseField>

<ResponseField name="Variant" type="a buyable variation">
  A specific purchasable variation of a product — e.g. a size/color/width
  combination. Variant keys accept merchant formats (dots, spaces, slashes).
</ResponseField>

<ResponseField name="Product Type" type="the template">
  A template that links a product to the property definitions it should carry.
  Product types must exist before products that reference them.
</ResponseField>

<ResponseField name="Property Definition" type="the attribute schema">
  Defines a single attribute: its type (enum/text/number/boolean), whether it's
  required, facetable, or searchable, and whether it lives at the product or
  variant level. Property definitions must exist before the product types that
  reference them.
</ResponseField>

<ResponseField name="Brand" type="reference data">
  Brand identity is shared reference data across the platform.
</ResponseField>

## Data flow

<ResponseField name="Lakehouse" type="shared knowledge base">
  A shared store of product, technology, and document data used to enrich your
  catalog. Enrichment searches it before scraping the open web.
</ResponseField>

<ResponseField name="Job" type="tracked batch operation">
  Imports, enrichment, and exports run as jobs with `total`, `processed`, and
  `failed` counters plus a computed progress percentage. Track them on the
  **Jobs** page or via the API.
</ResponseField>

<ResponseField name="Enrichment" type="the automated pipeline">
  For each product, the pipeline searches the lakehouse, finds and scrapes the
  brand site, generates missing content with an LLM, and standardizes attributes.
  Sources merge by priority: **brand site > lakehouse > merchant input >
  AI-generated.**
</ResponseField>

## Pricing & publishing

<ResponseField name="Price record / Price batch" type="pricing">
  Prices are managed as records and grouped into batches for review and
  scheduled publishing. MAP (Minimum Advertised Price) policies are tracked
  separately as legal/compliance data.
</ResponseField>

<ResponseField name="Publishing target" type="where catalog goes live">
  A destination (e.g. a VTEX store and environment) a batch is published to.
  Publishing is batched, idempotent, versioned, and audited per target.
</ResponseField>
