# Qué es la sobrescritura de campos en una tienda online

> Qué es la sobrescritura de campos: cuando una app, un PIM o una sincronización pisa un dato de producto que escribió otro sistema, y cómo detectarla.

URL: https://clione.ai/es/glosario/sobrescritura-de-campos/
Lang: es

Aquí no se habla de sobrescribir un archivo ni de que una regla de CSS del tema anule a otra. Se habla de datos: **un campo de producto que alguien escribió y que otro sistema volvió a escribir encima**, sin que nadie lo decidiera así. El síntoma es conocido en cualquier tienda con más de una herramienta conectada: corriges una descripción por la tarde y a la mañana siguiente vuelve a estar la de antes, o el título que preparó tu agencia desaparece después de instalar una aplicación nueva. Para una tienda importa porque el trabajo perdido no avisa: la ficha sigue publicada, con buen aspecto, y dice otra cosa.

## Cómo funciona

**Gana el último que escribe.** Una integración que envía el valor completo de un campo y lo guarda tal cual, sin mirar qué había, no sabe si otro lo cambió antes. Si dos sistemas escriben así el mismo campo, el resultado no depende de cuál tiene razón, sino de cuál sincronizó después. El problema es tan antiguo que el estándar de HTTP le pone nombre: la cabecera `If-Match` se usa sobre todo en las peticiones que cambian datos **para evitar sobrescrituras accidentales cuando varios agentes actúan a la vez sobre el mismo recurso**, es decir, para evitar el problema de la «actualización perdida» (_lost update_).[^rfc9110] El servidor solo aplica el cambio si el recurso sigue siendo el que el cliente leyó; si alguien lo cambió entre medias, lo rechaza.[^rfc9110]

**Las plataformas lo resuelven a medias, y de forma opcional.** En Shopify, los [metafields](/es/glosario/metafields/) se escriben con la mutación `metafieldsSet`, que según su documentación fija el valor tanto si el metafield existía antes como si no. Desde la versión 2024-07 de la API admite una comprobación previa: si quien escribe envía el campo `compareDigest`, **la mutación solo guarda el valor si el que hay guardado coincide con el que se leyó**; si no coincide, devuelve un error en lugar de pisarlo.[^shopify-metafieldsset] Es la protección correcta, pero es opcional: la aplicación que no envía ese campo escribe encima sin preguntar.

**A veces el último gana por diseño.** No toda sobrescritura es un error. En [Google Merchant Center](/es/glosario/google-merchant-center/), una regla de atributos llamada «Take latest» toma, solo para el precio y la disponibilidad, **el valor actualizado más recientemente entre dos o más fuentes de datos** y lo usa para rellenar el atributo.[^gmc-attribute-rules] Es una sobrescritura declarada: alguien decidió que en esos dos campos manda el dato más fresco, venga de donde venga. Lo que convierte una sobrescritura en un problema es que nadie lo haya decidido.

**Dónde suele pasar.** Hay tres situaciones típicas en una tienda:

- **Un sistema de origen que exporta todo.** Un [PIM](/es/glosario/pim/) o un ERP que envía el producto completo en cada sincronización devuelve a su valor cualquier campo que se haya editado en la tienda.
- **Dos aplicaciones sobre el mismo campo.** Dos herramientas de SEO, o una de SEO y una de traducción, que escriben el mismo título o la misma descripción se pisan en el orden en que se ejecutan.
- **La plataforma o el tema.** Una importación masiva por CSV, una plantilla que rellena un campo vacío o un cambio de tema que reescribe valores por defecto escriben sobre lo publicado.

**La fecha no basta para detectarla.** La forma rápida de sospechar es comparar la fecha de modificación del producto con la de tu última escritura. Sirve como alarma, pero no como prueba: en Shopify, la fecha `updatedAt` de un producto es la de su última modificación y **puede cambiar por motivos distintos**; por ejemplo, un pedido de un producto con seguimiento de inventario cuenta como una actualización.[^shopify-product] Para saber si te han pisado un campo, hay que comparar el valor del campo.

