# Qué es un metaobjeto de Shopify y cuándo usarlo

> Qué es un metaobjeto de Shopify, en qué se diferencia de un metafield, cómo se enlaza a tus productos y cómo comprobar que el tema lo publica en la ficha.

URL: https://clione.ai/es/glosario/metaobjeto-shopify/
Lang: es

Imagina una tienda de ropa con cincuenta camisetas que comparten la misma guía de tallas. Si la guía se guarda dentro de cada producto, hay cincuenta copias, y el día que cambia una medida hay que corregir cincuenta fichas y confiar en no olvidarse de ninguna. Un metaobjeto de Shopify resuelve eso: **la guía se guarda una vez, como un registro propio, y cada camiseta la enlaza**. Te importa porque decide cuánto cuesta mantener al día los datos que se repiten en tu catálogo, y porque un dato que se mantiene en un solo sitio tiene menos ocasiones de quedarse desfasado en una ficha.

## Cómo funciona

Shopify presenta los metaobjetos como estructuras de datos personalizadas con varios campos relacionados. A diferencia de los [metafields](/es/glosario/metafields/), que añaden un campo suelto a un recurso que ya existe, un metaobjeto es un tipo de dato nuevo que se puede referenciar desde cualquier parte de la tienda. La regla de Shopify es corta: **metaobjetos para los datos complejos de varios campos, metafields para un campo suelto**.[^shopify-metaobjects-dev] Como ejemplos, su documentación para desarrolladores cita guías de tallas, perfiles de autor, listas de ingredientes e información de garantía,[^shopify-metaobjects-dev] y su centro de ayuda añade los puntos fuertes de un producto con icono, título y descripción, perfiles de _influencers_, preguntas frecuentes y apariciones en eventos.[^shopify-help-metaobjects]

Un metaobjeto tiene dos partes:

| Parte      | Qué es                                                                                                                                    | Dónde se gestiona                      |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
| Definición | La estructura: el tipo, los campos con su tipo de dato y sus validaciones, los permisos de acceso y el campo que da nombre a cada entrada | En los ajustes de datos personalizados |
| Entradas   | Cada registro concreto, con su identificador, su _handle_, su nombre visible y el valor de cada campo                                     | En Contenido › Metaobjetos             |

Las dos partes y sus ubicaciones son las que describe Shopify.[^shopify-metaobjects-dev][^shopify-help-metaobjects] Igual que con los metafields, **el prefijo dice de quién es el dato**: las definiciones de una aplicación usan el prefijo reservado `$app`, las del comercio usan prefijos no reservados como `custom`, y Shopify mantiene las suyas. Y hay un permiso que conviene mirar el primer día: el acceso desde el escaparate es `none` por defecto, y hay que abrirlo con `public_read` para leer las entradas desde fuera del panel.[^shopify-metaobjects-dev]

## Cómo se enlaza a un producto

Un producto no contiene el metaobjeto: lo apunta con un metafield de tipo referencia. Shopify ofrece tres tipos:[^metafield-types]

| Tipo de metafield           | A qué apunta                                                            |
| --------------------------- | ----------------------------------------------------------------------- |
| `metaobject_reference`      | Una entrada. Con una validación se fija de qué definición tiene que ser |
| `list.metaobject_reference` | Una o varias entradas, todas de la misma definición                     |
| `mixed_reference`           | Una entrada que puede ser de definiciones distintas                     |

Además, una definición puede activar capacidades que cambian su comportamiento. **Publicable** permite poner cada entrada en borrador o activa; **traducible** abre las entradas a las herramientas de traducción de Shopify; **renderizable** expone campos de SEO a [Liquid](/es/glosario/liquid/) y a la Storefront API e incluye las entradas en el sitemap de la tienda; y **tienda online** asigna a las entradas una plantilla del tema y una URL propia.[^metaobject-capabilities] Con esas dos últimas, un metaobjeto deja de ser solo un dato y se convierte en una página: Shopify lo plantea para crear páginas de aterrizaje repetibles, como la de cada embajador de una marca, y deja elegir qué campos forman el título de la página y la [meta description](/es/glosario/meta-description/).[^metaobject-webpages]

## En una tienda

**Ejemplo ficticio.** La tienda de ropa crea una definición `guia_tallas` con tres campos: `nombre` (texto de una línea), `tabla` (texto de varias líneas) y `consejo` (texto de una línea). Crea una entrada, «Camisetas de algodón», y en cada camiseta rellena un metafield de producto, `custom.guia_tallas`, de tipo `metaobject_reference`. La sección de producto del tema lo imprime así:

```liquid
{% assign guia = product.metafields.custom.guia_tallas.value %}
{% if guia %}
  <h2>{{ guia.nombre.value }}</h2>
  <p>{{ guia.consejo.value }}</p>
{% endif %}
```

En Liquid, cada campo de un metaobjeto se lee con su clave y su valor, como en `metaobjects['highlights']['washable'].image.value`.[^liquid-metaobject] Para un caso sencillo hay atajo: el filtro `metafield_text` admite referencias a metaobjetos con un parámetro `field` obligatorio, que solo puede apuntar a un campo de texto de una línea.[^metafield-text-filter] Lo que cambia frente a guardar la guía en cada producto se ve en una tabla:

| Con la guía de tallas en… (ejemplo ficticio) | Copias de la guía | Para corregir una medida          |
| -------------------------------------------- | ----------------- | --------------------------------- |
| Un metafield de texto en cada camiseta       | Una por camiseta  | Editar cada camiseta, una por una |
| Un metaobjeto enlazado desde cada camiseta   | Una para todas    | Editar la entrada una sola vez    |


Crear la entrada no la publica. Para que llegue a una ficha hacen falta tres cosas: un metafield de referencia en el producto que apunte a ella, una plantilla del tema que la lea y, si la definición tiene la capacidad de publicación, que la entrada esté activa: **una entrada en borrador devuelve `nil` en Liquid**, así que la ficha no imprime nada y tampoco da error.[^liquid-metaobject][^metaobject-capabilities]


## Cómo comprobarlo

1. **Abre la definición** en los ajustes de datos personalizados: anota su tipo, sus campos y si el acceso desde el escaparate está abierto.[^shopify-metaobjects-dev][^shopify-help-metaobjects]
2. **Abre la entrada** en Contenido › Metaobjetos y comprueba sus valores y, si la definición es publicable, que su estado sea activo.[^metaobject-capabilities]
3. **Abre un producto** y mira que su metafield de referencia apunta a esa entrada y no a otra de la misma definición.[^metafield-types]
4. **Busca en el tema** el espacio de nombres y la clave del metafield, o el bloque conectado a él desde el editor de temas. Si nada los lee, el dato está guardado pero no se publica.
5. **Abre el código fuente de la ficha** (no el inspector) y busca un valor de la entrada. Si aparece, viaja en el HTML inicial; si no, vuelve al paso que falló.

## Concepto cercano: metafields

Un metafield amplía un recurso que ya existe, como un producto, con un campo más; un metaobjeto es un tipo de registro propio con varios campos que no pertenece a ningún recurso.[^shopify-metaobjects-dev] No compiten: trabajan juntos, porque **el metafield de referencia es el puente** entre el producto y la entrada del metaobjeto.[^metafield-types]

Para seguir, la guía [del metafield a la página publicada](/es/guias/metafield-a-pagina-publicada/) sigue un dato de Shopify hasta el HTML de la ficha, y la [ruta de lectura de publicación por plataforma](/es/aprender/publicacion-por-plataforma/) ordena el resto de términos.
