Passa al contenuto principale

Configurazione Cron Job

Order Payment Reminders Pro non invia email autonomamente — richiede una chiamata esterna ricorrente (un cron job) per avviare il motore dei promemoria.

note

Disponibile dalla v1.0.0

Senza un cron job funzionante, non verrà inviata alcuna email di promemoria, nessun ordine verrà annullato automaticamente e il riepilogo per l'amministratore non arriverà mai.

Panoramica

Ogni volta che l'URL del cron viene chiamato, il modulo analizza tutti gli ordini non pagati in sospeso e decide come procedere:

  • Invia email di promemoria — Per ogni ordine che ha raggiunto il momento pianificato per il prossimo promemoria, il modulo invia l'email configurata.
  • Annulla gli ordini scaduti — Se l'annullamento automatico è abilitato e un ordine ha superato la scadenza configurata, lo stato dell'ordine viene modificato in Annullato e il magazzino viene ripristinato.
  • Invia il riepilogo all'amministratore — Se la funzionalità Email Riepilogo Amministratore è abilitata, il modulo invia un riassunto degli ordini prossimi alla scadenza di annullamento. Questa operazione è limitata a una volta al giorno, indipendentemente da quanto spesso viene eseguito il cron.

Tutte e tre le azioni avvengono in un'unica chiamata al cron. Non sono necessarie voci di cron separate per ciascuna funzionalità.

L'endpoint del cron è protetto da una chiave segreta. Le chiamate prive di una chiave valida restituiscono una risposta 403 Forbidden e registrano un avviso di accesso non autorizzato. Nessuna email viene mai inviata da una richiesta non autorizzata.

Configurazione

Frequenza di Esecuzione del Cron

Giornaliera a orario fisso è il requisito minimo e funziona bene per la maggior parte dei negozi. Eseguilo una volta al giorno a un orario adatto ai tuoi clienti — la mattina presto (ad esempio le 09:00) fa sì che i promemoria arrivino durante l'orario lavorativo.

Ogni ora è preferibile quando si utilizzano pianificazioni di promemoria basate sulle ore (ad esempio, "invia un promemoria 12 ore dopo l'ordine"). Se tutti i tuoi promemoria sono basati sui giorni, le esecuzioni orarie sono superflue ma non causano problemi.

Più di una volta all'ora non è mai necessario. Il modulo tiene traccia dei promemoria già inviati e non li duplicherà.

Passaggio 1 — Trova l'URL del Cron nel Back Office

Il tuo URL cron univoco e protetto è visualizzato direttamente nella configurazione del modulo.

  1. Vai su Moduli > Gestione Moduli, trova Order Payment Reminders Pro e clicca su Configura.
  2. Clicca sulla scheda Cron Jobs nella navigazione del modulo.
  3. Cerca la riga URL check and send the emails is:. L'URL completo è mostrato lì.

Copia questo URL. Lo incollerai nella configurazione del tuo cron nei passaggi seguenti.

Il valore key= è un token esadecimale di 32 caratteri generato alla prima installazione del modulo e memorizzato nel database. È univoco per il tuo negozio. Non condividerlo pubblicamente né inserirlo in sistemi di controllo versione.

Il Formato dell'URL Dipende dall'Impostazione degli URL Brevi

Il modulo visualizza automaticamente il formato URL corretto per il tuo negozio. Esistono due forme:

Forma con URL brevi (quando gli URL brevi sono abilitati in Parametri del negozio > Traffico & SEO > SEO & URL):

https://yourstore.com/wiretransferreminder/cron?key=a1b2c3d4e5f6...

Forma standard (quando gli URL brevi sono disabilitati):

https://yourstore.com/index.php?fc=module&module=wiretransferreminder&controller=cron&key=a1b2c3d4e5f6...

Entrambe le forme funzionano in modo identico. Copia sempre l'URL esattamente come mostrato dal modulo — il modulo seleziona automaticamente il formato corretto per il tuo negozio. La forma con URL brevi è stata introdotta nella v1.3.1 tramite il hook moduleRoutes.

