Jump to content

Récupérer des données depuis le formulaire d'inscription


Recommended Posts

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 :P )

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

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

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 professionnel
le 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

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 pro
cas 2 : le client rentre un siret non valide et est directement inscrit dans la section particulier

mode 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

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 :P beaucoup de choses fluctuent énormément :P)

Link to comment
Share on other sites

  • 2 weeks later...

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

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

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

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

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

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

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

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

Si besoin je le désactiverais car d'une utilité toute relative quand à nos besoin.

Link to comment
Share on other sites

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 :P )

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

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

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

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