Skip to content

Shopify Dude Fix

Shopify Metafield Shows in Admin but Not on Storefront

A Shopify metafield troubleshooting guide for cases where data exists in admin but does not render on the storefront, dynamic source, Liquid, or Storefront API.

Quick answer

If a Shopify metafield is visible in admin but missing on the storefront, the most common causes are storefront access, the wrong object or namespace/key in Liquid, an empty value on that specific product, or a dynamic source type mismatch in the theme editor.

Do not rebuild the section first. Prove the metafield can render with a small Liquid debug check, then fix the admin definition, value, or theme block.

The symptom

The merchant can see the metafield in Shopify Admin. The value is saved. The product page, collection page, or custom section still shows nothing.

This happens often with Online Store 2.0 themes because metafields can be connected through dynamic sources, rendered directly in Liquid, queried through the Storefront API, or handled by app blocks. Each path has its own failure points.

Start in the admin

Go to Shopify Admin → Settings → Custom data.

Open the relevant resource type, such as Products, Variants, Collections, or Shop. Confirm the metafield definition exists and note the exact namespace and key.

Most likely causes

1. Storefront access is not enabled

For storefront rendering or Storefront API access, check the metafield definition’s access settings. Community threads repeatedly point to storefront access as the reason a value exists in admin but returns blank or null outside admin.

Admin path: Settings → Custom data → Products or Variants → Metafield definition → Access.

2. The metafield value is empty on that exact product or variant

A definition can exist globally while the value is empty on the individual product. Open the product and check the value under its metafields section.

Admin path: Products → Product → Metafields.

3. The Liquid reference uses the wrong object

A product metafield must be rendered from the product object. A variant metafield must be rendered from the selected variant or variant object. A shop metafield must use the shop object.

{{ product.metafields.custom.material.value }}
{{ product.selected_or_first_available_variant.metafields.custom.extra_info.value }}
{{ shop.metafields.custom.store_notice.value }}

Leaving off .value can sometimes print something useful, but for debugging it is better to be explicit.

4. The namespace or key is slightly wrong

Metafield references are unforgiving. custom.size_guide and custom.size-guide are not interchangeable. Copy the namespace and key from the metafield definition instead of typing from memory.

5. The dynamic source type does not match the block

A file, image, page reference, rich text, or metaobject reference cannot always be connected to a plain text setting. Community answers often solve this by matching the metafield type to the right section or block type.

Example: an image metafield belongs in an image setting. A page reference belongs in a page-compatible setting or custom Liquid that outputs the page content. A rich text metafield needs rendering that respects rich text, not a plain text field.

6. The theme section does not support dynamic sources

Some settings support dynamic sources and some do not. In the theme editor, look for the dynamic source icon next to the setting. If the icon is not available, that setting cannot be connected that way.

Admin path: Online Store → Themes → Customize → Product template → Section or block setting.

Liquid debug check

On a duplicate theme, add a temporary custom Liquid block or snippet near the product content:

<pre>
{{ product.metafields.custom.your_key | json }}
</pre>

If it returns null, check the object, namespace, key, storefront access, and whether the product actually has a value. If it returns data, the problem is probably how the section or block is rendering it.

Storefront API check

For Hydrogen or headless builds, a metafield returning in Admin API but null in Storefront API usually points back to access settings or the wrong owner type. Confirm the definition allows storefront access and query the same owner type you edited in admin.

Common misunderstanding

Seeing a metafield in admin only proves the definition or value exists there. It does not prove the theme has access, the dynamic source accepts that type, or the Liquid is referencing the right object.