# Sincronizzazione Multi-Negozio — Guida all'installazione e alla configurazione

> Questa guida copre l'installazione del modulo Sincronizzazione Multi-Negozio, la connessione tra due installazioni PrestaShop e la configurazione completa della sincronizzazione del catalogo. Prerequisiti Due installazioni PrestaShop da 8.0 a 9.x…

- Pagina: <https://www.datafirefly.com/it/documentation/sincronizzazione-multi-negozio/>
- Lingua: it
- Aggiornato il: 2026-07-15
- Altre lingue: [fr](https://www.datafirefly.com/documentation/synchronisation-multi-boutiques/index.md), [en](https://www.datafirefly.com/en/documentation/multi-store-synchronization/index.md), [es](https://www.datafirefly.com/es/documentation/sincronizacion-multi-tienda/index.md), [de](https://www.datafirefly.com/de/documentation/multi-shop-synchronisation/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)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

Questa guida copre l'installazione del modulo **Sincronizzazione Multi-Negozio**, la connessione tra due installazioni PrestaShop e la configurazione completa della sincronizzazione del catalogo.

## Prerequisiti

- Due installazioni PrestaShop da 8.0 a 9.x (i database e l'hosting possono essere distinti).
- L'estensione PHP cURL attiva sul negozio che pilota la sincronizzazione.
- Il webservice attivato sul negozio remoto, con una chiave di accesso dedicata.

Il modulo si installa solo sul negozio che _pilota_ la sincronizzazione. Il negozio remoto necessita unicamente del webservice attivato — non va installato alcun modulo su di esso.

## Installazione del modulo

1. Nel back-office del negozio che pilota, apri **Moduli > Gestore dei moduli**.
2. Clicca su **Carica un modulo** e invia il file `dfmultisync.zip`.
3. Una volta installato, il modulo aggiunge il menu **Parametri avanzati > DF Multi-Store Sync**.

## Attivare il webservice sul negozio remoto

Sul negozio da connettere:

1. Apri **Parametri avanzati > Webservice**.
2. Imposta **Attiva il webservice di PrestaShop** su _Sì_ e salva.
3. Clicca su **Aggiungi una nuova chiave webservice**, genera una chiave, poi concedi i permessi `GET`, `POST`, `PUT` e `DELETE` sulle risorse: `categories`, `products`, `images`, `combinations`, `stock_availables`, `specific_prices` e `languages`.
4. Salva e copia la chiave generata.

Senza i permessi `DELETE` su `specific_prices`, la sincronizzazione dei prezzi specifici fallirà: il modulo replica l'insieme remoto tramite eliminazione e ricreazione.

## Aggiungere un sito remoto

1. Vai su **DF Multi-Store Sync > Siti remoti** e poi **Aggiungi sito remoto**.
2. Inserisci un nome, l'URL radice del negozio remoto (es. `https://negozio-b.esempio.com`) e la chiave webservice copiata in precedenza.
3. Salva, poi clicca su **Test** nell'elenco per verificare la connessione.

Il pulsante **Test** interroga realmente il webservice remoto. Se fallisce, verifica l'URL (con il protocollo `https://`), la chiave e che il webservice sia attivo sul lato remoto.

## Creare un profilo di sincronizzazione

Un profilo descrive _cosa_ sincronizzare, _in quale verso_ e _come_ arbitrare i conflitti.

### Verso: push o pull

- **Push** — il negozio corrente è la fonte e invia i suoi dati al sito remoto.
- **Pull** — il sito remoto è la fonte; il negozio corrente riceve i suoi dati.

### Entità

Seleziona le entità da sincronizzare. Vengono sempre elaborate in quest'ordine per rispettare le dipendenze: **categorie → prodotti → stock → prezzi specifici**.

### Opzioni

- **Sincronizza immagini** — in push, le nuove immagini locali vengono inviate; in pull, le immagini vengono scaricate alla creazione del prodotto.
- **Sincronizza prezzi specifici** — disponibile solo in modalità push.
- **Dimensione del lotto** — numero di entità elaborate per ciclo (da 1 a 25). Riducila se il server remoto è lento.

## Strategie di conflitto

Un conflitto si verifica quando entrambi i negozi hanno modificato la stessa scheda dall'ultima sincronizzazione. Sono disponibili quattro strategie:

- **Vince la fonte** — la fonte sovrascrive sempre la destinazione.
- **Vince la destinazione** — le entità in conflitto vengono ignorate.
- **Vince il più recente** — vengono confrontate le date di modifica.
- **Manuale** — i conflitti vengono messi in coda per l'arbitraggio.

## Avviare una prima sincronizzazione

1. Apri la **Dashboard** del modulo.
2. Sulla riga del profilo, clicca su **Avvia ora**.
3. La sincronizzazione viene eseguita a lotti: la barra di avanzamento mostra in tempo reale il numero di entità create, aggiornate, ignorate, in conflitto e in errore.

La sincronizzazione lavora entro un budget di tempo (25 secondi per impostazione predefinita) e riprende automaticamente da dove si era fermata. Su un catalogo grande, più cicli si concatenano senza intervento.

## Automatizzare con il cron

1. Attiva l'opzione **Cron** sui profili interessati.
2. Copia l'URL di cron mostrato nella dashboard (protetto da un token).
3. Aggiungilo alla crontab del tuo server, ad esempio ogni quindici minuti:

```
*/15 * * * * wget -q -O /dev/null "https://il-tuo-negozio.com/module/dfmultisync/cron?token=IL_TUO_TOKEN"
```

Il token dell'URL di cron è riservato: autorizza l'avvio delle sincronizzazioni. Non condividerlo e non esporlo pubblicamente.

## Risolvere i conflitti

Con la strategia **Manuale**, i conflitti si accumulano nella scheda **Conflitti**. Per ogni riga in sospeso:

- **Mantieni locale** — forza l'invio (push) della versione locale.
- **Mantieni remoto** — forza il recupero (pull) della versione remota.
- **Ignora** — segna il conflitto come gestito senza trasferire nulla.

## Log e monitoraggio

La scheda **Logs** conserva lo storico delle operazioni (informazione, avviso, errore), filtrabile per livello e per data. I log vengono eliminati automaticamente dopo 30 giorni.

## Risoluzione dei problemi

### Il test di connessione fallisce

Verifica che il webservice sia attivato sul lato remoto, che la chiave sia corretta e che il suo profilo di permessi copra le risorse elencate sopra. Assicurati che l'URL includa `https://`.

### Alcuni prodotti vengono ignorati

Il modulo abbina prodotti e combinazioni tramite **riferimento**. Un prodotto senza riferimento, o con riferimento diverso tra i due negozi, non potrà essere abbinato per lo stock. Inserisci riferimenti coerenti.

### I prezzi specifici non si sincronizzano

La sincronizzazione dei prezzi specifici è **solo push** e richiede il permesso `DELETE` su `specific_prices` sul lato remoto.

### La sincronizzazione sembra lenta

Riduci la dimensione del lotto del profilo e lascia che il cron concateni i cicli. La prima passata è sempre la più lunga; le successive trasferiscono solo le entità realmente modificate.
