# Prenotazioni e Appuntamenti: guida completa

> Presentazione Il modulo Prenotazioni e Appuntamenti (dfbooking) aggiunge la prenotazione online degli appuntamenti a PrestaShop 8 e 9. Il cliente sceglie un servizio, un operatore o «Primo disponibile», poi un…

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

## Presentazione

Il modulo **Prenotazioni e Appuntamenti** (`dfbooking`) aggiunge la prenotazione online degli appuntamenti a PrestaShop 8 e 9. Il cliente sceglie un servizio, un operatore o «Primo disponibile», poi un giorno e un orario. Gli orari proposti sono calcolati in tempo reale a partire dagli orari di lavoro, dalla durata del servizio, dalla pausa e dagli appuntamenti già presi.

Si può chiedere un acconto: viene pagato tramite un ordine PrestaShop nativo, quindi con i metodi di pagamento già attivi nel negozio. Il team lavora da un'agenda nel back office e il cliente gestisce da solo l'appuntamento con un link privato ricevuto via email.

Questa documentazione riguarda la versione **1.2.0**.

## Concetti chiave

- **Servizio**: ciò che il cliente prenota (taglio, consulenza, laboratorio). Ha una durata, una pausa, un prezzo a persona, un numero di posti per orario e, facoltativamente, un acconto, una categoria e una foto.
- **Operatore o risorsa**: la persona, la cabina o il macchinario che esegue il servizio. Ognuno ha un orario settimanale e, facoltativamente, una foto e un'email.
- **Orario**: un'ora prenotabile, generata dall'orario settimanale e dall'intervallo tra orari.
- **Stati**: In attesa di pagamento, In attesa di conferma, Confermata, Annullata, Completata, Assenza.

## Installazione e aggiornamento

1. Apri **Moduli > Gestione moduli** e clicca su **Carica un modulo**.
2. Trascina l'archivio `dfbooking.zip`, poi clicca su **Configura**.

L'installazione crea le tabelle, il menu **Prenotazioni** (Agenda, Prenotazioni, Servizi, Operatori e risorse), un prodotto tecnico nascosto «Acconto prenotazione» e la cartella `img/dfbooking/` per le foto.

Per aggiornare una versione precedente, installa il nuovo ZIP sopra quella esistente: gli script di aggiornamento aggiungono le nuove colonne e tabelle, generano i link privati delle prenotazioni esistenti e aggiungono la scheda Agenda. Prenotazioni, servizi e orari vengono conservati.

Non eliminare il prodotto «Acconto prenotazione»: porta l'importo dell'acconto nel carrello. Non è visibile nel catalogo e viene rimosso automaticamente alla disinstallazione.

## Avvio rapido

La pagina di configurazione mostra una lista di controllo finché questi tre passaggi non sono completati:

1. Crea un operatore in **Prenotazioni > Operatori e risorse**. Per impostazione predefinita viene proposto da lunedì a venerdì, 9:00-12:00 e 14:00-18:00.
2. Crea un servizio in **Prenotazioni > Servizi** e seleziona gli operatori che lo eseguono.
3. Aggiungi il link della pagina di prenotazione (mostrato nella configurazione) al menu o a una pagina CMS.

Aggiungi `?service=ID` all'URL della pagina di prenotazione per aprire direttamente un servizio, ad esempio da una pagina CMS che lo presenta.

## Configurazione

### Orari

- **Intervallo tra orari** (30 min per impostazione predefinita): distanza tra due orari di inizio proposti.
- **Preavviso minimo** (120 min): il cliente non può prenotare un orario che inizia prima.
- **Finestra di prenotazione** (60 giorni): fino a quando si può prenotare.
- **Conferma automaticamente le prenotazioni**: se disattivato, le prenotazioni senza acconto arrivano «In attesa di conferma».

### Modulo cliente

- **Account cliente obbligatorio** e **telefono obbligatorio**.
- **Casella di consenso**: scegli una pagina CMS (privacy, condizioni); prima della conferma compare una casella obbligatoria.
- **Condizioni di prenotazione**: breve testo per lingua mostrato prima della conferma e nella pagina dell'appuntamento (annullamento, rimborso dell'acconto, ritardi).

