Contents

Roast's coffee features read data you keep in Shopify: product metafields in the custom namespace, one metaobject definition (producer), one collection metafield and three product tags. None of it is required. Every card, line and stamp shows only the parts that have data, so a product with no coffee data still looks finished. In the theme editor, a section or block with no data shows sample values under a dashed note saying which metafields it needs; shoppers never see the samples.

Step 1: create the product metafield definitions

In Shopify admin go to Settings › Custom data › Products › Add definition. For each row, type the namespace and key exactly as shown (for example custom.tasting_notes in the "Namespace and key" field), choose the type, add the validation where one is given, and save. Then fill the values on each product, in the Metafields card at the bottom of the product page in admin.

Namespace and keyTypeValidationRead by
custom.originSingle line textCard origin line, product origin line, search suggestions, filters
custom.regionSingle line textProduct origin line, Origin card in Cupping notes
custom.processSingle line textPreset choices: Washed, Natural, Honey, Anaerobic and so onCard origin line, product origin line, Origin card, search suggestions, filters
custom.varietySingle line textOrigin card
custom.altitudeSingle line textOrigin card ("2,100 m")
custom.harvestSingle line textOrigin card ("December 2025")
custom.tasting_notesSingle line text, list of valuesCard notes, buy box notes line, search suggestions, filters (as chips)
custom.flavour_profileDecimal, list of valuesMinimum 0, maximum 5The flavour profile radar
custom.roast_levelIntegerMinimum 1, maximum 5Card roast dots, buy box roast line, roast meter, filters
custom.brew_methodsSingle line text, list of valuesPreset choices, see belowBuy box roast line, "Best for" chips, How to brew it
custom.recommended_grindIntegerMinimum 1, maximum 7Roast and brew card, How to brew it
custom.roast_dateDateFreshness stamps and the Freshness block
custom.lotSingle line textProduct image stamp, Flavour profile card, Freshness block
custom.producerMetaobject reference (Producer)Origin card's Producer row, Producer chip, Image with text
custom.label_colorColorThe product's own card label color
custom.sizeSingle line textThe size beside the card price ("250 g")
custom.restock_noteSingle line textLine on a sold-out card ("Next lot lands in December")

What each value looks like:

  • custom.tasting_notes: one note per value, in the order you want them read: Peach, Jasmine, Raw honey. Cards and the buy box join them as "Peach, jasmine and raw honey".
  • custom.flavour_profile: exactly five numbers from 0 to 5, such as 4, 4.5, 2, 1, 3.5. They follow the order of Theme settings › Tasting and roast › Flavour profile axes (Sweetness, Acidity, Body, Bitterness, Finish by default). The profile is all or nothing: with fewer than five values the radar is not drawn. Extra values are ignored and values outside 0 to 5 are clamped.
  • custom.roast_level: 1 is the lightest, 5 the darkest. The names come from Roast level names (Light, Medium-light, Medium, Medium-dark, Dark), followed by the Roast scale word ("Light roast").
  • custom.brew_methods: the brewers it suits, such as Pour over, AeroPress, Cold brew. Roast draws a pictogram for Pour over (or Filter, V60, Chemex), AeroPress, Plunger (or French press), Espresso, Stovetop (or Moka pot), Cold brew, Teapot, Gaiwan and Hot chocolate. Other names show without one. The buy box names the first two; the Roast and brew card shows up to three chips.
  • custom.recommended_grind: 1 is extra fine and 7 extra coarse, named by Grind names and Grind comparisons ("Medium-fine, like fine sea salt").
  • custom.roast_date: the day this lot was roasted. See chapter 8 for how long a "Roasted 20 Oct" stamp stays up and what a date in the future does.
  • custom.label_color: used only when the palette's text reads on it at 4.5:1 or better, or white text does (the label then switches to white). A color that fails both is ignored and the card keeps its palette label color, so a pale yellow or a mid grey can't make a card unreadable.
