Jump to content

Rendre un champs obligatoire a l'inscription


Recommended Posts

Bonjour, 

Je souhaite rendre les champs Société (company) et Numéro d'identification Fiscale (siret) obligatoire lors de l'inscription sur mon site, avec le mode B2B activé. 

Dans le fichier : classes/Customer.php

J'ai modifié la ligne relative à la société 

'company' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 255),

En FO, lorsque je suis sur le formulaire d'inscription, j'ai toujours le label 'Optionnel' à coté du champs de la société. Lorsque je valide l'inscription sans renseigner ce champ, j'ai une internal error 500. Le mode debug me donne l'information qu'une exception est levée dans le fichier classes/ObjectModel.php (voir piece jointe) 

Questions : 

1. Comment rendre un champ obligatoire  dans le formulaire d'inscription ? 

2. Comment enlever le label 'Optionel' si le champs est obligatoire ? 

 

Toute aide est bienvenue

En vous remerciant

_______________

Version PS : 1.7.3.1

Thème actif : Organic

Capture d’écran 2018-05-15 à 12.05.15.png

Edited by Jean-Baptiste
wording (see edit history)
Link to comment
Share on other sites

Merci pour la réponse @doekia

De ce que je comprends, les champs requis pour les adresses ne concernent pas les champs pour la création du compte mais les champs une renseigner une adresse une fois le compte créé. L'unique possibilité pour définir un champs requis pour la création de compte est l'inscription a la newsletter (BO > Clients). La manipulation sur l'adresse n'a pas d'impact sur les champs du sign up :/

Link to comment
Share on other sites

  • 1 month later...
  • 6 months later...
  • 4 weeks later...
  • 11 months later...
  • 2 years later...

Bonjour,

Je recherche aussi à rendre obligatoire la société et le Numéro d'identification fiscale lors de la création du compte sur Prestashop 1.7.4 sans passer par un module.

Si quelqu'un a une solution je suis preneur.

Link to comment
Share on other sites

Bon, pour les prochains qui cherchent j'ai trouvé la modification à faire pour rendre obligatoire les champs société et siret.

Il faut rajouter ce qu'il y a en gras ci-dessous dans le fichier classes/Customer.php :

'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true),

'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isSiret', 'required' => true),

 

Puis rajouter "->setRequired(true)" dans classes/Form/CustomerFormatter.php :

if (Configuration::get('PS_B2B_ENABLE')) {
            $format['company'] = (new FormField)
                ->setName('company')
                ->setType('text')
                ->setLabel($this->translator->trans(
                    'Company', [], 'Shop.Forms.Labels'
                ))
                ->setRequired(true)
                ;
            $format['siret'] = (new FormField)
                ->setName('siret')
                ->setType('text')
                ->setLabel($this->translator->trans(
                    // Please localize this string with the applicable registration number type in your country. For example : "SIRET" in France and "Código fiscal" in Spain.
                    'Identification number', [], 'Shop.Forms.Labels'
                ))
                ->setRequired(true)
                ;
        }

 

Voilà si ça peut aider

  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 5 months later...
On 3/7/2022 at 11:33 AM, GBPro said:

Bon, pour les prochains qui cherchent j'ai trouvé la modification à faire pour rendre obligatoire les champs société et siret.

Il faut rajouter ce qu'il y a en gras ci-dessous dans le fichier classes/Customer.php :

'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true),

'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isSiret', 'required' => true),

 

Puis rajouter "->setRequired(true)" dans classes/Form/CustomerFormatter.php :

if (Configuration::get('PS_B2B_ENABLE')) {
            $format['company'] = (new FormField)
                ->setName('company')
                ->setType('text')
                ->setLabel($this->translator->trans(
                    'Company', [], 'Shop.Forms.Labels'
                ))
                ->setRequired(true)
                ;
            $format['siret'] = (new FormField)
                ->setName('siret')
                ->setType('text')
                ->setLabel($this->translator->trans(
                    // Please localize this string with the applicable registration number type in your country. For example : "SIRET" in France and "Código fiscal" in Spain.
                    'Identification number', [], 'Shop.Forms.Labels'
                ))
                ->setRequired(true)
                ;
        }

 

Voilà si ça peut aider

Bonjour et merci, je confirme que cela fonctionne toujours très bien sur la dernière version PS 1787, au moment où je poste ... :)

Edited by Banalweb (see edit history)
  • Thanks 1
Link to comment
Share on other sites

  • 6 months later...

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