Agregar validaciones javascript en Magento de forma no obstrusiva

Pequeño tip en pro de seguir con las buenas prácticas.

Hace no mucho tiempo me tocó hacer una personalización en la cual el requerimiento pedía agregar una regla adicional de validación para ciertos campos del checkout.

Lo que vamos a a ver es cómo agregar reglas propias de validación haciendo uso de la clase Validation. Por supuesto, la idea es no tocar el código original agregando código en js/prototype/validation.js o dentro de un phtml (como todavía seguimos viendo incluso en extensiones pagas).

Para el ejemplo vamos a necesitar 3 archivos.

El escenario con el cual voy a trabajar será el siguiente: “Agregar una nueva validación Javascript a ciertos campos del formulario del checkout sin por esto crear un nuevo módulo” (más adelante voy a volver sobre este punto).

Lo primero que vamos a hacer es crear nuestra función javascript de validación. Dado que la regla en si misma va más allá del skin, voy a crear el archivo dentro del directorio js. En mi caso, el archivo será /js/dc/validacion.js.

Dentro del archivo, vamos a declarar una nueva regla.

Validation.add('mi-nueva-validacion', 'Mensaje de error a mostrar.', function (v) {
    return /^[ INGRESAMOS NUESTRA VALIDACION ]*$/.test(v);
});

El siguiente paso será lograr que el layout agregue nuestro nuevo archivo junto con todos los demás.

Seguir leyendo «Agregar validaciones javascript en Magento de forma no obstrusiva»

Magento 1.6.1.0-rc1 (con gusto a poco)

Con una velocidad de publicación algo llamativa, el 29 de septiembre apareció la versión 1.6.1.0-rc1 de Magento.

Lo de llamativa está relacionada con que no pasaron casi ni 10 días entre la versión alpha y la primera release candidate.

La lista de cambios a destacar, hasta el momento, es:

  • XmlConnect actualizado a la versión 22.0.
  • Cambio en el circuito de reseteo de contraseña.
  • Se puede utilizar la tecla Shift junto con el click para seleccionar un rango de valores en las grillas del backend.
  • Más y mejor integración con PayPal (que haya cambios aquí no causa sorpresa alguna).
  • Se eliminó la integración con TheFind.
  • Se quitó GoogleOptimizer (pasaría a ser parte del core en un futuro).
  • Mejoras para los cupones de descuento.
Seguir leyendo «Magento 1.6.1.0-rc1 (con gusto a poco)»

Magento 1.6.1.0-beta1 (poco, muy poco)

El 21 de septiembre la versión 1.6.1.0-beta1 de Magento fue publicada.

Los puntos destacados no han cambiado respecto a la versión anterior, pero si se han hecho algunas correcciones.

Salvo algunas correcciones de código vistas en algunos archivos, la mayoría de lo presentado en esta versión tiene correcciones de estilo, pero no más.

Los módulos que presentan más cambios son los de Sales, Shipping y Tax. Además, para Fedex y UPS se corrigieron los servicios de cada carrier.

Los detalles completos de la versión pueden leerlos en el changelog, aunque no hay grandes sorpresas.

Dado que es una versión beta, sólo para los despistados, NO la usen en tiendas productivas.

Magento 1.6.1.0-alpha1 (a la espera de más novedades)

Desde el viernes a última hora contamos con la versión 1.6.1.0-alpha1 de Magento.

No deja de resultarme llamativo el lanzamiento, dado que la última versión estable está bastante fresca aún. Igualmente, revisando el changelog se puede ver que más que mejoras, lo que han habido son correcciones.

Lo que destacan de éste release es:

  • Cambio en el circuito de reseteo de contraseña.
  • Se puede utilizar la tecla Shift junto con el click para seleccionar un rango de valores en las grillas del backend.
  • Más y mejor integración con PayPal (que hayas cambios aquí no causa sorpresa alguna).
  • Se eliminó la integración con TheFind.
  • Se quitó GoogleOptimizer (pasaría a ser parte del core en un futuro).
  • Mejoras para los cupones de descuento.

Revisando el código, se puede ver que hubieron cambios y correcciones en Adminhtml, Bundle, Catalog (casi todo relacionado con los productos Configurables), CatalogInventory, CatalogRule, CatalogSearch, Checkout (el OnePage), Core, Customer, Eav, GoogleCheckout, GoogleOptimizer fue removido (por el momento), ImportExport, Media, PageCache, Payment, PayPal, Poll, Sales, SalesRule, Tags, Tax, Usa (Usps), Whislist.

Seguir leyendo «Magento 1.6.1.0-alpha1 (a la espera de más novedades)»

Configuraciones dependientes en Magento

Normalmente, cuando creamos un módulo y le agregamos opciones de configuración, obtenemos un formulario, al menos, como el siguiente.

Formulario standard de configuración en Magento

Está claro, el ejemplo es de lo más básico. Contamos con varios tipos de campos que nos permiten manejarnos con cierta flexibilidad al momento de definir nuestras configuraciones.

Dentro de esas posibilidades existe una opción (que no suele verse muy seguido) que nos permite indicar que si un campo cambia de valor, nos muestre (o no) otros campos.

Guiándonos por la primera imagen, la lógica sería la siguiente: si el campo «Condición» equivale a No, mostramos el campo «Valor A».

Seguir leyendo «Configuraciones dependientes en Magento»