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
- Go to Admin → Content → Metaobjects
- Click Add Definition
- Enter a type name (e.g.
faq_item) and a display name - Add fields: choose from text, number, boolean, date, URL, color, file, product reference, and more
- Set access to Storefront or Admin only
- Click Save
Adding Entries
- Go to Content → Metaobjects and select your definition
- Click Add Entry
- 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.