**Custom fields** let you store extra details about a product or a variant that don't have a place in the standard form – a material, a care guide, a weight, a list of scent notes. You decide what each field is called, what kind of value it holds, and whether shoppers can see it.

They replace the old free-text variant attributes. Existing attributes keep showing on your storefront, and are converted to custom fields the first time you open the product in the editor.

## Where to find them

Open **Catalog → Custom fields** to create and manage your fields. (They used to live under Settings; they moved to Catalog next to your products.) You fill in the values on each product's edit page, in the **Custom fields** section.

## Create a field

1. Go to **Catalog → Custom fields** and add a new field, or choose **Create new field** from a product's Custom fields section.
2. Pick whether it is for **products** (each product holds one value) or **variants** (each variant holds its own value).
3. Give it a name, and pick a type.
4. Save.

> **Note:** The type and the key (the short identifier made from the name) can't be changed once the field exists. Everything else – the name, description, options, and the settings below – can be edited later. A key uses lowercase letters, digits, `-` and `_`.

You can create up to 128 fields for products and 128 for variants.

## Field types

| Type | Use it for |
|------|-----------|
| Single-line text | A short value such as a brand line or a model name |
| Multi-line text / Rich text | Longer text such as care instructions |
| List of single-line texts | Several short values, such as scent notes |
| Integer / Decimal | Numbers such as a pack size or a rating |
| Measurement | A number with a unit, such as 1.5 kg |
| Yes / No | A true-or-false detail such as "Organic" |
| Date / Date and time | Dates such as a harvest date |
| URL | A link, such as a manual |
| Color | A color picked from a color picker |
| Choice / List of choices | A value picked from options you define, such as Wool, Cotton, Silk |

Choices store the option itself, so renaming an option later doesn't break the products that use it. Removing an option archives it – products that already hold it keep the value.

## Choose what shoppers see

Each field has three settings:

| Setting | What it does |
|---------|--------------|
| **Shown on storefront** | Shoppers (and your storefront's public API) can see the field. **Off by default**, so internal notes such as supplier costs never appear by accident. |
| **Usable as filter** | Shoppers can filter product lists by this field. Available for choices, numbers, measurements, and yes/no fields, and only while the field is shown on the storefront. |
| **Translatable** | Text values can be translated into your store's other languages. Available for text fields. |

You can also hide a single value without hiding the whole field: the field stays visible for other products, but not for this one.

## Fill in values on a product

1. Open the product.
2. In **Custom fields**, choose **Add field** and pick a field, then enter its value. Drag to reorder fields.
3. For variant fields, fill in each variant. **Copy custom fields to all variants** applies the same values to every variant at once.
4. Save the product.

Use **Clear** to remove a value you no longer want.

### When variants get recreated

Adding or removing an option (like a new size) makes the product's variants be recreated. Your variant custom field values are carried over automatically: when you add an option, each old variant's values are copied to the new variants it became. If you remove an option and the merged variants disagree, the oldest variant's value is kept – and if any values would be lost, you're asked to confirm before saving.

## Translate custom fields

If the **Translations** module is on, you can translate field names, descriptions and option labels on the field itself, and translate text values on each product's **Translations** tab. An empty translation means "use the original value". You can also translate missing values with AI, which runs only when you ask for it or when you switch on a new language.

## Filter products and build collections

Fields marked **Usable as filter** (and shown on the storefront) become filters on your storefront's product lists.

You can also build a **collection** from them: in a collection, choose **By custom field values** and add rules – any of these values, a number range, or yes/no. A product is included automatically when it matches every rule. If a rule's field is later archived or stops being a filter, the collection shows no products until you fix or remove that rule, so a broken rule never shows the wrong products.

Text fields can't be filtered directly. To make a text field filterable, open it and use **Convert**, which turns the distinct texts into choices and rewrites the values for you. Near-duplicates such as "Wool" and "wool " are suggested as one option.

## Import and export with CSV

Product CSV files have one column per custom field. When you import a file with columns that match no existing field, you're asked to pick a type to create each new field or skip the column before the import starts. New fields from an import are not shown on the storefront until you turn that on. See [Import products in bulk](/help/products/import-products).

## Archive or delete a field

Deleting a field **archives** it: it disappears everywhere but keeps its values, and you can restore it as it was. To remove it for good, purge an archived field and confirm the number of values that will be deleted.

## What's next

- [Set up product variants](/help/products/product-variants)
- [Organize with categories & collections](/help/products/categories-and-collections)
- [Import products in bulk](/help/products/import-products)