Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

[Compte client/Commande] - Choix de la région non-obligatoire
 
Gregory Tonon
Member
 
Avatar
Total Posts:  65
Joined:  2008-03-27
Toulouse
 

Bonjour à tous,

Pour une demande spécifique, je dois supprimer le champs “ Choix de la région pour le client “.

J’ai réussi à le faire dans le Core de Magento, mais j’aimerai l’exporter pour en faire un plugin et facilement le re-utiliser.

J’ai donc, créer mon module, rédéfini la classe Customer_Model_Address et ça fonctionne bien.

Par contre impossible d’en faire autant pour Sales_Model_Quote_Address, je prends l’erreur suivante

Fatal error: Call to a member function getCollection() on a non-object in /home/users/g.tonon/www/P-Synphonat/app/code/core/Mage/Sales/Model/Quote.php on line 297

Je pense qu’il s’agit juste d’une bonne configuration du fichier .xml mais je ne vois pas laquelle!!

<models>
               <
customer>
                   <
rewrite>
                       <
address>Compagny_Customer_Model_Address</address>
                   </
rewrite>
               </
customer>
               <
sales>
                   <
rewrite>
                       <
quote_address>Compagny_Customer_Model_Quote_Address</quote_address>
                   </
rewrite>
               </
sales>
</
models>

Si quelqu’un vois ce qu’il me manque sont aide est la bienvenue.

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL_
Magento Team
 
Avatar
Total Posts:  1140
Joined:  2007-10-10
Paris, France
 

Bonjour,

Le fichier php de ta classe Compagny_Customer_Model_Quote_Address se trouve bien dans le répertoire approprié ?
Ton fichier XML me semble correct.

 
Magento Community Magento Community
Magento Community
Magento Community
 
aboileau
Jr. Member
 
Total Posts:  5
Joined:  2008-07-16
 

Au fait, comment as tu fais pour enlever ça? Car je ne trouve pas comment enlever le fait qu’on doit mettre le département.

Merci,

Aurélien

 
Magento Community Magento Community
Magento Community
Magento Community
 
jpbauer
Sr. Member
 
Total Posts:  159
Joined:  2008-10-09
Paris IDF
 

Je cherche aussi comment faire et serais intéresse par quelques explications…

 
Magento Community Magento Community
Magento Community
Magento Community
 
Gregory Tonon
Member
 
Avatar
Total Posts:  65
Joined:  2008-03-27
Toulouse
 

Oups désolé pour le retard de la réponse

Alors pour rendre non-obligatoire certains attributs, on peut soit les rendre non obligatoire sur le frontend, mais aussi sur le backend ( visiblement le fait de le rendre non-obligatoire sur un de l’est pas forcément sur l’autre mais c’est a confirmer )

Pour le backend il faut faire des modifs dans la base de données dans la table “eav_attribute” et modifier le champs ‘is_required’ pour les attributs souhaités.

En front end, il faut :
Dans les formulaire vous trouverez sur les champs obligatoire la class css

class="required-entry"
, il faut la supprimer afin de ne plus avoir les messages en JS ( qui empêchent le formulaire d’être posté ).
Ensuite il faut aller modifier le model qui sert pour stocker les données
Exemple pour les adresses le modèle “Customer_Model_Address” modifier la fonction “public function validate()”, cette fonction gère les validateur pour le modèle, vous verrez c’est assez facile a comprendre quel validateur supprimer

Voila ce ne sont que des pistes ( valables pour les adresses, je n’ai pas essayé avec d’autres élément de magento )

NB : Customer_Model_Address est utilisé pour les compte utilisateur et Mage_Sales_Model_Quote_Address pour les informations utilisateur lors d’une commande, il faut donc modifier les deux pour avoir une certaine logique.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Florent
Jr. Member
 
Total Posts:  16
Joined:  2008-09-15
 

Je relance ce topic pour savoir si quelqu’un aurait une solution qui ne modifie pas le modèle ?

Merci pour l’astuce Eriatarka.

 
Magento Community Magento Community
Magento Community
Magento Community
 
lemax
Guru
 
Total Posts:  318
Joined:  2008-04-03
Nantes, France
 

Ca doit être dans la base de données parce que selon les pays c’est obligatoire ou pas.
Max

 
Magento Community Magento Community
Magento Community
Magento Community
 
Florent
Jr. Member
 
Total Posts:  16
Joined:  2008-09-15
 

Il n’y a pas de table pour la configuration, mais en effet, en supprimant toutes les informations relative au country_id FR dans la table directory_country_region, le champ ne devient plus obligatoire dans la page de checkout.

