Accentuate Custom Fields
  • Welcome!
  • Introduction
    • Getting started with ACF
    • Field scopes
    • How to show fields in your storefront
  • Dashboard
    • Reference Manager
      • Creating a new reference within Reference Manager
    • Filter & Group
      • Filter editor
      • Filter usage
    • Activity log
    • App settings
  • Field Definitions
    • Fields & Sections
    • Deciding on a field type
    • ACF Field types
      • Text
      • Markdown text
      • HTML
      • Checkbox
      • Selection
      • Tags
      • Number
      • Date
      • Color
      • Media v1 (legacy)
      • Media v2
      • Custom Object (JSON)
      • Multi-language Text
      • Reference fields
      • References to Global fields
    • Shopify Field types
      • Shopify » Single line text
      • Shopify » Multi-line text
      • Shopify » Boolean
      • Shopify » Color
      • Shopify » Custom objects (JSON)
      • Shopify » URL
      • Shopify » Date
      • Shopify » Date and Time
      • Shopify » Integer
      • Shopify » Decimal
      • Shopify » Weight
      • Shopify » Volume
      • Shopify » Dimensions
      • Shopify » Reference fields
    • Automatic tagging
    • Large sets
    • Field contexts
    • Field context filters
    • Copy and paste fields
    • Change field name and type
    • Import existing fields
    • Linking multiple stores
  • The Editor
    • Using the editor
    • Promote fields to sidebar
    • Layouts
    • Hide from search
    • Repeatable fields
    • Version control
    • Update value on order creation
  • Bulk Import & Export
    • Export custom field values
    • Import custom field values
    • Metaobject export / import
  • METAOBJECTS
    • What are Metaobjects?
    • Metaobject Definitions
    • Metaobject instances / values
    • Displaying Metaobjects on your storefront
    • Metaobject export / import
  • THEME EXTENSIONS
    • SEO keywords
    • Sticky promo bar
    • Products promotion
  • Liquid Guides
    • Learning Liquid
    • Resize & crop images
    • Check for empty values
    • Access field definitions
    • Order notifications
    • Allow customers to change their field values
  • OTHER
    • Webhooks
    • API
      • Access to custom fields
      • Endpoints
  • Help
    • FAQ
      • Why are one of my products no longer showing in my reference field?
      • I have multiple products/variants with the same name
      • How do I make changes to my field values in bulk?
      • I added a new field definition but it is not showing in my storefront
      • How do I copy my field setup to another store?
      • My fields are still showing after I have deleted their field definition
      • Why are none of my fields showing in the editor?
      • My newly created object in Shopify is not available in ACF
      • Reference lists are empty?
      • Why am I seeing a "value cannot exceed 100,000 characters" error when saving?
      • Why can't I name my field "first", "last" or "size"?
    • Need help?
  • Product
    • Changelog
    • Feedback & Suggestions
Powered by GitBook
On this page
  1. METAOBJECTS

What are Metaobjects?

A general guide to understanding Metaobjects that links you to our other articles on the topic

PreviousMetaobject export / importNextMetaobject Definitions

Last updated 10 months ago

This page will explain what Metaobjects are, how they differ from Metafields, and how to use them most effectively.

Metaobjects are a great way to store and manage data that does not belong directly to any pre-existing scope but is instead self-sufficient and has meaning by itself. You can think of one Metaobject definition as a standalone scope that can function by itself. An example of a standalone scope would be products or pages. Each one of these scopes contains information that is organised neatly into a template. For products that would be: Product title, description, media, price, inventory, and all the additional data you may have attached to them using Metafields.

Metaobjects come into play when you need to create self-sufficient groups of information that fit neatly into templates. To illustrate our point, we will give you a practical example of Authors.

Let's say you run a book store and want to organise all your authors properly, or you have an extensive blog on your store that is run by multiple people and you want to avoid having to write out all of the information about the author every time you publish a blog or add a new book. The ideal way to organise this data is by using Metaobjects. This would provide you with a convenient template you can use to add new, or easily edit and manage your authors.

Some of you probably thought about an approach to solve this using Metafields. Metafields are a powerful tool to attach data to pre-existing structures like products (books in our case) or blogs. Creating the author template on products using Metafields would look something like this:

It would work, but it would lead to the author data being bound to its book which would result in you having to add all the author data again every time you add a new book (or blog post). Luckily Metafields can also reference Metaobjects, so you can have the best of both worlds - the superior data organisation of Metaobjects, and the specificity of Metafields.

With Metaobjects, we can approach this by grouping 4 fields we had into one template, and every time we want to add a new author we can do so by pumping out another Metaobject instance. This way, adding a book whose author is already created is as easy as pointing. Also if you wanted to display the author itself this approach enables that as well, while that would be hard to do taking the other route. Editing an author’s data is also made easier this way since you can edit it in one place and it would update everywhere instead of having to go through all the author’s books and editing each one.

As you can see this fundamentally changes the position of the author. Instead of being bound to a book it is an entity that functions by itself. This is the moment when Metaobjects shine the brightest.