Prestashop (1.6) – Añadiendo campos nuevos a nuestra tienda (y II)

En la entrada anterior, os explicamos como añadir nuevas columnas a vuestra tabla de productos, y como hacer que estuvieran disponibles para vuestra tienda; y en esta veremos como podemos añadir esos nuevos campos a la administración de productos, para que podáis mantener la información

Como hicimos anteriormente, las modificaciones no las haremos sobre las paginas de Prestashop, si no, sobre ficheros en la carpeta override; de esta forma reducimos los problemas ante cambios de versión.

Para conseguir nuestro objetivo, deberemos modificar la pantalla de administración de productos. Esta pantalla esta formada por un conjunto de tabs, y cada tab tiene una plantilla asociada

Prestashop-Mantenimiento de productos

estas plantillas están en /admin/themes/default/template/controllers/products

Deberemos decidir en que plantilla queremos realizar la modificación; otro día veremos como crear una nueva, y la elección la deberemos hacer en función del contenido del campo; en mi caso, he decidido poner el nuevo campo a continuación de la descripción corta

Prestashop. Inclusion de nuevo campo en administracion

Por lo que la plantilla afectada es information.tpl, y podemos copiar este fichero a la carpeta equivalente de override, esto es desde:

/admin/themes/default/template/controllers/products/informations.tpl

a

 /override/controllers/admin/templates/products/informations.tpl

y sobre nuestro fichero (el que esta en override), deberemos incluir nuestro nuevo campo

Como hemos dicho que lo vamos a poner a continuación de la “Descripcion corta”, la localizamos:

Prestashop-Descripcion Corta. AdministracionCada uno de los campos tienen una estructura semejante a esta, de forma que nuestro nuevo campo, lo deberemos añadir a continuación de todo esto.

Si no es multi-idioma:

<div class="form-group">
         <div class="col-lg-1"><span class="pull-right">
            {include file="controllers/products/multishop/checkbox.tpl" field="contenido" type="default" multilang="false"}</span></div>
        <label class="control-label col-lg-2" for="contenido">
            <span class="label-tooltip" data-toggle="tooltip"
                title="{l s='Content of package.(Ej:Sobre de 20gr)'}
            </span>
        </label>
        <div class="col-lg-5">
            <input maxlength="13" type="text" id="contenido" name="contenido" value="{$product->contenido|htmlentitiesUTF8}" />
        </div>
    </div>

Si es multi-idioma

<div class="form-group">
        <div class="col-lg-1"><span class="pull-right">
            {include file="controllers/products/multishop/checkbox.tpl" field="contenido" type="default" multilang="true"}</span></div>
        <label class="control-label col-lg-2" for="contenido_{$id_lang}">
            <span class="label-tooltip" data-toggle="tooltip" title="{l s='Content of package.(Ej:Sobre de 20gr)'}">
                {l s='Content'}
            </span>
        </label>
        <div class="col-lg-5">
            {include file="controllers/products/input_text_lang.tpl"
                languages=$languages
                input_class="{$class_input_ajax}{if !$product->id || Configuration::get('PS_FORCE_FRIENDLY_PRODUCT')}copy2friendlyUrl{/if} updateCurrentText"
                input_value=$product->contenido
                input_name="contenido"
                required=true
            }
        </div>
    </div>

y, si lo habéis hecho bien, os debería bastar; a partir de ese momento, vuestro nuevo campo funcionara exactamente igual a cualquiera de los estandarts.

Cuando tengáis que actualizar la versión deberéis comprobar que siga funcionando, y si no es así, deberéis comparar los módulos antiguos con los nuevos, para ver que diferencias existe, y en función de las mismas, actuar sobre vuestro “override”

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Desarrollo Web, Prestashop. Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.