Archivados con la etiqueta: tips

Métodos para agregar imágenes a los productos vía código en Magento

Uno de los desarrollos en los que más participo dentro de los proyectos Magento, suelen ser las integraciones entre cualquier sistema externo y la tienda, ya sea que se envíe o se reciba información.

Si bien ya van 7 años con con la plataforma y las integraciones, por más que algunos procesos ya están bastante logrados y no necesitan reprogramación, sólo configuración; siempre es necesario hacer algún ajuste o cambiar alguna lógica, ya que cada tienda es única.

Una de las entidades/procesos que rara vez se salva de ser reprogramada en las integraciones, es el catálogo. Incluso, dentro del propio mundo que puede resultar el catálogo de una tienda, la gestión de imágenes de los productos que se sincronizan también suele ser diferente entre un proyecto y otro.

Al momento de asociar imágenes a un producto, vía código, podemos pensar en 3 métodos diferentes (no es para tomar como algo definitivo, pero serían 3 las formas de atacar la tarea).

Para los distintos ejemplos, vamos a considerar que tenemos un único producto (en mi caso, el entity_id 1), con N cantidad de imágenes que se encuentran dentro de del directorio media/import.

Editar las imágenes de un producto en Magento

Seguir leyendo

Cómo crear un placeholder configurable para nuestros módulos en Magento

Hace un tiempo me tocó crear, para la tienda Best Kiteboarding, un módulo algo más complejo que lo que normalmente uno acostumbra a hacer.

El módulo en cuestión crea una nueva entidad EAV para la gestión de los riders dentro de la tienda, permitiendo gestionar cualquiera de los atributos, con soporte multi-store view, controllers dinámicos (permitiendo configurar las url’s de acceso), galerías de imágenes, relación con productos, etc, etc.

Seguramente, de lo hecho con el módulo, se irán desprendiendo unos cuantos posts, ya que cubrir todas las funcionalidades en uno solo sería demasiado extenso.

Más allá de las funcionalidades mencionadas, uno de los temas a cubrir fue el de permitir, vía configuración, poder gestionar hasta el más mínimo detalle, dando total independencia al usuario de la tienda.

Uno de esos detalles, que a nivel frontend se notan, fue el manejo de imágenes. En el caso de la tienda, para cada rider, se gestionan distintas imágenes (avatar, imagen principal, galería de imágenes y galería de videos).

Seguir leyendo

Cómo actualizar WordPress en localhost sin FTP

Ante cada nueva actualización de WordPress, normalmente hago pruebas en entorno local primero. Si todo funciona bien, commit y luego deploy en producción.

Una de las cosas molestas para este escenario es que el actualizador, por defecto, intentará utilizar el protocolo FTP.

Nueva actualización disponible

Resultará entonces que cada vez que, trabajando en un entorno local, encontremos la notificación de nueva versión, al clickear sobre “Actualizar ahora”, veremos lo siguiente:

Credenciales FTP en WordPress

De más está decir que, normalmente, no vamos a contar con un servidor FTP local. Por este motivo la actualización deberá hacerse de forma manual, descargando los archivos de la nueva versión y pisando los existentes.

Por suerte, hay una solución para evitar lo tedioso de ésta metodología.

Seguir leyendo

This account is locked en Magento Enterprise

A diferencia de la versión CE, la versión EE de Magento viene con soporte PCI Compliance.

Una de las funciones que provee el módulo, quizás la más simple, es la de controlar el acceso al backend a través de algunas reglas.

Dichas reglas pueden configurarse desde el backend en System -> Configuration -> Admin, en el grupo de Security.

Configuración de seguridad en Magento EE

Seguir leyendo

Evitando conflictos de nombres entre Models y Controllers en CodeIgniter

En una época en cual las discusiones sobre qué framework usar, cuál es mejor, cuál es peor, etc, etc; yo sigo usando CodeIgniter para armar prototipos rápidos, para algunas pruebas de concepto e incluso para pequeñas aplicaciones (de hecho, la primera versión del módulo de traducciones para Magento, fue una aplicación CI).

Uno de los problemas que padece éste framework es que no puede usarse el mismo nombre para un modelo y para un controlador.

Normalmente esto se resuelve agregando un sufijo al modelo.

class Modulo_model extends CI_Model {
    //métodos de mi modelo
}

Como buen programador, la neurosis me persigue y me molesta de sobremanera tener que instanciar luego ese modelo usando:

$this->load->model('modulo_model');

Para evitar la severa molestia, lo que podemos aplicar es una sobrecarga a la clase core CI_Loader, en la cual vamos a agregar tan sólo un par de líneas al método model().

Seguir leyendo