Skip to main content
In this document, you’ll learn the difference between global and inline attributes and how an attribute becomes a storefront filter.

Scope

Every ProductAttribute is either global or inline, decided by its product_id field:
A global attribute is defined once and attached to many products. An inline attribute is created in the same step it is attached and only ever describes that one product. It is useful for the occasional one-off field that doesn’t belong in the shared vocabulary.
Attributes describe products in the shared master catalog. They are never owned by a store. A seller sells against a master product through an offer, and the product’s attributes come from the catalog, not from the seller.

Filtering

An attribute with is_filterable set to true is exposed as a storefront filter, letting shoppers narrow the catalog by its values. Leave it false for descriptive-only attributes that shouldn’t appear as facets.
Filtering pairs naturally with variant axes: a filterable multi_select axis like Color both generates variants and lets shoppers filter by them. A descriptive text attribute like Care instructions is usually left non-filterable.