Questions · Adresses

Comment ajouter l'autocomplétion des adresses à mon formulaire ?

Vous reliez le widget au champ adresse de votre formulaire : pendant que l'utilisateur tape, les voies du référentiel apparaissent avec leur commune, et au choix les champs se remplissent d'eux-mêmes avec l'adresse déjà dans la forme correcte, code postal compris. Votre serveur sert de relais vers notre API, ainsi le jeton ne passe jamais par le navigateur.

Ce que voit celui qui remplit

Il écrit « pl de la comedie » et voit « Place de la Comédie », avec les communes où cette voie existe ; s'il a déjà rempli la ville, les suggestions se resserrent sur elle. La voie choisie, il tape le numéro et le formulaire lui dit s'il existe : le code postal qui arrive est celui qui revient à ce numéro, ce qui compte à Paris, Lyon et Marseille, où il change avec l'arrondissement.

À la sélection, les champs adresse, code postal et commune se remplissent avec la fiche passée par le moteur, la même que celle de la vérification d'adresse. Le fichier naît propre au lieu d'être nettoyé après.

Comment cela se compte

Par session, pas par touche enfoncée. Les demandes de suggestion pendant la frappe sont gratuites ; une seule opération est comptée quand l'utilisateur sélectionne l'adresse et que les champs se remplissent. S'il change ensuite le numéro et resélectionne dans la même session, rien n'est compté de nouveau. Chaque session admet jusqu'à trente demandes et vaut dix minutes. Les tarifs sont sur la page des tarifs.

Comment cela s'intègre

Trois pièces :

  1. Un jeton API, depuis votre espace personnel.
  2. Un petit relais sur votre serveur, une page qui reçoit la demande du navigateur, ajoute le jeton et la transmet à notre point d'accès. Il est nécessaire parce que le jeton ne doit jamais se trouver dans le code qui tourne dans le navigateur.
  3. Le widget ra-suggerisci.js, sans dépendances : vous lui indiquez l'adresse du relais et les sélecteurs des champs du formulaire, et il fait le reste : il gère lui-même l'attente pendant la frappe, le contexte des champs déjà remplis et le remplissage au choix.

Ceux qui préfèrent faire eux-mêmes appellent directement le point d'accès /api/v1/suggest : un identifiant de session généré par le client, le texte tapé, les champs déjà connus comme contexte ; puis l'action de sélection avec la voie choisie et le numéro. Tout est dans la documentation de l'API et dans la spécification OpenAPI.

Cas particuliers

  • Autres pays : les suggestions existent dans chaque pays dont le référentiel des adresses est en service (la liste) ; le formulaire passe le pays choisi par l'utilisateur et le widget cherche là, avec la forme du numéro et du code postal de ce pays. L'utilisateur peut tout écrire dans un seul champ (« Kalverstraat 92 Amsterdam ») : la réponse dit comment elle l'a lu (parsed : voie, numéro, code postal). Dans un pays sans référentiel, la réponse le dit et n'ouvre aucune session : la saisie continue à la main, sans rien compter.
  • WooCommerce et PrestaShop : rien à écrire, il y a le plugin WooCommerce et le module PrestaShop avec l'autocomplétion à la commande et la vérification des commandes.
  • Voie qui n'apparaît pas : l'utilisateur peut toujours écrire l'adresse en entier ; la fiche passera par la vérification plus tard, depuis le fichier ou l'API.
  • Plusieurs formulaires, plusieurs sites : le même jeton sert à tous les formulaires ; le relais peut être sur chaque site ou unique.

Ce qui arrive aux champs

Avant
adresse : 10 pl. de la comédie
ville : montpellier
Après
10 Place de la Comédie
34000 MONTPELLIER

La voie est complétée dans sa forme correcte, la commune choisie parmi celles qui ont cette voie, le code postal mis par le moteur. Dans les villes à arrondissements, c'est avec le numéro qu'arrive le code postal de l'arrondissement.

Les questions qui suivent

Faut-il une bibliothèque ou un framework particulier ?

Non. Le widget est un fichier JavaScript sans dépendances qui s'accroche aux champs existants par leurs sélecteurs. Il fonctionne avec n'importe quel formulaire HTML, dans un CMS comme dans une application maison.

Pourquoi faut-il un relais sur mon serveur ?

Parce que le jeton API est une clé de votre compte : s'il se trouvait dans le code qui tourne dans le navigateur, n'importe qui pourrait le lire et l'utiliser à vos frais. Le relais est une page de quelques lignes qui reçoit la demande, ajoute le jeton et la transmet.

Que compte-t-on si l'utilisateur tape puis ne choisit rien ?

Rien. Les demandes de suggestion sont gratuites : une opération n'est comptée que quand l'utilisateur sélectionne une adresse et que les champs sont remplis.

Cela marche-t-il aussi pour les numéros ?

Oui. La voie choisie, avec le numéro partiel arrivent les numéros existants de cette voie, et le formulaire sait si celui qui est tapé existe. À Paris, Lyon et Marseille, c'est le numéro qui détermine le code postal exact.

Puis-je l'utiliser pour les adresses à l'étranger ?

Oui, dans chaque pays dont le référentiel des adresses est en service : le formulaire passe le pays et les suggestions arrivent de ce référentiel, dans la forme de ce pays. Dans un pays sans référentiel, la réponse le signale sans ouvrir de session, et le formulaire continue avec la saisie manuelle, sans rien compter.

Qu'est-ce qui arrive dans les champs à la sélection ?

L'adresse déjà passée par le moteur de vérification : voie dans sa forme correcte, code postal, commune. C'est la même fiche que vous auriez de la vérification d'une adresse, obtenue au moment où la donnée entre.

J'ai une boutique WooCommerce ou PrestaShop : dois-je intégrer le widget à la main ?

Non : le plugin RadarAddress pour WooCommerce et le module pour PrestaShop mettent l'autocomplétion à la commande et vérifient chaque commande. On les installe, on colle le jeton, ils fonctionnent.

Lire la documentation de l'autocomplétion

Point d'accès, session, widget et relais : tout ce qu'il faut pour le mettre dans votre formulaire.

Lire la documentation de l'autocomplétion

Lire aussi : L'API pour normaliser les adresses · Vérifier les adresses d'un fichier Excel · Le plugin pour WooCommerce · Le module pour PrestaShop