# Qué son los metafields de Shopify y cómo se publican

> Qué son los metafields de Shopify, de qué partes constan, cómo llegan del panel al HTML de la ficha y cómo comprobar que tu tema los publica.

URL: https://clione.ai/es/glosario/metafields/
Lang: es

Un producto de Shopify trae de serie un título, una descripción, un precio, unas imágenes y poco más. Cuando necesitas guardar la composición de una prenda, una guía de tallas o la edad recomendada de un juguete, Shopify no te pide cambiar de plataforma: te pide un metafield. Pese al nombre, no tiene nada que ver con las etiquetas _meta_ de la cabecera, como el [meta title](/es/glosario/meta-title/) o la [meta description](/es/glosario/meta-description/): es **un campo de datos más en el producto**. Te importa porque en una tienda Shopify los datos que enriqueces suelen acabar en metafields, y un dato guardado no es un dato publicado hasta que el tema lo pinta en la página.

## Cómo funciona

Shopify lo define como un campo extra en un recurso que ya existe, con datos que describen un producto, un pedido, un cliente u otro objeto de la tienda.[^shopify-custom-data] Su centro de ayuda pone ejemplos de para qué sirve: instrucciones de cuidado en ropa, edad recomendada y posibles riesgos en juguetes, medidas en muebles o guías de tallas.[^shopify-help-metafields]

Un metafield tiene cuatro partes:[^shopify-metafields-dev]

| Parte         | Qué es                                                                  | Ejemplo                |
| ------------- | ----------------------------------------------------------------------- | ---------------------- |
| Identificador | El espacio de nombres más la clave                                      | `custom.warranty_info` |
| Valor         | El dato que se guarda                                                   | «Garantía de dos años» |
| Tipo          | La clase de valor: texto, número, fecha o una referencia a otro recurso | Texto de una línea     |
| Recurso       | El objeto de Shopify al que pertenece                                   | Producto               |

**Un metafield con definición es más que un campo libre.** Shopify da a los metafields definidos un editor con tipo en el panel, validación al guardar y la posibilidad de buscar y filtrar por ellos.[^shopify-custom-data]

**El espacio de nombres dice de quién es el dato.** Los que crea el comercio usan espacios no reservados, como `custom`; las aplicaciones guardan los suyos en un espacio reservado, `$app`, para que sus datos no choquen con los del comercio ni con los de otra aplicación; y Shopify se reserva los que empiezan por `shopify--`. Cada definición decide además quién puede leer el dato: por defecto, **un metafield no es visible desde la Storefront API**, y hay que abrirlo expresamente.[^shopify-metafields-dev] Eso importa en una tienda [_headless_](/es/glosario/headless-commerce/), cuyo escaparate lee los datos precisamente por esa API.

## Del panel al HTML publicado

Un metafield pasa por tres estados, y cada uno se comprueba en un sitio distinto.

1. **Guardado.** El valor existe en el panel o en la API. En la tienda todavía no se ve nada.
2. **En la plantilla.** El tema lo lee. Con un tema que admite fuentes dinámicas, se conecta desde el editor de temas sin tocar código; con un tema antiguo, o con tipos de metafield que el editor no admite, hay que editar el código del tema.[^shopify-help-metafields] En [Liquid](/es/glosario/liquid/), el lenguaje de plantillas de Shopify, se accede con `product.metafields.namespace.key`, y la propiedad `value` devuelve el dato con el formato de su tipo.[^liquid-metafield] Una aplicación no toca tu tema: lo hace con un [app embed de Shopify](/es/glosario/app-embed-shopify/), un bloque que Shopify pinta antes del cierre de `head` o de `body`. **Los app embeds llegan desactivados tras instalar la aplicación**, y el comercio los activa en el editor de temas.[^theme-app-ext-config]
3. **En el HTML publicado.** Liquid se resuelve en el servidor, así que el valor sale ya escrito en el HTML que recibe el navegador. Shopify recomienda pintar así el contenido esencial, con Liquid y HTML, en lugar de construirlo con JavaScript en el navegador: el HTML inicial funciona sin JavaScript.[^shopify-render-server] Es [renderizado del lado del servidor](/es/glosario/ssr/), y es lo que hace que un [rastreador](/es/glosario/rastreador/) que no ejecuta JavaScript encuentre el dato.

## En una tienda

**Ejemplo ficticio.** Una tienda de ropa guarda las instrucciones de cuidado de cada prenda en un metafield de producto, `custom.cuidados`, de tipo texto de una línea. El tema las pinta bajo la descripción con esta línea de Liquid:

```liquid
<p class="cuidados">{{ product.metafields.custom.cuidados.value }}</p>
```

Y en el HTML que devuelve la tienda para esa ficha aparece así, sin que el navegador tenga que ejecutar nada:

```html
<p class="cuidados">Lavar a 30 °C. No usar secadora.</p>
```

Si la línea de Liquid no está en la plantilla, el metafield sigue guardado y la ficha no lo enseña. Así funcionan también las aplicaciones que publican [datos estructurados](/es/glosario/datos-estructurados/): Clione, por ejemplo, escribe sus señales en metafields y las pinta con dos app embeds, uno para el grafo [JSON-LD](/es/glosario/json-ld/) en la cabecera y otro para el acordeón de preguntas frecuentes, que se activan desde su panel con un clic.


Guardado no es publicado. Que un metafield tenga valor en el panel solo significa que el dato existe; para que salga en la tienda, el tema tiene que leerlo, desde una fuente dinámica del editor o desde su código.[^shopify-help-metafields] Si lo publica una aplicación, su app embed tiene que estar activado, y no lo está por defecto.[^theme-app-ext-config]


## Cómo comprobarlo

1. **Localiza la definición** en los ajustes de datos personalizados del panel, anota su espacio de nombres y su clave, y comprueba que el producto tiene valor.[^shopify-metafields-dev]
2. **Abre el editor de temas** en la plantilla de producto y mira si algún bloque está conectado a ese metafield como fuente dinámica; si no, busca la clave en el código del tema.[^shopify-help-metafields]
3. **Si el dato lo publica una aplicación**, comprueba en el editor de temas que su app embed está activado.[^theme-app-ext-config]
4. **Abre el código fuente de la ficha** (ver código fuente, no el inspector) y busca el valor. Si está en el código fuente, viaja en el HTML inicial; si solo aparece en el inspector, lo ha añadido JavaScript después.
5. **Si tu escaparate es _headless_**, comprueba que la definición permite leer el metafield desde la Storefront API.[^shopify-metafields-dev]

## Concepto cercano: metaobjeto de Shopify

Un metafield amplía un recurso que ya existe; un [metaobjeto de Shopify](/es/glosario/metaobjeto-shopify/) es un tipo de registro nuevo que defines tú, para datos que no pertenecen a ningún objeto de Shopify.[^shopify-custom-data] Una guía de tallas que comparten cincuenta prendas encaja como metaobjeto, y cada prenda la enlaza desde un metafield de tipo referencia. En BigCommerce, lo más parecido a un metafield de producto son los [custom fields](/es/glosario/custom-fields-bigcommerce/).

Para seguir, la [ruta de lectura de publicación por plataforma](/es/aprender/publicacion-por-plataforma/) explica cómo llega cada dato a la tienda en Shopify y en BigCommerce.
