Skip to main content
In this document, you’ll learn about the structural models that organize the shared catalog, all of them native to Medusa’s Product module.

Product variant

A variant is a purchasable configuration of a master product, represented by the ProductVariant data model (table product_variant, id prefix variant). Variants are generated from a product’s options, including Mercur attributes marked as variant axes, and hold the SKU-level structure of the catalog entry.
Offer-based inventory and pricing live on the offer, not the variant. The variant defines the shared catalog structure. Each store’s stock and price come from its own offer.

Categories & collections

Products are organized with Medusa’s native grouping models: Assign products to a category with assignProductsToCategoryWorkflow, which keeps each product in exactly one category at a time.
Categories participate in the marketplace layer too: the category_seller link scopes which stores a category is associated with, mirroring the product allowlist.