## En una tienda

Una noche cualquiera en una tienda de material de montaña con Shopify, un PIM que exporta cada madrugada y una aplicación de SEO. Es un **ejemplo ficticio**: la tienda, las horas y los textos están inventados para enseñar cómo se encadena una sobrescritura.

| Hora (ejemplo ficticio) | Quién escribe                             | Campo                                    | Valor guardado después                          |
| ----------------------- | ----------------------------------------- | ---------------------------------------- | ----------------------------------------------- |
| Lunes, 03:00            | El PIM, en su exportación diaria          | Descripción                              | Texto del fabricante                            |
| Lunes, 17:30            | El equipo de contenido, a mano en Shopify | Descripción                              | Texto propio, con tallas y materiales           |
| Lunes, 17:45            | La aplicación de SEO                      | [_Meta title_](/es/glosario/meta-title/) | Título nuevo, con el modelo                     |
| Martes, 03:00           | El PIM, en su exportación diaria          | Descripción                              | Otra vez el texto del fabricante                |
| Martes, 03:00           | Nadie                                     | _Meta title_                             | Se conserva, porque el PIM no exporta ese campo |


La cuarta fila es la sobrescritura: nadie decidió volver al texto del fabricante, pero el PIM manda sobre ese campo y nadie se lo dijo al equipo de contenido. La quinta es la que se salva, y solo porque ese campo no está en la exportación. El arreglo no es técnico, sino de reparto: o la descripción se edita en el PIM, o el PIM deja de exportarla. Clione, cuando la plataforma o un PIM sobrescriben un campo que publicó, lo marca en la siguiente sincronización con la fecha y los campos exactos, y volver a publicarlo es una decisión tuya.


Que la fecha de modificación de un producto dice qué cambió. **Una fecha nueva no significa que alguien haya tocado tu campo**: en Shopify la fecha de última modificación cambia también, por ejemplo, cuando un pedido ajusta el inventario.[^shopify-product] La prueba es el valor: el que publicaste, comparado con el que hay ahora.


## Cómo comprobarlo

1. **Haz la lista de todo lo que escribe en tu catálogo**: la plataforma, el PIM, el ERP, cada aplicación con permiso de escritura, las importaciones por CSV y las personas del equipo.
2. **Escribe el mapa de campos**: para cada campo, un solo sistema que manda y los que solo reciben. Un campo con dos sistemas que escriben es una sobrescritura esperando a ocurrir.
3. **Prueba un campo.** Cambia a mano un valor en un producto de prueba, espera a la siguiente sincronización de cada sistema y mira si sigue ahí.
4. **Compara valores, no fechas.** Guarda lo que publicaste y compáralo con lo que hay en la tienda; la fecha de modificación solo dice que algo cambió.[^shopify-product]
5. **Pregunta a cada integración si escribe con comprobación previa**, con `If-Match` en una API HTTP o con `compareDigest` en los metafields de Shopify, o si escribe encima sin mirar.[^rfc9110][^shopify-metafieldsset]

## Concepto cercano: deriva de datos

La [deriva de datos](/es/glosario/deriva-de-datos/) es la diferencia que se acumula con el tiempo entre dos sitios que deberían decir lo mismo, como el [feed de productos](/es/glosario/feed-de-productos/) y la ficha publicada. La sobrescritura es un suceso concreto: una escritura que borra otra. A menudo una lleva a la otra, porque **cada sobrescritura que nadie detecta deja dos versiones de un dato**, la que se quería publicar y la que se publicó. La deriva se descubre comparando; la sobrescritura se evita decidiendo quién escribe cada campo, y se detecta comparando el valor justo después de cada sincronización.

Para seguir, la [ruta de lectura de publicación por plataforma](/es/aprender/publicacion-por-plataforma/) ordena el resto de términos, y la entrada sobre el [PIM](/es/glosario/pim/) explica cómo se reparte un catálogo entre sistemas.