Tip

For values you filter on (process, origin, tasting notes, brew methods), use the Limit to preset choices validation, so every product spells them the same way. Filters group values by their exact spelling.

Step 2: create the Producer metaobject

Go to Settings › Custom data › Metaobjects › Add definition. Name it Producer; its type must be exactly producer. Add these fields (the key is what the theme reads, so match it exactly):

Field keyTypeShown as
nameSingle line textThe producer's name. Set it as the definition's display name.
farmSingle line textJoined to the name in Image with text: "Aregash Bekele, Hambela Estate"
regionSingle line textImage with text facts, with the country
countrySingle line textImage with text facts
altitudeSingle line textImage with text facts
varietiesSingle line textImage with text facts
processSingle line textImage with text facts
imageFile (images)The round photo on the Producer chip and the Image with text photo
quoteMulti-line textThe pull quote in Image with text
storyRich textOptional. Your own long story; the theme links to story_url rather than printing it
sinceSingle line textThe stamp in Image with text, such as 2019 ("Buying since 2019")
story_urlURLWhere "Read the full story" goes, such as a blog article about the farm

Under Access, turn on Storefronts: without it the theme can't read the entries. If you turn on the Active/draft status feature, only Active entries show. Then add entries in Content › Metaobjects › Producer, and on each coffee pick its producer in the custom.producer metafield.

Where producers show:

  • The Producer card in Cupping notes: photo, name and a link to story_url.
  • The Producer row of the Origin spec table, which prints the producer's name. A spec row can print any other field too: set its Product metafield to custom.producer.farm, for example.
  • Image with text with Content set to A producer: on a product page it uses the product's own producer, anywhere else the one you pick in Producer. The metaobject's fields fill the image, heading, quote, facts, stamp and link; the section's own settings fill any gaps.

Step 3: optional collection color

Collection tiles cycle through the four palette label colors. To give a collection its own, add a collection metafield definition (Settings › Custom data › Collections) custom.label_color of type Color. The same readability rule as product labels applies.

Step 4: product tags

TagWhat it does
roast-to-orderThe product is roasted after it's ordered. It gets the "Roasting 23 Oct" stamp with the next roast date, and the Freshness block's "Roasted to order. Next roast Thursday 23 October" sentence (chapter 8).
newShows the "New" badge on its card whatever its age. With a Batch word set, the badge reads "New roast" (or "New batch", "New bake").
limitedShows a "Limited" badge on its card.

A card shows at most two badges, in this order: Pre-order, Sale, New, Limited. A sold-out card shows only "Sold out".

What shows without the data

FeatureNeedsWithout it
Card origin linecustom.origin or custom.processShows the vendor; nothing when that's empty too
Card tasting notescustom.tasting_notesHidden
Card roast dotscustom.roast_levelHidden
Origin line (product page)custom.region, custom.origin, custom.process or a product typeHidden
Tasting notes blockNotes, roast level or brew methodsEach line hides; with none of the three the block hides
Flavour profile cardFive custom.flavour_profile valuesHidden
Roast and brew cardRoast level, brew methods or recommended grindHidden (its Rest note alone doesn't show it)
Origin cardAt least one row with a valueRows without a value hide; with none, the card hides
Producer cardcustom.producerHidden
Cupping notes sectionAny of its cardsHidden entirely
How to brew itBrew methods, a grind, or a linkHidden
Freshness block and stampsA roast date, or the roast-to-order tag and the roast scheduleHidden (chapter 8)

Not selling coffee?

Every word the coffee features print comes from Theme settings › Tasting and roast and Roast schedule. A tea shop can rename the flavour axes to Floral, Grassy, Sweet, Astringency, Finish; a chocolate maker can rename the roast levels; a bakery can set the Batch word to "bake" and the stamp words to "Baked" and "Baking". The Pantry and Café presets already do this (chapter 1). The metafield keys stay the same.