Múltiples grupos en entidad cliente (customer) en Magento

Es uno de los requerimientos que más se han solicitado en la versión ‘Community’ de Magento, pero ni en la actual versión estable (1.7) está implementado.

Tan simple como ir a la tabla ‘eav_ttributes’ y buscar el attributo ‘group_id’:

 

Cambiamos el campo ‘backend_type’ por ‘varchar’ y el campo ‘frontend_input’ por ‘multiselect’, indicando que este campo se gestionará mediante la tabla de attributos de entidad, por lo que el campo ‘group_id’ de la entidad customer (en la tabla), quedará sin usar.

Con cualquier consulta a la entidad ‘customer’ los grupos llegarán separados por comas, tipo: 1,6,7 . . .

Si entráis en una ficha de cualquier cliente en el panel de administración, veréis que ahora el seleccionable es múltiple. Seguramente en casi todos los procesos que implique este nuevo dato, tengas que tocar para que reconozca la nueva funcionalidad (yo tuve que tocarlo un poco para temas de reglas de promoción), pero normalmente será convertir el filtro a un valor único por un array, o ‘IN’ . . .

Espero que sea de ayuda.

 

Prevenir ‘bounce’ o ‘scrolling’ en aplicaciones HTML5 con PhoneGap

Algo que resulta muy molesto a la hora de desarrollar aplicaciones HTML5 con PhoneGap, es que se ‘descuadre’ por completo esa sensación de aplicación ‘nativa’ al utilizar la aplicación.

El típico ‘bounce’ que se produce en el UIWebView, realizando ‘touchmove’ en cualquier elemento no scrolleable de la aplicación y viendo cómo se mueve la pantalla, cortando la visualización de la aplicación. Pues bien, se resuelve accediendo al archivo config.xml que haya en nuestro proyecto PhoneGap y en el atributo UIWebViewBounce lo pondremos a ‘false’:

Así, cualquier aplicación que utilice la vista web, no realizará el molesto ‘bounce’.

Eliminar entradas duplicadas en tabla MySQL

Un trozo de query que tenía aquí en mis apuntes del disco duro. Sencillo pero efectivo:

Alteramos los índices de la tabla, así que si tienes otro tipo de índices te toca recordarlos y apuntarlos en la nueva orden.
Mucho mejor si lanzas la query sobre una tabla duplicada (no vayamos a liarla) ;)

Añadir campos a entidad cliente (customer entity) en Magento

Muchas son las veces que necesitamos ‘extender’ los datos de un cliente en Magento, es decir, añadir nuevos campos que personalizan aún mas los datos del cliente para determinados proyectos, sobretodo si nuestra plataforma Magento está conectada con un software de terceros (un ERP por ejemplo). Leer más »

Conexiones a BBDD externas desde Magento

Normalmente, en proyectos de una cierta envergadura, el cliente dispone de sistemas propios ya desarrollados o implementados para realizar otras tareas (ya sea logística, marketing…), por lo que es conveniente una conexión desde una plataforma de e-commerce para compartir información.

A continuación os comento cómo realizar una conexión a una BBDD externa desde Magento.

Primero de todo editamos el archivo ‘local.xml’ que se sitúa en /app/etc/ y le añadimos dentro de la marca < resources> lo siguiente:

Una vez tenéis indicado como se llamará el enlace de conexión, tan sólo tendréis que utilizarlo en vuestro código así:

Añadir captcha a reviews de productos en Magento

Magento no lleva por defecto ningún sistema de captcha, y aunque hay disponibles muchos gratuitos en ‘Magento Connect’, al final siempre acaban dando problemas y pierdes más tiempo en corregirlos y adaptarlos.
Solución: implementar uno desde 0 (o casi).

En este caso vamos a utilizar ‘reCAPTCHA’ de Google, que es muy sencillito y funciona a las mil maravillas (además de que Zend Framework tiene integrado el componente). Para ello es necesario que generes una ‘publicKEY’ y otra ‘privateKEY’. En el siguiente enlace podrás gestionarlo.

Una vez tengamos las ‘keys’, solamente tenemos que implementarlo en nuestro Magento.

Vamos al tema instalado (base para el de por defecto de Magento) y en el archivo de la vista /app/frontend/tema_instalado/default/template/review/form.phtml añadimos:

Simplemente lo que hacemos es llamar al renderizado del componente de Google, embebiendo archivos JS y el HTML. Aqui es donde le podremos indicar las opciones, como tema, idioma… personalizar etiquetas…

Solamente nos falta añadir código de validación en el modelo, para ello vamos a /app/code/local/Mage/Review/Model/Review.php (acordarse de sobrrescribir el model realizando una copia en la carpeta local, de ‘app/core’ a ‘app/local’, buenas prácticas) y en la función validate():

Ya tenemos el captcha funcionando.

Limpiar caché desde consola en Magento

Muchas veces cuando instalamos una nueva extensión o probamos cualquier desarrollo propio, Magento deja de responder y nos sale un error 500 (directamente) o el típico mensaje de error con el número de reporte. Para esto es aconsejable borrar la caché (date una vuelta también por el directorio ‘var’) o reindexar los índices de BBDD pero, oh!, no tenemos acceso a la aplicación.
Para esto existe el ‘shell’ de Magento.

Os voy a indicar aquí cómo limpiar la caché directamente desde consola (yo estoy utilizando directamente ‘terminal’ en Mac, el CMD en Windows bastaría, siempre y cuando tengamos en el PATH la referencia a las librerías PHP); este código se ejecuta desde el mismo directorio donde tengamos hecha la instalación de Magento:

Primero deshabilitamos la ruta por defecto, después limpiamos la caché y finalmente volvemos a ‘compilar’.

Lo mismo ocurre para reindexar (mirar USAGE en archivo ‘indexer.php’ del directorio ‘shell’).
Y voilá! Ya tenemos la caché limpia, y si todo ha salido bien podremos volver a loguearnos al panel de administración.

Quick iTunes 1.1.3 Chrome extension con preview de audio y video.

Ya está aquí la nueva versión de Quick iTunes. La versión 1.1.3 corrije errores menores de funcionamiento, se ha optimizado la carga de datos guardados y se ha añadido ‘preview’ de audio y video.

Para el video es necesario tener instalado Quick Time player, ya que es la única forma de reproducir formato MPEG bajo Google Chrome (dada la exclusión de tal formato bajo el navegador de Google, ya que es propietario). Lo he intentado de todas las formas posibles (HTML5 imposible, FLASH si pero con las politicas de seguridad nada de nada, y tampoco es muy usable) pero no ha habido manera, por lo que directamente se realiza petición de objeto Quick Time.

Cualquier comentario es bienvenido.

Quick iTunes Google Webstore

Quick iTunes Google Webstore

Internet Explorer 6 = Spain is different!

Sirva la similitud del titular de esta entrada para darse cuenta del atraso tecnológico que viven (si digo 80% me paso) el 90% (con recochineo, oiga!) de las empresas españolas. Leer más »

Quick iTunes en Google Chrome Extensions Gallery.

He subido la extensión a la Google Chrome Extensions gallery para que más gente pueda acceder a ella. Así mismo, desde aquí se realiza un mejor control para actualizaciones de la extensión. Por supuesto, totalmente gratis.

Aunque la intención es portar la extensión para Firefox también, desde Applesfera me han sugerido que también lo haga para Safari. Así que con el tiempo espero que exista también para el navegador estrella de Apple ;) .

Quick iTunes en Google Chrome Extensions Gallery.

« Entradas Antiguas