Archivo de la etiqueta: tips

Cómo recuperar tu contraseña de usuario en Magento2

¿Dónde está mi auto?

¿A quién no le pasa que cada tanto se olvida de una contraseña?. ¿Y si te pasa en un entorno que no envía emails?

En Magento2, para resetear la contraseña ya no nos alcanza con entrar en la base de datos y ejecutar algo como esto:

UPDATE admin_user SET password = md5('mi_nueva_contrasñea') WHERE user_id = 1; -- O el id que fuera

No, en Magento2, dado la forma en que se guarda la contraseña ahora, no podríamos usar solo SQL. La forma más sencilla y efectiva es usar la consola.

Sigue leyendo

Cómo instalar Magento 2 (en todas sus variantes)

Documentación oficial de Magento

Lo dicho, el momento de sentarse en serio ya llegó y ya no hay excusas.

Entre las tantas (tantísimas) diferencias entre la versión 1 y 2 de Magento, vamos a encontrar que al momento de instalarlo, no sólo tendremos diferentes requerimientos de sistema, sino que contaremos con dos nuevas formas de instalar la plataforma.

La gran novedad desde ahora es que podemos usar Composer para instalar Magento, ya sea para la versión CE como para la EE.

Como decía, ahora contamos con 4 métodos para instalar (si bien, las 2 nuevas formas tienen más que ver con la obtención del código que con la instalación en si).

 
Sigue leyendo

Compilando los ficheros Sass de Magento utilizando Gulp y Node-sass

Sass

Antes de todo dar las gracias a Damián por invitarme a escribir en su blog, es un honor escribir en un blog del que hemos aprendido tanto, espero estar a la altura.

Desde la versión 1.9.0.0 de Magento se nos introdujo de forma nativa en los themes Sass con el famoso theme rwd. Trabajando como Freelance, me he encontrado con infinidad de proyectos en los que tocan directamente el css sin compilar los SCSS, lo que lleva a una perdida de tiempo y a unos buenos dolores de cabeza cuando el proyecto lo toca otra persona.

Para simplificar todo el proceso de compilación de los ficheros Sass a los css, después de muchos dolores de cabeza con Ruby, me decanté hace tiempo en hacerlo con Node.js.

Usaremos pues Node.js, Gulp y Bower. Tendremos que usar solamente comandos muy básicos de command-line (Terminal en OSX, Command Prompt en Windows, …), con lo que no implicará mucha dificultad.

Instalando Node.js

Lo primero que necesitaremos antes de todo será instalar Node.js, para ello sólo tendremos que ir a http://nodejs.org y descargar la versión compatible con nuestro sistema operativo. Hay un botón gigante que pone Download for … con lo que no tiene perdida.

Sigue leyendo

Magento SUPEE-6285 y el acceso denegado a los módulos

Acceso denegado en módulos custom de Magento

El nuevo parche de seguridad trajo algunas cuantas mejoras, pero como todo gran parche del core, conlleva una gran responsabilidad por parte de los que desarrollamos extensiones. (Si, gracias Tío Ben)

Uno de los problemas que se están viendo y/o estamos sufriendo, es que al querer acceder, como de costumbre, a cualquiera de los módulos custom, en el escenario en el cual un usuario tiene un perfil con accesos restringidos, obtenemos el mensaje de “Acceso denegado” en lugar de la funcionalidad.

Esto se debe a uno de los cambios introducidos por el parche, en particular en la clase Mage_Adminhtml_Controller_Action.

Allí el método isAllowed nos muestra:

Método isAllowed

Antes, simplemente devolvía true.

En el escenario anterior, no se estaba validando correctamente que un usuario tuviera realmente los permisos suficientes para llegar a una funcionalidad. Simplemente se la estaba escondiendo.

Para que nuestros módulos funcionen, primero, debemos agregar en nuestro controller un override del método _isAllowed.

Sigue leyendo

Cronjobs con soporte de traducciones en Magento

Mage_Core_Model_Translate

A aquellos que nos toca trabajar mucho con integraciones y automatizaciones de procesos, en particular cuando se deben generar reportes o enviar información; ya nos resulta natural encontrar el siguiente detalle:

En Magento, ni los cronjobs ni las shell class hacen uso del método __() de traducción.

Es por eso que, normalmente, o bien veremos los mensajes en inglés o bien, en el idioma del programador de turno.

Esto podría no ser considerado un problema… salvo que justo estemos haciendo integraciones de una complejidad superior o necesitemos enviar emails que no sólo recibirán una variable sino que usarán plantillas más avanzadas que incluirán bloques y subplantillas.

Cuando nos encontremos con éstas situaciones, si veremos como un problema la falta de traducciones.

Sigue leyendo