Wilman Arambillete

Desarrollo web y comercio electronico

Magento: Cómo crear una sección de configuración personalizada

By

Objetivo

Lo que queremos lograr es agregar en la sección de configuración de Magento (System – Configuration) una sección personalizada en el menú lateral y al hacer click sobre tal opción mostrar un area personalizada con diferentes secciones.

Ejemplos:

custom-tab

custom-section

Procedimiento

Lo primero que tenemos que asegurarnos es de tener definido en nuestro /app/code/local/<empresa>/<modulo>/etc/config.xml la sección de Helpers. Helpers es una etiqueta del XML que debe ir dentro de la etiqueta <global> del <config>.

<config>
    <modules>
        <LCS_Ebay>
            <version>0.1.0</version>
        </LCS_Ebay>
    </modules>
    <global>
        <helpers>
            <ebay>
                <class>LCS_Ebay_Helper</class>
            </ebay>
        </helpers>

 

En nuestro caso vamos a crear una nueva sección, por lo tanto es necesario crear un nuevo rol ACL. Esto se hace agregando el mismo en el archivo config.xml. Este rol va dentro de la etiqueta <adminhtml>. Esta etiqueta va dentro de la etiqueta <config>.

 

<adminhtml>
        <acl>
            <resources>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <ebay>
                                            <title>Ebay</title>
                                        </ebay>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>

 

Nota: Este paso es necesario sólo si se necesita crear una sección nueva.

Luego lo que hacemos es definir nuestro archivo /app/code/local/<empresa>/<modulo>/etc/system.xml

<?xmlversion="1.0"?>
<config>
    <tabs>
        <ebay translate="label" module="ebay">
            <label>Market Places</label>
            <sort_order>99999</sort_order>
        </ebay>
    </tabs>
    <sections>
        <ebay translate="label" module="ebay">
            <label>Ebay</label>
            <tab>ebay</tab>
            <frontend_type>text</frontend_type>
            <sort_order>1000</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <ebay translate="label" module="ebay">
                    <label>API Credentials</label>
                    <frontend_type>text</frontend_type>
                    <sort_order>100</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>
                    <fields>
                        <dev_id translate="label">
                            <label>Dev Id</label>
                            <frontend_type>text</frontend_type>
                            <validate>required-entry</validate>
                            <sort_order>1</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                        </dev_id>
                    </fields>
                </ebay>
            </groups>
        </ebay>
    </sections>
</config>

Ahora analicemos un poco las etiquetas. Lo primero es la etiqueta <tabs> que es donde se define la etiqueta de la sección nueva que acabamos de crear.

Luego tenemos la etiqueta <sections> donde se define el nombre de la seccion que vemos una vez que hacemos click en el tab lateral.

Dentro de <sections> definimos los grupos que son lo que en la imagen corresponde a API Credentials. Cada grupo tiene a su vez <fields> o campos. Cada campo tiene una etiqueta, un tipo, etc.

La mayoria de los campos se explican por si solos. Para entender cada campo podemos ver la documentación de Magento