Cas d'usage

Créer un localisateur de magasins classé par distance

La plupart des localisateurs de magasins sont des listes déguisées en cartes. Le client choisit une région, puis une ville, puis fait défiler une liste alphabétique qui n'a rien à voir avec le magasin réellement le plus proche. Une chaîne d'articles pour la maison comptant plusieurs dizaines de magasins a jugé que c'était le monde à l'envers et a reconstruit l'outil autour de la distance.

La refonte a commencé par la saisie. Au lieu de demander au client de choisir dans des listes déroulantes, le nouveau localisateur lui permettait de commencer à taper une adresse ou un quartier et lui proposait des suggestions au fil de la saisie, grâce à /v1/autocomplete. Cet endpoint prend une adresse partielle et renvoie des correspondances candidates adaptées exactement à ce type de champ de recherche instantanée, si bien qu'un client qui tape « Oak » obtient une courte liste de vrais noms de rues et de lieux parmi lesquels choisir, au lieu de taper une adresse complète en espérant qu'elle corresponde à quelque chose dans la base de données du magasin.

Une fois que le client avait choisi une suggestion ou autorisé la page à utiliser sa position approximative, la chaîne avait besoin d'une dernière chose : un point de départ en coordonnées. Pour les clients qui avaient tapé une adresse, il provenait du géocodage de la suggestion choisie via /v1/forward, qui renvoie une correspondance de lieu avec des champs latitude et longitude pour une adresse donnée. Pour les clients qui n'avaient rien tapé du tout, le site se rabattait sur /v1/ip, qui lit l'adresse IP du visiteur et renvoie des coordonnées ainsi que la ville et la région, fournissant au localisateur un point de départ raisonnable sans rien demander.

La liste des magasins elle-même a été géocodée une seule fois, en un seul lot, puisqu'une requête groupée compte chaque adresse de magasin comme un élément facturé. Avec les coordonnées de chaque magasin enregistrées, le classement est devenu un simple calcul : calculer la distance entre le point du client et chaque magasin, trier, afficher les cinq plus proches. Plus de listes déroulantes, plus de défilement alphabétique, plus besoin de deviner sous quelle ville voisine un magasin pouvait être répertorié.

La chaîne a veillé à ce que l'outil reste honnête sur ce qu'il pouvait promettre. Comme le géocodage direct renvoie une correspondance pour ce qui a été saisi, et non la garantie que l'adresse existe exactement telle qu'elle a été tapée, le localisateur associait toujours la liste classée à une étape de confirmation permettant au client d'ajuster son point de départ si le lieu suggéré n'était pas tout à fait le bon. Cette petite vérification comptait plus que n'importe quelle partie de la logique de classement, car un mauvais point de départ rend inutile même un calcul de distance parfait.

Le trafic du localisateur était modeste, quelques milliers de recherches par mois en cumulant la saisie semi-automatique et le géocodage, ce qui restait largement dans le quota quotidien gratuit fourni avec une clé My Geocode. La chaîne n'a jamais eu à se préoccuper du modèle tarifaire au quotidien, car le trafic ordinaire d'un localisateur de magasins approche rarement du seuil où le crédit prépayé ou une clé Unlimited devient la meilleure option, mais savoir que cette marge existait à 0,0001 € la requête signifiait qu'une campagne marketing ou l'annonce de l'ouverture d'un magasin ne casserait rien.

Un localisateur de magasins est une petite fonctionnalité, mais c'est souvent la dernière étape avant qu'un client ne décide de se déplacer, et un bon classement change le magasin qui reçoit la visite. Les détails des deux endpoints, y compris la structure des champs et les limites de débit, se trouvent sur /docs/address-autocomplete/, /docs/forward-geocoding/ et /docs/rate-limits/.