# Metafield representation object

{% hint style="danger" %}
**Important Notice**

\
Shopify has deprecated the REST Admin API that these Mechanic objects depend on. The product and variant endpoints were removed on Feb 1, 2025, and Shopify is phasing out the remaining REST endpoints over time. Read about the deprecation [here](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model#whats-changing) and [here](https://shopify.dev/docs/apps/build/graphql/migrate).\
\
Use the [GraphQL](https://learn.mechanic.dev/core/actions/shopify#graphql) going forward. The [product](https://learn.mechanic.dev/platform/liquid/objects/shopify/product) and [variant](https://learn.mechanic.dev/platform/liquid/objects/shopify/variant) objects ceased to work on Feb 1, 2025 due to changes made by Shopify. Shopify is phasing out the REST API entirely — read more [here](https://shopify.dev/docs/apps/build/graphql/migrate).

\
All of our [library tasks](https://tasks.mechanic.dev/) will be ported to use GraphQL only, which will provide a model for how you can update your custom tasks. You'll be able to update your non-customized library tasks with a click of a button :relaxed:\
\
Please see these [guides](https://learn.mechanic.dev/resources/converting-tasks-from-shopify-rest-to-graphql) for migrating your custom tasks to GraphQL.
{% endhint %}

{% hint style="info" %}
This page is part of a series: see [Metafields](https://learn.mechanic.dev/platform/liquid/objects/shopify/metafields) for an overview on how Mechanic's Liquid implementation thinks about metafields.
{% endhint %}

Mechanic's metafield representation object mirrors [Shopify's metafield Liquid object](https://shopify.dev/api/liquid/objects/metafield), in that it makes the metafield type and value easily available, in a usable form. It is not the same as Mechanic's [metafield object](https://learn.mechanic.dev/platform/liquid/objects/shopify/metafields/metafield-object), which contains the REST Admin API representation of a metafield.

{% hint style="warning" %}
Metafield representation objects are only available for modern metafield types. They are not available for [deprecated metafields](https://shopify.dev/api/liquid/objects/metafield#deprecated-metafields) (i.e. json\_string, number, and string).
{% endhint %}

## What it contains

A metafield representation object always contains these three properties:

* `type` — the type of the metafield (see [Shopify's reference list](https://shopify.dev/apps/metafields/definitions/types))
* `value` — the parsed, appropriately-typed value of the metafield
* `metafield` — the source [metafield object](https://learn.mechanic.dev/platform/liquid/objects/shopify/metafields/metafield-object), useful for retrieving the metafield ID

### Resource references

For reference types that map to a REST API resource (e.g. page\_reference, product\_reference, and variant\_reference), a metafield representation object *also* contains a property named after the resource in question.

For example, a product\_reference metafield representation object contains a `product` property, which holds the associated [product object](https://learn.mechanic.dev/platform/liquid/objects/shopify/product). This means that the referenced product may be retrieved using `resource.metafields.namespace.key.product`.

## How to access it

A metafield representation object can only be retrieved via [metafield collection](https://learn.mechanic.dev/platform/liquid/objects/shopify/metafields/metafield-collection) lookup: `resource.metafields.namespace.key`.
