Skip to main content
Product attributes extend the master catalog with structured, typed data — “Material: Cotton”, “Weight: 10kg”, “Waterproof: yes”. The operator defines the attribute catalog; products reference it. Attributes power filtering, enforce consistent values across sellers, and — for select attributes — can drive variant generation.

Attribute types

Attribute fields

Each select attribute owns a ranked list of values (ProductAttributeValue), managed by the operator in the Admin Panel.

Global vs product-scoped

  • Global attributes (product_id = null) live in the marketplace-wide catalog. They can be attached to any product and linked to categories, so the right attributes surface for the right product types.
  • Product-scoped attributes are created inline from a single product’s form — a one-off axis or field that doesn’t belong in the shared catalog. They don’t appear in the global attribute list.

Variant axes and native product options

Attributes marked is_variant_axis are not a parallel system — a variant-axis attribute is backed by a native Medusa global product option. The attribute and its values mirror one-to-one onto a ProductOption and its option values:
  • A global axis attribute maps to a shared product option that many products link to, each restricted to its selected subset of values.
  • A product-scoped axis attribute maps to an exclusive, product-owned option.
Because axes are real product options, variants are built with Medusa’s standard machinery — variants[].options maps axis titles to value names, exactly as in a plain Medusa project. Non-axis attributes never become options; they attach as plain value links. Only multi_select attributes can be variant axes — an axis needs an enumerable set of values to combine into variants.

Attaching attributes to products

Products manage their attributes through a single batch endpoint that adds, removes, and updates in one request:
An entry either references an existing attribute by id (with the selected value_ids, or a value for text/unit/toggle types) or defines an inline one by title — created product-scoped on the fly. At product create time, the same shape is passed as a unified attributes[] array.

Who manages what

Attribute changes on products submitted by vendors flow through the same change-request pipeline as other product edits.

Next steps

Products

The master catalog attributes describe.

Product Requests & Approvals

How attribute edits are reviewed.