Contents

Wick's scent notes, family glows, burn label and safety text read product and variant metafields in the custom namespace, the one Shopify admin uses when you create a definition. You don't need an app or any metaobjects. You only need the metafields for the features you use: a soap shop can skip the burn fields, a diffuser brand the strength meter. Every feature hides when its data is empty, and most blocks also have fallback fields you can fill instead (chapters 8 and 11), so nothing breaks while you fill them in.

Step 1: create the product metafield definitions

In admin, go to Settings › Custom data › Products and click Add definition for each row you need:

  1. Type the Name (yours to choose; it's what you see when you edit a product).
  2. Check the Namespace and key under it and change it to exactly the key in the table. Shopify suggests custom. plus the name, so a name like "Scent family" gives custom.scent_family, but "Top" would give custom.top, which the theme won't find. Keys are case-sensitive.
  3. Click Select type and choose the type in the table. For the three note fields, choose Single line text and then List of values; for everything else marked single line text, choose One value.
  4. Add the validation in the table where there is one (for Scent family, turn on Limit to preset choices and add the eight families), then Save.
NameNamespace and keyTypeValidationExampleUsed by
Top notescustom.top_notesSingle line text, List of valuesFig leaf, Bergamot, Pink pepperThe Scent notes label, the notes line on cards, the gift box items (chapter 8)
Heart notescustom.heart_notesSingle line text, List of valuesGreen fig, Cedar, JasmineAs above
Base notescustom.base_notesSingle line text, List of valuesAmber, Vetiver, MuskAs above
Scent familycustom.scent_familySingle line text, one valueLimit to preset choices: Fresh, Floral, Fruity, Woody, Gourmand, Herbal, Citrus, SmokyWoodyThe family tag and dot, the glow in cards and the gallery, the scent chips and shop by scent links (chapter 9), compare
Scent strengthcustom.scent_strengthIntegerMinimum 1, maximum 54The strength meter ("Strong, 4 of 5"), compare
Smells likecustom.smells_likeSingle line text, one valuea fig tree after a summer storm"Smells like a fig tree after a summer storm." on the product page and the spotlight, and on cards with Line under the title set to Smells like
Burn timecustom.burn_timeInteger (hours)Minimum 150The burn label's big row, "50 hours of burn time" (chapter 11), compare
Waxcustom.waxSingle line text, one valueSoy and coconut blendBurn label
Wickcustom.wickSingle line text, one valueCotton, lead-freeBurn label
Vesselcustom.vesselSingle line text, one valueAmber glass, reusableBurn label
Net weightcustom.net_weightWeight220 gBurn label (it prints with its unit)
Dimensionscustom.dimensionsSingle line text, one value8 × 9 cmBurn label
Safety and allergenscustom.safety_infoRich textYour CLP or IFRA statement and allergen listCare and safety: "Safety and allergens" (chapter 11)

These are optional, for the features named:

NameNamespace and keyTypeExampleUsed by
Care instructionscustom.care_instructionsRich textSoap care for one productCare and safety: replaces the block's care text for that product (chapter 11)
Subtitlecustom.subtitleSingle line textHand-poured soy candle in amber glassThe Product metadata block set to Subtitle (falls back to the product type)
Card detail linecustom.card_metaSingle line textSoy candle · 220 gThe card's detail line, with Theme settings › Product cards › Detail line set to Metafield

The Lather preset's burn label ("In the bar") reads three more. Create them if you use that preset's rows:

NameNamespace and keyTypeExampleRow
Cure timecustom.cure_timeInteger (weeks)6Cure time, the big row: "6 weeks"
Oilscustom.oilsSingle line text (one value, or a list)Olive, coconut and sheaOils
Essential oilscustom.essential_oilsSingle line text (one value, or a list)Lavender and rosemaryScented with

A burn label row can read any metafield you create, so you can add your own rows the same way, such as custom.melt_pool or custom.diffuser_life (chapter 11).

How the theme reads what you type:

  • Notes: a list field holds one note per entry. A single line text with the notes separated by commas also works. The product page prints them with dots between them, the first note as you wrote it and the rest in lower case ("Fig leaf · bergamot · pink pepper"), so write the first note with a capital and don't rely on capitals in the others.
  • Scent family is read without regard to capitals ("Woody", "woody"), but the scent filter and the shop by scent links match the value exactly as stored, so keep to the eight preset choices. A family outside the eight still prints, as written, but glows in candlelight and gets no family color.
  • Scent strength shows only for a whole number from 1 to 5. Its words ("Whisper, Soft, Medium, Strong, Room-filling") come from the Scent notes block.
  • Smells like is written to follow the words "Smells like", in lower case ("a fig tree after a summer storm"). The theme adds a full stop unless you end with ., ! or ?.
  • Burn time and Cure time are plain numbers; the unit comes from the burn label row ("hours", "weeks").

Step 2: variant metafields (optional)

Some facts belong to one variant: a candle sold in three sizes has three weights and burn times, and a soap sold in two scents has two sets of notes. Go to Settings › Custom data › Variants and add any of these, with the same namespace, key and type as the product's:

Namespace and keyWhat the variant's value does
custom.top_notes, custom.heart_notes, custom.base_notes, custom.scent_family, custom.scent_strength, custom.smells_likeWins over the product's on the product page (Scent notes updates as the shopper picks), on cards and in the gallery glow. A candle whose sizes all smell the same needs only the product's.
custom.net_weight (Weight), custom.burn_time (Integer)The detail line on the variant picker's option tiles: "220 g · 50 hours". Compare and the burn label also prefer the variant's value.

Any burn label row reads the selected variant's metafield of the same key first and the product's when the variant has none, and the label follows the shopper's pick. Fill the product's value too, for the variants that have none of their own.

Fill a variant's metafields in admin by opening the product, clicking the variant, and scrolling to Metafields.

Step 3: fill them in

Open a product in admin and scroll to Metafields: every definition you created is listed there. To fill many products at once, use Bulk edit from the products list and add the metafield columns.

What shows without the data

MissingWhat happens
Notes, family, strength and smells likeNo Scent notes label for shoppers, unless the block's fallback fields are filled (chapter 8); no notes line on cards; the theme editor shows a sample tagged "Sample"
Scent familyNo family tag; cards and the gallery glow in candlelight (with Glow behind products set to Scent family color); the product can't be found by the scent filter
Scent strengthNo strength meter
Burn label fieldsEach row without a value is hidden, unless the row has a fallback Value (chapter 11); with no rows at all, the burn label hides
Safety and allergensThe block's Safety text shows instead; with neither (and no warning line), the safety row is left out
Care instructionsThe block's Care text shows, under the block's Care heading
SubtitleThe product type shows