### Acconto, annullamento e modifiche

- **Tieni un orario non pagato per** (30 min): passato questo tempo senza ordine, l'orario viene liberato.
- **Annullamento online** e **spostamento online** da parte del cliente, attivabili separatamente.
- **Modifiche online possibili fino a** X ore prima dell'appuntamento (24 per impostazione predefinita).

### Notifiche e promemoria

- **Email di notifica del team**: riceve ogni nuova prenotazione, annullamento e modifica (vuoto = email del negozio).
- **Avvisa anche l'operatore assegnato**: copia inviata all'email indicata sull'operatore.
- **Email di promemoria** X ore prima (24 per impostazione predefinita, 0 per disattivare).
- **Allega un file calendario (.ics)** alle email di conferma, spostamento e annullamento.
- **Segna gli appuntamenti passati come completati**, automaticamente.

### Pagina di prenotazione

- **Colore principale**: pulsanti, giorno e orario selezionati. Scegli un colore leggibile su sfondo bianco.
- **URL della pagina**: `/reservation` per impostazione predefinita, modificabile (ad esempio `/prenota`).

## Servizi

In **Prenotazioni > Servizi**, ogni servizio comprende:

- **Nome**, **categoria** e **descrizione**, per lingua. I servizi della stessa categoria sono raggruppati, con filtri non appena ci sono almeno due categorie.
- **Foto** (JPG, PNG o WebP, max 5 MB), mostrata come miniatura.
- **Durata** e **pausa tra gli appuntamenti** (pulizia, preparazione).
- **Posti per orario**: 1 per un appuntamento individuale, di più per una sessione di gruppo.
- **Prezzo a persona** (0 nasconde il prezzo) e **acconto**: nessuno, percentuale del prezzo o importo fisso a persona.
- **Colore** usato nell'agenda e gli **operatori** che eseguono il servizio.

Un servizio è prenotabile online solo se è collegato almeno un operatore attivo. La colonna «Operatore» dell'elenco segnala i servizi senza operatori.

Oltre sei servizi, sopra l'elenco della pagina di prenotazione compare un campo di ricerca.

## Operatori e orari

In **Prenotazioni > Operatori e risorse**, indica nome, ruolo, descrizione, una foto (mostrata in un cerchio), un colore e, facoltativamente, un'email per ricevere le notifiche.

### Orario settimanale

Per ogni giorno, inserisci fino a tre fasce orarie. Usa due fasce per la pausa pranzo. Un giorno senza fasce è un giorno libero. Il pulsante **Copia da martedì a venerdì** copia le fasce del lunedì, **Svuota** cancella un giorno.

### Agenda personale sul telefono

Una volta salvato l'operatore, la sua scheda mostra un **link di calendario privato**. In Google Calendar (Altri calendari > Da URL) o su iPhone (Impostazioni > Calendario > Account > Aggiungi calendario sottoscritto), i suoi appuntamenti compaiono e si aggiornano da soli. Nella configurazione c'è un link per tutto il team.

Questo link dà accesso a nomi e numeri di telefono dei clienti. Condividilo solo con la persona interessata.

## Sessioni di gruppo

Con più di un posto per orario, il cliente sceglie il numero di partecipanti e vede i posti rimasti sotto ogni orario. Più prenotazioni possono condividere lo stesso orario di inizio fino a esaurimento dei posti; prezzo e acconto sono moltiplicati per il numero di partecipanti.

## Chiusure e orari straordinari

La pagina di configurazione ha due pannelli:

- **Chiusure e giorni di ferie**: un periodo senza orari, per tutto il negozio o un operatore. Se nel periodo esistono già appuntamenti, un avviso lo segnala: non vengono annullati automaticamente.
- **Orari straordinari**: orari speciali per una data (apertura serale, domenica prima di Natale, giornata ridotta), con una seconda fascia facoltativa. Sostituiscono la settimana abituale solo in quel giorno.

