Configurazione Multi-negozio e Multi-lingua
Order Payment Reminders Pro archivia il contenuto dei promemoria, le variabili personalizzate e i modelli email separatamente per ogni negozio e ogni lingua, così i tuoi clienti ricevono sempre un promemoria scritto nella loro lingua dal negozio corretto.
Disponibile dalla v1.0.0
Panoramica
Ogni messaggio promemoria che crei ha un oggetto e un corpo per ogni lingua attiva nella tua installazione PrestaShop. Quando il cron job giornaliero viene eseguito, individua la lingua che il cliente ha utilizzato al momento dell'ordine e invia la versione corrispondente del messaggio. Se non esiste una traduzione per quella lingua, il promemoria viene saltato per quell'ordine — è quindi importante compilare tutte le lingue attive prima di andare in produzione.
Le variabili personalizzate seguono lo stesso schema per negozio: una variabile chiamata {bank_details} nel tuo negozio spagnolo può contenere un contenuto diverso rispetto alla stessa variabile nel tuo negozio francese. Questo consente a ciascun negozio di includere i propri dati bancari, indirizzi di contatto o qualsiasi altro testo specifico del negozio senza dover creare messaggi promemoria separati.
Le impostazioni globali — come la modalità di test, le regole di annullamento automatico, la chiave di sicurezza del cron e il wrapper del modello email — sono condivise tra tutti i negozi della tua installazione. Le configuri una volta sola e si applicano ovunque.
Il contesto del negozio in cui ti trovi quando apri la pagina di configurazione del modulo determina i dati che visualizzi e modifichi. Trovarsi nel contesto di negozio sbagliato è la causa più comune di confusione nelle configurazioni multi-negozio.
Configurazione
Passa al contesto di negozio corretto
Prima di configurare messaggi o variabili per un singolo negozio, assicurati di essere nel contesto di quel negozio:
- Accedi al tuo Back Office.
- Usa il selettore di negozio nella barra superiore (il menu a tendina con il nome del tuo negozio o "Tutti i negozi").
- Seleziona il negozio specifico che vuoi configurare — non un gruppo di negozi, e non Tutti i negozi.
- Vai su Moduli > Gestione moduli e clicca su Configura in corrispondenza di Order Payment Reminders Pro.
I messaggi promemoria che crei o modifichi e le variabili personalizzate che aggiungi vengono salvati nel negozio attivo al momento del salvataggio. Se sei nel contesto "Tutti i negozi", il contenuto del messaggio viene scritto su tutti i negozi del gruppo corrente. Verifica sempre il selettore di negozio prima di salvare.
Tradurre un messaggio promemoria
Ogni modulo di messaggio promemoria contiene una barra di schede lingua sopra i campi Oggetto e Messaggio. Cliccando sulla bandiera o sul nome di una lingua si passa a quella lingua senza perdere il contenuto già inserito per le altre lingue.
- Apri la pagina di configurazione del modulo nel contesto di negozio corretto.
- Clicca su Aggiungi nuovo messaggio oppure clicca sull'icona Modifica su un promemoria esistente.
- Il modulo si apre con la lingua predefinita del Back Office selezionata.
- Compila Oggetto e Messaggio per quella lingua.
- Clicca su un'altra scheda lingua — ad esempio, ES per lo spagnolo.
- Compila l'Oggetto e il Messaggio in spagnolo.
- Ripeti per ogni altra lingua attiva mostrata nella barra delle schede.
- Clicca su Salva.
Il modulo richiede un oggetto non vuoto e un corpo del messaggio non vuoto per ogni lingua attiva. Se lasci vuoto uno dei due campi per una lingua attiva, il salvataggio viene bloccato con l'errore: "Impossibile salvare. L'oggetto email per [lingua] è vuoto." Le lingue inattive possono avere contenuto vuoto.
Tradurre il modello email
Il wrapper HTML delle email — il layout esterno che racchiude ogni messaggio — è anch'esso per lingua e viene configurato nella scheda Modello Email del pannello di configurazione.
- Vai su Moduli > Gestione moduli > Order Payment Reminders Pro > Configura.
- Clicca sulla scheda Modello Email.
- Una barra di schede lingua appare sopra l'area dell'editor. Seleziona la prima scheda lingua e modifica il modello.
- Passa a ciascuna scheda lingua aggiuntiva e fornisci il wrapper tradotto.
- Clicca su Salva.
Il modello viene salvato come file HTML su disco in mails/{iso_code}/wiretransferreminder.html — ad esempio, mails/en/wiretransferreminder.html per l'inglese e mails/es/wiretransferreminder.html per lo spagnolo.
Mantieni sempre i segnaposto
{wr_title}e{wr_message}in ogni versione linguistica del modello. Rimuoverli causa la scomparsa dell'oggetto e del corpo del promemoria nell'email inviata.
Configurare le variabili personalizzate per negozio
Le variabili personalizzate vengono archiviate con l'ID del negozio, quindi ogni negozio mantiene il proprio set. Per configurare variabili per negozio:
- Verifica che il selettore di negozio mostri il negozio corretto.
- Vai alla sezione Variabili personalizzate della configurazione del modulo.
- Aggiungi o modifica le variabili. Ogni salvataggio scrive nel negozio attualmente attivo.
- Passa a un negozio diverso nel selettore di negozio e ripeti per le variabili che differiscono tra i negozi.
Se due negozi condividono valori di variabili identici, devi comunque aggiungere la variabile separatamente per ciascun negozio. Le variabili non vengono mai copiate automaticamente tra i negozi.
Impostazioni: globali vs per negozio
| Impostazione | Chiave config | Ambito | Note |
|---|---|---|---|
| Chiave di sicurezza cron | wr_cron_key | Globale | Una sola chiave per l'intera installazione. Modificarla invalida tutti gli URL cron esistenti in tutti i negozi. |
| Cache directory admin | wr_admin_dir | Globale | Memorizzata automaticamente. Usata dal controller cron per generare URL corretti del Back Office nel contesto cron. |
| Annulla ordini | wr_cancel_orders | Globale | Abilita o disabilita la funzione di annullamento automatico per tutti i negozi. |
| Annulla dopo N giorni | wr_cancel_days | Globale | Il numero di giorni prima che un ordine non pagato venga annullato. Si applica a tutti i negozi. |
| Modalità di test on/off | wr_test_mode | Globale | Attivare la modalità di test influisce su tutti i negozi. Disattivala prima di andare in produzione. |
| Output modalità di test | wr_test_mode_output | Globale | Se l'output di test viene mostrato a schermo. |
| Indirizzo email di test | wr_test_email | Globale | Riceve tutte le email di test indipendentemente dal negozio a cui appartiene l'ordine. |
| Digest admin on/off | wr_admin_digest | Globale | La funzione digest admin è globale — un'unica impostazione copre tutti i negozi. |
| Email digest admin | wr_admin_digest_email | Globale | L'indirizzo del destinatario per il digest giornaliero. |
| Ore digest admin | wr_admin_digest_hours | Globale | Ore prima dell'annullamento entro cui un ordine viene incluso nel digest. |
| Ultimo invio digest admin | wr_admin_digest_last_sent | Globale | Timestamp di throttle. Aggiornato globalmente quando viene inviato un digest. |
| Flag configurazione guidata | wr_first | Per negozio | Tiene traccia del completamento della procedura guidata di configurazione per questo negozio specifico. |
| HTML modello email | wr_email_template | Globale (file su disco) | Archiviato come file per codice ISO lingua, condiviso da tutti i negozi sullo stesso server. |
| Elenco moduli di pagamento | wr_payment_modules | Globale | Quali metodi di pagamento attivano i promemoria. Modificarlo influisce su tutti i negozi. |
| Pianificazione e tipo promemoria | Tabella wr | Condiviso tra negozi | Le regole di tempistica (giorni/ore, modulo di pagamento, flag annullamento) vengono archiviate una volta sola e si applicano a tutti i negozi. |
| Oggetto e corpo del promemoria | Tabella wr_lang | Per negozio + per lingua | Il contenuto è archiviato per (id_wr, id_lang, id_shop). Ogni combinazione di negozio e lingua mantiene la propria copia. |
| Variabili personalizzate | Tabella wr_variables | Per negozio | Nome, tipo e valore della variabile sono archiviati con id_shop. |
La struttura del promemoria — quando si attiva, quale metodo di pagamento, se annulla l'ordine — è condivisa tra tutti i negozi. Ciò che varia per negozio è il contenuto del messaggio: cosa dice effettivamente l'email in ogni lingua. Tieni presente questa distinzione quando pianifichi la sequenza dei promemoria.
Come Funziona
Come vengono inviate le email in una configurazione multi-negozio
Quando il cron job viene eseguito, recupera gli ordini in sospeso e legge le colonne id_shop e id_lang di ciascun ordine. L'email viene inviata usando l'ID di quel negozio, in modo che PrestaShop utilizzi l'indirizzo mittente, il nome del negozio e il logo corretti per quel negozio.
Il contenuto del messaggio (oggetto e corpo) viene recuperato dalla tabella wr_lang dove id_wr, id_lang e id_shop corrispondono tutti all'ordine. Se non esiste nessuna riga per la combinazione lingua e negozio dell'ordine, il promemoria viene saltato per quell'ordine.
I file del modello email sono condivisi su disco
Il file del modello utilizzato per una determinata email è sempre mails/{iso_code}/wiretransferreminder.html sul server. Poiché questi file sono archiviati su disco e non nel database, tutti i negozi sulla stessa installazione PrestaShop condividono gli stessi file di modello. Modificare il modello in qualsiasi contesto di negozio sovrascrive il file per tutti i negozi.
Un solo cron job copre tutti i negozi
Non è necessario un cron job separato per ogni negozio. L'unico URL cron elabora gli ordini in sospeso per ogni negozio nell'installazione. La chiave cron è globale, quindi un URL funziona per l'intera configurazione.
Comportamento del fallback della lingua
Non esiste un fallback automatico alla lingua predefinita. Se un cliente effettua un ordine in una lingua per cui non hai fornito una traduzione, quel promemoria semplicemente non viene inviato per quell'ordine. Questo è intenzionale — un'email non tradotta potrebbe confondere il cliente più che non ricevere nulla.
Esempi d'Uso
Esempio: Due negozi con dati bancari diversi
Gestisci un negozio spagnolo e un negozio francese. Entrambi accettano pagamenti tramite bonifico bancario. Vuoi che ogni promemoria includa il conto bancario corretto per ogni paese.
- Passa al negozio spagnolo nel selettore di negozio.
- Vai su Variabili personalizzate e aggiungi una variabile chiamata
bank_detailscon il testo del conto bancario spagnolo. - Passa al negozio francese.
- Aggiungi lo stesso nome variabile
bank_detailscon il testo del conto bancario francese. - Nel corpo del messaggio promemoria per ogni negozio, inserisci
{bank_details}dove vuoi che appaiano le informazioni bancarie.
Ogni negozio invia email con i propri dati bancari senza necessità di messaggi promemoria separati.
Esempio: Tre lingue, un negozio
Il tuo singolo negozio serve clienti in inglese, tedesco e spagnolo. Tutte e tre le lingue sono attive in PrestaShop.
- Apri il modulo di modifica del messaggio promemoria.
- Scrivi l'oggetto e il corpo in inglese nella scheda EN.
- Clicca sulla scheda DE e scrivi la versione tedesca.
- Clicca sulla scheda ES e scrivi la versione spagnola.
- Clicca su Salva.
Quando arriva un ordine, il cron invia l'email nella lingua che il cliente ha utilizzato al momento dell'acquisto. Un cliente che ha acquistato in tedesco riceve automaticamente la versione tedesca.
Esempio: Aggiornare tutti i negozi di un gruppo in una volta sola
Se hai bisogno di applicare lo stesso contenuto promemoria a tutti i negozi di un gruppo — ad esempio, dopo una modifica alle policy che riguarda tutti i punti vendita — puoi usare il contesto di gruppo:
- Passa il selettore di negozio al gruppo di negozi (non Tutti i negozi e non un singolo negozio).
- Apri la configurazione del modulo e modifica il messaggio promemoria.
- Salva. Il contenuto viene scritto su ogni negozio del gruppo.
Usalo con attenzione. Eventuali traduzioni specifiche del negozio già salvate per i singoli negozi del gruppo verranno sovrascritte.
Note Importanti
- Le regole di tempistica del promemoria — i campi della tabella
wrper la pianificazione, il modulo di pagamento e il flag di annullamento — non sono per negozio. Un promemoria configurato per attivarsi dopo 3 giorni si attiva per tutti i negozi con la stessa pianificazione. - Se una lingua è attiva in PrestaShop, devi fornire un oggetto e un corpo non vuoti per quella lingua in ogni messaggio promemoria. Non esiste un fallback automatico alla lingua predefinita.
- L'URL e la chiave di sicurezza del cron sono globali. Un solo cron job elabora tutti i negozi — non sono necessari più cron job.
- L'email digest admin viene inviata nella lingua predefinita del contesto del negozio al momento dell'esecuzione del cron, in base a
PS_LANG_DEFAULT. - In un'installazione a singolo negozio tutto funziona come per negozio e la distinzione multi-negozio non si applica in pratica.
Risoluzione dei Problemi
| Problema | Soluzione |
|---|---|
| I clienti di un negozio ricevono i promemoria, ma quelli di un altro negozio no | Verifica che i messaggi promemoria abbiano oggetto e corpo compilati per tutte le lingue attive nel secondo negozio. Apri il modulo nel contesto di quel negozio e controlla le schede lingua di ciascun promemoria. |
| Il salvataggio di un promemoria fallisce con "L'oggetto email per [lingua] è vuoto" | Ogni lingua attiva deve avere un oggetto. Passa alla scheda della lingua segnalata e inserisci il testo dell'oggetto. Se non hai bisogno di quella lingua, disattivala in PrestaShop sotto Internazionale > Traduzioni > Lingue — si tratta di una modifica a livello di negozio e influisce su più funzionalità oltre a questo modulo. |
La variabile personalizzata {my_var} appare vuota nelle email di un negozio | La variabile è stata probabilmente creata in un contesto di negozio diverso. Passa al negozio corretto nel selettore, vai su Variabili personalizzate e verifica che la variabile esista lì. In caso contrario, aggiungila. |
| Tutti i negozi inviano il design del modello email sbagliato | I file del modello HTML sono condivisi su disco. Modificare il modello in qualsiasi contesto di negozio sovrascrive il file per tutti i negozi. Modifica il modello intenzionalmente per la lingua specifica che devi cambiare. |
| Le modifiche ai messaggi promemoria non compaiono per un negozio specifico | Potresti aver salvato mentre eri nel contesto Tutti i negozi o di un gruppo di negozi. Apri il modulo specificamente nel contesto del singolo negozio, quindi modifica e salva nuovamente il promemoria. |
| Il cron invia un promemoria in inglese a un cliente francese | La riga wr_lang per quel promemoria potrebbe essere mancante o vuota per il francese in quel negozio. Modifica il promemoria, passa alla scheda lingua francese, verifica che il contenuto ci sia e salva nuovamente. |
Domande Frequenti
Devo installare il modulo separatamente in ogni negozio?
No. Installa il modulo una volta sola ed è disponibile per tutti i negozi. Il pannello di configurazione iniziale tiene traccia del completamento per negozio tramite un flag specifico, quindi vedrai la checklist di configurazione la prima volta che apri il modulo in un negozio non ancora configurato.
Se creo un nuovo messaggio promemoria, appare automaticamente in tutti i miei negozi?
La regola di tempistica è condivisa tra i negozi, ma il contenuto del messaggio (oggetto e corpo) no. Dopo aver creato il promemoria, passa a ciascun negozio nel selettore e compila il contenuto tradotto per quel negozio nelle schede lingua.
Posso usare periodi di annullamento diversi per negozi diversi?
No. L'impostazione di annullamento automatico è globale e applica lo stesso numero di giorni a tutti i negozi. Se hai bisogno di finestre di annullamento diverse per negozio, dovrai disabilitare l'annullamento automatico globalmente e gestire gli annullamenti manualmente.
Cosa succede se la lingua dell'ordine di un cliente non ha una traduzione per un messaggio promemoria?
L'email non viene inviata per quel promemoria. Non esiste un fallback automatico alla lingua predefinita — un'email non tradotta potrebbe confondere il cliente più che non ricevere nulla. Compila sempre tutte le lingue attive per evitare lacune.
Cambiare il contesto del negozio influisce sulla chiave cron?
No. La chiave cron è archiviata globalmente ed è la stessa indipendentemente dal negozio che stai visualizzando. Un solo URL cron funziona per l'intera installazione.
I diversi negozi possono avere moduli di pagamento diversi configurati per i promemoria?
Non al momento. L'elenco dei moduli di pagamento che attivano i promemoria è globale, quindi tutti i negozi condividono lo stesso elenco. Il filtraggio avviene a livello del contenuto del messaggio — ogni negozio può avere contenuti diversi — ma non a livello del modulo di pagamento.
Ho quattro lingue attive ma una viene usata raramente. Devo comunque tradurre ogni messaggio per essa?
Sì, finché la lingua è attiva in PrestaShop. La soluzione più semplice è copiare il contenuto della lingua predefinita nella scheda della lingua poco usata — salvare una copia identica soddisfa la validazione e garantisce che il cron non salti gli ordini effettuati in quella lingua.
I file del modello email (il wrapper HTML) sono archiviati per negozio o globalmente?
I file del modello sono archiviati su disco, un file per codice ISO lingua (mails/en/wiretransferreminder.html, mails/es/wiretransferreminder.html e così via). Poiché sono file su un server condiviso, modificare il modello in qualsiasi contesto di negozio lo cambia per tutti i negozi. Design del wrapper diversi per negozio non sono attualmente supportati tramite il pannello di configurazione.