syto Posted March 20, 2013 Share Posted March 20, 2013 Hello, Je me permets de vous écrire ce petit post car après plusieurs heures de recherche je craque ! Voici mon problème : J'ai installé le module SoColissimo (V2.3) dans mon Prestashop (V1.4.8.2). Tout se passe bien SAUF que lorsque l'internaute choisi un 'BPR' (Livraison en Bureau de Poste) ou un A2P (Livraison Commerce de proximité) les informations de livraison ne sont pas rentrées correctement en BDD. Je me retrouve avec : delivery_mode : BPR prname : BUREAU DE POSTE TOURS CHATEAUBRIAND BP prfirstname : So Colissimo prcompladress : BUREAU DE POSTE TOURS CHATEAUBRIAND BP pradress1 : 34 AVENUE DE L EUROPE Résultat : Le colis part avec ces informations, et il arrive au bureau de poste sans le nom du client, donc impossible de retirer le colis. J'aimerai simplement que les informations soient bien "enregistrées" comme c'est le cas lorsque je choisi une livraison a DOMicile. Comment avoir cela ?? : delivery_mode : BPR prname : DURANT prfirstname : Chloe prcompladress : BUREAU DE POSTE CAGNES SUR MER RENOIR pradress1 : 5 AVENUE DE L HOTEL DES POSTES En espérant avoir été assez clair. Merci d'avance Link to comment Share on other sites More sharing options...
Vinum Posted March 21, 2013 Share Posted March 21, 2013 C'est un problème du module socolissimo gratuit de prestashop qui ne récupère pas le nom et prénom du destinataire.Je ne sais pas si cela est prévu dans les dernières versions. Link to comment Share on other sites More sharing options...
syto Posted March 21, 2013 Author Share Posted March 21, 2013 Merci pour ta réponse, mais je pense que le module Socolissimo gratuit doit le faire car les infos s'enregistrent bien lorsque je choisis DOMICILE (dans l'iframe Socolissimo). Et je me rends compte qu'il le fait bien parfois mm en sélectionnant A2P ... Link to comment Share on other sites More sharing options...
Vinum Posted March 21, 2013 Share Posted March 21, 2013 Si tu choisis domicile oui, mais pour les livraisons en bureau de poste ou point relais non. Il faudrait pour recuperer les infos des colonnes cename et cefirstname qui n'existent pas dans le module gratuit socolissimo. Socolissimo retournent bien ces infos mais le module gratuit de prestashop ne les prends pas en compte. Link to comment Share on other sites More sharing options...
ramaf Posted April 11, 2013 Share Posted April 11, 2013 Bonjour, J'ai rencontré aussi ce problème. Les quelques tests que j'ai fait montrent que le problème arrive quand l'internaute se prend à deux fois pour choisir son magasin ou bureau de poste : - la première fois, après validation, tout est correct - si par la suite, il revient sur le mode de livraison avant de valider sa commande, et sélectionne de nouveau le même lieu de livraison (ou un autre) --> le bug apparait. ramaf Link to comment Share on other sites More sharing options...
Vinum Posted May 18, 2013 Share Posted May 18, 2013 Bonjour, Non ce n'est pas un problème de bug. C'est simplement que le module socolissimo gratuit ne récupère pas les infos nom et prénom du destinataire (pourtant renvoyé par la poste). Il ne les intègre pas dans sa table de la base de données car ce n'est pas prévu par ce module. Pourquoi ? Mystère .... Il faut donc le modifier en créant des colonnes cename et cefirstname dans la table socolissimo de ce module et en récupérant les infos nom et prénom renvoyé par la poste. Link to comment Share on other sites More sharing options...
yonni Posted May 30, 2013 Share Posted May 30, 2013 (edited) Salut syto ! Vinum a raison, le module gratuit so colissimo 2.3 ne sauvegarde pas les infos nom et prénom de livraison ! Mais ces données sont bien retournées par la poste, il suffit donc de les sauver en base puis des les récupérer. MP moi si tu veux plus de détails ! yonni Edited May 30, 2013 by yonni (see edit history) Link to comment Share on other sites More sharing options...
karibouweb Posted May 30, 2013 Share Posted May 30, 2013 Quelqu'un a t'il fait l'intégration des adresses ? Car sa m'intéresse ! Link to comment Share on other sites More sharing options...
Vinum Posted May 31, 2013 Share Posted May 31, 2013 Bonjour, Yonni, si tu as modifié le module socolissimo pour qu'il récupère les infos nom et prénom de l'adresse du destinataire, il serait sympa d'en faire profiter tout le monde. Link to comment Share on other sites More sharing options...
yonni Posted May 31, 2013 Share Posted May 31, 2013 @Vinum> Oui j'ai adapté le module so colissimo afin de récupérer les données qui nous intéressent Je ne proposais pas ma solution de peur de parasiter un peu ta prestation ... Mais si tu me donnes ton aval c'est différent ! Je donnerai mon code ici-même dans la journée ! Link to comment Share on other sites More sharing options...
yonni Posted May 31, 2013 Share Posted May 31, 2013 Comme promis, voici comment ajouter les informations Nom et Prénom du destinataire, dans le module gratuit So Colissimo v. 2.3 3 étapes : Etape 1 : ajouter 2 champs dans la table ps_socolissimo_delivery_info Etape 2 : modification du fichier modules/socolissimo/validation.php Etape 3 : utilisation des données dans presta2expinet ------- Etape 1 : ajouter 2 champs dans la table ps_socolissimo_delivery_info Il faut ajouter 2 champs dans la table ps_socolissimo_delivery_info Ajoutez les 2 champs en fin de table Le premier champ cename : VARCHAR(64), il peut être NULL Le second champ cefirstname : VARCHAR(64), il peut être NULL Etape 2 : modification du fichier modules/socolissimo/validation.php 2-1) On va ajouter le nom des 2 champs à ajouter dans la requête d'insertion Remplacer la ligne 113 : `cecompanyname`, `cedeliveryinformation`, `cedoorcode1`, `cedoorcode2`) par : `cecompanyname`, `cedeliveryinformation`, `cedoorcode1`, `cedoorcode2`, `cename`, `cefirstname`) 2-2) On va ajouter les données des 2 champs dans le cas d'une livraison en point relais Remplacer la ligne 133 '.(isset($soParams['CEDOORCODE2']) ? '\''.pSQL($soParams['CEDOORCODE2']).'\'' : '\'\'').')'; par '.(isset($soParams['CEDOORCODE2']) ? '\''.pSQL($soParams['CEDOORCODE2']).'\'' : '\'\'').', '.(isset($soParams['CENAME']) ? '\''.ucfirst(pSQL($soParams['CENAME'])).'\'' : '\'\'').', '.(isset($soParams['CEFIRSTNAME']) ? '\''.ucfirst(pSQL($soParams['CEFIRSTNAME'])).'\'' : '\'\'').')'; 2-3) On va placer des valeurs NULL dans les 2 champs dans le cas d'une livraison hors point relais Remplacer la ligne 152 : '.(isset($soParams['CEDOORCODE2']) ? '\''.pSQL($soParams['CEDOORCODE2']).'\'' : '\'\'').')'; par : '.(isset($soParams['CEDOORCODE2']) ? '\''.pSQL($soParams['CEDOORCODE2']).'\'' : '\'\'').', NULL, NULL)'; 2-4) Dans le cadre d'une requête de mise à jour (update) et livraison en point relais, on met à jour les 2 champs Remplacer la ligne 181 : isset($soParams['CECOMPANYNAME']) ? $values['cecompanyname'] = pSQL($soParams['CECOMPANYNAME']) : ''; par : isset($soParams['CECOMPANYNAME']) ? $values['cecompanyname'] = pSQL($soParams['CECOMPANYNAME']) : ''; isset($soParams['CENAME']) ? $values['cename'] = pSQL($soParams['CENAME']) : ''; isset($soParams['CEFIRSTNAME']) ? $values['cefirstname'] = pSQL($soParams['CEFIRSTNAME']) : ''; Etape 3 : utilisation des données dans presta2expinet Je ne me sers que de l'export manuel, j'ai donc modifié seulement le fichier oneOrderExport.php Ligne 148, pour une livraison en so colissimo simple, supprimez les lignes entre case 'CDI' : et addToFeed('"'.utf8_decode($addressDelivery->address1).'";'); Ajoutez : addToFeed('"'.str_replace('"','""',utf8_decode($socolissimoOrderInfos['prname'])).'";'); addToFeed('"'.str_replace('"','""',utf8_decode($socolissimoOrderInfos['cefirstname'])).'";'); addToFeed('"'.str_replace('"','""',utf8_decode($socolissimoOrderInfos['cename'])).'";'); Et voilà, j'espère ne rien avoir oublié ! En PJ, le fichier validation.php du module socolissimo yonni validation.php Link to comment Share on other sites More sharing options...
Vinum Posted May 31, 2013 Share Posted May 31, 2013 Bonjour, Pour les modifications du module socolissimo gratuit c'est ok mais tu n'as pas besoin de modifier le module presta2expinet qui accepte déja les modification. Les lignes que tu supprimes récupères déja ces infos si elles existent. Link to comment Share on other sites More sharing options...
yonni Posted May 31, 2013 Share Posted May 31, 2013 Ah oui c'est exact. Sauf le premier champ, moi je récupère prname et ton module cecompanyname, je place ainsi le nom du point relais dans le champ Raison sociale de Expinet Link to comment Share on other sites More sharing options...
Vinum Posted May 31, 2013 Share Posted May 31, 2013 cela ne sert à rien le nom du point relais est automatiquement indiqué sur l'étiquette graçe à l'ID du point relais. Link to comment Share on other sites More sharing options...
yonni Posted May 31, 2013 Share Posted May 31, 2013 Ah oui c'est exact, merci Vinum 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