# DataFirefly Waitlist — Documentazione

> Panoramica DataFirefly Waitlist aggiunge un alert di rientro in stock al tuo negozio PrestaShop 8 o 9. Non appena un prodotto — o una combinazione precisa — scende sotto la…

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

## Panoramica

DataFirefly Waitlist aggiunge un alert di rientro in stock al tuo negozio PrestaShop 8 o 9. Non appena un prodotto — o una combinazione precisa — scende sotto la soglia di stock configurata, sulla scheda prodotto appare automaticamente un pulsante «Avvisami quando torna disponibile». Il visitatore lascia la sua email e riceve un alert non appena rifornisci. Ogni ordine effettuato in seguito da un iscritto notificato viene attribuito come conversione nella dashboard.

## Installazione

1. Nel back-office, vai su **Moduli → Gestione moduli → Carica un modulo**.
2. Carica il file `dfwaitlist-x.x.x.zip`.
3. Clicca su **Installa**. Il modulo crea la tabella `df_dfwaitlist_subscriber`, registra i suoi hook e aggiunge la sua scheda di amministrazione.
4. Apri la configurazione per inserire l'email del commerciante e copiare l'URL del cron.

Nessuna dipendenza esterna. PHP 7.4 minimo, compatibile fino a PHP 8.3. Codice sorgente non offuscato.

## Configurazione

Vai su **Moduli → DataFirefly Waitlist → Configura**. Impostazioni disponibili:

- **Double opt-in** — quando è attivo, l'iscrizione invia prima un'email di conferma. Finché il visitatore non clicca, l'iscrizione resta non confermata e non attiverà alcun alert. Disattivabile se preferisci l'iscrizione istantanea.
- **Soglia di stock** — quantità al di sotto della quale un prodotto è considerato non disponibile e mostra il pulsante.
- **Soglia di alert al commerciante** — numero di iscritti su uno stesso prodotto a partire dal quale ricevi un'email di notifica. 10 per default.
- **Email del commerciante** — destinatario dell'alert di cui sopra.
- **Durata delle iscrizioni** — le iscrizioni mai notificate vengono eliminate automaticamente oltre N giorni. 90 per default.
- **Testo del pulsante** — personalizzabile per lingua.
- **Menzione GDPR** — testo mostrato sotto il modulo, personalizzabile per lingua.
- **URL del cron** — protetto da token, rigenerabile con un click dal back-office.

## Funzionamento lato cliente

### Comparsa del pulsante

Il pulsante viene iniettato tramite l'hook `displayProductActions` e la sua visibilità è decisa lato client. Il modulo interroga l'endpoint `/modules/dfwaitlist/stockcheck` per conoscere lo stato reale dello stock della combinazione mostrata — il che lo rende indipendente dal comportamento di re-rendering AJAX del tema. Risultato: il pulsante scompare se la variante selezionata è disponibile, e riappare altrimenti, senza ricaricare la pagina.

### Combinazioni (declinazioni)

L'iscrizione avviene per coppia _(prodotto, combinazione)_. Il modulo mostra esplicitamente la variante interessata, per esempio «Variante: Rosso / Taglia L». Quando il visitatore cambia declinazione prima di confermare, l'obiettivo cambia automaticamente. L'email di alert menziona la combinazione esatta e rimanda alla scheda con la variante preselezionata: nessuna confusione possibile tra una taglia e l'altra.

### Conferma (double opt-in)

Con il double opt-in attivo, l'iscritto riceve un'email contenente un link di conferma con token. L'iscrizione viene presa in considerazione solo dopo il click. Questo meccanismo garantisce la qualità della lista (nessuna email fasulla) e fornisce una prova di consenso esplicita.

### Alert di rientro in stock

Al rifornimento, l'iscritto riceve un'email HTML responsive con il nome del prodotto, la combinazione interessata e un link diretto alla scheda. Ogni email contiene un link di cancellazione con un click.

## Rilevamento dei rientri in stock

Due canali complementari, conviene lasciarli entrambi attivi:

1. **Hook actionUpdateQuantity** — tempo reale. Non appena un dipendente modifica uno stock nel back-office, o un ordine annullato libera stock, le email partono immediatamente.
2. **Cron di sicurezza** — protetto da token. Recupera i movimenti di stock che non passano dagli hook: import API, sincronizzazione ERP, script CLI, aggiornamenti tramite il Webservice PrestaShop.

### Impostazione del cron

Copia l'URL mostrato nella configurazione del modulo (contiene il token di sicurezza) e collegalo a una chiamata oraria:

```
0 * * * * curl -s "https://il-tuo-negozio.com/module/dfwaitlist/cron?token=IL_TUO_TOKEN" > /dev/null 2>&1
```

Se sospetti una fuga del token, rigeneralo con un click dalla configurazione — il vecchio URL smette immediatamente di funzionare. Ricordati di aggiornare la tua crontab dopo la rigenerazione.

## Tracking di conversione