Priorità per una data: una chiusura vale sempre; poi gli orari straordinari dell'operatore, poi quelli di tutto il negozio; altrimenti la settimana abituale.

## L'acconto

1. La prenotazione viene creata «In attesa di pagamento» e l'orario viene bloccato.
2. Il modulo prepara un carrello che contiene solo l'acconto e porta il cliente al tuo checkout. Il carrello che aveva viene messo da parte.
3. Pagamento immediato (carta, PayPal): la prenotazione passa a **Confermata** e partono le email.
4. Pagamento differito (bonifico, assegno): l'orario resta bloccato e la prenotazione si conferma quando metti l'ordine in uno stato pagato.
5. Ordine annullato o in errore: l'appuntamento viene annullato e il cliente avvisato.
6. Pagamento abbandonato: l'orario viene liberato dopo il tempo impostato.

Dopo l'ordine, il carrello originale del cliente viene ripristinato e la pagina di conferma ordine mostra l'appuntamento con un link per gestirlo.

Se un pagamento arriva oltre il tempo limite quando un altro cliente ha nel frattempo preso l'orario, la prenotazione passa «In attesa di conferma» con una nota interna, così puoi contattare il cliente.

## Percorso di prenotazione del cliente

1. **Servizio**: elenco raggruppato per categoria, con filtri e ricerca.
2. **Operatore**: una persona precisa o «Primo disponibile». Il passaggio viene saltato se un solo operatore esegue il servizio.
3. **Giorno e orario**: il calendario si apre sulla prossima disponibilità; gli orari sono raggruppati in mattina, pomeriggio e sera.
4. **Dati di contatto**, condizioni e consenso, poi conferma.

Un riepilogo mostra in tempo reale servizio, operatore, data, ora, totale, acconto e saldo. Ogni passaggio completato si chiude con un link «Modifica».

## Gestione dell'appuntamento da parte del cliente

Dopo la prenotazione, il cliente arriva sulla pagina del suo appuntamento. Trova il riepilogo, il pulsante per Google Calendar e un file .ics per Apple Calendar e Outlook. In base alle tue impostazioni può anche **spostare** l'appuntamento su un altro orario libero (mantenendo o no lo stesso operatore) o **annullarlo**.

La pagina è raggiungibile dal link presente in ogni email, anche per i clienti senza account. I clienti connessi trovano inoltre gli appuntamenti in programma e lo storico in **Il mio account > I miei appuntamenti**.

## Agenda del back office

**Prenotazioni > Agenda** mostra:

- la **vista settimana**, con filtro per operatore;
- la **vista giorno**, con una colonna per operatore.

La barra colorata di un appuntamento indica il servizio, il bordo lo stato (tratteggiato finché non è confermato). I giorni chiusi sono tratteggiati e una linea rossa segna l'ora attuale.

- **Clic su un orario libero**: crea un appuntamento con giorno, ora e operatore già compilati.
- **Trascina e rilascia un appuntamento**: lo sposta mantenendo la durata. Nella vista giorno, rilasciarlo in un'altra colonna cambia operatore. Una finestra di conferma propone di avvisare il cliente via email. Se l'orario è occupato, l'agenda chiede conferma prima di forzare.
- **Clic su un appuntamento**: apre la sua scheda.

## Prenotazioni nel back office

### Elenco

**Prenotazioni > Prenotazioni** elenca gli appuntamenti con filtri (stato, data, servizio, operatore, cliente) ed esportazione CSV.

### Creare un appuntamento telefonico

Clicca su **Nuova prenotazione** o su un orario libero dell'agenda. Scegli servizio, operatore (o assegnazione automatica), data e ora; l'ora di fine si calcola dalla durata del servizio. Se l'email corrisponde a un cliente esistente, la prenotazione viene collegata a lui. Una prenotazione che si sovrappone a un'altra viene rifiutata, a meno che tu non attivi **Salva anche se l'orario è occupato**.

### Scheda di una prenotazione

