Anti-Bot per PrestaShop: Protezione della Ricerca a Faccette e Limite di Richieste
Per i negozi dove i bot percorrono tutte le combinazioni di filtri e l’hosting avvisa di CPU al 100 %. Risponde prima…
- PS 1.7.6+
- PS 8
- PS 9
Hai un dubbio prima di acquistare? Raccontaci com’è il tuo negozio e ti rispondiamo entro 24 ore.
ChiediceloQuando metti in offerta un prodotto, il tuo cliente vede il prezzo barrato e, accanto, una riga in più: il prezzo più basso che quel prodotto ha avuto negli ultimi 30 giorni. È quello che la legge chiede in tutta l'Unione europea ogni volta che annunci una riduzione di prezzo. PrestaShop non lo fa, e non conserva nemmeno i prezzi dei giorni passati per poterlo calcolare.

La tua giacca costa di solito 49,99 €. Due settimane fa l'hai messa per qualche giorno a 39,99 €. Oggi la sconti a 29,99 €. PrestaShop annuncia «−40 %» e un risparmio di 20 €, calcolati sui 49,99 €. Con il modulo, il tuo cliente legge «Prezzo più basso degli ultimi 30 giorni prima dello sconto: 39,99 €», e sconto e risparmio partono da quella cifra: −25 % e 10 €. È il calcolo che chiede la Corte di giustizia dell'UE.
La riga compare dove il tuo cliente vede il prezzo scontato: nella scheda del prodotto e negli elenchi di categoria e di ricerca. Se il prodotto ha combinazioni, ogni taglia o colore ha il suo prezzo più basso, perché ognuno può aver avuto un prezzo diverso. Scegli in quale punto del blocco prezzo va, nella scheda e negli elenchi, e se il tuo tema è su misura, il tuo sviluppatore la mette dove vuole con una sola riga nel template.

A settembre 2024 la Corte di giustizia dell'UE l'ha detto chiaramente nella causa Aldi Süd (C-330/23): la percentuale e il risparmio che annunci si calcolano sul prezzo più basso degli ultimi 30 giorni, non sul prezzo di sempre. PrestaShop calcola il «−X %» sul prezzo prima dello sconto, e molti moduli Omnibus si limitano ad aggiungere sotto la riga del prezzo più basso. Così il tuo negozio mostra il dato giusto e, accanto, una percentuale che la legge non permette.
Il modulo ricalcola il «−X %» e il risparmio sul prezzo più basso dei 30 giorni, nella scheda prodotto e negli elenchi. Quello che il tuo cliente legge sull'etichetta dello sconto e quello che legge nella riga del prezzo più basso dicono la stessa cosa.
Per sapere qual è stato il prezzo più basso, qualcuno deve averlo annotato. Il modulo tiene un suo storico: per prodotto, per combinazione, per negozio e per valuta. Registra da solo ogni cambio di prezzo, e uno sconto programmato viene annotato all'ora esatta in cui inizia o finisce, senza attività pianificate (cron) da configurare sul tuo hosting.
Il modulo prende come punto di partenza i prezzi del tuo negozio in quel giorno. Se hai già sconti in corso con una data di inizio, annota anche il prezzo che avevano subito prima, preso dal tuo stesso negozio. Quello che non sa non lo inventa: uno sconto di cui non conosce il prezzo precedente non viene annunciato (niente prezzo barrato, niente percentuale, niente etichetta di offerta) finché non importi il tuo storico.
Ogni cambio viene annotato con la sua data, e il prezzo più basso si calcola sempre sui 30 giorni precedenti la riduzione. Gli sconti che programmi con delle date vengono annotati all'ora esatta, anche se quel giorno non apri il back office.
Ogni negozio ha il suo storico. Se i tuoi prezzi in zloty vengono convertiti dall'euro, il prezzo più basso in zloty si ricostruisce con il tasso di cambio di ogni giorno; se dai a un prodotto prezzi propri in zloty, quelli hanno il loro storico.
Lo installi con la promozione alle porte? Non serve aspettare 30 giorni: importa i tuoi prezzi precedenti e il modulo li usa per il periodo prima del suo storico, senza mai sovrascrivere quello che ha annotato.

Prende il prezzo che hai davvero incassato in ogni ordine nei giorni che scegli e lo considera valido fino all'ordine successivo di quel prodotto. Lascia fuori ciò che non era il prezzo per tutti: clienti professionali, sconti per quantità e prezzi concordati con un singolo cliente.
Se i tuoi prezzi precedenti stanno nel gestionale o in un foglio di calcolo, caricali in un CSV per prodotto, combinazione, negozio e valuta, con o senza IVA. Prima di importare vedi un'anteprima con gli errori di ogni riga.
Una nuova importazione sostituisce quella precedente dello stesso tipo. Quello che il modulo ha annotato da solo non viene mai toccato.
Se qualcuno ti chiede perché un prodotto mostra quel prezzo precedente, o perché uno sconto non ha la percentuale, la risposta è nel tuo back office.

Una scheda del modulo nella pagina di ogni prodotto del back office ti dice, combinazione per combinazione, il prezzo di oggi, da quando è scontato, il prezzo precedente, cosa fa il modulo con quello sconto e perché, con i cambi di prezzo che lo spiegano.
La schermata del modulo verifica che il tuo tema abbia il punto in cui va la riga, ti avvisa se una cache di pagina intera può servire un prezzo vecchio e conta gli sconti senza prezzo precedente noto, perché tu li importi.
Se disinstalli o reimposti il modulo, lo storico resta: è la prova dei prezzi che hai annunciato. Si cancella solo se spunti la casella apposita.
La direttiva lascia decidere a ogni paese alcuni casi, e non tutti hanno deciso allo stesso modo. Il modulo ti permette di impostarli per ogni paese in cui vendi. Si applicano in base al paese del visitatore, preso dal nostro modulo Geolocalizzazione per PrestaShop: prezzi, valuta e lingua per paese se lo hai, o dal paese che rileva il tuo negozio.

