Regole di visualizzazione dei prezzi in Europa: quando mostrare prezzi netti, lordi e unitari
Ultimo aggiornamento: giugno 2026. Questa è una sintesi in linguaggio chiaro di come le impostazioni di PrestaShop corrispondono alle regole comuni dell'UE sulla visualizzazione dei prezzi: non è consulenza legale. Verifica i tuoi obblighi per ciascun mercato con un consulente qualificato.
La maggior parte dei commercianti PrestaShop tratta la visualizzazione dei prezzi come una questione di stile: dimensione del carattere, colore del barrato, posizione della nota "IVA inclusa". In Europa non è nulla di tutto questo. Stabilire se mostrare il netto o il lordo, se un prezzo unitario debba comparire accanto al prezzo di vendita e quale regola nazionale si applichi quando un cliente francese acquista dal tuo negozio tedesco sono tutte domande con una risposta legale; sbagliarle è esattamente il tipo di cosa che un concorrente segnala o che un'autorità dei consumatori verifica a campione. La buona notizia: quasi tutte queste regole corrispondono a una specifica impostazione di PrestaShop. Questa guida parla proprio di questa corrispondenza: cosa richiede la normativa sulla presentazione dei prezzi e quale preciso interruttore, campo o regola fiscale del back office la soddisfa.
Per restare focalizzati: questo articolo riguarda la visualizzazione dei prezzi: netto rispetto a lordo, prezzo unitario e modo in cui devono essere mostrati i prezzi ridotti. I meccanismi dell'IVA in sé, cioè quale aliquota applicare, la registrazione OSS/IOSS, il reverse charge per il B2B transfrontaliero, sono trattati in guide dedicate, collegate nei punti in cui diventano rilevanti. Se la tua domanda è "quale aliquota devo addebitare", parti da configurazione fiscale in PrestaShop e IVA nell'UE: OSS, IOSS e cosa deve gestire il tuo negozio. Se la tua domanda è "quale prezzo devo mostrare", sei nel posto giusto.
La regola alla base di tutto: i prezzi B2C sono lordi