Passaggio 2 — Scegli il Metodo di Configurazione

Usa il metodo supportato dal tuo ambiente di hosting. Ne basta uno solo.

  • Cron Jobs cPanel — disponibile sulla maggior parte degli hosting condivisi (cPanel, Plesk)
  • Linux crontab — disponibile quando hai accesso SSH al server
  • PrestaShop Cron Tasks Manager — disponibile come modulo gratuito sui negozi PrestaShop 1.6

Opzione A — Cron Jobs cPanel

  1. Accedi al tuo cPanel e apri Cron Jobs.
  2. Sotto Aggiungi Nuovo Cron Job, imposta la frequenza. Per una esecuzione giornaliera alle 09:00:
    • Minuto: 0
    • Ora: 9
    • Giorno: *
    • Mese: *
    • Giorno della settimana: *
  3. Nel campo Comando, incolla:
curl -s -o /dev/null "https://yourstore.com/wiretransferreminder/cron?key=YOUR_KEY_HERE"

Sostituisci l'URL con l'URL completo copiato dal Back Office.

  1. Clicca su Aggiungi Nuovo Cron Job.

Per una pianificazione oraria, imposta Minuto su 0 e Ora su *.


Opzione B — Linux crontab (SSH)

  1. Connettiti al tuo server via SSH.
  2. Apri l'editor del crontab:
crontab -e
  1. Aggiungi una delle seguenti righe alla fine del file.

Giornaliero alle 09:00:

0 9 * * * curl -s -o /dev/null "https://yourstore.com/wiretransferreminder/cron?key=YOUR_KEY_HERE"

Ogni ora in punto:

0 * * * * curl -s -o /dev/null "https://yourstore.com/wiretransferreminder/cron?key=YOUR_KEY_HERE"

Ogni 3 ore (0:00, 3:00, 6:00, 9:00 ...):

0 */3 * * * curl -s -o /dev/null "https://yourstore.com/wiretransferreminder/cron?key=YOUR_KEY_HERE"
  1. Salva e chiudi l'editor. Il daemon cron applicherà le modifiche immediatamente.

Il flag -s sopprime l'output di avanzamento di curl. L'opzione -o /dev/null scarta il corpo della risposta (che altrimenti finirebbe nella tua casella di posta). Se vuoi registrare l'output per il debug, sostituisci -o /dev/null con -o /percorso/per/wr-cron.log.

Su alcuni server curl potrebbe non essere nel PATH predefinito per il cron. Se il job non viene eseguito, usa il percorso completo: esegui which curl nella tua sessione SSH per trovarlo (solitamente /usr/bin/curl).


Opzione C — PrestaShop Cron Tasks Manager (solo PS 1.6)

