PS PrestaShop Intermedio

Sincronizzazione Multi-Negozio — Guida all’installazione e alla configurazione

Installare, connettere due negozi PrestaShop e configurare la sincronizzazione del catalogo in modalità push o pull, con cron e gestione dei conflitti.

Aggiornato Versione del modulo 1.0.0

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 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.

Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza