Guides
Supplement Facts — Admin Setup
Required Shopify Admin metaobject configuration for the Supplement Facts section, including nutrient rows and serving size data.
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.