# DataFirefly Loyalty — Programma Fedeltà Shopware 6

> Installazione, configurazione e uso di DataFirefly Loyalty: punti, livelli, riscatto dei buoni e risoluzione dei problemi.

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

## Panoramica

DataFirefly Loyalty aggiunge un programma fedeltà completo a Shopware 6: i tuoi clienti guadagnano punti a ogni ordine, salgono di livello con moltiplicatori e convertono i punti in buoni basati sulle promozioni native di Shopware. L'estensione funziona su Shopware 6.5, 6.6 e 6.7 con un unico ZIP, senza alcuna compilazione.

## Installazione

### Dall'amministrazione

1. Vai in **Estensioni > Le mie estensioni**.
2. Fai clic su **Carica estensione** e seleziona il file `DfLoyalty-1.0.0.zip`.
3. Fai clic su **Installa**, poi attiva l'estensione.

### Da riga di comando

```
bin/console plugin:refresh
bin/console plugin:install --activate DfLoyalty
bin/console cache:clear
```

L'installazione crea due tabelle dedicate: `df_loyalty_account` (una riga per cliente) e `df_loyalty_transaction` (il registro di tutte le operazioni sui punti).

Non serve alcuna compilazione JavaScript: l'estensione non include alcun modulo di amministrazione compilato, il che garantisce la compatibilità con i rami 6.5, 6.6 e 6.7.

## Configurazione

Apri **Estensioni > Le mie estensioni > DataFirefly Loyalty > Configura**. Tutte le impostazioni sono disponibili per canale di vendita: puoi attivare il programma su un solo negozio o applicare tassi diversi per canale.

### Accredito dei punti

- **Attiva il programma**: interruttore generale. Se disattivato, la pagina account del cliente restituisce un errore 404 e non viene accreditato alcun punto.
- **Trigger di accredito**: _Pagamento incassato_ (stato transazione `paid`, consigliato) o _Ordine completato_ (stato ordine `completed`).
- **Punti per unità monetaria**: punti guadagnati per unità spesa. Predefinito: 1.
- **Base di calcolo**: importo dell'ordine lordo o netto.
- **Includere le spese di spedizione**: per impostazione predefinita, la spedizione è esclusa dal calcolo.

### Livelli

Sono configurabili tre livelli, ciascuno con nome, soglia e moltiplicatore. Le soglie si applicano ai **punti accumulati nel tempo** (che non diminuiscono mai con un riscatto), il moltiplicatore si applica a tutti i guadagni futuri.

- **Livello 1** — predefinito: Bronzo, da 0 punti, moltiplicatore ×1.0
- **Livello 2** — predefinito: Argento, da 500 punti, moltiplicatore ×1.25
- **Livello 3** — predefinito: Oro, da 2 000 punti, moltiplicatore ×1.5

Esempio: un cliente Argento (×1.25) che effettua un ordine di 100 € lordi con un tasso di 1 punto per euro guadagna 125 punti.

### Riscatto dei buoni

- **Tasso di conversione**: punti necessari per 1 € di buono. Predefinito: 100 (100 punti = 1,00 €).
- **Minimo di riscatto**: punti minimi per riscattare. Predefinito: 200.
- **Incremento di riscatto**: i punti si convertono in multipli di questo valore. Predefinito: 100.
- **Validità dei buoni**: durata del buono in giorni. Predefinito: 90.

## Funzionamento per il cliente

Una voce **Programma fedeltà** compare nel menu dell'account cliente. La pagina `/account/loyalty` mostra:

- il saldo punti disponibile e il totale dei punti accumulati nel tempo;
- il livello attuale con una barra di avanzamento verso il livello successivo;
- il modulo di riscatto dei buoni;
- la cronologia delle ultime 50 operazioni (guadagni, riscatti, revoche).

Quando un cliente riscatta i punti, l'estensione crea una **promozione nativa di Shopware**: un codice unico del tipo `LOYAL-XXXXXXXX`, riservato al suo account, monouso, con uno sconto fisso sul carrello. Il codice si applica nel carrello come qualsiasi codice promozionale. Tutte le promozioni generate si trovano in **Marketing > Promozioni**.

## Annullamenti e rimborsi

Quando un ordine passa allo stato _Annullato_ o il suo pagamento passa allo stato _Rimborsato_, i punti guadagnati su quell'ordine vengono revocati automaticamente. L'operazione è tracciata nella cronologia del cliente con l'etichetta «Annullati». La revoca è idempotente: può avvenire al massimo una volta per ordine.

Nella versione 1.0, un rimborso parziale non viene ripartito pro quota: è il passaggio del pagamento completo allo stato _Rimborsato_ che attiva la revoca di tutti i punti dell'ordine.

## Sicurezza e integrità dei dati

- L'addebito dei punti è atomico a livello di database: due riscatti simultanei non possono spendere due volte lo stesso saldo.
- Ogni operazione viene inscritta in un registro append-only, con riferimento all'ordine, tipo, punti con segno e codice del buono quando applicabile.
- La creazione del buono e la scrittura contabile avvengono nella stessa transazione SQL: mai un buono senza addebito, mai un addebito senza buono.

## Risoluzione dei problemi

### Il link Programma fedeltà non compare nell'account

L'estensione inserisce il suo link tramite il blocco Twig `page_account_sidebar_link_orders`. Se il tuo tema personalizzato ha rimosso o rinominato questo blocco, aggiungi il link manualmente nel template della sidebar dell'account, puntando alla route `frontend.account.dfloyalty.page`.

### I punti non vengono accreditati

1. Verifica che il programma sia attivo per il canale di vendita interessato.
2. Verifica il trigger configurato: con _Pagamento incassato_, la transazione deve raggiungere lo stato `paid`; con _Ordine completato_, l'ordine deve raggiungere `completed`.
3. Svuota la cache dopo ogni modifica di configurazione: `bin/console cache:clear`.

### Disinstallazione

Durante la disinstallazione, Shopware propone di conservare i dati. Se deselezioni questa opzione, le tabelle `df_loyalty_account` e `df_loyalty_transaction` vengono eliminate definitivamente — i buoni già generati restano, poiché sono promozioni standard di Shopware.
