Ogni funzione nasce da un comportamento reale di PrestaShop e dalla relativa patch. Qui sotto le spieghiamo una per una, con i nomi degli hook, le tabelle coinvolte e i parametri configurabili.
Il modulo registra l'hook actionObjectCartRuleUpdateAfter in fase di installazione. Quando una cart rule viene aggiornata e lo stato active passa a 0, Cart Cleaner reagisce nello stesso ciclo di richiesta.
ps_cart_cart_rulehookL'hook actionCartSave si attiva ogni volta che un carrello viene salvato: modifica quantità, aggiunta prodotto, applicazione coupon, risposta a mail di recupero, checkout step.
Cart Cleaner ne approfitta per verificare che tutte le cart rule nel carrello siano ancora attive. Se nel frattempo ne è stata disattivata una (e per qualche motivo la pulizia del layer 01 non l'ha raggiunta), viene rimossa qui.
L'hook actionValidateOrder è l'ultima rete prima che un ordine venga finalizzato. Cart Cleaner lo usa per un controllo finale: se una regola inattiva è sopravvissuta ai primi due layer (raro ma possibile, es. race condition), viene rimossa qui.
L'evento viene loggato sia nella tabella del modulo (source=checkout) sia su PrestaShopLogger come warning di severità 2, così il team tecnico può indagare se succede spesso.
CARTCLEANER_ORDER_PROTECTION. Se hai altre logiche in questa fase preferisci lasciare disattivato il layer 03 e affidarti ai primi due.
Lo sweep di grandi volumi di carrelli può mandare in timeout o saturare la memoria PHP. Cart Cleaner suddivide il lavoro in blocchi configurabili da 10 a 5.000 carrelli per ciclo (default 500).
Endpoint HTTP protetto da token (32 caratteri generati in installazione, rigenerabile). Il cron fa due cose: sweep delle regole inattive residue e purga dei log oltre la retention.
Il comando crontab è già pronto nel back office — copiaincolla e attiva.
Nel back office due strumenti di intervento diretto, per i casi in cui vuoi agire adesso senza aspettare il cron.
manual e id_employeeOgni operazione scrive una riga in ps_cartcleaner_log: data, id cart rule, codice, nome, carrelli trovati, puliti, errori, sorgente, id_employee (se manuale), dettagli.
La tabella ha indici ottimizzati per i filtri più comuni (data, regola, sorgente). La paginazione mostra 20 righe per pagina con navigazione centrata sulla corrente (max 10 pagine visibili).
hook, manual, cron, checkout — ognuna con badge coloratodetails per note contestuali (es. "intercettata durante validazione ordine, carrello #88.412")| Data | Regola | Puliti | Sorgente |
|---|---|---|---|
| 14:32:16 | #147 | 218 | hook |
| 12:18:02 | #141 | 47 | manuale |
| 11:47:33 | #138 | 31 | checkout |
| 03:00:01 | (sweep) | 12 | cron |
La tabella log cresce. Se non la gestisci, in un anno puoi accumulare decine di migliaia di righe che rallentano le query. Cart Cleaner gestisce la cosa per te.
Dalla v2.1 il modulo registra una voce Cart Cleaner direttamente nel menu Ordini del back office PrestaShop. Un click per arrivare alla dashboard — niente "Moduli → cerca modulo → configura".
Vedi quattro KPI live (operazioni e carrelli puliti, totali e giornalieri), un grafico 30 giorni con tooltip SVG nativi, lo storico operazioni paginato con badge per sorgente (hook, manuale, cron, checkout) e il nome dell'employee quando l'azione è manuale. Bottone Esporta CSV integrato. Le azioni di scrittura sono nella pagina Configura (un link diretto te le apre).