DELETE FROM `directory_country_regionWHERE `country_id` = 'FR'

Il ensuite de modifier le template pour que la boite de saisie n’apparaisse plus.

--
Florent
Smile - Open Source Solutions

 
Magento Community Magento Community
Magento Community
Magento Community
 
apitronic
Jr. Member
 
Total Posts:  27
Joined:  2008-12-14
France
 

Salut,

Pour ceux que ça intéresse, je propose plutôt de renommer la Country (ce qui permet de revenir en arrière) :

UPDATE directory_country_region SET country_id 'FR_TMP' WHERE country_id 'FR'

Pour revenir en arrière :

UPDATE directory_country_region SET country_id 'FR' WHERE country_id 'FR_TMP'

A+

 
Magento Community Magento Community
Magento Community
Magento Community
 
Zenlap
Jr. Member
 
Avatar
Total Posts:  24
Joined:  2009-03-25
Paris, France
 

Merci pour l’indication apitronic, solution rapide et efficace !

 
Magento Community Magento Community
Magento Community
Magento Community
 
krapapock
Jr. Member
 
Total Posts:  2
Joined:  2008-09-15
Paris France
 

Bonjour,

Merci pour l’info !

Après avoir supprimé le champ region dans les template billing et shipping, lorsque je sélectionne “Livrer à cette adresse” et que je valide le formulaire, je ne suis pas redirigé vers le mode de livraison. Je reste donc sur le formulaire de l’adresse de facturation.

Par contre, les adresses de livraison et de facturation apparaissent bien dans la box “Avancement de la commande” !

La réponse du serveur est pourtant correcte : “goto_section”:"shipping_method"

Peut être avez vous aussi rencontré ce problème ?

 
Magento Community Magento Community
Magento Community
Magento Community
 
cooper
Sr. Member
 
Total Posts:  104
Joined:  2008-03-31
 
apitronic - 15 March 2009 02:06 AM

Salut,

Pour ceux que ça intéresse, je propose plutôt de renommer la Country (ce qui permet de revenir en arrière) :

UPDATE directory_country_region SET country_id 'FR_TMP' WHERE country_id 'FR'

Pour revenir en arrière :

UPDATE directory_country_region SET country_id 'FR' WHERE country_id 'FR_TMP'

A+

Bonjour,

tout fonctionne correctement SAUF si on saisit un code numérique dans le champs région (par exemple : 75) : à la fin du processus de commande, après avoir tout passé (adresse, méthode de livraison, paiement, vérification..) on obtient un message d’erreur : “Erreur lors du traitement de votre commande. Veuillez rééssayer plus tard”.
Par contre quand on ne saisit rien ou juste une valeur textuel (ex : ‘ma belle région’), là pas de problème…

Il semble que le format du champs région ait une imortance : null ou textuel = ok mais si contient valeur numérique = pb.

@+

 
Magento Community Magento Community
Magento Community
Magento Community
 
cooper
Sr. Member
 
Total Posts:  104
Joined:  2008-03-31
 

Un piste : si on saisit un chiffre supérieur à la dernière valeur du champs région_id de la table directory_country_region, alors là ça marche… mmh mmh hmmm

 
Magento Community Magento Community
Magento Community
Magento Community
 
e-thos
Jr. Member
 
Total Posts:  8
Joined:  2009-07-21
Cagnes sur mer - Alpes Maritimes - France
 

For the one that prefers using extension instead of code customization:
Sinon il y a aussi cette solution pour ceux qui n’aime pas toucher au code:

http://www.magentocommerce.com/magento-connect/Tobias+Renger/extension/1904/custom-address-requirements

 
Magento Community Magento Community
Magento Community
Magento Community
 
Herve Guetin
Sr. Member
 
Avatar
Total Posts:  216
Joined:  2008-05-10
Lyon, FR
 

Guys - watch out.
Speaking about region, which is the only attribute I made tests against, this module is not complete.

It will indeed disable the region field on the frontend but as soon as you edit the customer from the backend, le Region/State select is populated and the first region is selected with no option to select a blank entry - like the regular Magento way.

So the customer purchases with no region.
You, as a webmaster goes to edit the customer info in the backend for any good reason
You save.
The customer has now a Region/State selected to his/her account.

Conclusion : this is not a good idea to use this module.

AFAK, the only way to make a Region/State not required is to remove all entries relative to the country you want the region not to be required directly in the database : directory_country_region

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top