DataFirefly Address Lookup — Documentazione
Installazione, configurazione e risoluzione dei problemi del completamento automatico degli indirizzi al checkout: API BAN francese gratuita e Google Places opzionale.
Panoramica
DataFirefly Address Lookup aggiunge il completamento automatico degli indirizzi ai moduli di PrestaShop 8 e 9: il checkout, la pagina «Il mio indirizzo», la pagina «I miei dati» e il modulo di registrazione. Il modulo si basa su due motori: l’API francese BAN (api-adresse.data.gouv.fr), gratuita e senza chiave, attivata di default per la Francia, e Google Places come opzione per gli indirizzi internazionali.
Il flusso del cliente è semplice: digita il codice postale, la città si compila automaticamente (o appare un selettore di comuni se più di uno corrisponde); inizia a digitare la via, i suggerimenti appaiono; un clic compila in una volta via, codice postale e città con un indirizzo normalizzato.
Nessun dato passa dal vostro server né da DataFirefly. Le richieste vanno direttamente dal browser del cliente all’API BAN o a Google Places. Il modulo non crea alcuna tabella SQL e non sovrascrive alcun template Smarty.
Requisiti
- PrestaShop da 8.0 a 9.x (tema Classic, Hummingbird o la maggior parte dei temi di terze parti)
- PHP 7.4 o superiore
- Solo per Google Places: una chiave API di Google Cloud con le API Places API e Maps JavaScript API attivate
Installazione
- Nel back office di PrestaShop, aprite Moduli → Gestione moduli.
- Cliccate su Carica un modulo e trascinate il file
dfaddresslookup.zip. - PrestaShop installa il modulo e registra automaticamente gli hook
actionFrontControllerSetMediaedisplayHeader. - Cliccate su Configura per aprire la schermata delle impostazioni.
Subito dopo l’installazione, il completamento automatico è attivo per la Francia senza alcuna configurazione: l’API BAN è attivata di default e non richiede chiave.
Configurazione
API francese BAN
Attivare l’API BAN francese — attiva o disattiva il motore francese. Attivato di default. L’API api-adresse.data.gouv.fr è un servizio pubblico gratuito: nessuna chiave, nessun abbonamento, limite indicativo di 50 richieste al secondo per IP, ben oltre le esigenze di un checkout.
Compilare la città dal codice postale — quando il cliente digita un codice postale francese a 5 cifre, la città si compila automaticamente se un solo comune corrisponde; altrimenti appare un selettore di comuni sotto il campo. Il modulo non sostituisce mai una città già digitata dal cliente.
Google Places (opzionale)
Attivare Google Places — attiva il motore internazionale. Richiede una chiave API valida; in caso contrario il salvataggio della configurazione viene rifiutato.
Chiave API Google — la vostra chiave Google Cloud. Vedere la sezione successiva per crearla e proteggerla.
Paesi consentiti — elenco di codici ISO 3166-1 alpha-2 separati da virgole (es. BE,CH,LU,DE). Google Places si attiva solo per questi paesi; campo vuoto = tutti i paesi. È la leva principale per tenere sotto controllo la fatturazione Google Cloud.
Comportamento
Caratteri minimi — numero di caratteri prima che i suggerimenti si attivino (da 2 a 10, default 3).
Debounce (ms) — ritardo tra l’ultima digitazione e la chiamata API (da 80 a 2000 ms, default 250). Aumentatelo per ridurre il numero di richieste, riducetelo per suggerimenti più reattivi.
Evidenziare le corrispondenze — mette in grassetto il testo digitato dal cliente in ogni suggerimento.
Ottenere una chiave Google Places
- Aprite la Google Cloud Console e selezionate o create un progetto.
- In API e servizi → Libreria, attivate Places API e Maps JavaScript API.
- In API e servizi → Credenziali, create una chiave API.
- Limitate la chiave: Restrizioni delle applicazioni → «Referrer HTTP» → aggiungete il vostro dominio (es.
*.mionegozio.it/*); Restrizioni API → limitate a Places API e Maps JavaScript API. - Incollate la chiave nella configurazione del modulo e salvate.
Non distribuite mai una chiave Google senza restrizione di referrer HTTP: potrebbe essere utilizzata da qualsiasi sito di terze parti e generare fatturazione a vostro carico.
Funzionamento tecnico
Cambio automatico tra i motori
Il modulo legge il paese selezionato nel campo id_country del modulo. Francia → motore BAN. Altro paese presente nell’elenco dei paesi consentiti → Google Places. Paese fuori elenco o nessun motore applicabile → il completamento automatico si disattiva silenziosamente e il modulo resta un classico modulo di inserimento. Il cambio è immediato a ogni cambio di paese, senza ricaricare la pagina.
Compatibilità con checkout one-page e ri-rendering
Il checkout di PrestaShop ri-visualizza il modulo indirizzo a ogni cambio di passaggio. Il modulo sorveglia il DOM con un MutationObserver e si iscrive agli eventi nativi updatedAddressForm, updatedAddress, updatedDeliveryForm e changedCheckoutStep: il completamento automatico si ricollega automaticamente a ogni ri-rendering. Ogni modulo viene contrassegnato dopo il collegamento per evitare doppi collegamenti.
Moduli multipli
Se più moduli indirizzo sono visualizzati contemporaneamente (spedizione + fatturazione), ciascuno riceve il proprio completamento automatico indipendente, con il proprio menu e il proprio stato.
Navigazione da tastiera e accessibilità
Il menu dei suggerimenti si controlla interamente da tastiera: frecce su/giù per navigare, Invio per selezionare, Esc per chiudere. I suggerimenti portano gli attributi ARIA role="listbox" e role="option".
Degradazione elegante
Se l’API è irraggiungibile (guasto, cliente offline, blocco di rete), non viene mostrato alcun errore: il modulo resta un classico modulo di inserimento manuale. Il completamento automatico è un miglioramento progressivo, mai un punto di blocco del checkout.
GDPR e privacy
- Le richieste di completamento automatico vanno direttamente dal browser del cliente all’API BAN (servizio pubblico francese) o a Google Places.
- Nessun dato passa dal vostro server PrestaShop durante la digitazione.
- Nessun dato passa mai dai server DataFirefly.
- Il modulo non imposta alcun cookie.
- Se attivate Google Places, menzionate Google nella vostra informativa sulla privacy come destinatario degli inserimenti di indirizzo per i paesi interessati.
Risoluzione dei problemi
I suggerimenti non appaiono
- Verificate che il motore interessato sia attivato nella configurazione del modulo.
- Verificate il numero di caratteri minimi: i suggerimenti si attivano solo a partire dalla soglia configurata.
- Svuotate la cache di PrestaShop (Parametri avanzati → Prestazioni) per forzare il ricaricamento degli asset JS/CSS.
- Aprite la console del browser: un errore CORS o un blocco da parte di un’estensione (adblock, protezione privacy) può impedire le chiamate all’API.
Google Places non si attiva
- Verificate che il paese selezionato figuri nell’elenco dei paesi consentiti (o che l’elenco sia vuoto).
- Verificate nella console del browser che lo script di Google Maps si carichi senza errori: una chiave non valida, un’API non attivata o una restrizione di referrer troppo severa producono un errore esplicito
Google Maps JavaScript API error. - Verificate che la fatturazione sia attivata sul vostro progetto Google Cloud: le API Places rifiutano le richieste senza account di fatturazione attivo.
La città non si compila dal codice postale
- Questa funzione riguarda solo il motore BAN (Francia) e si disattiva se il campo città contiene già un valore digitato dal cliente.
- Alcuni codici postali coprono più comuni: il modulo mostra allora un selettore invece di compilare automaticamente.
Conflitto con un modulo di checkout di terze parti
Il modulo individua i campi tramite i loro attributi name standard (address1, postcode, city, id_country). I checkout one-page di terze parti che mantengono questi nomi di campo funzionano senza configurazione. Se un modulo di terze parti rinomina i campi, il completamento automatico si disattiva silenziosamente senza rompere il checkout — contattate il supporto indicando il nome del modulo interessato.
FAQ
Il modulo rallenta il mio negozio?
No. JS e CSS si caricano solo sulle 4 pagine che contengono un modulo indirizzo, e tutte le richieste di completamento automatico vengono eseguite dal browser del cliente, mai dal vostro server.
Posso usare solo l’API francese senza Google?
Sì, è la modalità di default. Google Places è strettamente opzionale e non si carica finché non viene attivato con una chiave valida.
Il modulo funziona in multi-negozio?
Sì. La configurazione è gestita dalla tabella di configurazione nativa di PrestaShop e rispetta il contesto multi-negozio standard.
Cosa succede alla disinstallazione?
Tutte le chiavi di configurazione vengono eliminate. Non essendo stata creata alcuna tabella, la disinstallazione non lascia alcuna traccia.
Changelog
1.0.0 — 15 maggio 2026
- Prima versione pubblica
- API francese BAN integrata di default (gratuita, senza chiave)
- Google Places opzionale con chiave API ed elenco di paesi consentiti
- Compilazione codice postale → città → via
- Compatibile con PrestaShop da 8.0 a 9.x, checkout one-page e multi-step
- Navigazione da tastiera, evidenziazione delle corrispondenze, debounce configurabile
- Nessuna sovrascrittura di template, nessuna tabella SQL