Custom fields

Add structured extra data to every product, such as technical specs, certifications, care instructions, or any field your catalog needs.

Custom fields (also called metafields) let you attach additional structured data to products beyond the built-in fields. Go to Products → Custom Fields in the sidebar to define the fields. Once defined, a Custom Fields section appears in the product editor, both when creating and editing a product, where you fill in the values per product. Values are available in the SDK on your storefront.

Don't see it in the sidebar? Custom Fields is a module, and it can be switched off for a store; some store types start with it off. Turn it back on under Settings → Modules.

When to use custom fields

Use caseExample fields
Technical specsWattage, Battery capacity (mAh), Screen resolution
Product detailsCountry of origin, Care instructions, Materials
ComplianceCE certification, Kosher, Allergens, RoHS compliant
Storefront displayShort tagline, Video URL, 3D model URL, Size guide URL
Internal opsSupplier SKU, Warehouse bin, Lead time (days)

Custom fields are not the same as attributes: attributes generate variant rows (each with its own SKU and stock), while custom fields hold descriptive data about the product as a whole, not options customers choose between. Custom fields of type Select, Multi-select, or Yes/No can also power storefront filters once you turn on Show in storefront filters. See Turn a custom field into a storefront filter.

The custom fields list

Go to Products → Custom Fields. When you haven't created any fields yet, you'll see the empty state:

Custom Fields page, empty state with "No custom fields found" and a New Custom Field button

Creating a custom field

Click New Custom Field and the dialog opens:

Create Custom Field dialog with Name field, Type dropdown (Text selected), Description, Allowed Values, Sales channels, and Advanced Options sections

FieldWhat it does
NameRequired. The display label shown in the product editor and in the product table column (e.g. Warranty Info, Material).
TypeThe data type. Determines how the field is rendered in the editor and how it's returned in the SDK.
DescriptionOptional. Helper text shown below the field in the product editor, describing what merchants should fill in.
Allowed ValuesOptional. Type a value and press Enter to add it. When set, the field becomes a constrained list instead of free-form input, which is useful for Select and Multi-select types.
Sales channelsPublish the field definition to specific connected channels immediately after creation. Can be changed later.
Advanced OptionsCollapsed by default. Contains a Default value; Customer Input, which turns the field into a buyer-facing input shown on the product page, with a picker to choose which products it applies to; and Show in storefront filters (Select, Multi-select, and Yes/No fields only), which exposes the field as a storefront filter. See Turn a custom field into a storefront filter.

Field types

Click the Type dropdown to choose from 15 field types:

Type dropdown open showing all 15 field types: Text, Long Text, Number, Yes/No, Date, Date & Time, JSON, URL, Color, Dimension, Weight, Image, Gallery, Select, Multi-select

TypeDescriptionExample
TextSingle line of textSKU from supplier, short tagline
Long TextMulti-line text (textarea)Care instructions, warranty terms
NumberNumeric valueWattage (65), Battery mAh (10000)
Yes/NoTrue or false toggleIs organic, Dishwasher safe
DateDate picker (date only)Expiry date, Release date
Date & TimeDate and time pickerEvent start, Availability window
JSONStructured JSON blobSpec sheets, nested configs
URLWeb address with validationVideo URL, 3D model, size guide
ColorHex color pickerPrimary brand color
DimensionLength/size with unit12.5 cm × 7 cm
WeightWeight with unit1.2 kg
ImageImage URL or media referenceCertification badge, alternate photo
GalleryMultiple image referencesAdditional product photos
SelectPick one value from a defined listCondition: New / Refurbished / Open box
Multi-selectPick several values from a listCertifications: CE, RoHS, FCC

For Select and Multi-select types, define the list choices in Allowed Values before saving.

Buyer personalization (customer input)

Custom fields can be flipped into buyer-facing inputs: fields that your customers fill in before adding the product to their cart. This is useful for personalised products:

Use caseExample
Engraving or monogramCustomer types the text to engrave
Custom colorCustomer picks a hex color or enters a name
Gift message on productMessage printed on the item itself
Photo uploadCustomer uploads a reference image

To turn any custom field into a buyer-facing input:

  1. Open the field's settings (click the edit icon next to the field).
  2. Expand Advanced Options.
  3. Turn on Customer Input.
  4. Choose which products the input applies to: all products or a specific selection.

When Customer Input is on, the field appears as a form input on the product page in your storefront. The buyer's value is saved as a line-item detail in the order, and you can see it in the order detail view next to the product.

Note: Customer Input is for collecting buyer choices at product level. For collecting information at checkout (delivery notes, gift wrapping, tax ID), use Checkout custom fields instead.

Turn a custom field into a storefront filter

