klb35 Posted January 5, 2016 Share Posted January 5, 2016 (edited) 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 January 5, 2016 by klb35 (see edit history) Link to comment Share on other sites More sharing options...
klb35 Posted January 6, 2016 Author Share Posted January 6, 2016 Personne n'a été confronté à ce problème ? Link to comment Share on other sites More sharing options...
fourquet Posted January 6, 2016 Share Posted January 6, 2016 Bonjour, TU peux trouver la correspondance des codes insee et codes postaux ici http://public.opendatasoft.com/explore/dataset/correspondance-code-insee-code-postal/ Et développer une petite fonction dans PS qui te retourne le code insee à la place du code postal Bonne chance Guillaume Link to comment Share on other sites More sharing options...
klb35 Posted January 6, 2016 Author Share Posted January 6, 2016 (edited) 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 January 6, 2016 by klb35 (see edit history) Link to comment Share on other sites More sharing options...
Broceliande Posted January 6, 2016 Share Posted January 6, 2016 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. Link to comment Share on other sites More sharing options...
klb35 Posted January 7, 2016 Author Share Posted January 7, 2016 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é. Link to comment Share on other sites More sharing options...
Broceliande Posted January 7, 2016 Share Posted January 7, 2016 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 ... Link to comment Share on other sites More sharing options...
klb35 Posted January 12, 2016 Author Share Posted January 12, 2016 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 ? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now