Sull'hook `actionValidateOrder`, il modulo confronta ogni riga dell'ordine con le iscrizioni in stato «notificato». La corrispondenza avviene sulla tripla _(email, id_product, id_product_attribute)_. In caso di match, l'iscrizione viene marcata come convertita e l'`id_order` viene registrato.

Poiché il tracking si basa sull'email e non sull'account cliente, funziona altrettanto bene per gli ordini ospite quanto per i clienti loggati.

## Dashboard di amministrazione

- **6 KPI** — iscritti, in attesa di conferma, notificati, acquisti, tasso di conversione, cancellati.
- **Prodotti con richieste** — ordinabile e paginato. È la tua lista di priorità di rifornimento: un prodotto con 47 iscritti sono 47 vendite quasi certe se rifornisci in fretta.
- **Vista dettagliata per prodotto** — ogni iscritto con il suo stato individuale.
- **Export CSV** — export completo del negozio attivo: email, prodotto, combinazione, stati (confermato, notificato, acquistato, cancellato), date, IP, id ordine in caso di conversione. Il file include un BOM UTF-8 per aprirsi direttamente in Excel senza rompere la codifica.

## Alert al commerciante

Quando un prodotto esaurito raggiunge la soglia di iscritti configurata, un'email automatica ti avvisa con il numero di persone in attesa e un link alla dashboard. L'email viene inviata una sola volta per prodotto, per evitare rumore. È il segnale che trasforma la tua lista d'attesa in strumento di pilotaggio del rifornimento: dai priorità sulla base di una domanda misurata, non dell'intuizione.

## Email

Tre modelli, ciascuno fornito in FR/EN/ES/DE in HTML responsive + testo semplice:

- **Conferma** — inviata solo se il double opt-in è attivo, con il link di attivazione.
- **Alert rientro in stock** — prodotto, combinazione, link diretto alla scheda, link di cancellazione.
- **Alert al commerciante** — numero di iscritti in attesa e link alla dashboard.

I modelli sono modificabili in `modules/dfwaitlist/mails//`.

## GDPR e qualità della lista

- Double opt-in attivabile, con prova di consenso (l'IP viene registrato all'iscrizione).
- Cancellazione con un click in ogni email di alert, tramite un token unico **distinto** dal token di conferma. L'iscrizione viene marcata come cancellata senza essere eliminata, per conservare la tracciabilità, e non parte nessuna email futura.
- Purge automatica delle iscrizioni mai notificate oltre la durata configurata (90 giorni per default) — minimizzazione dei dati.
- Honeypot anti-bot integrato nel modulo, e limite di una sola email per prodotto per evitare iscrizioni a raffica.
- Nessuna chiamata esterna: i dati restano nel database PrestaShop, con scope per negozio. Nulla viene inviato a DataFirefly né a servizi di terze parti.

## Multinegozio e multilingua

La tabella delle iscrizioni contiene le colonne `id_shop` e `id_lang`. Ogni sotto-negozio di una rete multinegozio dispone quindi della propria lista d'attesa, dei propri alert al commerciante e dei propri KPI. Le email partono nella lingua dell'iscritto al momento dell'iscrizione.

## Risoluzione dei problemi

### Il pulsante non appare

- Verifica che il prodotto sia effettivamente sotto la soglia di stock configurata — al di sopra, il pulsante è nascosto volutamente.
- Su un prodotto con declinazioni, verifica la variante selezionata: il pulsante si mostra solo se _quella_ variante non è disponibile.
- Il tema deve implementare l'hook `displayProductActions`. Classic e Hummingbird lo fanno; su un tema custom insolito, verifica che sia presente nel template prodotto.
- Svuota la cache di PrestaShop (Parametri avanzati → Prestazioni).

### Gli alert non partono al rifornimento

- Verifica che l'iscrizione sia confermata: con il double opt-in, un'iscrizione non confermata non riceve mai alert.
- Se lo stock è stato modificato fuori dal back-office (API, ERP, CLI), l'hook in tempo reale non si attiva — subentra il cron. Verifica che stia girando e che il token dell'URL sia aggiornato.
- Testa l'invio email di PrestaShop in generale (Parametri avanzati → E-mail → Test).

### Alcune conversioni non vengono conteggiate

La corrispondenza richiede l'email _e_ il prodotto _e_ la combinazione. Se il cliente ordina con un indirizzo email diverso da quello della sua iscrizione, o acquista una declinazione diversa da quella che attendeva, la conversione non viene attribuita — è voluto, per evitare falsi positivi che falserebbero i tuoi KPI.

## Disinstallazione

La disinstallazione elimina la tabella `df_dfwaitlist_subscriber` e tutte le chiavi di configurazione con prefisso `DFWAITLIST_`. Nessuna traccia resta nel database. Viene chiesta una conferma, poiché le iscrizioni e le statistiche di conversione andranno perse definitivamente — esporta il CSV prima se desideri conservare lo storico.