La scheda raccoglie appuntamento, cliente, pagamento (con link all'ordine), messaggio del cliente e una nota interna. Le azioni rapide sono **Conferma**, **Segna come completata**, **Assenza**, **Annulla prenotazione**, **Ripristina** e **Invia di nuovo l'email**. Un cambio di stato invia al cliente l'email corrispondente.

### Dettaglio ordine

Un ordine di acconto mostra un blocco «Appuntamento collegato» con un link alla prenotazione.

## Email

Sei modelli sono forniti in italiano, inglese, francese, spagnolo e tedesco, in HTML e in testo:

- **Conferma**: appuntamento confermato, con .ics allegato;
- **Richiesta ricevuta**: prenotazione in attesa di conferma o di pagamento;
- **Promemoria**: inviato X ore prima dell'appuntamento;
- **Annullamento** e **Spostamento**;
- **Notifica al team**: nuova prenotazione, annullamento o spostamento da parte del cliente. Rispondere a questa email scrive direttamente al cliente.

Ogni email al cliente contiene il link privato di gestione dell'appuntamento. Per una lingua senza modelli (polacco, olandese, portoghese), le email partono in inglese.

## Attività automatiche

Tre attività girano in background: invio dei promemoria, rilascio degli orari il cui acconto non è stato pagato in tempo e passaggio degli appuntamenti passati a «Completata».

La configurazione mostra un **URL cron** protetto da token. Richiamalo ogni 15 minuti dal cron del server per promemoria puntuali. Senza cron, le attività vengono eseguite durante le visite al negozio, al massimo ogni 10 minuti. Il pulsante **Esegui ora le attività** le avvia subito.

## Statistiche

La panoramica della configurazione mostra gli appuntamenti in programma, quelli in attesa di conferma e, per il mese in corso: numero di appuntamenti, fatturato prenotato (confermati e completati), quota prenotata online, tasso di annullamento e tasso di assenza.

## GDPR

Con il modulo ufficiale **psgdpr**, l'esportazione dei dati di un cliente comprende le sue prenotazioni, e la cancellazione dei suoi dati anonimizza le prenotazioni (nome, email, telefono, messaggio) senza falsare le statistiche.

## Multinegozio e lingue

Servizi e operatori hanno testi per lingua e per negozio, e le prenotazioni appartengono al loro negozio. L'interfaccia del modulo è disponibile in italiano, inglese, francese, spagnolo e tedesco.

## Disinstallazione

La disinstallazione elimina tabelle, prenotazioni, configurazione, menu, prodotto di acconto e foto. Gli ordini esistenti non vengono modificati.

## Risoluzione dei problemi

### Non compare nessun orario

Verifica che l'operatore abbia un orario per quel giorno, che il servizio sia collegato a lui, che il giorno non sia chiuso, e confronta preavviso minimo e durata del servizio con le fasce orarie.

### Un servizio non compare online

Deve essere attivo e collegato ad almeno un operatore attivo.

### I promemoria non partono

Verifica che il promemoria non sia impostato a 0 e che la prenotazione sia «Confermata». Su un negozio poco visitato, configura l'URL cron.

### La foto non viene salvata

La cartella `img/dfbooking/` deve essere scrivibile. Controlla anche dimensione (max 5 MB) e formato.

### L'URL di prenotazione restituisce un errore 404

Attiva gli URL semplificati in **Parametri negozio > Traffico e SEO**, poi svuota la cache.

## FAQ

### Il cliente può prenotare senza creare un account?

Sì, a meno che tu non attivi «Account cliente obbligatorio». Gestisce l'appuntamento con il link ricevuto via email.

### Posso proporre «Primo disponibile»?

Sì, automaticamente quando più operatori eseguono il servizio. Il modulo assegna l'operatore libero all'orario scelto.

### Come si evitano le doppie prenotazioni?

La disponibilità viene ricontrollata al momento della conferma, con un blocco, e il back office rifiuta le sovrapposizioni a meno che tu non le forzi.

### Il modulo è compatibile con PrestaShop 9?

Sì, da PrestaShop 8.0 a 9.x, con uno o più negozi.
