Jump to content
klb35

Store Locator Et Code Postal

Recommended Posts

Bonjour à tous,

 

D'avance désolé si mon post est dans une mauvaise section.

 

Voilà le problème que je rencontre (prestashop 1.5.3) --> Le store locator ne semble pas effectuer une recherche sur le code postal correctement.

 

Je m'explique. J'ai tout d'abord modifié le fichier stores.js pour effectuer une recherche sur la France (et ainsi éviter les éventuels conflits liés à d'autres pays).

var address = document.getElementById('addressInput').value + ",France";

Tout fonctionne correctement lors d'une recherche par le nom de la ville. Par contre lors d'une recherche par code postal les résultats retournés sont faux. En creusant je me suis rendu compte que Google Maps traitait ce code comme un code commune (aussi appelé code INSEE). Or code postal et code commune ne renvoient pas à une même ville, d'où un problème dans les résultats de recherche.

 

Malheureusement personne ne fera de recherche par code commune.

 

Du coup je me demandais s'il existait une façon de contourner le problème (autre qu'une table de correspondance qui me semble assez "lourde"). Existe-t-il une autre version de l'API Google Maps utilisant  les codes postaux ?

 

Merci d'avance pour vos réponses.

Edited by klb35 (see edit history)

Share this post


Link to post
Share on other sites

Merci pour ta réponse fourquet.

 

Je me serai bien passé de ce développement mais je crois que je ne vais pas avoir le choix.

 

En tout cas merci pour le lien ça va clairement me servir.

 

Si quelqu'un a une autre solution je suis preneur.

Edited by klb35 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour à tous,

 

D'avance désolé si mon post est dans une mauvaise section.

 

Voilà le problème que je rencontre (prestashop 1.5.3) --> Le store locator ne semble pas effectuer une recherche sur le code postal correctement.

 

Je m'explique. J'ai tout d'abord modifié le fichier stores.js pour effectuer une recherche sur la France (et ainsi éviter les éventuels conflits liés à d'autres pays).

var address = document.getElementById('addressInput').value + ",France";

Tout fonctionne correctement lors d'une recherche par le nom de la ville. Par contre lors d'une recherche par code postal les résultats retournés sont faux. En creusant je me suis rendu compte que Google Maps traitait ce code comme un code commune (aussi appelé code INSEE). Or code postal et code commune ne renvoient pas à une même ville, d'où un problème dans les résultats de recherche.

 

Malheureusement personne ne fera de recherche par code commune.

 

Du coup je me demandais s'il existait une façon de contourner le problème (autre qu'une table de correspondance qui me semble assez "lourde"). Existe-t-il une autre version de l'API Google Maps utilisant  les codes postaux ?

 

Merci d'avance pour vos réponses.

 

Salut,

A défaut de la ville , le code postal est insuffisant pour l'appli map appelée par le store locator.

Plus facile que de passer par le code INSEE , fais toi juste une correspondance département  nom_département ,

genre : 29 Finistère

De manière générale , il est préférable d'avoir des données prédéfinies pour obtenir un résultat à tout les coups que d'utiliser une simple adresse dans un input ou chaqun va entre son adresse à sa manière.... 

Plus tu utilises de champs et plus la tâche est aisée , tu n'as dans ce cas absolument plus besoin de l'adresse (enfin tout dépend de ce qu'on veut exactement car il faut également ajuster le zoom de la map ... mais bon)

En séparant code postal,  ville, rue et pays par exemple , il t'est plus facile de concaténer l'adresse à envoyer au locator.

 

Chose plutôt a ton avantage , tu sembles limiter les recherches à la france...

 

Je peux t'en dire un peu plus au besoin mais essaye par exemple juste une fois d'envoyer ça :

var address = 29 Finistère , France" ;

Note au passage que de mémoire il me semble que le locator aime bien que les champs soient toujours suivis d'un espace.... donc un +" " en js derrière un champ ne mange pas de pain.

 

Tiens nous au jus de tes avancées et résultats, je dis tout ça un peu de mémoire, mais c'est déja assez loin.  

Share this post


Link to post
Share on other sites

Salut Brocéliande,

 

Merci de ta réponse. J'ai oublié de préciser que je ne peux utiliser qu'un champ. Ton idée d'utiliser plusieurs champs est intéressante mais dans mon cas elle n'est pas réalisable.

 

Je vais rester sur la correspondance INSEE/CP mais j'en profiterai pour effectuer la correspondance numéro de dépt et nom de département car on m'a déjà remonté ce souci.

 

Il ne me reste plus qu'à trouver du temps pour mettre ça en oeuvre.

 

Par ailleurs lorsque j'envoie "29 Finistère , France" la map me place à Rennes, 29 rue du Finistère. Par contre pas de soucis pour "Finistère , France" qui est bien positionné.

Share this post


Link to post
Share on other sites

Salut Brocéliande,

 

Merci de ta réponse. J'ai oublié de préciser que je ne peux utiliser qu'un champ. Ton idée d'utiliser plusieurs champs est intéressante mais dans mon cas elle n'est pas réalisable.

 

Je vais rester sur la correspondance INSEE/CP mais j'en profiterai pour effectuer la correspondance numéro de dépt et nom de département car on m'a déjà remonté ce souci.

 

Il ne me reste plus qu'à trouver du temps pour mettre ça en oeuvre.

 

Par ailleurs lorsque j'envoie "29 Finistère , France" la map me place à Rennes, 29 rue du Finistère. Par contre pas de soucis pour "Finistère , France" qui est bien positionné.

 

Ah exact pour 29 , j'ai pu retrouver un code que j'avais fais sur une 1.4 , j'ajoutait 000 si je n'avais pas un code postal intégral.

 

Mais si tu ne peux pas ajouteur un simple sélecteur de région , effectivement tu vas devoir te coltiner la correspondance insee, sachant que charger l'ensemble des codes  en js va être un peu lourd, à moins que tu ne te fasses un p'tit controller ajax pour ça ...

Share this post


Link to post
Share on other sites

Bon... Ça s'avère plus compliqué que je ne l'imaginais, probablement parce que je n'ai jamais fait d'AJAX. Du coup ça va me prendre nettement plus de temps que ce que je pensais (c'est l'occasion d'apprendre l'AJAX).

 

Si j'ai bien capté ce que je dois faire, il faut que j'appelle le StoresController overridé (après y avoir créé une fonction appelant la table contenant les correspondances INSEE/CP) via AJAX en lui envoyant ce que l'utilisateur a saisi (selon le format pour ne pas effectuer la fonction si ce n'est pas nécessaire).

 

Suis-je sur la bonne piste ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More