xaxa Posted August 6, 2015 Share Posted August 6, 2015 Bonjour, j'aimerais que le client puisse choisir son groupe lors de son inscription : particulier, professionnel, etc. Quelqu'un peut-il me renseigner pour la version 1.6? Merci Link to comment Share on other sites More sharing options...
herve25 Posted August 6, 2015 Share Posted August 6, 2015 Bonjour, J'avais fait un article sur ce sujet il y pas trop longtemps. Si ça peut vous aider : http://www.h-hennes.fr/blog/2015/06/29/prestashop-ajouter-des-champs-a-linscription/ Cordialement, Link to comment Share on other sites More sharing options...
xaxa Posted August 6, 2015 Author Share Posted August 6, 2015 Bonjour, merci pour votre réponse j'ai essayer d'installer le module, lorsque je valide, je tombe sur une page blanche : http://www.monsite.com/authentification Le client est bien créé mais le groupe sélectionné n'est pas pris en compte. Merci à vous. Link to comment Share on other sites More sharing options...
herve25 Posted August 6, 2015 Share Posted August 6, 2015 Je viens de voir qu'il y'avais une erreur dans mon article... désolé Il a été mis à jour.La fonction suivante a été changée /** * Traitement des nouveaux champs du formulaire d'inscription */ public function hookActionCustomerAccountAdd($params) { //On récupère notre variable groupe $id_customer_group = Tools::getValue('customer_group',''); //Si elle n'est pas vide on ajoute le client au groupe if ( $id_customer_group != '') $params['newCustomer']->addGroups(array($id_customer_group)); } Link to comment Share on other sites More sharing options...
xaxa Posted August 6, 2015 Author Share Posted August 6, 2015 Oui cela fonctionne à présent. Pour ma part, je garde les 3 groupes de départ, donc j'ai mis en commentaire : //unset($groups[0]);//unset($groups[1]);//unset($groups[2]); Le problème est que le client créé a 2 groupes : surement celui par défaut et le groupe sélectionnée. Est-ce qu'il y a une ligne de code pour supprimé le groupe par défaut? Merci Link to comment Share on other sites More sharing options...
herve25 Posted August 6, 2015 Share Posted August 6, 2015 Est-ce que vous voulez supprimer l'affichage du groupe par défaut, ou l'assignation du client à ce groupe ? Link to comment Share on other sites More sharing options...
xaxa Posted August 6, 2015 Author Share Posted August 6, 2015 L'assignation, que le client ne soit relié qu'au groupe sélectionné. Merci. Link to comment Share on other sites More sharing options...
xaxa Posted August 6, 2015 Author Share Posted August 6, 2015 En fait le groupe sélectionné lors de l'inscription doit devenir le groupe par défaut et le groupe par défaut de Prestashop ne doit pas être pris en compte. Je ne sais pas si c'est clair Link to comment Share on other sites More sharing options...
herve25 Posted August 6, 2015 Share Posted August 6, 2015 Dans ce cas il suffit de supprimer les groupes précédents du client avant d'assigner le nouveau groupe. /** * Traitement des nouveaux champs du formulaire d'inscription */ public function hookActionCustomerAccountAdd($params) { //On récupère notre variable groupe $id_customer_group = Tools::getValue('customer_group',''); //Si elle n'est pas vide on ajoute le client au groupe if ( $id_customer_group != '') { //Suppression des groupes actuels du client $params['newCustomer']->cleanGroups(); //Ajout uniquement du nouveau groupe $params['newCustomer']->addGroups(array($id_customer_group)); } } Link to comment Share on other sites More sharing options...
xaxa Posted August 6, 2015 Author Share Posted August 6, 2015 (edited) ok super!!!! J'avais fait une version un peu plus trash en cherchant : /** * Traitement des nouveaux champs du formulaire d'inscription */ public function hookActionCustomerAccountAdd($params) { //On récupère notre variable groupe $id_customer_group = Tools::getValue('customer_group',''); $id_shop = $params['newCustomer']->id_shop; $id_client = $params['newCustomer']->id; Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'customer_group WHERE id_customer='.(int)$id_client); //Si elle n'est pas vide on ajoute le client au groupe if ( $id_customer_group == '') $id_customer_group=1; $params['newCustomer']->addGroups(array($id_customer_group)); Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'customer SET id_shop_group='.(int)$id_customer_group.', id_default_group='.(int)$id_customer_group.' WHERE id_customer='.(int)$id_client); } Merci beaucoup pour votre aide! Bonne continuation Edited August 6, 2015 by xaxa (see edit history) Link to comment Share on other sites More sharing options...
xaxa Posted August 6, 2015 Author Share Posted August 6, 2015 Ah oui pour optimiser, il faudrait que le client puisse modifier son groupe dans ses informations personnelles. Link to comment Share on other sites More sharing options...
herve25 Posted August 6, 2015 Share Posted August 6, 2015 Pour cela le plus propre serait de faire un controller front Office pour votre module avec un formulaire qui permets de changer cela.Le fonctionnement global reste ensuite le même. Link to comment Share on other sites More sharing options...
xaxa Posted August 6, 2015 Author Share Posted August 6, 2015 Entendu, un grand merci pour votre aide 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