Guides
Supplement Facts — Admin Setup
Required Shopify Admin metaobject configuration for the Supplement Facts section, including nutrient rows and serving size data.
Supplement Facts — Admin Setup
This document describes the required Shopify Admin configuration for the Supplement Facts system used by the theme section element-supplement-facts.
What the theme reads
The theme reads only these keys under the custom namespace:
custom.nutrient_rows(list of metaobjects)custom.supplements_facts_title(single line text)custom.serving_size(single line text)custom.other_ingredients(multi-line text)custom.view_label_text(single line text)custom.view_label_link(URL)
Note: Shopify Admin-created definitions typically land in the
customnamespace. Keys are derived from the Definition Name (spaces → underscores). Always verify the generated key after creation.
Render rule: the section renders nothing unless it can resolve at least one valid nutrient row (nutrient_name + amount_value).
Priority order (important)
If values exist in multiple places, the theme should resolve in this order:
- Product metafields (
product.metafields.custom.*) - Category defaults (
product.category.metafields.custom.*) - Otherwise: no Supplement Facts output
Admin setup checklist
1) Create metaobject: Nutrient row
- Shopify Admin → Settings → Custom data → Metaobjects
- Create a new metaobject definition: Nutrient row
- Add the fields below (names chosen so the resulting keys match what the theme expects).
Metaobject fields:
- Nutrient name
- Key must resolve to:
nutrient_name - Type: Single line text
- Required: Yes
- Key must resolve to:
- Amount value
- Key must resolve to:
amount_value - Type: Single line text
- Required: Yes
- Key must resolve to:
- Daily value DV
- Key should resolve to:
daily_value_dv - Type: Single line text
- Required: No
- Key should resolve to:
Compatibility note:
- The theme may tolerate alternate DV keys (
daily_value,percent_dv,dv), butdaily_value_dvis the recommended key.
2) Create product metafields (custom namespace)
- Shopify Admin → Settings → Custom data → Products
- Add the metafield definitions below.
- Confirm that each generated key matches the expected
custom.*key exactly.
Product metafield definitions:
- Supplement facts rows
- Key:
custom.nutrient_rows - Type: List of metaobjects
- Reference: Nutrient row
- Purpose: provides the rows rendered in the label
- Key:
- Supplement facts title
- Key:
custom.supplements_facts_title - Type: Single line text
- Purpose: optional heading override (theme may have a default)
- Key:
- Serving size
- Key:
custom.serving_size - Type: Single line text
- Purpose: the serving size line in the label
- Key:
- Other ingredients
- Key:
custom.other_ingredients - Type: Multi-line text
- Purpose: optional paragraph below the rows
- Key:
- View label text
- Key:
custom.view_label_text - Type: Single line text
- Purpose: optional CTA label override
- Key:
- View label link
- Key:
custom.view_label_link - Type: URL
- Purpose: optional CTA destination; link renders only if present
- Key:
3) Create category metafields (Assigned to categories)
This enables category defaults (used when a product does not have per-product values).
- Shopify Admin → Settings → Custom data → Categories
- Add the same metafield definitions as in (2) (same names, same types, same keys).
- Restrict them using Assigned to categories (see step 4).
Category metafield definitions (same keys/types as products):
custom.nutrient_rows(list of metaobjects → Nutrient row)custom.supplements_facts_title(single line text)custom.serving_size(single line text)custom.other_ingredients(multi-line text)custom.view_label_text(single line text)custom.view_label_link(URL)
4) Assign category metafields only to relevant product categories
Goal: ensure non-supplement products (e.g. trainers) do not get these fields and do not render the panel.
- In the category metafield definitions, use Assigned to categories to restrict these definitions to only the supplement-related categories.
- Confirm unrelated categories do not have these definitions assigned.
Practical effect:
- For products in categories without these definitions,
product.category.metafields.custom.*will be blank, so the Supplement Facts panel will not render.
5) Populate category defaults
- For each supplement-related category, open the category in Admin.
- Populate the category metafields:
- Add entries to Supplement facts rows (
custom.nutrient_rows). - Optionally set title / serving size / other ingredients and the link.
- Add entries to Supplement facts rows (
Use category defaults when:
- Many products in the category share the same label.
- You want one place to update the label for a whole category.
6) Override on a specific product when needed
Per-product values take priority over category defaults.
- Open the product in Admin.
- Populate any product metafields listed in step (2).
- If the product has its own
custom.nutrient_rows, the theme uses those rows instead of category rows.
7) Validation steps
-
Confirm it renders on a supplement product:
- Open a product that has either product-level rows or category defaults.
- Verify the Supplement Facts panel appears and includes at least one row.
-
Confirm it stays hidden for non-supplement products:
- Open a product assigned to an unrelated category (e.g. trainers).
- Verify the category does not have the supplement metafield definitions assigned.
- Verify the panel does not render (and any tabs system does not create an empty tab).
Troubleshooting
-
Nothing renders
- Confirm at least one Nutrient row exists with both
nutrient_nameandamount_value. - Confirm the metafield keys are exactly under
custom.*as listed in “What the theme reads”.
- Confirm at least one Nutrient row exists with both
-
Rows exist but still blank
- Confirm
custom.nutrient_rowsis a list of metaobjects referencing the Nutrient row definition (not a different metaobject).
- Confirm
-
Category defaults not working
- Confirm the category metafields are assigned to the product’s category via Assigned to categories.