In ogni Stato membro dell'UE, il prezzo visto da un consumatore deve essere il totale che pagherà, IVA inclusa. Questo deriva dalla Direttiva sui diritti dei consumatori e dalla Direttiva sull'indicazione dei prezzi (98/6/CE): il "prezzo di vendita" mostrato a un consumatore è il prezzo finale comprensivo di tutte le imposte. Un prodotto che costa 100 € più il 21% di IVA viene mostrato all'acquirente come 121,00 €, punto. Mostrare ai consumatori solo prezzi netti non è una preferenza stilistica che puoi attivare: è non conforme.
Questo sorprende molti, perché PrestaShop non ha un unico interruttore generale "Mostra prezzi IVA inclusa" in una pagina di impostazioni: la visualizzazione tra lordo e netto è governata dal gruppo clienti. Ogni visitatore appartiene a un gruppo, e ogni gruppo ha un Metodo di visualizzazione dei prezzi impostato su IVA inclusa oppure IVA esclusa. Il comportamento visto dagli acquirenti anonimi e dai normali clienti al dettaglio è controllato dai gruppi predefiniti in Clienti → Gruppi: in un'installazione standard sono Visitatore, Ospite e Cliente. Per qualsiasi negozio che vende a consumatori, il Metodo di visualizzazione dei prezzi su ciascuno di questi deve essere IVA inclusa. Che cosa cambia concretamente? Controlla se pagine prodotto, liste di categoria, carrello e risultati di ricerca mostrano a quel visitatore l'importo lordo o netto. Lascia un gruppo predefinito su "IVA esclusa", condizione presente in alcuni temi importati e configurazioni orientate al B2B, e ogni prezzo rivolto ai consumatori per quegli acquirenti è tecnicamente illecito in Europa, anche se l'IVA viene comunque calcolata correttamente sulla riga d'ordine.
Un'impostazione vicina che viene spesso confusa con questa: in Internazionale → Tasse c'è l'interruttore Mostra tasse nel carrello (la chiave di configurazione PS_TAX_DISPLAY), ma questo controlla solo se l'imposta appare su una riga separata nel carrello: non controlla la visualizzazione lordo/netto dei prezzi di catalogo. La leva giusta è il Metodo di visualizzazione dei prezzi del gruppo.
Ci sono due cose che il metodo di visualizzazione del gruppo non fa, e che spesso creano confusione: non aggiunge la dicitura letterale "IVA inclusa" (è testo del template del tema, vedi più avanti), e un gruppo B2B impostato sul netto è esattamente il meccanismo da usare per servire prezzi netti accanto ai prezzi lordi B2C. Il secondo punto è dove la maggior parte dei negozi misti finisce nei guai, quindi merita una sezione dedicata.
Mostrare il netto alle aziende e il lordo ai consumatori, senza violare la legge per nessuno
Il prezzo netto non è vietato: è la lettura corretta per il pubblico giusto. Lo schema standard e legittimo è questo: i clienti aziendali verificati vedono il netto (IVA esclusa) con una chiara indicazione "IVA esclusa", mentre tutti gli altri vedono il lordo. PrestaShop gestisce tutto con lo stesso meccanismo dei gruppi clienti descritto sopra: un gruppo B2B dedicato riceve semplicemente il metodo di visualizzazione opposto.
Vai in Clienti → Gruppi, crea o modifica un gruppo (per esempio un gruppo "Ingrosso" o "B2B") e imposta Metodo di visualizzazione dei prezzi su IVA esclusa. Il campo viene salvato come price_display_method del gruppo, e PrestaShop determina quale importo vede un dato visitatore in base all'impostazione del suo gruppo tramite Product::getTaxCalculationMethod(). Un cliente assegnato a quel gruppo vede ora prezzi netti in tutto il negozio; un cliente al dettaglio in un gruppo predefinito continua a vedere il lordo. Entrambi sono conformi per il rispettivo pubblico, a condizione che il tema etichetti chiaramente la visualizzazione netta, così che un acquirente aziendale non abbia mai dubbi sul fatto che l'IVA verrà aggiunta.
L'attrito pratico è tutto ciò che circonda quell'interruttore: assegnare i clienti al gruppo corretto, gestire i visitatori che non hanno ancora effettuato l'accesso e permettere a un acquirente di passare da una vista all'altra quando il catalogo serve legittimamente entrambi i pubblici. Costruire questa logica dei gruppi, la registrazione filtrata tramite partita IVA e i termini di pagamento a credito che spesso la accompagnano è un progetto a sé: copriamo l'intera configurazione B2B in e-commerce B2B con PrestaShop: gestione IVA, prezzi netti e termini di pagamento, mentre l'inversione contabile transfrontaliera che azzera l'IVA con una partita IVA UE valida fa parte della guida OSS/IOSS.
Se vuoi un'esperienza più pulita rispetto al cambio manuale dei gruppi, cioè un interruttore netto/lordo visibile e controllato dall'acquirente, oppure una visualizzazione automatica per gruppo senza modifiche al tema, è proprio il vuoto che colma il nostro modulo Tax Display Switcher. Il beneficio concreto: un negozio che serve legittimamente sia clienti al dettaglio sia clienti aziendali può mostrare a ciascuno il prezzo che ha diritto di vedere, configurato dal back office, senza duplicare o modificare pesantemente il tema.
La dicitura "IVA inclusa" è testo del template, non un'impostazione
Ecco una distinzione che costa denaro reale ai commercianti tedeschi: impostare il metodo di visualizzazione di un gruppo su "IVA inclusa" rende il prezzo lordo, ma da solo non stampa le parole "inkl. MwSt." accanto al prezzo. Quell'etichetta viene generata dal tema, e diversi Paesi, con la Germania tra i più rigorosi, richiedono la dicitura, non solo il numero lordo.
Nei temi predefiniti di PrestaShop, il blocco prezzo viene generato dal template product-prices.tpl (in themes/<your-theme>/templates/catalog/_partials/). Sulla pagina prodotto il tema stampa un indicatore fiscale generico tramite {$product.labels.tax_short}, che diventa "(tax incl.)" o "(tax excl.)", non il nome fiscale localizzato. La dicitura specifica per Paese è gestita altrove: esiste un interruttore per Paese Mostra etichetta tassa in Internazionale → Localizzazione → Paesi (il campo display_tax_label), e il nome stesso dell'imposta, che imposti in Internazionale → Tasse e applichi per Paese in Internazionale → Regole tasse, è ciò che appare nei contesti delle etichette fiscali (in particolare carrello, corriere e fase di pagamento). Per mostrare la dicitura tedesca corretta, di solito devi modificare il template del tema affinché stampi il testo letterale "inkl. MwSt." vicino al prezzo, perché il core fornisce solo la stringa generica "(tax incl.)" come impostazione predefinita. E quindi? Un negozio tedesco che mostra 119,00 € senza testo "inkl. MwSt." viola la Preisangabenverordnung anche se il calcolo è corretto: ed è una correzione di template e nome imposta, non un ricalcolo del prezzo.
La PAngV tedesca: il regolamento più severo e cosa richiede in PrestaShop
Se vendi a consumatori tedeschi, di fatto stai configurando la visualizzazione dei prezzi secondo lo standard più esigente dell'UE. La Preisangabenverordnung (PAngV) richiede che i prezzi rivolti ai consumatori:
- Includano l'IVA (19% ordinaria, 7% ridotta): gruppi clienti predefiniti impostati su IVA inclusa, più la regola fiscale tedesca corretta.
- Riportino la dicitura letterale "inkl. MwSt." (o "inkl. gesetzlicher MwSt."): il punto sull'etichetta fiscale spiegato sopra.
- Indichino i costi di spedizione o li colleghino vicino al prezzo: di solito una riga "zzgl. Versandkosten" con link alla pagina CMS sulle spedizioni, inserita nel blocco prezzo.
- Mostrino un prezzo unitario (Grundpreis) per tutto ciò che è venduto a peso, volume, lunghezza o superficie: uno shampoo da 500 ml a 8,99 € deve mostrare anche "17,98 € / 1 Liter".
La regola del Grundpreis riguarda molti più prodotti di quanto i titolari di negozi si aspettino: cosmetici, alimenti, prodotti per la pulizia, tessuti al metro, cavi al metro, tutto ciò per cui un acquirente confronterebbe ragionevolmente le quantità. La conclusione pratica a cui arrivano molti commercianti è configurare l'intero negozio secondo gli standard tedeschi e servire così ogni mercato: è una base prudente, non una garanzia universale di conformità. La visualizzazione in stile tedesco di IVA, spedizione e prezzo unitario è un forte standard comune, ma non soddisfa da sola ogni regola nazionale su lingua, informative, Omnibus, settore o procedura di pagamento; quindi la costruisci una volta invece di ramificare la logica di visualizzazione per Paese. La parte relativa al prezzo unitario ha un campo PrestaShop dedicato, che è l'argomento della prossima sezione.
Prezzi unitari: il campo prodotto che la maggior parte dei negozi lascia vuoto
Il prezzo unitario, cioè prezzo per kg, per litro, per metro, per pezzo, è obbligatorio in tutta l'UE (Direttiva 98/6/CE) per i beni venduti in quantità misurabili, e PrestaShop dispone da anni di un campo di primo livello per gestirlo. La maggior parte dei negozi semplicemente non lo compila mai.
Nella pagina prodotto, apri la scheda Prezzi e cerca Prezzo per unità (nelle vecchie versioni 1.6/1.7 è etichettato "Prezzo unitario"). Inserisci l'unità (per kg, per litro, per m, "pezzo") e PrestaShop calcola l'importo per unità partendo dal prezzo del prodotto. Sotto il cofano, questi sono i campi unit_price_ratio e unity del prodotto, e il lato negozio mostra automaticamente il risultato: la riga "17,98 € / 1 Liter" appare accanto al prezzo senza interventi sul template. Che cosa ottieni davvero compilando questo campo? Conformità per i prodotti in cui è richiesta e un vantaggio silenzioso sulla conversione: un chiaro importo al litro o al kg è esattamente ciò che cerca un acquirente che confronta, e mostrarlo elimina un motivo per passare a un concorrente che ha già fatto il calcolo al suo posto.
Due note operative dall'esperienza su cataloghi ampi. Primo, per un catalogo grande non conviene digitare l'unità a mano su centinaia di prodotti: il campo è disponibile nell'importazione CSV dei prodotti (Parametri avanzati → Importa), quindi mappa le colonne "unità" e "rapporto prezzo unitario" e impostale in massa. Secondo, il prezzo unitario mostrato deriva dal prezzo base, quindi se il prezzo base è lordo (come dovrebbe essere per il B2C), il prezzo unitario lo eredita: mantieni i due valori coerenti o un controllo tedesco sul Grundpreis segnalerà la discrepanza.
Prezzi ridotti: mostrare gli sconti secondo l'Omnibus
Le regole Omnibus sulle riduzioni di prezzo si applicano negli Stati membri dell'UE attraverso le leggi nazionali dalla scadenza di recepimento del 2022, con dettagli locali: quindi è regolato il modo in cui visualizzi uno sconto, non solo il fatto che tu lo offra. Quando pubblicizzi una riduzione di prezzo, il prezzo di riferimento che barrerai deve essere il prezzo più basso a cui il prodotto è stato venduto nei 30 giorni precedenti, salvo eccezioni locali: non il prezzo pieno originario, e certamente non un numero gonfiato la settimana prima dei saldi.
Un esempio concreto: un prodotto normalmente costa 50 €. Due settimane fa hai fatto una promozione weekend a 40 €. Ora lanci una nuova offerta a 35 €. Il riferimento legittimo è 40 € (il minimo degli ultimi 30 giorni), quindi lo presenti come 40 € → 35 €, una riduzione del 12,5%: non 50 € → 35 € con il 30% di sconto. La regola si applica ai prezzi barrati nelle pagine prodotto, ai banner promozionali, alle email promozionali e a ogni evento Black Friday / liquidazione. Verifica le norme nazionali per le riduzioni personalizzate, i veri prezzi per pacchetti e i prodotti presenti sul mercato da meno di 30 giorni; non dare per scontata un'esenzione universale.
Dove questo diventa critico in PrestaShop: le Regole prezzi catalogo e i Prezzi specifici della piattaforma (il pannello per prodotto "Aggiungi un prezzo specifico" nella scheda Prezzi) mostrano per impostazione predefinita il prezzo originale come riferimento barrato, e "prezzo originale" nel core significa il tuo prezzo di catalogo, che non è la stessa cosa del minimo a 30 giorni richiesto dalla regola Omnibus. PrestaShop standard non ha memoria nativa del "prezzo più basso degli ultimi 30 giorni", quindi un barrato letterale del prezzo di catalogo può sovrastimare lo sconto e violare la regola. Gli approcci conformi sono impostare deliberatamente il riferimento del prezzo specifico sul vero minimo a 30 giorni, oppure usare un modulo che registri la cronologia dei prezzi e mostri automaticamente il riferimento corretto. In ogni caso, tratta il barrato predefinito come qualcosa da verificare, non da dare per buono.
Vendite transfrontaliere: quali regole sui prezzi si applicano?
Quando ti rivolgi a consumatori in un altro Paese dell'UE, le norme obbligatorie di tutela dei consumatori di quel Paese possono applicarsi a quelle vendite: non è una semplice regola "vale sempre il Paese del cliente", ma dipende dal fatto che tu indirizzi o meno la tua attività verso quel mercato. Un negozio tedesco che si rivolge attivamente a consumatori francesi potrebbe dover rispettare le regole francesi di presentazione per quelle vendite; se punti alla Polonia, l'applicazione polacca dell'Omnibus (l'UOKiK monitora attivamente i negozi online) può essere il criterio con cui vieni valutato. Quindi progetta per ogni mercato che servi. La risposta pragmatica a cui arriva la maggior parte dei commercianti è quella già menzionata: usare come base prezzi lordi con dicitura IVA esplicita, prezzi unitari ove applicabili e riferimenti corretti secondo Omnibus, quindi verificare gli eventuali requisiti aggiuntivi di ogni mercato.
L'aliquota che determina l'importo lordo cambia invece in base alla destinazione, e PrestaShop la gestisce tramite regole fiscali basate sul Paese di consegna: configura un gruppo di regole fiscali per Paese in Internazionale → Regole tasse e assegnalo ai prodotti, e il prezzo lordo visualizzato viene ricalcolato in base all'indirizzo di spedizione. La parte relativa a registrazione e dichiarazione quando addebiti l'IVA di un altro Paese (soglie OSS, quando devi registrarti) è un argomento a sé, trattato nella guida OSS/IOSS; il modo in cui resi e rimborsi interagiscono oltre confine è trattato in resi transfrontalieri.
Una nota sui documenti a valle del prezzo
Il prezzo che mostri e quello riportato in fattura devono coincidere, e anche la fattura ha le sue regole legali sui contenuti. Se stai rafforzando la visualizzazione dei prezzi, vale la pena controllare la fattura nello stesso momento: presentazione lordo/netto, dettaglio IVA e campi obbligatori sono trattati in personalizzazione delle fatture in PrestaShop: template PDF e requisiti legali, mentre gli obblighi più ampi della vendita nell'UE sono nella guida per titolari di negozi alla normativa e-commerce dell'UE.
FAQ
Dove in PrestaShop imposto i prezzi al consumo come IVA inclusa (lordi)?
Non esiste un unico interruttore generale "mostra prezzi IVA inclusa": la distinzione tra lordo e netto è governata per gruppo clienti. Vai in Clienti → Gruppi e imposta il Metodo di visualizzazione dei prezzi su IVA inclusa per ogni gruppo predefinito in cui rientrano i tuoi consumatori (Visitatore, Ospite, Cliente in un'installazione standard). Lasciarne uno su "IVA esclusa", condizione presente in alcuni temi importati, rende ogni prezzo rivolto ai consumatori per quegli acquirenti non conforme nell'UE, anche se l'IVA viene comunque calcolata correttamente sulla riga d'ordine. (Sintesi in linguaggio chiaro, non consulenza legale.)
Perché il mio prezzo lordo non mostra "IVA inclusa" / "inkl. MwSt."?
Perché quella dicitura viene generata dal tema, non è un effetto collaterale del metodo di visualizzazione del gruppo. Il core stampa un generico {$product.labels.tax_short}, cioè "(tax incl.)", nella pagina prodotto, mentre l'interruttore per Paese Mostra etichetta tassa (Internazionale → Localizzazione → Paesi) più il nome stesso dell'imposta guidano l'etichetta localizzata nei contesti di carrello e pagamento. Per mostrare il testo letterale "inkl. MwSt." accanto al prezzo, come richiede la PAngV tedesca, di solito devi modificare il template product-prices.tpl, perché il core fornisce solo la stringa generica come impostazione predefinita.
Come mostro prezzi netti alle aziende e lordi ai consumatori nello stesso negozio?
Usa lo stesso meccanismo dei gruppi al contrario. Crea un gruppo "Ingrosso" o "B2B" in Clienti → Gruppi e imposta il suo Metodo di visualizzazione dei prezzi su IVA esclusa (salvato come price_display_method del gruppo; PrestaShop determina quale importo vede un visitatore tramite Product::getTaxCalculationMethod()). I membri di quel gruppo vedono il netto in tutto il negozio, mentre i clienti al dettaglio continuano a vedere il lordo: entrambi conformi per il rispettivo pubblico, a condizione che il tema etichetti chiaramente la visualizzazione netta con "IVA esclusa", così che un acquirente aziendale non abbia dubbi sul fatto che l'IVA verrà aggiunta.
Quali prodotti richiedono un prezzo unitario (Grundpreis), e dove lo imposto?
Tutto ciò che è venduto a peso, volume, lunghezza o superficie, come cosmetici, alimenti, prodotti per la pulizia, tessuti o cavi al metro, richiede un prezzo unitario in tutta l'UE ai sensi della Direttiva 98/6/CE. PrestaShop ha un campo di primo livello per questo: nella scheda Prezzi del prodotto, compila Prezzo per unità (i campi unit_price_ratio e unity), e il lato negozio mostra automaticamente la riga "€17,98 / 1 Liter" senza interventi sul template. Per un catalogo grande, mappa le colonne dell'unità nell'importazione CSV (Parametri avanzati → Importa) invece di digitarle a mano.
PrestaShop mostra automaticamente il prezzo "prima" corretto secondo Omnibus?
No, e questo è proprio l'elemento da verificare, non da dare per scontato. Le Regole prezzi catalogo e i Prezzi specifici barrano per impostazione predefinita il tuo prezzo di catalogo, ma le regole Omnibus richiedono che il riferimento sia il prezzo più basso dei 30 giorni precedenti (con dettagli locali). PrestaShop standard non ha memoria nativa di quel minimo a 30 giorni, quindi il barrato predefinito può sovrastimare lo sconto e violare la regola. Imposta deliberatamente il riferimento del prezzo specifico sul vero minimo a 30 giorni, oppure usa un modulo che registri la cronologia dei prezzi e mostri il riferimento corretto. (Solo sintesi: conferma i dettagli per i tuoi mercati.)
La checklist di visualizzazione dei prezzi per un negozio PrestaShop
- Gruppi predefiniti impostati sul lordo: Clienti → Gruppi → Visitatore / Ospite / Cliente → Metodo di visualizzazione dei prezzi = IVA inclusa per qualsiasi negozio B2C (non esiste un unico interruttore globale "mostra prezzi IVA inclusa").
- Dicitura IVA visibile: nome imposta corretto in Internazionale → Tasse più l'impostazione per Paese Mostra etichetta tassa, e di solito una piccola modifica al template del tema affinché il blocco prezzo stampi "IVA inclusa" / "inkl. MwSt.", non solo il numero lordo.
- Gruppi B2B impostati sul netto: Clienti → Gruppi → Metodo di visualizzazione dei prezzi = IVA esclusa, con chiara etichetta "IVA esclusa" solo per quegli acquirenti.
- Riferimento ai costi di spedizione vicino al prezzo: una riga "più spedizione" collegata alla tua pagina CMS sulle spedizioni, richiesta in Germania.
- Prezzi unitari compilati: il campo Prezzo per unità della scheda Prezzi (unit_price_ratio / unity) per ogni prodotto venduto a peso, volume, lunghezza o superficie; impostazione in massa tramite importazione CSV.
- Riferimento Omnibus verificato: riferimento barrato impostato sul vero minimo a 30 giorni, non sul prezzo di catalogo; non fidarti dell'impostazione predefinita.
- Regole fiscali per Paese: gruppi di Regole tasse assegnati in modo che il prezzo lordo venga ricalcolato in base al Paese di consegna per le vendite OSS.
Le regole di visualizzazione dei prezzi esistono per fermare i prezzi ingannevoli, e i negozi che le rispettano ottengono più della semplice prevenzione delle sanzioni: un acquirente che vede un totale onesto, un vero importo al litro e uno sconto che non è fumo negli occhi è un acquirente che si fida anche del resto del negozio. Su PrestaShop l'intero quadro conforme è raggiungibile dalle impostazioni che hai già: il lavoro consiste nel sapere quale interruttore risponde a quale regola, e nel non lasciare il campo del prezzo unitario, l'etichetta fiscale o il riferimento a 30 giorni sui loro poco utili valori predefiniti.