Ce petit tutoriel va vous apprendre à facilement ajouter dans le backoffice de Magento des options de configuration, que vous pourrez ensuite utiliser dans vos modules / templates.
Ces options sont très pratiques, car elle fonctionnent en accord avec le principe des sites / boutique / vues, donc aucun code n’est nécessaire pour gerer des valeurs différentes en multiboutique.

Etape 1 : Faites un module et déclarez le comme actif dans votre Magento.
Pour cela, rien de plus simple, téléchargez l’archive suivante et dezippez là dans votre dossier “app”.
Une fois decompresser, vous devriez voir apparaitre la nouvelle section dans votre menu de configuration du back-office magento -> Système -> Configuration.
Après avoir installé le module, vous devrez tout de même le déclarer via le fichier etc/modules/tellaw_Customconfig.xml présenté dans cet article.
Etape 2 : Créez le fichier de configuration du module :
Ce fichier sert à la déclaration de la configuration du module. Dans notre cas, il est minimal, car notre module ne fait pas grand chose.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0"?> <config> <modules> <Tellaw_Customconfig> <version>1.0.0</version> <depends> <!-- no dependencies --> </depends> </Tellaw_Customconfig> </modules> <global> <models /> <resources /> <extraconfig /> <blocks /> </global> </config> |
Etape 3 : Créez le fichier adminhtml.xml :
Ce fichier permet de déclarer la nouvelle page du menu System correspondant à la nouvelle section.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?xml version="1.0" ?> <config> <acl> <resources> <admin> <children> <system> <children> <config> <children> <mycustom_section translate="title"> <title>My Custom Section</title> <sort_order>100</sort_order> </mycustom_section> </children> </config> </children> </system> </children> </admin> </resources> </acl> </config> |
Etape 4 : Créez le fichier system.xml :
Ce fichier va declarer tous les champs, leur ordre, validations, relations… C’est la que vous définissez l’interface à mettre en place.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?xml version="1.0" ?> <config> <tabs> <mycustom_tab translate="label"> <label>Mon Onglet (Tab)</label> <sort_order>100</sort_order> </mycustom_tab> </tabs> <sections> <mycustom_section translate="label"> <label>Ma Section (Section)</label> <sort_order>200</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <tab>mycustom_tab</tab> <groups> <mycustom_group translate="label"> <label>Mon Groupe (Group)</label> <comment>Commentaire relatif au groupe</comment> <sort_order>10</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <mycustom_field translate="label tooltip comment"> <label>Mon champ custom (Field)</label> <comment>Commentaire</comment> <tooltip>Un tooltip</tooltip> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <frontend_input>text</frontend_input> </mycustom_field> </fields> </mycustom_group> </groups> </mycustom_section> </sections> </config> |
Etape 4 : Déclarez le helper :
Ce fichier n’est normalement pas obligatoire.
1 2 3 |
class Tellaw_Customconfig_Helper_Data extends Mage_Core_Helper_Abstract { } |
Le helper n’est normalement pas obligatoire, mais j’ai eu de mon coté beaucoup de problèmes suite à l’absence de ce Helper lors de la création de module. Je préfère à présent l’avoir systématiquement présent.
Déclarez le module dans etc / modules
nom du fichier : Tellaw_Customconfig.xml
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0"?> <config> <modules> <Tellaw_Customconfig> <active>true</active> local </Tellaw_Customconfig> </modules> </config> |
Si vous obtenez une 404 sur la section ou Permission refusée (permission denied) :
le plus souvent cela provient d’un défaut de Magento. Pour activer votre nouvelle page de configuration, il faut aller dans la configuration des rôles, en éditer un (je n’ai dans le mien que Administrateur) et le sauvegarder.
Cette action force Magento à relire la configuration du fichier adminhtml.xml et active la page d’options que vous venez de mettre en place. Cette petite astuce permet d’éviter de longues heures de debugs d’un code souvent juste 🙂
Utiliser votre option de configuration
Pour lire la valeur de cette nouvelle option de configuration, il suffit d’utiliser la syntaxe :
1 2 3 4 5 6 |
// Syntaxe Mage::getStoreConfig('section/group/field'); // Dans notre exemple : $mavaleur = Mage::getStoreConfig('mycustom_section/mycustom_group/mycustom_field'); echo ($mavaleur); |
Les Sources de ce tutorial :
Vous pouvez télécharger l’archive avec les sources de ce tutoriel en suivant ce lien.
Après avoir installé le module, vous devrez tout de même le déclarer via le fichier etc/modules/tellaw_Customconfig.xml présenté dans cet article.
4 réponses sur « Magento : Ajouter ses champs dans le menu Système / Configuration »
Bonjour,
Pourriez-vous m’aider ? Je suis débutante avec Magento et je n’ai pas bien saisi certaines choses de votre article. Vous pouvez m’envoyer un mail pour que l’on puisse communiquer plus facilement si vous le voulez bien. Merci d’avance. Bien cordialement.
Smallbeetle
Bonjour,
merci pour cet excellent article, l’astuce consistant a créer un rôle et à le supprimer pour recharger la configuration vient de me sortir de l’impasse: je m’arrachais les cheveux a comprendre ce qui n’allait pas dans mon code …
Merci beaucoup pour ce tutoriel très bien expliqué. Magento n’est quand même pas si facile que ça 🙂
Bjr,
le fichier archive téléchargeable dans cet article n’est plus accessible