# Sincronización Multi-Tienda — Guía de instalación y configuración

> Esta guía cubre la instalación del módulo Sincronización Multi-Tienda, la conexión entre dos instalaciones PrestaShop y la configuración completa de la sincronización del catálogo. Requisitos Dos instalaciones PrestaShop 8.0 a…

- Página: <https://www.datafirefly.com/es/documentation/sincronizacion-multi-tienda/>
- Idioma: es
- Actualizado el: 2026-07-15
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/synchronisation-multi-boutiques/index.md), [en](https://www.datafirefly.com/en/documentation/multi-store-synchronization/index.md), [de](https://www.datafirefly.com/de/documentation/multi-shop-synchronisation/index.md), [it](https://www.datafirefly.com/it/documentation/sincronizzazione-multi-negozio/index.md), [pl](https://www.datafirefly.com/pl/documentation/synchronisation-multi-boutiques/index.md), [pt](https://www.datafirefly.com/pt/documentation/synchronisation-multi-boutiques/index.md), [nl](https://www.datafirefly.com/nl/documentation/synchronisation-multi-boutiques/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

Esta guía cubre la instalación del módulo **Sincronización Multi-Tienda**, la conexión entre dos instalaciones PrestaShop y la configuración completa de la sincronización del catálogo.

## Requisitos

- Dos instalaciones PrestaShop 8.0 a 9.x (las bases de datos y el alojamiento pueden ser distintos).
- La extensión PHP cURL activa en la tienda que dirige la sincronización.
- El webservice activado en la tienda remota, con una clave de acceso dedicada.

El módulo solo se instala en la tienda que _dirige_ la sincronización. La tienda remota únicamente necesita su webservice activado — no hay que instalar ningún módulo en ella.

## Instalación del módulo

1. En el back-office de la tienda que dirige, abra **Módulos > Gestor de módulos**.
2. Haga clic en **Subir un módulo** y envíe el archivo `dfmultisync.zip`.
3. Una vez instalado, el módulo añade el menú **Parámetros avanzados > DF Multi-Store Sync**.

## Activar el webservice en la tienda remota

En la tienda que se va a conectar:

1. Abra **Parámetros avanzados > Webservice**.
2. Ponga **Activar el webservice de PrestaShop** en _Sí_ y guarde.
3. Haga clic en **Añadir nueva clave de webservice**, genere una clave y luego conceda los permisos `GET`, `POST`, `PUT` y `DELETE` sobre: `categories`, `products`, `images`, `combinations`, `stock_availables`, `specific_prices` e `languages`.
4. Guarde y copie la clave generada.

Sin el permiso `DELETE` sobre `specific_prices`, la sincronización de precios específicos fallará: el módulo replica el conjunto remoto mediante borrado y recreación.

## Añadir un sitio remoto

1. Vaya a **DF Multi-Store Sync > Sitios remotos** y luego **Añadir sitio remoto**.
2. Introduzca un nombre, la URL raíz de la tienda remota (p. ej. `https://tienda-b.ejemplo.com`) y la clave de webservice copiada antes.
3. Guarde y haga clic en **Test** en la lista para verificar la conexión.

El botón **Test** consulta realmente el webservice remoto. Si falla, compruebe la URL (con el protocolo `https://`), la clave y que el webservice esté activado en el lado remoto.

## Crear un perfil de sincronización

Un perfil describe _qué_ sincronizar, _en qué sentido_ y _cómo_ arbitrar los conflictos.

### Sentido: push o pull

- **Push** — la tienda actual es la fuente y envía sus datos al sitio remoto.
- **Pull** — el sitio remoto es la fuente; la tienda actual recibe sus datos.

### Entidades

Seleccione las entidades a sincronizar. Siempre se procesan en este orden para respetar las dependencias: **categorías → productos → stock → precios específicos**.

### Opciones

- **Sincronizar imágenes** — en push, se envían las nuevas imágenes locales; en pull, las imágenes se descargan al crear el producto.
- **Sincronizar precios específicos** — disponible solo en modo push.
- **Tamaño de lote** — número de entidades procesadas por ciclo (1 a 25). Redúzcalo si el servidor remoto es lento.

## Estrategias de conflicto

Un conflicto ocurre cuando ambas tiendas han modificado la misma ficha desde la última sincronización. Hay cuatro estrategias disponibles:

- **Gana la fuente** — la fuente siempre sobrescribe el destino.
- **Gana el destino** — las entidades en conflicto se omiten.
- **Gana el más reciente** — se comparan las fechas de modificación.
- **Manual** — los conflictos se ponen en cola para su arbitraje.

## Lanzar una primera sincronización

1. Abra el **Panel** del módulo.
2. En la fila del perfil, haga clic en **Lanzar ahora**.
3. La sincronización se ejecuta por lotes: la barra de progreso muestra en directo el número de entidades creadas, actualizadas, omitidas, en conflicto y con error.

La sincronización trabaja dentro de un presupuesto de tiempo (25 segundos por defecto) y se reanuda automáticamente donde se detuvo. En un catálogo grande, varios ciclos se encadenan sin intervención.

## Automatizar con el cron

1. Active la opción **Cron** en los perfiles correspondientes.
2. Copie la URL de cron mostrada en el panel (protegida por un token).
3. Añádala a la crontab de su servidor, por ejemplo cada quince minutos:

```
*/15 * * * * wget -q -O /dev/null "https://su-tienda.com/module/dfmultisync/cron?token=SU_TOKEN"
```

El token de la URL de cron es confidencial: autoriza el disparo de las sincronizaciones. No lo comparta ni lo exponga públicamente.

## Resolver los conflictos

Con la estrategia **Manual**, los conflictos se acumulan en la pestaña **Conflictos**. Para cada fila pendiente:

- **Mantener local** — fuerza el envío (push) de la versión local.
- **Mantener remoto** — fuerza la recuperación (pull) de la versión remota.
- **Ignorar** — marca el conflicto como tratado sin transferir nada.

## Registros y seguimiento

La pestaña **Logs** conserva el historial de operaciones (información, advertencia, error), filtrable por nivel y por fecha. Los registros se purgan automáticamente tras 30 días.

## Resolución de problemas

### El test de conexión falla

Compruebe que el webservice esté activado en el lado remoto, que la clave sea correcta y que su perfil de permisos cubra los recursos indicados arriba. Asegúrese de que la URL incluya `https://`.

### Algunos productos se omiten

El módulo empareja productos y combinaciones por **referencia**. Un producto sin referencia, o cuya referencia difiere entre las dos tiendas, no podrá emparejarse para el stock. Introduzca referencias coherentes.

### Los precios específicos no se sincronizan

La sincronización de precios específicos es **solo push** y requiere el permiso `DELETE` sobre `specific_prices` en el lado remoto.

### La sincronización parece lenta

Reduzca el tamaño de lote del perfil y deje que el cron encadene los ciclos. La primera pasada siempre es la más larga; las siguientes solo transfieren las entidades realmente modificadas.
