Disattivazione reattiva
Aggancio su actionObjectCartRuleUpdateAfter. Quando una cart rule diventa inattiva, tutti i carrelli collegati vengono ripuliti nello stesso ciclo di richiesta.
Quando metti a active = 0 una cart rule in PrestaShop, i carrelli che l'hanno già applicata non vengono ripuliti. Il cliente completa l'ordine con lo sconto scaduto, tu perdi margine, l'assistenza riceve il ticket. Cart Cleaner intercetta l'evento al volo e chiude il buco su tre livelli — con audit trail completo.
Non basta un singolo hook. Cart Cleaner posiziona tre checkpoint indipendenti sul percorso di una cart rule. Se uno fallisce, gli altri reggono.
hook actionObjectCartRuleUpdateAfter
Nell'istante in cui una cart rule passa a active = 0, il modulo identifica tutti i carrelli che la contengono e la rimuove in batch. L'operazione è asincrona rispetto al back office: non blocca chi ha fatto la modifica.
hook actionCartSave
Ogni volta che un carrello viene modificato e persistito, Cart Cleaner verifica che tutte le sue cart rule siano ancora attive. Se una è nel frattempo scaduta, la rimuove. Cattura il caso dei carrelli dormienti che si risvegliano.
hook actionValidateOrder
Se per qualsiasi motivo una regola inattiva arriva fino al checkout, viene intercettata prima che l'ordine venga finalizzato. Un warning viene loggato in PrestaShopLogger. Disattivabile da configurazione.
Ogni feature risponde a un caso d'uso concreto visto in produzione. Nessuna decorazione, nessuna voce "coming soon".
Aggancio su actionObjectCartRuleUpdateAfter. Quando una cart rule diventa inattiva, tutti i carrelli collegati vengono ripuliti nello stesso ciclo di richiesta.
Hook actionCartSave rimuove le cart rule diventate inattive dall'ultima interazione del cliente. Cattura i carrelli dormienti.
In fase di actionValidateOrder un controllo finale rimuove e logga regole inattive sopravvissute. Toggle dalla configurazione.
Pulizia a blocchi configurabili (default 500, range 10–5.000). Adatto a shop con decine di migliaia di carrelli. Niente timeout, niente OOM.
Endpoint protetto da token 32-char rigenerabile. Ripulisce regole residue e purga log oltre la retention. Comando crontab già pronto.
Select con solo le regole realmente in uso nei carrelli oppure "sweep globale" di tutte le inattive con conferma. Niente query a mano.
Per ogni operazione: data, regola, codice, carrelli trovati / puliti / errori, sorgente (hook, manual, cron, checkout).
Periodo configurabile (default 90 giorni). Il cron notturno elimina le righe oltre soglia. Pulsante manuale per purga on-demand.
Tab Cart Cleaner dedicata nel menu Ordini. Apri e vedi KPI, grafico 30 giorni e storico paginato. Export CSV integrato. Zero navigazione.
Dalla v2.1 il modulo registra una voce Cart Cleaner direttamente nel menu Ordini del back office. Un click e sei sulla dashboard: KPI live, grafico 30 giorni, storico paginato, export CSV. Le azioni di scrittura (pulizia manuale, purga log, rigenera token) restano nella pagina Configura.
| Timestamp | Cart rule | Codice | Puliti | Errori | Sorgente |
|---|---|---|---|---|---|
| 14:32:16 | #147 — Promo Natale | NATALE2025 | 218 | 0 | hook |
| 12:18:02 | #141 — Welcome10 | WELCOME10 | 47 | 0 | manuale |
| 11:47:33 | #138 — BF24 | BLACKFRIDAY24 | 31 | 0 | checkout |
| 03:00:01 | (sweep) | — | 12 | 0 | cron |
| 02:59:01 | #129 — Outlet | OUTLET50 | 19 | 0 | hook |
Zero vendor Composer, zero JS lato store, zero override core. Solo hook standard, una tabella log, una classe servizio.
Una tantum, nessun canone, nessun modello a sito-anno. Codice sorgente leggibile e non offuscato.
Una tantum · IVA esclusa · fatturazione elettronica IT / UE
Acquista oraGestisci più shop PrestaShop per conto di clienti? Scopri la licenza White Label →
Se la tua non è qui, scrivici a supporto@i-creativi.com — rispondiamo in giornata.
ps_cart_cart_rule indipendentemente dallo stato del carrello. I carrelli dormienti vengono ripuliti dal cron di manutenzione: se il cliente ritorna dopo settimane, non si trova uno sconto scaduto applicato.actionValidateOrder. Disattivandolo restano attivi gli altri due livelli (disattivazione e pre-checkout). Utile se hai altre logiche di business in quella fase.