Skip to content

Using Metaobjects for Custom Content

What Are Metaobjects?

Metaobjects let you create fully custom content types for your store. Think of them as flexible databases you design yourself — FAQs, team members, testimonials, size guides, or any other structured content your theme needs.

Creating a Definition

  1. Go to Admin → Content → Metaobjects
  2. Click Add Definition
  3. Enter a type name (e.g. faq_item) and a display name
  4. Add fields: choose from text, number, boolean, date, URL, color, file, product reference, and more
  5. Set access to Storefront or Admin only
  6. Click Save

Adding Entries

  1. Go to Content → Metaobjects and select your definition
  2. Click Add Entry
  3. Fill in the fields and save

Entries appear on your storefront automatically — no theme changes needed for existing templates that use metaobjects.

Using on Your Storefront

In Liquid templates, use metaobjects.TYPE.entries to loop over your entries:

{% for item in metaobjects.faq_item.entries %}
  <h3>{{ item.fields.question }}</h3>
  <p>{{ item.fields.answer }}</p>
{% endfor %}

Access Control

When you set a definition to Admin only, its entries will not be visible on the storefront. This is useful for internal content like pricing notes or staff-only information.

Limits

  • Up to 50 entries per type in Liquid templates
  • Up to 250 entries total per page render

For larger datasets, use the GraphQL API or Storefront API directly.

GraphQL Access

Developers can query metaobjects via the GraphQL API using metaobjects(type). See the Metaobjects Developer Guide for details.

Was this helpful?