Skip to content
Last updated

Family

Overview

A Family is a template that defines the data structure for a group of similar products. Families specify which attributes and categories apply to products, along with requirement levels that are enforced at publish time.

Think of families as product types: "Electronics", "Clothing", "Furniture"—each with different relevant attributes and categorization rules.

Basics

Core fields

name — Display name for the family (e.g., "Consumer Electronics", "Winter Apparel").

description — Optional explanation of what products belong in this family.

parentUuid — Optional parent family for hierarchical organization.

Hierarchy

Families can be organized hierarchically. A parent family might be "Clothing" with children like "T-Shirts", "Pants", " Outerwear".

Child families inherit all attribute and category associations from their parent, and from their parent's parent, and so on up the chain. This allows you to define common requirements at a high level and add specifics as you go deeper.

For example:

  • "Clothing" family requires brand attribute
  • "T-Shirts" child family adds size and color attributes
  • Products in "T-Shirts" must satisfy requirements from both families

Inherited associations cannot be overridden at the child level—they accumulate.

Attributes

Associate attributes with a family to define what product characteristics are tracked. Each association includes:

requirementLevel — Controls validation at publish time:

LevelMeaning
mustAttribute is required—product cannot publish without it
shouldAttribute is recommended but not blocking
mayAttribute is optional
mustNotAttribute must not be present

isAutoPopulated — When true, new products created in this family automatically receive this attribute association.

Categories

Associate categories with a family to define classification rules. Uses the same configuration as attributes:

requirementLevel — Same levels as attributes (must, should, may, mustNot).

isAutoPopulated — When true, new products in this family are automatically assigned to this category.

Lifecycle

Families use activation rather than publishing.

Status values

StatusDescription
draftInitial state, not available for products
activeAvailable for assigning to products
inactiveTemporarily disabled, existing products unaffected
removedSoft-deleted

Transitions

TransitionValid fromResults in
activatedraft, inactiveactive
deactivateactiveinactive
removedraft, active, inactiveremoved
restoreremovedinactive

Error codes

CodeDescription
FAMILY_NOT_FOUNDFamily does not exist
FAMILY_INVALID_TRANSITIONLifecycle transition not allowed
FAMILY_REMOVEDCannot modify a removed family
FAMILY_NAME_REQUIREDName field is required
FAMILY_NAME_EMPTYName cannot be empty