Custom fields of type Select, Multi-select, or Yes/No can double as storefront filters, the same kind of facet customers already use for categories, brands, and price. A Condition field (New / Refurbished / Open box) becomes a checkbox group; a Kosher Yes/No field becomes a toggle shoppers can filter by.

Filtering is available only for Select, Multi-select, and Yes/No fields, not for free-text, number, or the other types.

To turn a field into a filter:

  1. Create or edit the custom field, and set its Type to Select, Multi-select, or Yes/No.
  2. Expand Advanced Options.
  3. Turn on Show in storefront filters.
  4. Click Save.

Advanced Options in the custom field dialog showing the "Show in storefront filters" toggle next to Required and Customer Input

Once enabled, the field is exposed to your storefront through the SDK. Your storefront fetches which fields are filterable, then passes the shopper's chosen values back when listing products:

// 1. Discover which custom fields are filterable
const { definitions } = await brainerce.getPublicMetafieldDefinitions();
const filters = definitions.filter((d) => d.filterable);

// 2. List products matching the values a shopper picked
const { data: products } = await brainerce.getProducts({
  metafields: { condition: ['Refurbished'], kosher: ['true'] },
});

Values combine as AND across fields, OR within a field, so the call above returns Refurbished products that are also Kosher. For Yes/No fields, pass the strings "true" / "false".

Building the storefront yourself? The developer guide Filter by custom fields covers the full facet-rendering pattern, and Validation rules lists the exact server behavior.

Accessing custom fields in your storefront

Custom fields are returned on the product object as a metafields array: one entry per field, keyed by the field's key:

import { getProductMetafieldValue } from 'brainerce';

const product = await brainerce.getProductBySlug(slug);

// Read a value straight from the metafields array:
const warranty = product.metafields?.find((m) => m.definitionKey === 'warranty_info');
console.log(warranty?.value); // "1-year limited"

// …or let the typed helper parse it (numbers, booleans, dates):
console.log(getProductMetafieldValue(product, 'wattage')); // 65

The key is derived from the field Name you set, lowercased with underscores (e.g. "Warranty Info" → warranty_info).

Filling in values on a product

Once you've defined your custom fields, open any product (create new or edit existing). A Custom Fields section appears in the right column of the product editor. It splits into two groups:

  • Product Attributes are all the active attribute fields (not buyer-facing). Fill in specs, certifications and descriptions, which are stored on the product and returned via the SDK.
  • Buyer Input Fields are fields customers fill in on the product page. Only fields set to applies to all products show at creation time; product-specific input fields can be assigned and filled in after the product is saved.

Fill in the values and click Save, and they're saved together with the rest of the product.

Generate product specifications with AI

The Custom Fields card in the product editor has an AI specs button that reads the product's own description and suggests specifications (material, dimensions, capacity, weight, warranty, what's in the box) as custom fields you can add in one click.

You will only see the button when the Google app is installed, and only when editing a product you have already saved. It is not there while you are creating a product, because it reads the saved description, and it is not there on a store without that app, because product specifications are what Google's shopping feed calls product details. If the button is missing, that is why. See Get found on Google.

How it works:

  1. Open a saved product and find the Custom Fields card in the right column.
  2. Click AI specs. It reads the description that is currently saved on the product, not what you have just typed and not saved.
  3. Tick the suggestions you want. Everything is ticked by default.
  4. Click Apply. Each one you kept becomes a custom field on that product, creating the field definition if your store does not have it yet.

Nothing is saved until you click Apply. Generating suggestions changes nothing, so it is safe to run on any product just to see what it finds.

It never invents a fact. It only extracts what the description already states, word for word or close to it. It deliberately skips marketing claims like "premium quality" or "comfortable", and it skips price, availability and shipping, which come from their own fields. It also skips any spec you already have a custom field for, so running it twice does not create duplicates.

An empty or vague description gets you nothing, and that is the correct answer. A product with no description returns no suggestions and costs you no AI credits. A description that is pure marketing copy returns an empty list rather than invented specs. If you want specs, write the facts into the description first.

Two more limits worth knowing before you use it on a big catalog:

  • Eight suggestions per product, maximum, and only the first 1,200 characters or so of the description are read. A very long description may not be mined to the end.
  • It runs on one product at a time. There is no bulk "generate specs for every product" action, and generating costs AI credits like other AI features. See AI credits.

Once applied, the fields behave like any other custom field: they show in the product editor, come back through the SDK on your storefront, and are sent to Google as product details in your product feed.

What's next?

  • Add a product to create a new product and fill in custom field values in the same step.
  • Bulk import from CSV to populate custom field values via CSV column mapping.
  • Attributes are for properties that generate product variants (each with its own SKU and stock), a different job from custom fields.
  • Checkout custom fields collect extra information from buyers at checkout.
  • Order custom fields add internal tracking fields to order records.