Shopify provides two powerful tools for storing additional data: Metafields and Metaobjects. While both help extend Shopify’s built-in features, they serve different purposes. In this tutorial, we’ll break down their differences and show when to use each.
1. What Are Metafields?
Metafields are used to store extra information about Shopify objects (products, collections, customers, orders, etc.). Each metafield is a simple key-value pair, meaning it stores one piece of data per field.
Metafield Structure
- Namespace: Groups related metafields (e.g.,
custom
) - Key: The unique identifier (e.g.,
fabric
) - Type: The data type (e.g.,
string
,integer
,json
) - Value: The actual content (e.g.,
"Cotton"
)
Example Use Case for Metafields
A clothing store wants to add extra product details, like fabric type and washing instructions.
Metafield Name | Example Value |
---|---|
custom.fabric | Cotton |
custom.wash_instructions | Machine wash cold |
2. What Are Metaobjects?
Metaobjects allow you to store structured data that can be reused across multiple products, collections, or pages. They act like templates, letting you create complex, multi-field data structures.
Metaobject Structure
- Definition: A custom data model with multiple fields
- Entries: Instances of the metaobject containing actual data
- References: How metaobjects are linked to products, collections, etc.
Example Use Case for Metaobjects
A store wants to create a product specification template that includes fabric, weight, dimensions, and warranty period.
Field | Example Value |
---|---|
Material | Cotton |
Weight | 1.2 kg |
Dimensions | 10x20x5 cm |
Warranty Period | 2 years |
Unlike metafields, which store individual values, metaobjects store a group of related fields.
3. Key Differences Between Metafields and Metaobjects
Feature | Metafields | Metaobjects |
---|---|---|
Purpose | Stores extra single-value data | Stores structured, reusable data |
Structure | Key-value pairs | Template with multiple fields |
Best for | Simple custom data (e.g., fabric: Cotton ) | Complex data (e.g., Product Specification with multiple fields) |
Reusability | Linked to a single object | Can be used across multiple objects |
Example Use Case | Adding extra product info (e.g., wash instructions ) | Creating structured data templates (e.g., size charts , testimonials ) |
4. When to Use Metafields vs. Metaobjects
- Use Metafields when…
- You need to add a single piece of extra data (e.g., “Fabric: Cotton”).
- You are storing simple text, numbers, or links.
- The data is only relevant to one specific object.
- Use Metaobjects when…
- You need a reusable data model (e.g., a product specification table).
- The data consists of multiple fields that belong together.
- You want to use the same structured content across multiple objects.
5. Displaying Metafields and Metaobjects in Shopify Themes (Liquid)
Example: Displaying Metafields
To show a metafield on a product page:
<p>Fabric: {{ product.metafields.custom.fabric }}</p>
Example: Displaying Metaobjects
To show a metaobject on a product page:
{% assign specs = product.metafields.custom.product_specifications.value %}
<p>Material: {{ specs.material }}</p>
<p>Weight: {{ specs.weight }} kg</p>
<p>Dimensions: {{ specs.dimensions }}</p>
<p>Warranty: {{ specs.warranty_period }} years</p>
Summary
- Metafields = Simple extra data (single values, like “Fabric: Cotton”).
- Metaobjects = Complex reusable data structures (like “Product Specification” with multiple fields).
By understanding when to use metafields vs. metaobjects, you can better organize and display custom data in your Shopify store.