Il problema
Viaggio Fotografico organizza viaggi e workshop di fotografia e pubblica racconti di viaggio. Il sito doveva vendere i viaggi con tutti i loro dettagli, raccogliere correttamente le iscrizioni, rispondere alle domande dei visitatori e passare a un nuovo server senza perdere nulla.
Cosa ho costruito
Ho rifatto il tema come un magazine di viaggi e fotografia e ho aggiunto gli strumenti che servivano al team per gestirlo.
- Viaggi come prodotti: ogni viaggio è un prodotto WooCommerce con i suoi campi: immagini per desktop e mobile, video, sconto, partecipanti, programma, schede, galleria e immagine panoramica.
- Moduli di iscrizione che si compilano da soli: un plugin su misura precompila il modulo di prenotazione con i dati del viaggio che si sta guardando, aggiunge campi come numero di persone e condivisione della camera, e riporta gli stessi dati nelle email. Meno errori, meno botta e risposta.
- Caronte, l’assistente AI: un widget di chat con un endpoint OpenAI lato server. Le sue istruzioni sono divise in sezioni che il team modifica in WordPress: regole, formato delle risposte, pagine principali, FAQ ed elenco dei viaggi. Rimanda solo a pagine del sito e non inventa prezzi o date.
- Mappe di viaggi e racconti: mappe Google dei viaggi e dei racconti con coordinate GPS, con una vista sull’Italia da mobile e sul mondo da desktop.
- Centro di amministrazione: un unico menu nella bacheca che collega le aree principali del sito.
- Strumenti di backup e sincronizzazione: archivi con un clic di database, tema e plugin su misura per i cambi di server, e un caricamento a blocchi di un dump del database di produzione fino a circa 200 MB, oltre il limite di caricamento di 50 MB del server.
Con cosa è fatto
WordPress, WooCommerce, un tema su misura, Advanced Custom Fields Pro, Contact Form 7, due plugin su misura, cache Redis, la Responses API di OpenAI, Google Maps, pubblicazione con git.
Perché è fatto così
La chat AI chiama OpenAI dal server, non dal browser, così la chiave API non arriva mai al visitatore. Tenere il prompt in sezioni modificabili permette al team di aggiornare FAQ e viaggi senza chiedere a uno sviluppatore.