Il modulo gratuito Cron Tasks Manager (disponibile nell'Addons Marketplace) fornisce uno scheduler cron nel browser che funziona senza accesso a livello di server. È mostrato nella scheda Cron Jobs per i negozi PrestaShop 1.6.

  1. Installa e configura Cron Tasks Manager se non l'hai già fatto.
  2. In Cron Tasks Manager, clicca su Aggiungi nuovo task.
  3. Inserisci una descrizione come Order Payment Reminders Pro.
  4. Incolla il tuo URL cron nel campo Script URL.
  5. Imposta la frequenza del task a una volta al giorno (o una volta all'ora).
  6. Salva.

Questo metodo si basa sul traffico dei clienti per avviare il cron. Nei negozi con poco traffico potrebbe non essere eseguito a orari prevedibili. Per una consegna affidabile, preferisci l'Opzione A o l'Opzione B.


Impostazioni che Influenzano il Comportamento del Cron

Queste impostazioni in Configura > Configurazione Globale determinano cosa esegue il cron ad ogni chiamata. Non fanno parte della configurazione dell'URL del cron.

ImpostazioneDove trovarlaEffetto durante il cron
Activate Cancel Orders FeatureScheda Configurazione GlobaleAbilita l'annullamento automatico degli ordini che superano la scadenza
Cancel Order after (days)Scheda Configurazione GlobaleNumero di giorni dopo i quali un ordine non pagato viene annullato; 0 disabilita l'annullamento
Admin Digest EmailScheda Configurazione GlobaleAbilita l'email di riepilogo giornaliera all'amministratore del negozio
Digest EmailScheda Configurazione GlobaleIndirizzo destinatario per il riepilogo amministratore; predefinito all'email del negozio
Alert Before Cancellation (hours)Scheda Configurazione GlobaleGli ordini entro questo numero di ore dalla cancellazione vengono inclusi nel riepilogo; predefinito 24
Test ModeScheda Configurazione GlobaleSe abilitato, invia tutte le email all'indirizzo di test invece che ai clienti reali

Come Funziona

Quando l'URL del cron viene chiamato con una chiave valida, il modulo esegue i seguenti passaggi nell'ordine indicato:

  1. Valida la chiave — Confronta il parametro ?key= con il valore wr_cron_key memorizzato. Se non corrispondono, la richiesta viene rifiutata con una risposta 403 Forbidden e registrata. Il parametro legacy ?token= viene anch'esso verificato per compatibilità con le versioni precedenti.
  2. Interroga gli ordini non pagati — Recupera tutti gli ordini con uno stato di pagamento in sospeso per i moduli di pagamento configurati.
  3. Invia il riepilogo all'amministratore (se abilitato) — Verifica se è già stato inviato un riepilogo oggi. In caso contrario, ne invia uno e registra la data in modo da non inviarlo nuovamente fino al giorno successivo, indipendentemente da quanto spesso viene eseguito il cron.
  4. Elabora ogni ordine — Per ogni ordine non pagato:
    • Se l'ordine ha superato la scadenza globale di annullamento, viene annullato e il magazzino viene ripristinato (a meno che la modalità Test non sia attiva).
    • In caso contrario, il modulo verifica se l'ordine è in scadenza per il prossimo promemoria pianificato e, in tal caso, invia l'email.

Il modulo registra un riepilogo dopo ogni esecuzione. Puoi trovarlo in Parametri Avanzati > Log filtrando per WireTransferReminder.

Sicurezza: Parametro key= vs token=

Il modulo accetta due nomi di parametro per l'autenticazione:

ParametroStatoQuando usarlo
?key=YOUR_KEYAttuale — preferitoTutte le nuove voci cron
?token=LEGACY_TOKENLegacy — ancora supportatoVoci cron esistenti da versioni precedenti alla 1.2.0

Il valore key= è un token esadecimale statico di 32 caratteri memorizzato nel database (wr_cron_key). Viene generato una sola volta al momento dell'installazione e non cambia mai, a meno che il modulo non venga disinstallato e reinstallato.

Il parametro legacy ?token= utilizzava un token di amministrazione basato sulla sessione che poteva cambiare ad ogni aggiornamento di versione di PrestaShop o modifica dell'utente amministratore. Se hai una vecchia voce cron che usa ?token=, continuerà a funzionare, ma si consiglia di aggiornarla per usare ?key= per una maggiore affidabilità nel lungo termine. Per ottenere un URL basato su ?key= aggiornato in qualsiasi momento, vai su Configura > Cron Jobs nel Back Office.

Esempi d'Uso

Esempio: Promemoria giornalieri per un negozio con pagamento tramite bonifico

Vendi prodotti in cui i clienti pagano tramite bonifico bancario. Configura un cron per l'esecuzione giornaliera alle 09:00. La tua sequenza di promemoria è: giorno 3, giorno 5, giorno 7 (avviso finale con annullamento automatico). Il cron si attiva ogni mattina, invia l'email corretta a ogni cliente in base a quanti giorni il loro ordine è rimasto in sospeso e annulla automaticamente qualsiasi ordine che ha superato il giorno 7.

Esempio: Promemoria orari per prodotti con scadenza ravvicinata

Configuri un promemoria a 24 ore e un altro a 48 ore dopo l'ordine. Con un cron giornaliero, un cliente che effettua un ordine alle 15:00 potrebbe non ricevere il promemoria delle 24 ore fino alle 09:00 del giorno successivo — 18 ore di ritardo. Passando a un cron orario, il promemoria viene inviato esattamente alle 15:00 il giorno dopo, entro un'ora dall'orario pianificato.

Esempio: Servizio cron esterno su hosting condiviso

Il tuo piano di hosting non include il cron cPanel. Registra un account gratuito su cron-job.org, aggiungi un nuovo job, incolla l'URL cron completo da Configura > Cron Jobs e imposta la pianificazione a una volta al giorno. Il servizio esterno effettua una richiesta HTTP GET al tuo negozio all'orario configurato, attivando il modulo esattamente come farebbe un cron lato server.

Note Importanti

  • Allinea la pianificazione dei promemoria alla frequenza del cron. Se il tuo promemoria più anticipato è impostato su "3 giorni dopo l'ordine", eseguire il cron ogni ora non offre alcun vantaggio rispetto a una volta al giorno. Se hai promemoria impostati in ore, il cron orario è necessario per consegnarli puntualmente.
  • Non eseguire il cron più di una volta all'ora. Il modulo può essere chiamato più volte in sicurezza — tiene traccia dei promemoria inviati e non li duplicherà — ma non c'è alcun beneficio nell'eseguirlo più frequentemente.
  • Sopprimi l'output email del cron. La maggior parte dei daemon cron invia l'output standard alla casella di posta di sistema. Usa -o /dev/null nei comandi curl (già incluso negli esempi) per evitare email indesiderate.
  • Testa prima l'URL manualmente. Prima di configurare il cron, incolla l'URL completo nel browser mentre sei disconnesso. Una configurazione funzionante restituisce una pagina vuota o un breve testo di stato. Una risposta 403 Forbidden significa che la chiave è errata.
  • La chiave del cron è globale. È memorizzata come valore di configurazione globale e si applica a tutti i negozi in una configurazione multi-negozio. Una singola chiamata al cron elabora gli ordini di tutti i negozi.
  • La forma con URL brevi richiede che gli URL brevi siano abilitati. Se disabiliti gli URL brevi dopo aver configurato un cron con la forma breve, l'URL smetterà di funzionare. Torna su Configura > Cron Jobs e copia l'URL aggiornato.

Risoluzione dei Problemi

ProblemaSoluzione
I promemoria non vengono inviatiVerifica che il cron job stia effettivamente girando controllando i log del cron del server o aggiungendo la registrazione dell'output. Conferma anche che l'URL funzioni aprendolo manualmente nel browser.
Il cron restituisce 403 ForbiddenLa chiave nel tuo URL cron non corrisponde alla chiave memorizzata. Vai su Configura > Cron Jobs nel Back Office, copia nuovamente l'URL e aggiorna la voce del cron.
I promemoria vengono inviati all'orario sbagliatoControlla che il fuso orario del server corrisponda alle tue aspettative. Esegui date via SSH per verificarlo. Adatta l'ora del cron di conseguenza (ad esempio, se il server è in UTC e vuoi le 09:00 a UTC+2, imposta l'ora del cron su 7).
Gli ordini non vengono annullatiVerifica che Activate Cancel Orders Feature sia abilitato e che Cancel Order after sia impostato su un valore maggiore di 0 nella Configurazione Globale. Verifica anche che la modalità Test sia disattivata.
Il riepilogo amministratore non arrivaVerifica che Admin Digest Email sia abilitato nella Configurazione Globale. Controlla che Alert Before Cancellation (hours) sia impostato in modo appropriato — se nessun ordine rientra in quella finestra temporale, non viene inviato alcun riepilogo. Controlla anche la cartella spam.
Il cron viene eseguito ma non invia emailVerifica di avere almeno un messaggio di promemoria attivo configurato nella scheda Reminder Messages e che gli ordini siano rimasti in sospeso abbastanza a lungo da corrispondere alla tua pianificazione.
curl: command not found nei log del cronUsa il percorso completo di curl. Esegui which curl via SSH per trovarlo, quindi aggiorna il comando cron per utilizzare il percorso assoluto (ad esempio, /usr/bin/curl).
L'URL cron con URL brevi dà 404Il tuo negozio potrebbe avere gli URL brevi disabilitati. Vai su Configura > Cron Jobs e copia l'URL come visualizzato — il modulo mostrerà la forma corretta per l'impostazione attuale del tuo negozio.

Domande Frequenti

Come faccio a sapere se il cron è effettivamente in esecuzione?

Il controllo più semplice è aprire l'URL del cron direttamente nel browser mentre sei disconnesso. Dovresti vedere una pagina vuota o un breve messaggio di stato — mai una pagina di errore. Dopo una vera esecuzione del cron, puoi anche controllare Parametri Avanzati > Log nel tuo Back Office per le voci di WireTransferReminder.

Chiamare l'URL del cron più volte nello stesso giorno invierà email di promemoria duplicate?

No. Il modulo registra quale promemoria è stato inviato per ogni ordine. Una seconda chiamata nello stesso giorno troverà quegli ordini già elaborati e li ignorerà. Il riepilogo amministratore è inoltre limitato a una volta per giorno di calendario.

Cosa succede se il cron smette di funzionare per diversi giorni?

Alla successiva esecuzione riuscita del cron, il modulo elabora tutti gli ordini come se stesse girando normalmente. Gli ordini che hanno superato la scadenza di annullamento verranno annullati (se quella funzionalità è abilitata). Gli ordini in scadenza per un promemoria riceveranno il loro prossimo promemoria pianificato, ma i promemoria intermedi scaduti durante il periodo di interruzione verranno saltati — il modulo invia il promemoria più appropriato in base allo stato attuale di ogni ordine.

Il mio hosting non consente il cron lato server. Quali sono le mie opzioni?

Puoi utilizzare un servizio cron esterno come cron-job.org o EasyCron per chiamare l'URL su una pianificazione. Questi servizi effettuano una richiesta HTTP GET al tuo URL cron all'intervallo specificato. Incolla l'URL completo da Configura > Cron Jobs nel campo URL del servizio e imposta la frequenza desiderata.

Posso usare il parametro legacy ?token= se lo ho già configurato?

Sì. Il parametro legacy continua a funzionare per compatibilità con le versioni precedenti. Tuttavia, il valore ?token= può cambiare dopo un aggiornamento di PrestaShop o una modifica dei permessi utente. Per una maggiore affidabilità nel lungo termine, aggiorna la voce del cron per usare ?key=, che puoi copiare da Configura > Cron Jobs.

È sicuro inserire l'URL del cron in uno strumento di monitoraggio o in un controllo uptime?

Sì, a condizione che lo strumento effettui solo richieste GET. L'endpoint del cron elaborerà gli ordini in sospeso ad ogni chiamata, ma con una pianificazione corretta non ci sarà nulla di extra da elaborare tra le esecuzioni pianificate. La chiave nell'URL è un segreto — non condividerla in dashboard pubbliche o pagine di stato del monitoraggio visibili ad altri.

Il cron funziona in una configurazione multi-negozio?

Sì. Una singola chiamata al cron elabora gli ordini di tutti i negozi. Il modulo filtra gli ordini per negozio utilizzando la restrizione shop integrata di PrestaShop, in modo che gli ordini di ogni negozio vengano gestiti in base alla configurazione di quel negozio.

Quale forma di URL devo usare — l'URL breve o la forma standard?

Copia sempre l'URL esattamente come mostrato in Configura > Cron Jobs. Il modulo visualizza la forma corretta per l'impostazione degli URL brevi attuale del tuo negozio. Se successivamente modifichi l'impostazione degli URL brevi, torna alla scheda Cron Jobs e copia l'URL aggiornato.

Funzionalità Correlate