Se durante una promozione abbassi il prezzo a scaglioni, dove la legge lo permette il riferimento è il prezzo prima del primo scaglione. È attivo di default per Germania e Francia.
Un prodotto in vendita da meno di 30 giorni non ha 30 giorni di storico. Di default, in Spagna il suo sconto si mostra così com'è; negli altri paesi il prezzo più basso si conta dal giorno in cui è stato messo in vendita. Puoi cambiare entrambe le liste di paesi.
La norma tutela il consumatore. Se vendi anche alle aziende, escludi i loro gruppi di clienti e non vedranno la riga.
L'articolo 6 bis della direttiva 98/6/CE, aggiunto dalla direttiva (UE) 2019/2161, quella che tutti chiamano Omnibus, si applica dal 28 maggio 2022: ogni volta che annunci una riduzione di prezzo, devi indicare il prezzo precedente, cioè il prezzo più basso che hai applicato nei 30 giorni prima.
In Spagna, il ministero del Consumo ha inflitto 350.000 € di multe in totale a sette negozi online per i loro sconti del Black Friday 2023, e il Tribunale superiore di giustizia di Madrid le ha confermate a ottobre 2025. In Polonia, l'autorità per i consumatori (UOKiK) ha multato Zalando a gennaio 2026 per 30,9 milioni di zloty, con una decisione ancora impugnabile.
Dove lo dice la legge di ogni paese
Quasi tutti i moduli Omnibus mostrano una riga con un prezzo. Quello che distingue un modulo che fa bene i conti da uno che lo sembra soltanto sta in queste domande: falle a qualsiasi modulo prima di comprare.
| Domanda | Questo modulo | Perché conta |
|---|---|---|
| Calcola il «−X %» sul prezzo più basso dei 30 giorni? | Sì | È quello che chiede la sentenza Aldi Süd. Una percentuale sul prezzo abituale resta uno sconto annunciato male, anche con la riga del prezzo più basso sotto. |
| Conserva il prezzo più basso di ogni combinazione? | Sì | La taglia M e la XL possono aver avuto prezzi diversi. |
| Tiene separati negozi e valute? | Sì | Il prezzo più basso in euro non dice nulla del prezzo in zloty o in corone. |
| Ha bisogno di un'attività pianificata? | No | Se il cron smette di girare, il prezzo più basso resta vecchio senza che nessuno se ne accorga. |
| Cosa fa con i prezzi di prima dell'installazione? | Li importa dai tuoi ordini o da un CSV | Un modulo che riempie 30 giorni all'indietro senza dati sta supponendo prezzi che non conosce. |
| E se non conosce il prezzo precedente di uno sconto? | Non lo annuncia | Un prezzo barrato o una percentuale senza un prezzo precedente dietro è proprio ciò che la norma non permette. |
| Funziona sul mio PrestaShop? | Da 1.6.1 a 9.x | Molti negozi che fanno promozioni sono ancora su 1.6 o 1.7. |
È la direttiva (UE) 2019/2161, che ha aggiunto alle regole europee sui prezzi una regola sugli sconti: quando annunci una riduzione di prezzo, devi indicare il prezzo più basso applicato nei 30 giorni precedenti. In Italia lo prevede l'articolo 17-bis del Codice del consumo. Si applica in tutta l'UE dal 28 maggio 2022.
PrestaShop non conserva lo storico dei prezzi, quindi serve un modulo che lo registri e lo mostri accanto al prezzo scontato. Questo lo fa nella scheda prodotto e negli elenchi, per combinazione, negozio e valuta, dal giorno in cui lo installi.
Sul prezzo più basso degli ultimi 30 giorni. L'ha detto la Corte di giustizia dell'UE nella causa Aldi Süd (C-330/23, settembre 2024): un «−30 %» calcolato sul prezzo abituale non vale se nell'ultimo mese il prodotto costava già meno. Il modulo ricalcola percentuale e risparmio su quel prezzo più basso.
No. L'obbligo nasce quando annunci uno sconto: un prezzo barrato, una percentuale o un «prima» e «ora». Se cambi solo un prezzo senza annunciarlo, non c'è niente da mostrare, e il modulo non mostra niente.
No, se vendi solo ad aziende: la norma tutela il consumatore. Se vendi a entrambi nello stesso negozio, escludi nel modulo i gruppi dei tuoi clienti professionali e la riga la vedranno solo i consumatori.
Il modulo parte dai prezzi del tuo negozio in quel giorno e non inventa quelli precedenti. Per non aspettare 30 giorni, importali: dai tuoi ordini, con il prezzo davvero incassato, o da un CSV con i tuoi prezzi. Quello che importi riempie solo il periodo prima dello storico del modulo.
Alcuni paesi permettono che, in uno sconto che cresce, il riferimento sia il prezzo prima del primo scaglione. Il modulo ti permette di attivarlo nei paesi in cui è consentito, ed è attivo di default per Germania e Francia.
No. Ogni cambio di prezzo si registra da solo, e gli sconti che programmi con delle date vengono annotati all'ora esatta in cui iniziano o finiscono. Se il tuo negozio passa giorni senza visite, c'è un URL di cron facoltativo perché nulla resti indietro.
Sì. Funziona da PrestaShop 1.6.1 a 9.x ed è testato su 1.6.1, 1.7.5, 1.7.8, 8.1 e 9.0, con multinegozio e più valute, su PHP da 5.6 a 8.4.
Di default lo sconto non viene annunciato: il prodotto si vende al prezzo scontato, ma senza prezzo barrato, senza percentuale e senza etichetta di offerta. Appena importi lo storico degli ordini o un CSV con i tuoi prezzi, il modulo conosce il prezzo precedente e lo sconto si annuncia con il suo prezzo più basso.
Resta nel tuo database, perché è la prova dei prezzi che hai annunciato. Si cancella solo se prima spunti la casella per cancellarlo alla disinstallazione.
Quando lo installi, il modulo registra i prezzi di quel giorno, recupera il prezzo precedente degli sconti in corso che hanno una data di inizio e la riga inizia a comparire sui tuoi prodotti scontati. Nessun tema da toccare e nessuna attività pianificata da creare.
Sconti progressivi e novità di meno di 30 giorni, attivi o no per ogni paese in cui vendi.
Scegli i gruppi di clienti che non devono vedere la riga, come i tuoi account aziendali.
Applicalo a tutto il catalogo o solo ad alcune categorie (con le loro sottocategorie), marche o prodotti, ed escludi quelli che vuoi. Lo storico si conserva per tutto, quindi allargarlo dopo non fa perdere nulla.
Scegli dove va nella scheda e negli elenchi, cambia il testo in ogni lingua e decidi se il prezzo barrato e la percentuale si ricalcolano sul prezzo più basso o si nascondono per mostrare solo la riga.

Hai un dubbio prima di acquistare? Raccontaci com’è il tuo negozio e ti rispondiamo entro 24 ore.
ChiediceloUn modulo, un’app, un server che dà problemi o qualcosa di urgente. Ti rispondiamo entro 24 ore, con un preventivo chiuso con prezzo e data.