thelwyn Posted June 21, 2011 Share Posted June 21, 2011 Bonjour,je travaille pour une société de BtoB et l'entreprise voudrait que le client rentre son numéro de siret/siren ou son numéro intracommunautaire. Dans un premier temps, j'ai bien créé mon champs dans la base custumer, et j'arrive à la faire afficher dans la ficher client lorsqu'il est déjà présent. Le problème est que je n'arrive pas a faire un update des valeurs saisies ( j avoue avoir du mal en sql sur le coup )Voila la requette en question : public function addSiretFromCustomer($id_customer, $Siret) { Db::getInstance()->AutoExecute(_DB_PREFIX_.'customer', $Siret, 'UPDATE', $id_customer); } Par contre je ne sais pas du tout où placer ma fonction Customer::addSiretFromCostumer ( certainement dans authentification.php mais je n'ai pas trouvé ou.merci de vos réponses. Link to comment Share on other sites More sharing options...
jeckyl Posted June 21, 2011 Share Posted June 21, 2011 Bonjour,nous proposons un module qui permet cela et en plus de mettre les clients pro dans un groupe spécifique. Link to comment Share on other sites More sharing options...
thelwyn Posted June 21, 2011 Author Share Posted June 21, 2011 Je te remercie pour ta réponse. Pourrais je avoir quelques précisions sur ton module ?Y a-t-il un moyen de valider les clients de manière manuel ? ( impossible de vérifier tout les numéraux intracom d'après mon entreprise ) Un utilisateur sans siret peut il quand même s'enregistrer ? ( autrement dit, avoir accès au site ? )Actuellement j'utilise le module "customerregistration" pour permettre à l'entreprise de validé ou non le compte à la main. Je suppose que les modules ne sont pas complémentaire ( un client avec siret valide est directement enregistré tandis que le client sans siret valide doit attendre que l'entreprise valide son compte ). Plus que de changer de groupe, il faudrait qu'on n'autorise l'enregistrement qu'aux professionnels.Désolé pour ses questions, mais ayant déjà acheté un module devant faire la même chose, je me retrouve obligé de modifier pas mal de chose et j'aimerais être sur du fonctionnement du module avant de ré-ouvrir les cordons de la bourse.PS : auriez vous un site de présentation/test de votre module ?Merci de votre réponse. Link to comment Share on other sites More sharing options...
Monte a bord Victor Posted June 21, 2011 Share Posted June 21, 2011 Bonjour,Je suis le développeur du module, je vais donc répondre à vos questions.Tout d'abord, le module fonctionne sur le SIRET et non sur le TVA intracomm. Vous avez 2 possibilités : le mode manuel vous permet de valider ou de refuser l'entrée du client dans le groupe professionnelle mode automatique, selon le nombre de caractères mais aussi et surtout selon l'algorithme de construction du SIRET, classera automatiquement les professionnels dans le groupe correspondant.Les visiteurs peuvent bien sûr s'inscrire sans aucun SIRET.Le module ne sera certainement pas compatible avec "customerregistration" sans un développement de votre part.Je n'ai malheureusement pas de site de présentation pour ce module mais il est déjà en production sur de nombreux sites.Le module existe aussi en version SIREN mais cette version n'est plus suivie.Attention, si je comprends bien, vous cherchez un module à mettre en place un filtre à l'inscription ET un classement automatique, SIRET - Groupe automatique ne se charge que de votre second besoin. Link to comment Share on other sites More sharing options...
thelwyn Posted June 21, 2011 Author Share Posted June 21, 2011 Merci de la réponse.Donc pour résumé le fonctionnement : mode automatique : cas 1 : le client rentre son siret valide et est directement inscrit dans la section procas 2 : le client rentre un siret non valide et est directement inscrit dans la section particuliermode manuel : le client rentre un siret. Il ne sera mis dans la section pro qu'une fois qu'on aura validé son compte, mais en attendant, il est en groupe particulier.Pour le classement automatique, il n'a pas réelement lieu d'être car nous n'acceptons que les clients professionnels. seulement on a des clients étrangers ( américains, brésiliens ... ), ils n'ont pas de numéraux de siret géré par l'algo de societe.com. Donc pour résumer notre demande, on a besoin d'un module qui permet l'ajout du champs siret/siren/TVa intracom lors de la saisie du compte. Une fois le compte créé, la personne doit attendre que son compte soit validé pour pouvoir se connecter sur notre site. Cette validation doit pouvoir être faite manuellement ( obligatoire ) ou automatiquement ( gain de temps )Si je me trompe pas, le problème reste que, ayant j'ai masqué les prix pour les non enregistré seulement ( {if $logged} prix {/if} ), quelque soit la personne qui s'inscrit sur notre site, il sera automatiquement enregistré et aura donc accès au prix et au commande. Link to comment Share on other sites More sharing options...
Monte a bord Victor Posted June 21, 2011 Share Posted June 21, 2011 Concernant mon module, c'est exactement ça et effectivement il n'est pas du tout adapté à l'international.Je pense donc qu'il ne répond pas à votre besoin.J'espère que vous trouverez.Bon courage et bonne journée Link to comment Share on other sites More sharing options...
thelwyn Posted June 21, 2011 Author Share Posted June 21, 2011 Merci pour vos réponses et votre soutient.J'en reviens donc a ma question de base :A quel moment s'effectue la mise à jour ( update ? ) de la base de données dans le fichier authentification.php. J'ai fait une fonction qui est sensé mettre à jour via une requête sql mais je n'arrive pas à trouver où la placer pour pouvoir la tester. Si quelqu'un peut me donner une piste ?J'ai créé le champs dans la table 'customer' et j'arrive à la récupérer correctement pour l'afficher dans le BO ( pour les valeurs rentré directement via la DB ).Je ne sais plus trop quoi faire pour réglé se problème ( c'est pénible l’international beaucoup de choses fluctuent énormément ) Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 uppersonne ne sait comment faire pour ajouter un champs en plus dans le formulaire d'inscription ? Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Bonjour,J'ai répondu à un topic similaire ici :http://www.prestashop.com/forums/viewthread/114193/#473222 Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 Merci de ta réponse.en fait j'ai le problème inverse ... lorsque je rentre manuellement mes informations dans la DB j'y accède sans problème dans le backoffice ( sur la fiche client ) mais je n'arrive pas à mettre la valeure contenu dans mon champs dans la DB. AdminCustomers.php authentication.php Customer.php Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Tu as juste à suivre ce que j'ai écrit dans le topic précédent et cela fonctionnera.Je vois que dans la class Customer, tu n'as pas ajouté de champs Siret.Ps: Pour ce qui est de ton autoExecute, si il ne fonctionne c'est normal, tu dois faire ceci : public function addSiretFromCustomer($id_customer, $Siret) { Db::getInstance()->AutoExecute(_DB_PREFIX_.'customer', array('siret' => pSQL($Siret)), 'UPDATE', $id_customer); } Ceci dit, encore une fois, ce n'est pas la bonne solution. Le mieux est d'ajouter la variable dans la classe aux différents endroits précisés dans mon autre post. Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 J'ai rien dit je viens de voir le champs siret.Je regarde. Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Rajoute dans la fonction getFields cette ligne là $fields['siret'] = pSQL($this->siret); Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 J'ai un message d'erreur comme quoi il y a eu un problème lors de l'ajout du client.J'ai essayé de voir pourquoi. Pour qu'un module complémentaire marche, j'ai du appelé le champ siret_siren. Les noms doivent ils correspondent exactement ? Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Le nom de la variable dans la classe, dans la fonction getFields, en base de données et dans le input type="text" de ton tpl doivent être les mêmes. Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 Le problèmes est toujours présent après vérification. J'ai du oublier de le modifier quelque part mais je ne vois pas trop ou. ( je suis désolé de te faire perdre du temps à cause de mon niveau proche du néant )D'où le problème peut il venir ?Edit : J'ai rien dit je m'était gouré dans le sens des noms ... plus de problème à l'inscription par contre le siret ne s'enregistre pas :c Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Tu as vérifié dans ton phpMyAdmin si il ne s'enregistre pas et si c'est juste un soucis d'affichage ?Peux tu reposter les trois fichiers ? Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 je suis aller voir oui. A l'affichage j'ai un petit problème mais bon rien de bien génant sauf pour la TVA ic donc pas non plus le plus courant ( si un caractère autre qu'un chiffre il arrète la lecture, je dois pas utiliser la bonne méthode ) Customer.php AdminCustomers.php Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 On est d'accord que tu n'appelles plus la fonction addSiretFromCustomer ?Parce qu'en plus de ne servir à rien, tu as dans les paramètres $Siret et dans la requete Db $Siret_siren, ce qui ne peux pas marcher. public function addSiretFromCustomer($id_customer, $Siret) { Db::getInstance()->AutoExecute(_DB_PREFIX_.'customer', array('siren_siret' => pSQL($Siret_siren)), 'UPDATE', $id_customer); } De plus as tu bien nommé la variable dans ton post dans ton template smarty ? Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 N'arrivant pas a lui faire prendre le fichier tpl ( quand on a 2 mains gauches ca aides pas ... ) je te donne le code que j'ai modifié ajouté ( ligne 91 ) {l s='Password'} <input type="password" class="text" name="passwd" id="passwd" /> * {l s='(5 characters min.)'} {l s='TVA ic'} <input class="text" name="siren_siret" id="siren_siret" /> {l s='Mandatory for tax exemption in EEC.'} {l s='Please contact us if you let it empty for you can validate your account'} Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Ok pour le tpl, ça a l'air bon.Par contre utilises tu toujours la méthode addSiretFromCustomer ? Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 Non, je ne m'en sers plus, je l'ai mise en commentaire $address->id_customer = intval($customer->id); if (!$address->add()) $errors[] = Tools::displayError('an error occurred while creating your address'); else { echo $customer->siret.' '; echo $customer->id.' '; //Customer::addSiretFromCustumer($customer->id ,$customer->siret); if (!Mail::Send(intval($cookie->id_lang), 'account', 'Welcome!', array('{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{email}' => $customer->email, '{passwd}' => Tools::getValue('passwd')), $customer->email, $customer->firstname.' '.$customer->lastname)) $errors[] = Tools::displayError('cannot send email'); $smarty->assign('confirmation', 1); $cookie->id_customer = intval($customer->id); $cookie->customer_lastname = $customer->lastname; $cookie->customer_firstname = $customer->firstname; $cookie->passwd = $customer->passwd; $cookie->logged = 1; $cookie->email = $customer->email; Module::hookExec('createAccount', array( '_POST' => $_POST, 'newCustomer' => $customer )); if ($back) Tools::redirect($back); Tools::redirect('my-account.php'); } } Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Normalement cela doit marcher, il n'y a pas de raisons, ça marche très bien chez moi.As tu modifié d'autres parties du code ? Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 Par moi même, je ne pense pas.Par contre j'utilise un module pour bloquer la validation automatique des comptes ( Gestion d'inscription client v2.0 )Ainsi que Siren_Siret pour la modification du client au cas ou une fois enregistré. Est-ce que ca peut venir d'un problèmes de compatibilité ? Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Par moi même, je ne pense pas.Ainsi que Siren_Siret pour la modification du client au cas ou une fois enregistré. C'est à dire ? Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 Je ne pense pas avoir fait d'autres modifications mais comme ca fait un moment, il est possible que j'ai touché a quelque chose sans m'en rappeler ou comme mes connaissances en programmations sont minces, que j'ai modifié quelque chose et que des effets de bords ont eu lieu.Pour le module c'est celui ci : http://addons.prestashop.com/fr/fonctionnalites-front-office/2541-siret---siren.htmlSi besoin je le désactiverais car d'une utilité toute relative quand à nos besoin. Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 Je viens de désactiver le module siren_siret et le problème demeure. Le compte se créé mais le champs reste vide sur le siren_siret :c Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Mais en fait je viens de regarder le module siren siret crée déjà un champs accessible dans mon compte.Du coups je suis pas sur de comprendre ce que tu veux faire :X Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 Le problème est que ce module créé un champs après la validation et pemet juste de changer de groupe les utilisateurs.Hors l'entreprise veut que tout les clients inscrits soient des pros ou valider pour leur soin car leurs clients sont très pointilleux. Si des usagers lambda avait accès à nos prix, cela pourrait mettre nos clients en défauts. Ainsi j'ai utilisé {if $logged} devant tout les affichages de prix. Cependant avec le module siren_siret, le problème d'affichage reste entier car tout le monde peut avoir accès aux prix juste en créant un compte car aucune sécurité a ce niveau. Ainsi l'ajout du champs siren siret permes de faire un tri à l'inscription de nos clients afin que seul ceux devant avoir accès ai leur compte. Le développeur du module m'avait donner a ce moment une extention qui bloquait tout les clients n'ayant pas un numéraux de siren_siret valide sur la page mon compte. Mais cela marchait aussi avec les clients non enregistrés. Hors l'entreprise veut que tout le monde puisse voir ses produits. ( un peu pénible je sais )Pour résumé : tout les produits sont disponibles au visionnage mais sans les prix pour les guest.Une fois enregistrer, on affiche les prix et le système d'ajout au panier.Ce que je dois faire.Ajouter un champs au formulaire d'inscription siren_siret visible sur la fiche du client afin que si l'entreprise le juge bon, on puisse valider leur compte et donc ainsi leur donner accès au processus de commande. Link to comment Share on other sites More sharing options...
Fabien Serny Posted June 30, 2011 Share Posted June 30, 2011 Le problème de ce principe c'est que potentiellement n'importe qui peut se rendre sur le site societe.com (ou sur un site officiel) et trouver un siret officiel qu'il pourra ensuite pour s'inscrire.Le mieux dans ce cas là reste de bloquer la connexion du client tant que son compte a été validé (enfin c'est mon avis) Link to comment Share on other sites More sharing options...
thelwyn Posted June 30, 2011 Author Share Posted June 30, 2011 c'est en effet ce que l'on fait. On bloque le compte grâce à Gestion d’inscription client v2.0. Ce module ajoute un bouton de validation de compte sur la fiche du client. Donc, j'affiche le numéro de siren sur la fiche du client. Et si l'entreprise juge la personne fiable ( après analyse du siren_siret, contact téléphonique, echange mail ... ) elle valide le compte. 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