Cart Cleaner / v2.1.0
Disponibile · PS 8.x
PrestaShop 8.x Modulo certificato v2.1.0 · stable

Disattivi un coupon.
Un cliente lo usa
comunque.

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.

3
Livelli di protezione attivi
in parallelo
500
Carrelli per batch
(configurabile 10–5.000)
0
Voucher scaduti
che arrivano in ordine
01 — Defense in depth

Una regola disattivata attraversa tre controlli prima di toccare un ordine.

Non basta un singolo hook. Cart Cleaner posiziona tre checkpoint indipendenti sul percorso di una cart rule. Se uno fallisce, gli altri reggono.

  • 01

    Pulizia immediata alla disattivazione

    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.

  • 02

    Protezione al salvataggio del carrello

    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.

  • 03

    Rete di sicurezza in validazione ordine

    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.

02 — Feature set

Nove capacità operative, un solo modulo.

Ogni feature risponde a un caso d'uso concreto visto in produzione. Nessuna decorazione, nessuna voce "coming soon".

Hook layer0x01

Disattivazione reattiva

Aggancio su actionObjectCartRuleUpdateAfter. Quando una cart rule diventa inattiva, tutti i carrelli collegati vengono ripuliti nello stesso ciclo di richiesta.

Hook layer0x02

Save-time guard

Hook actionCartSave rimuove le cart rule diventate inattive dall'ultima interazione del cliente. Cattura i carrelli dormienti.

Hook layer0x03

Last-line defense

In fase di actionValidateOrder un controllo finale rimuove e logga regole inattive sopravvissute. Toggle dalla configurazione.

Scale0x04

Batch processing

Pulizia a blocchi configurabili (default 500, range 10–5.000). Adatto a shop con decine di migliaia di carrelli. Niente timeout, niente OOM.

Automation0x05

Cron di manutenzione

Endpoint protetto da token 32-char rigenerabile. Ripulisce regole residue e purga log oltre la retention. Comando crontab già pronto.

Control0x06

Pulizia manuale

Select con solo le regole realmente in uso nei carrelli oppure "sweep globale" di tutte le inattive con conferma. Niente query a mano.

Audit0x07

Log tracciato

Per ogni operazione: data, regola, codice, carrelli trovati / puliti / errori, sorgente (hook, manual, cron, checkout).

Hygiene0x08

Retention auto-purga

Periodo configurabile (default 90 giorni). Il cron notturno elimina le righe oltre soglia. Pulsante manuale per purga on-demand.

Observability0x09

Tab menu Ordini

Tab Cart Cleaner dedicata nel menu Ordini. Apri e vedi KPI, grafico 30 giorni e storico paginato. Export CSV integrato. Zero navigazione.

03 — Back office

Una tab dedicata. Dove la cerchi.

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.

04 — Tech spec

Nativo PrestaShop 8. Nessuna dipendenza esterna.

Zero vendor Composer, zero JS lato store, zero override core. Solo hook standard, una tabella log, una classe servizio.

Compatibilità

PrestaShop
8.0.0 → 8.x
PHP
7.4 → 8.3
MySQL / MariaDB
5.6+ / 10.3+
Dipendenze
solo core
Multistore
supportato
Licenza
AFL-3.0
Rilascio
2.1.0 · 04·2026

Hook registrati

actionObjectCartRuleUpdateAfter
layer 01
actionCartSave
layer 02
actionValidateOrder
layer 03
# Cron di manutenzione · ogni notte alle 3:00
$0 3 * * * curl -s "https://tuoshop.com/module/cartcleaner/cron?token=XXXXXXXX"
05 — Licenza

Un acquisto. Tutti gli update del ramo 2.x.

Una tantum, nessun canone, nessun modello a sito-anno. Codice sorgente leggibile e non offuscato.

licenza · standard CC-PS-200
Per il tuo negozio PrestaShop

Una licenza, un dominio, zero pensieri.

99,99

Una tantum · IVA esclusa · fatturazione elettronica IT / UE

Acquista ora
  • Uso sul tuo negozio PrestaShop 8.x
  • Aggiornamenti del ramo 2.x a vita
  • Supporto via email entro 48h lavorative
  • Garanzia di rimborso entro 14 giorni
  • Codice sorgente leggibile, non offuscato

Gestisci più shop PrestaShop per conto di clienti? Scopri la licenza White Label →

06 — Log FAQ

Le domande che riceviamo prima dell'acquisto.

Se la tua non è qui, scrivici a supporto@i-creativi.com — rispondiamo in giornata.

Funziona con PrestaShop 1.7?
No. Cart Cleaner è pensato nativamente per PrestaShop 8.x (dalla 8.0.0 in poi). Il codice usa sintassi e API che non sono retrocompatibili con il ramo 1.7. Se hai bisogno di supporto 1.7 scrivici: possiamo valutare una versione dedicata.
Cosa succede se riattivo una cart rule?
Nulla: il modulo interviene solo sul passaggio da attiva a inattiva. Se riattivi una cart rule, i carrelli non la recuperano automaticamente (così come non l'avevano "persa" originariamente). La riapplicazione è manuale, lato cliente o tua.
Processa anche i carrelli abbandonati?
Sì. Il modulo opera sulla tabella 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.
E se ho 50.000 carrelli con la stessa regola?
Il batch processing è pensato per questo. Con il default di 500 carrelli per ciclo, il cleanup avviene in blocchi senza saturare memoria o timeout. Puoi alzare il batch size fino a 5.000 se l'hosting lo regge. Ogni batch viene loggato separatamente.
Posso disattivare la protezione in fase d'ordine?
Sì. Lo switch Protezione ordine nella configurazione controlla l'hook actionValidateOrder. Disattivandolo restano attivi gli altri due livelli (disattivazione e pre-checkout). Utile se hai altre logiche di business in quella fase.
Avete una politica di rimborso?
Sì. Entro 14 giorni dall'acquisto, se il modulo non risolve il problema per cui l'hai preso e non riusciamo a sistemarlo insieme, rimborsiamo integralmente. Basta una email con la descrizione del caso.

Tre livelli di difesa, un audit trail completo.
Un coupon scaduto non vedrà più un ordine.