# Offerte per quantità e badge promo: documentazione

> Installazione Il modulo si installa come qualsiasi altro modulo PrestaShop, dal back office o via FTP. Da Moduli e poi Gestione moduli, clicca su Carica un modulo e trascina il…

- Pagina: <https://www.datafirefly.com/it/documentation/dfquantitydeal/>
- Lingua: it
- Aggiornato il: 2026-10-28
- Altre lingue: [fr](https://www.datafirefly.com/documentation/dfquantitydeal/index.md), [en](https://www.datafirefly.com/en/documentation/dfquantitydeal/index.md), [es](https://www.datafirefly.com/es/documentation/dfquantitydeal/index.md), [de](https://www.datafirefly.com/de/documentation/dfquantitydeal/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfquantitydeal/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfquantitydeal/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfquantitydeal/index.md)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

## Installazione

Il modulo si installa come qualsiasi altro modulo PrestaShop, dal back office o via FTP.

1. Da **Moduli** e poi **Gestione moduli**, clicca su **Carica un modulo** e trascina il file `dfquantitydeal.zip`.
2. Via FTP, estrai l'archivio nella cartella `/modules/` del tuo negozio, poi installa **DataFirefly - Offerte a quantità e badge promozionali** dalla gestione moduli.
3. Svuota la cache in **Parametri avanzati** e poi **Prestazioni**.

L'installazione crea otto tabelle con prefisso `ps_df_quantity_deal`, aggancia il modulo a nove hook, crea l'hook `displayDfQdBadge` e aggiunge la scheda **Offerte a quantità** al menu Catalogo.

Il modulo non installa alcun override di classe o di controller. La disinstallazione elimina le tabelle, le chiavi di configurazione e la scheda.

## Lingue del modulo

Il francese è la lingua sorgente del modulo. Le traduzioni sono fornite nella cartella `translations/` per inglese, italiano, spagnolo, tedesco, olandese, polacco e portoghese.

- Il back office viene mostrato nella lingua del dipendente collegato.
- I testi visti dal cliente (frasi del blocco delle offerte, inviti del carrello, pulsanti) seguono la lingua del negozio.
- La scheda del menu prende il nome tradotto in ogni lingua installata.
- Finché l'etichetta dello sconto carrello mantiene il valore predefinito, viene mostrata tradotta nella lingua del cliente. Se la personalizzi nelle impostazioni generali, il tuo testo viene usato in tutte le lingue.

Per adattare una formulazione, vai in **Internazionale** e poi **Traduzioni**, tipo **Traduzioni dei moduli installati**, modulo **dfquantitydeal**.

## Impostazioni generali

Il pulsante **Configura** nella pagina del modulo apre le impostazioni valide per tutte le offerte.

- **Attiva il modulo**: disattiva la visualizzazione dei badge e il calcolo degli sconti senza disinstallare.
- **Badge negli elenchi prodotti**: mostra il badge sulle miniature delle pagine categoria, dei risultati di ricerca e dei blocchi prodotto.
- **Badge nella scheda prodotto**: interruttore separato, per mostrare il badge solo negli elenchi se preferisci.
- **Tabella delle offerte nella scheda prodotto**: mostra il blocco che elenca le offerte applicabili al prodotto.
- **Dettaglio delle offerte nel carrello**: mostra l'importo apportato da ciascuna offerta.
- **Posizione del dettaglio delle offerte**: «Fisarmonica sotto la riga Sconto/i» (predefinita), «Sopra la riga Spedizione», «Sotto il totale del carrello (IVA incl.)» oppure «Sotto l'elenco dei prodotti (posizione nativa)».
- **Badge e prezzo barrato sulle righe del carrello**: su ogni riga interessata, mostra il badge dell'offerta, barra il prezzo iniziale e mostra sotto il prezzo scontato.
- **Nascondi il buono sconto automatico**: rimuove dal riepilogo la riga del buono generato dal modulo, già conteggiata nella riga Sconto/i. In questo modo il cliente non può eliminare uno sconto che viene ricalcolato a ogni modifica del carrello.
- **Invita a completare il lotto nel carrello**: mostra un riquadro quando mancano solo pochi articoli per attivare un'offerta.
- **Calcola gli sconti IVA inclusa**: attivo, la regola carrello porta un importo comprensivo di imposte. Disattivo, l'importo è al netto e PrestaShop applica l'IVA secondo le tue regole.
- **Etichetta dello sconto carrello**: testo mostrato sulla riga di sconto del carrello e dell'ordine.
- **Dimensione del carattere del badge (px)**: 13 di default.
- **Metodo di visualizzazione dei badge**: «Automatico: inserimento tramite lo script front», «Manuale: solo tramite l'hook displayDfQdBadge» oppure «Entrambi».
- **Posizione delle offerte nella scheda prodotto**: vedi la sezione dedicata più avanti.
- **Selettore CSS personalizzato** e **Posizione rispetto al selettore**: usati solo con la posizione «Selettore CSS personalizzato».

![Impostazioni generali: badge, tabella delle offerte, dettaglio nel carrello, incentivo e posizione](https://www.datafirefly.com/wp-content/uploads/2026/10/impostazioni-generali-badge-carrello-prestashop-dfquantitydeal-it.webp)

Impostazioni generali: badge, tabella delle offerte, dettaglio nel carrello, incentivo e posizione

## Diagnostica

La pagina di configurazione mostra un pannello **Diagnostica** sopra le impostazioni. Indica se il modulo è attivo, se ogni hook necessario esiste nel database e se il modulo vi è agganciato, il numero di offerte attive oggi e il numero di offerte associate al negozio corrente.

Il link **Testa l'endpoint dei badge** apre il controller front che fornisce i badge. Una risposta JSON conferma che risponde. Un errore 404 indica che occorre svuotare la cache e rigenerare gli URL semplificati.

Aprire la pagina di configurazione aggancia automaticamente gli hook mancanti, il che corregge la maggior parte delle installazioni fatte prima di un aggiornamento.

![Pagina di configurazione del modulo con la diagnostica degli hook e delle offerte attive](https://www.datafirefly.com/wp-content/uploads/2026/10/configurazione-diagnostica-modulo-offerte-quantita-prestashop-dfquantitydeal-it.webp)

Pagina di configurazione del modulo con la diagnostica degli hook e delle offerte attive

## Creare un'offerta

Apri **Catalogo** e poi **Offerte a quantità**, e clicca su **Nuova offerta**. Il modulo di inserimento è diviso in tre schede.

![Elenco delle offerte a quantità nel back office di PrestaShop: badge, tipo di offerta, ambito, date e stato](https://www.datafirefly.com/wp-content/uploads/2026/10/elenco-offerte-quantita-back-office-prestashop-dfquantitydeal-it.webp)

Elenco delle offerte a quantità nel back office di PrestaShop: badge, tipo di offerta, ambito, date e stato

### Scheda Offerta

- **Nome dell'offerta**: campo tradotto, usato nell'elenco del back office e nel blocco delle offerte della scheda prodotto.
- **Tipo di offerta**: le sei meccaniche descritte più avanti. Il form nasconde i campi che non servono per il tipo scelto.
- **Quantità acquistata (X)** e **Quantità in omaggio (Y)**: per il tipo X acquistati + Y in omaggio, e solo X per il prezzo del lotto.
- **Posizione dell'articolo scontato (N)**: 2 per «il 2° a -25 %», 3 per «il 3° a -50 %».
- **Valore dello sconto**: percentuale, importo dello sconto o prezzo fisso secondo il tipo. L'etichetta del campo cambia automaticamente.
- **Scaglioni di sconto**: solo per lo sconto a scaglioni. Una tabella in cui ogni riga associa una quantità minima a una percentuale. Il pulsante **Aggiungi uno scaglione** crea una riga, il cestino la elimina. Ogni scaglione deve offrire uno sconto più alto del precedente.
- **Prodotti già scontati**: solo per lo sconto a scaglioni. **Cumula** applica lo scaglione sul prezzo già scontato, **Non cumulare** mantiene lo sconto migliore tra i due. Vedi la sezione dedicata più avanti.
- **Offerta ripetibile**: attiva, l'offerta si applica tante volte quante la quantità lo consente (12 articoli attivano due volte un'offerta 4+2). Disattiva, si applica una sola volta per carrello. Campo nascosto per lo sconto a scaglioni, che riguarda sempre l'intera quantità.
- **Raggruppamento delle quantità**: «Per prodotto (tutte le combinazioni insieme)», «Per combinazione» oppure «Mix and match (tutti i prodotti dell'offerta)».
- **Priorità**: i valori più bassi vengono applicati per primi.
- **Attiva l'offerta**: equivale all'interruttore di attivazione nell'elenco.

![Creazione di uno sconto a scaglioni: -5% da 2 articoli, -10% da 3, -15% da 5](https://www.datafirefly.com/wp-content/uploads/2026/10/sconto-a-scaglioni-quantita-prestashop-dfquantitydeal-it.webp)

Creazione di uno sconto a scaglioni: -5% da 2 articoli, -10% da 3, -15% da 5

### Scheda Condizioni

- **Ambito**: «Intero catalogo», «Prodotti selezionati», «Categorie selezionate» o «Marchi selezionati». Il campo di selezione corrispondente appare secondo la scelta.
- **Prodotti interessati**: digita almeno due caratteri per avviare la ricerca. Copre nome, riferimento e ID. Clicca su un risultato per aggiungerlo all'elenco.
- **Categorie interessate**: albero delle categorie con caselle di spunta. Un prodotto collegato a una delle categorie selezionate attiva l'offerta.
- **Marchi interessati**: elenco dei produttori del negozio.
- **Gruppi di clienti**: lascia tutto deselezionato per applicare l'offerta a tutti i gruppi, visitatori inclusi.
- **Escludi i prodotti già in promozione**: i prodotti con un prezzo specifico restano fuori dal calcolo.
- **Escludi i clienti con un prezzo specifico**: un cliente il cui account o gruppo predefinito ha un prezzo specifico sul prodotto non riceve né lo sconto né il badge. Vedi la sezione dedicata più avanti.
- **Data di inizio** e **Data di fine**: lasciale vuote per un'offerta permanente. Una data senza orario viene completata con 00:00:00 per l'inizio e 23:59:59 per la fine.
- **Negozi**: visibile solo se la modalità multinegozio è attiva.

![Condizioni dell'offerta: prodotti, gruppi di clienti, esclusioni e date di validità](https://www.datafirefly.com/wp-content/uploads/2026/10/condizioni-offerta-prodotti-gruppi-date-prestashop-dfquantitydeal-it.webp)

Condizioni dell'offerta: prodotti, gruppi di clienti, esclusioni e date di validità

### Scheda Badge e visualizzazione

- **Testo del badge**: campo tradotto. Lascialo vuoto per una generazione automatica dai valori dell'offerta.
- **Colore di sfondo** e **Colore del testo**: selettori di colore, rosso e bianco di default.
- **Forma**: quadrato, angoli arrotondati, pillola, nastro diagonale, bollino rotondo.
- **Posizione sulla miniatura**: in alto a sinistra, in alto a destra, in basso a sinistra, in basso a destra, oppure in linea (sotto il prezzo).
- **Mostra negli elenchi prodotti**, **Mostra nella scheda prodotto**, **Mostra nella tabella delle offerte**: tre interruttori per offerta, oltre alle impostazioni globali.
- **Descrizione dell'offerta**: testo ricco tradotto, mostrato nel blocco delle offerte della scheda prodotto.

![Personalizzazione del badge promozionale: testo, colori, forma e posizione sulla miniatura](https://www.datafirefly.com/wp-content/uploads/2026/10/personalizzazione-badge-promozionale-prestashop-dfquantitydeal-it.webp)

Personalizzazione del badge promozionale: testo, colori, forma e posizione sulla miniatura

## I sei tipi di offerta

### X acquistati + Y in omaggio

Il formato classico del 2+1, 3+1 o 4+2. Il motore divide le unità idonee del carrello in lotti da X più Y. Per ogni lotto completo, le Y unità meno care sono in omaggio.

Esempio: offerta 4+2, sei articoli da 4,49 € nel carrello. Un lotto completo, due unità in omaggio, sconto di 8,98 €. Con soli cinque articoli nessun lotto è completo e lo sconto è nullo.

### L'N-esimo a -X %

Il motore divide le unità in lotti da N. In ogni lotto, l'unità in posizione N riceve la percentuale di sconto. Poiché le unità sono ordinate per prezzo decrescente, l'articolo scontato è il meno caro del lotto.

Esempio: offerta «il 2° a -25 %», quattro articoli da 20 €. Due lotti da due, due articoli scontati di 5 €, sconto totale di 10 €.

### L'N-esimo con uno sconto fisso

Stessa divisione, ma lo sconto è un importo fisso. Viene limitato al prezzo dell'articolo: uno sconto di 30 € su un articolo da 8 € dà 8 € di sconto, non 30 €.

### L'N-esimo a prezzo fisso

L'articolo in posizione N viene portato al prezzo che imposti. Lo sconto corrisponde alla differenza. Per «il 2° a 1 €» su due articoli da 12 €, lo sconto è di 11 €.

### Prezzo del lotto

Per ogni lotto di X unità, il totale viene portato al prezzo che annunci. Su un'offerta 3 per 10 € con sei articoli da 5 €, il motore forma due lotti e applica 10 € di sconto in totale.

### Sconto a scaglioni

Definisci delle soglie di quantità, ognuna con la sua percentuale. Lo scaglione più alto raggiunto si applica a ogni articolo dell'offerta, non solo all'ultimo.

Esempio: scaglioni -5 % da 2 articoli e -10 % da 3. Un articolo: nessuno sconto. Due articoli da 10 € e 20 €: 1,50 € di sconto (5 % di 30 €). Quattro articoli per 50 €: 5 € di sconto, cioè -10 % su tutti e quattro.

Per raggiungere uno scaglione con prodotti diversi, per esempio un'intera categoria, scegli il raggruppamento **Mix and match (tutti i prodotti dell'offerta)**. Con il raggruppamento **Per prodotto (tutte le combinazioni insieme)**, ogni riferimento deve raggiungere lo scaglione da solo. Lo sconto a scaglioni non è ripetibile: riguarda sempre l'intera quantità.

Anche una regola prezzi catalogo nativa di PrestaShop può gestire degli scaglioni, ma conta le quantità prodotto per prodotto. Non sa sommare due riferimenti diversi della stessa categoria.

![Sconto a scaglioni nella scheda prodotto: -5% da 2, -10% da 3, -15% da 5 articoli](https://www.datafirefly.com/wp-content/uploads/2026/10/scaglioni-sconto-scheda-prodotto-prestashop-dfquantitydeal-it.webp)

Sconto a scaglioni nella scheda prodotto: -5% da 2, -10% da 3, -15% da 5 articoli

## Quale articolo viene regalato

Il motore ordina le unità idonee per prezzo decrescente, poi applica il vantaggio alle meno care di ogni lotto. È la regola usata dalla grande distribuzione e quella che il cliente si aspetta.

In un lotto 3+1 composto da articoli da 20 €, 15 €, 10 € e 5 €, l'articolo in omaggio è quello da 5 €. Il cliente paga 45 € invece di 50 €.

Questa regola non riguarda lo sconto a scaglioni, che si applica a ogni articolo dell'offerta.

## Raggruppamento delle quantità

- **Per prodotto (tutte le combinazioni insieme)**: tutte le combinazioni dello stesso riferimento contano insieme. Sei flaconi dello stesso bagnoschiuma attivano un'offerta 4+2 anche se si tratta di tre profumazioni diverse.
- **Per combinazione**: ogni variante conta per sé. Servono sei unità della stessa profumazione per attivare la stessa offerta.
- **Mix and match (tutti i prodotti dell'offerta)**: tutte le unità dei prodotti collegati all'offerta confluiscono nello stesso conteggio. Utile per lanciare un 4+2 su un'intera gamma.

## Priorità e cumulo tra le offerte

Le offerte vengono valutate in ordine di priorità, dal valore più basso al più alto. Ogni offerta consuma le unità che utilizza e quella successiva lavora su ciò che resta. La stessa unità non viene mai scontata due volte.

Esempio: sette articoli nel carrello e un'offerta 4+2 con priorità 10. Il lotto consuma sei unità, la settima resta disponibile per un'offerta di priorità 20 che riguardi lo stesso prodotto.

Assegna una priorità bassa alle offerte più generose se vuoi che vengano applicate per prime. A parità di priorità, l'ordine segue l'ID dell'offerta.

## Prodotti già scontati e prezzi negoziati

Per impostazione predefinita, un'offerta si applica sul prezzo mostrato nel carrello, quindi dopo i prezzi specifici e le regole prezzi catalogo. Tre impostazioni permettono di regolare questo comportamento.

### Escludi i prodotti già in promozione

Qualsiasi prodotto la cui riga del carrello riporta una riduzione esce dal calcolo dell'offerta. Non conta nemmeno per raggiungere la quantità richiesta.

### Escludi i clienti con un prezzo specifico

Pensata per i negozi B2B e le tariffe negoziate. Il modulo verifica, prodotto per prodotto, se esiste un prezzo specifico attivo riservato al cliente collegato o al suo gruppo predefinito. In quel caso il prodotto esce dall'offerta per quel cliente: nessuno sconto nel carrello, nessun badge sulla miniatura né sulla scheda prodotto.

- Conta solo il gruppo predefinito del cliente, come nel calcolo dei prezzi di PrestaShop. Un cliente collegato a un secondo gruppo con un prezzo specifico, senza che sia il suo gruppo predefinito, paga il prezzo normale e mantiene l'offerta.
- I prezzi specifici aperti a tutti i clienti e a tutti i gruppi non attivano l'esclusione.
- Il prezzo specifico viene considerato se è attivo alla data odierna, sul negozio, la valuta e il paese del cliente. La quantità minima del prezzo specifico non viene presa in considerazione.
- Un prezzo specifico impostato su una sola combinazione esclude solo quella combinazione nel carrello. Il badge resta visibile finché il prezzo non copre l'intero prodotto.

Un visitatore non collegato non ha un account: per lui l'esclusione scatta solo se il gruppo Visitatore ha un prezzo specifico. Per fare una prova, accedi con l'account cliente interessato, poi modifica la quantità di un articolo nel carrello per forzare il ricalcolo.

### Cumulo degli scaglioni

Per lo sconto a scaglioni, l'impostazione **Prodotti già scontati** della scheda Offerta propone due modalità.

- **Cumula** (predefinita): la percentuale dello scaglione si applica sul prezzo già scontato. Un prodotto da 20 € portato a 18 € da un prezzo specifico, con uno scaglione a -10 %, scende a 16,20 €.
- **Non cumulare**: lo scaglione viene calcolato sul prezzo prima della riduzione e il cliente paga il più basso dei due prezzi. Un prodotto già a -20 % resta a -20 % con uno scaglione a -10 %. Un prodotto a -5 % passa a -10 %.

In entrambe le modalità, gli articoli già scontati contano per raggiungere lo scaglione.

## Il badge

### Variabili del testo

Il campo Testo del badge accetta cinque variabili, sostituite alla visualizzazione con i valori dell'offerta.

- `{x}`: quantità acquistata
- `{y}`: quantità in omaggio
- `{n}`: posizione dell'articolo scontato
- `{value}`: valore dello sconto, senza zeri inutili
- `{price}`: valore dello sconto formattato come prezzo, nella valuta del cliente

Puoi anche scrivere il testo per esteso: «4+2 omaggio», «3+1 gratis», «il 2° a -25 %». Il campo è tradotto, quindi ogni lingua ha la propria formulazione.

Se il campo resta vuoto, il modulo genera un'etichetta breve dal tipo e dai valori: `4+2` per un'offerta X acquistati + Y in omaggio, `-25% x2` per un N-esimo a percentuale, `Fino a -10 %` per uno sconto a scaglioni, oppure `-10 % da 3` se c'è un solo scaglione.

Per uno sconto a scaglioni, `{x}` vale la quantità del primo scaglione e `{value}` la percentuale dello scaglione più alto.

### Visualizzazione automatica

Per impostazione predefinita, uno script front individua le miniature dei prodotti nella pagina, chiede i loro badge al modulo con una sola chiamata Ajax, poi li applica sull'immagine o sotto il prezzo secondo la posizione dell'offerta. Questo funzionamento non dipende da alcun hook di miniatura, quindi copre anche i temi personalizzati che non richiamano più `displayProductPriceBlock`. Il posizionamento viene ripetuto dopo gli aggiornamenti Ajax della ricerca a faccette, della paginazione e del quick view.

![Badge promozionali nell'elenco prodotti: 3+1 in omaggio sulle tazze, 2° a -50% sui cuscini](https://www.datafirefly.com/wp-content/uploads/2026/10/badge-promozionali-elenco-prodotti-3-piu-1-omaggio-prestashop-dfquantitydeal-it.webp)

Badge promozionali nell'elenco prodotti: 3+1 in omaggio sulle tazze, 2° a -50% sui cuscini

### Hook dedicato displayDfQdBadge

Per posizionare il badge in un punto preciso del tuo tema o di un altro modulo, richiama l'hook dedicato nel template:

```
{hook h='displayDfQdBadge' id_product=$product.id_product}
```

Sono disponibili due parametri facoltativi.

- `mode`: `auto` (predefinito) segue la posizione impostata su ogni offerta, `inline` forza la visualizzazione nel flusso, `overlay` forza la sovrapposizione sull'immagine. Il contenitore riceve automaticamente `position: relative`.
- `context`: `list` o `product`, per applicare le impostazioni «elenchi» o «scheda prodotto» dell'offerta. Rilevato automaticamente se assente.

```
{hook h='displayDfQdBadge' id_product=$product.id_product mode='inline'}
```

L'hook compare in **Aspetto** e poi **Posizioni** con il nome «DataFirefly - Badge offre quantitative».

Se il tuo tema richiama questo hook nei suoi template, imposta il **Metodo di visualizzazione dei badge** su **Manuale**. Altrimenti i badge verranno mostrati due volte: una volta dall'hook, una volta dallo script.

## Il blocco delle offerte nella scheda prodotto

Per ogni offerta applicabile, il blocco mostra il badge, il nome dell'offerta, una frase che indica al cliente cosa fare e la descrizione, se ne hai inserita una. Esempi di frasi: «Aggiungi 6 articoli al carrello, gli ultimi 2 saranno in omaggio.», «Aggiungi 3 articoli al carrello, il lotto ti costerà 10,00 €.». Il titolo «Offerte in corso» compare solo se una delle offerte ha una data di fine.

L'impostazione **Posizione delle offerte nella scheda prodotto** propone undici posizioni:

- «Sopra il titolo del prodotto» o «Sotto il titolo del prodotto»;
- «Sotto il riferimento», «Sotto la descrizione breve»;
- «Sopra il prezzo» o «Sotto il prezzo»;
- «Sopra le combinazioni»;
- «Sopra il pulsante Aggiungi al carrello», oppure «Sotto il pulsante Aggiungi al carrello (posizione nativa)», che è la posizione predefinita;
- «In una scheda dedicata nella pagina prodotto»;
- «Selettore CSS personalizzato».

Il blocco viene generato dall'hook nativo `displayProductAdditionalInfo` e poi spostato nel browser, senza modificare il tuo tema. La scheda dedicata passa da `displayProductExtraContent`. Con il selettore CSS personalizzato, inserisci per esempio `.product-information h1` e scegli se il blocco va «Subito prima dell'elemento», «Subito dopo l'elemento», «All'inizio dell'elemento» o «Alla fine dell'elemento». Se il selettore non trova nulla, il blocco resta nella posizione nativa.

![Offerta a quantità nella scheda prodotto: badge, nome dell'offerta e invito all'azione](https://www.datafirefly.com/wp-content/uploads/2026/10/offerta-quantita-scheda-prodotto-prestashop-dfquantitydeal-it.webp)

Offerta a quantità nella scheda prodotto: badge, nome dell'offerta e invito all'azione

## Il carrello

### Calcolo dello sconto

A ogni modifica del carrello, il motore ricalcola il totale degli sconti e sincronizza una regola carrello privata. Il suo codice interno inizia con `DFQD` seguito dall'ID del carrello. Il cliente vede una sola riga di sconto e non inserisce alcun codice.

La regola viene aggiornata solo se l'importo è cambiato, il che evita di ricrearla a ogni caricamento di pagina. Se il totale torna a zero, la regola viene staccata dal carrello ed eliminata.

Alla conferma dell'ordine, la regola viene disattivata e la sua data di fine viene riportata al passato perché non possa essere riutilizzata. Resta collegata all'ordine, quindi visibile nelle tue esportazioni contabili e utilizzabile per una nota di credito.

L'importo dello sconto non può superare il totale prodotti del carrello. In quel caso PrestaShop lo limita automaticamente.

### Dettaglio per offerta

L'importo apportato da ciascuna offerta viene mostrato nella posizione scelta nelle impostazioni. In modalità fisarmonica, la riga nativa Sconto/i diventa cliccabile e apre il dettaglio. Lo stato aperto o chiuso viene mantenuto durante gli aggiornamenti Ajax del carrello.

### Righe prodotto

Con l'opzione **Badge e prezzo barrato sulle righe del carrello**, ogni riga interessata mostra il badge dell'offerta sotto il prezzo unitario, il totale iniziale barrato e il prezzo scontato sotto. Per le offerte X acquistati + Y in omaggio, una dicitura indica il numero di unità in omaggio e l'importo risparmiato. Funziona con i temi Classic e Hummingbird e viene riapplicato quando il tema ricarica le righe del carrello.

### Invito a completare il lotto

Quando mancano solo pochi articoli per attivare un'offerta, un riquadro «Offerta in corso» lo segnala con una frase come «Ancora 1 articolo e ne ricevi 2 in omaggio.». Per uno sconto a scaglioni, il riquadro indica lo scaglione successivo: «Ancora 1 articolo e tutti gli articoli dell'offerta passano a -10 %.». Il pulsante **Aggiungi** mette direttamente nel carrello le unità mancanti.

![Sconto applicato automaticamente nel carrello: badge e prezzi barrati per riga, dettaglio delle offerte e invito a completare il lotto](https://www.datafirefly.com/wp-content/uploads/2026/10/sconto-automatico-carrello-offerte-quantita-prestashop-dfquantitydeal-it.webp)

Sconto applicato automaticamente nel carrello: badge e prezzi barrati per riga, dettaglio delle offerte e invito a completare il lotto

### Riga del buono automatico

La regola carrello generata compare normalmente nell'elenco dei buoni sconto, anche se il suo importo è già conteggiato nella riga Sconto/i. L'opzione **Nascondi il buono sconto automatico**, attiva di default, rimuove questa riga dal riepilogo. Il modulo la riconosce dalla sua etichetta, configurata nelle impostazioni generali.

## Adattare la visualizzazione al tuo tema

Tre template si possono sovrascrivere. Copiali da `/modules/dfquantitydeal/views/templates/hook/` in `/themes/tuo-tema/modules/dfquantitydeal/views/templates/hook/`.

- `badge.tpl`: il badge generato dall'hook `displayDfQdBadge`
- `offers.tpl`: il blocco delle offerte della scheda prodotto
- `cart.tpl`: il dettaglio delle offerte e gli inviti del carrello

Il CSS è isolato sotto il prefisso `dfqd`. Per una regolazione puntuale, punta alle classi dal foglio di stile del tuo tema invece di modificare `views/css/front.css`, che verrebbe sovrascritto all'aggiornamento.

## Multinegozio e multilingua

Ogni offerta viene collegata ai negozi che selezioni nella scheda Condizioni. Un'offerta creata su un negozio non appare sugli altri finché non vi è collegata.

I campi Nome, Testo del badge e Descrizione sono tradotti nelle lingue installate. Il badge e le frasi mostrati seguono la lingua del cliente.

## Aggiornamento da una versione precedente

Installa il nuovo ZIP sopra il precedente dalla gestione moduli. Gli script di aggiornamento aggiungono le impostazioni e gli hook comparsi dopo la tua versione, senza toccare le tue offerte.

Il passaggio alla 1.1.8 ripristina le traduzioni (inglese, italiano, spagnolo, tedesco, olandese, polacco e portoghese), corregge il salvataggio delle offerte su PrestaShop 9 e la visualizzazione dei badge negli elenchi prodotti. Completa inoltre il database dei negozi che provengono dalla 1.1.6: le colonne per l'esclusione dei clienti con prezzo specifico e per lo sconto a scaglioni vengono aggiunte se mancano. La scheda del menu riprende il nome tradotto in ogni lingua.

Il passaggio alla 1.1.7 aggiunge tre colonne alla tabella `ps_df_quantity_deal` per l'esclusione dei clienti con prezzo specifico e lo sconto a scaglioni. Le offerte esistenti mantengono il loro comportamento: le due nuove opzioni sono disattivate per impostazione predefinita.

Il passaggio alla 1.1.5 rinomina la scheda del menu in ogni lingua installata e assegna all'hook `displayDfQdBadge` un titolo in inglese. Se l'etichetta dello sconto carrello è rimasta sul vecchio valore predefinito «Offres quantitatives», viene sostituita dalla sua traduzione nella lingua predefinita del negozio. Un'etichetta che hai personalizzato viene mantenuta.

## Risoluzione dei problemi

### Il badge non compare

1. Apri la configurazione del modulo e leggi il pannello Diagnostica: modulo attivo, hook agganciati, offerte attive oggi.
2. Verifica che l'offerta sia attiva e che la data odierna rientri nel suo periodo di validità.
3. Controlla l'ambito: un prodotto deve essere collegato esplicitamente all'offerta, oppure appartenere a una categoria o a un marchio selezionato.
4. Controlla gli interruttori di visualizzazione, nelle impostazioni generali e nella scheda Badge e visualizzazione dell'offerta.
5. Se il metodo di visualizzazione è impostato su Manuale, verifica che il tuo template richiami davvero l'hook `displayDfQdBadge`.
6. Se il gruppo di clienti è limitato, prova con un account del gruppo giusto.
7. Svuota la cache Smarty e la cache del tuo server.

### I badge compaiono due volte

Il tuo tema richiama l'hook `displayDfQdBadge` e anche lo script front inserisce i badge. Imposta il **Metodo di visualizzazione dei badge** su **Manuale**.

### Lo sconto non si applica nel carrello

La quantità deve raggiungere la soglia dell'offerta secondo la modalità di raggruppamento scelta. In modalità Per combinazione, sei unità distribuite su tre varianti non attivano un'offerta 4+2. Verifica inoltre che il prodotto non sia escluso dall'opzione sui prodotti già in promozione, né il cliente dall'opzione sui prezzi specifici. Per uno sconto a scaglioni su più prodotti, il raggruppamento deve essere impostato su Mix and match.

### Due offerte si ostacolano

Questo comportamento è previsto: un'unità consumata dalla prima offerta esce dal calcolo della seconda. Se vuoi che un'offerta passi prima dell'altra, abbassa la sua priorità.

### Il badge o il blocco delle offerte compare nel posto sbagliato

Per il badge, imposta la posizione dell'offerta su **In linea (sotto il prezzo)**, oppure richiama l'hook `displayDfQdBadge` nel punto desiderato del tuo template di miniatura. Per il blocco delle offerte, scegli un'altra posizione o usa il selettore CSS personalizzato.

### Il link di test dei badge restituisce un errore 404

Svuota la cache in **Parametri avanzati** e poi **Prestazioni**, poi salva di nuovo le impostazioni di **Traffico & SEO** per rigenerare gli URL semplificati.

## Disinstallazione

La disinstallazione elimina le otto tabelle del modulo, le sue chiavi di configurazione e la scheda del menu Catalogo. Le regole carrello già collegate a ordini passati vengono conservate, per non alterare il tuo storico contabile.
