Jump to content

So Colissimo - Problème infos Adresse/Nom/Prénom


syto

Recommended Posts

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

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

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

  • 3 weeks later...

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

  • 1 month later...

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

  • 2 weeks later...

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 by yonni (see edit history)
Link to comment
Share on other sites

@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

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

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

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...