HootJudkins
El sitio de Hoodjudkins Furniture pertenece a una compañía ubicada en Redwood City, California y este provee la plataforma de e-commerce para vender las diferentes variedades de muebles que allí se ofrecen. La compañía nos contacto para podamos actualizar el sitio que corría bajo Magento 2.3 hacia la nueva versión 2.4, realizar algunos ajustes a la integration de envíos y revisar problemas con la integración al sistema de gestión de ordenes que poseían.
Actualización de Módulos
Se realizó una revisión de todos los módulos que se encontraban instalados en el sistema validando el propósito para saber si seguían siendo requeridas basados en las reglas de negocio actuales.
Basado en estos hallazgos, se eliminaron muchas de las extensiones que no se utilizan mas, se validaron cuales módulos de terceros tenían actualizaciones disponibles para la versión 2.4 de Magento y para los cuales no existe una versión compatible, se realizo la revision y actualización del codigo para hacerlos compatibles.
Creación y cambios en el módulo de envíos
Luego del proceso de actualización de módulos se nos encargó la tarea de remover la integración de envíos que existía actualmente la cual no era compatible con la nueva versión de magento y no cumplia con todos los requisitos necesarios de manera correcta. Dado esta situación se decidió generar 2 nuevos módulos para cubrir las necesidades basados en las reglas de negocio dado que era necesario que el cliente pueda seleccionar de elegir entre una tarifa de envío basada en la dirección postal o retirar el producto en el local comercial, para lo cual era necesario mostrar la información de la ubicación geográfica en el sitio. Luego de revisar las capacidades actuales de MultiSource Inventory (MSI) en Magento 2.4, se decidió no utilizarlas ya que esta opción complicaba el manejo del stock dentro de Magento si era habilitado.
Para mostrar el costo de envío según al dirección se creó un nuevo modulo que además de proporcionar la información al usuario al momento de la compra, permite al administrador subir un archivo CSV que contiene el pais, estado, codigo postal y costo asociado directamente sin la necesidad de editar esta información desde una interfaz dinámica.
Integración de cambios con el ERP
Todos los cambios anteriores fueron finalmente revisados y se realizaron las modificaciones necesarias para que el modulo encargado de integrarse con la API de RetailVantage para enviar las ordenes generadas en Magento hacía el sistema ERP donde el cliente le da curso a las ordenes y maneja la entrega.
Actualización de pasarela de pago
Una vez que las validaciones anteriores fueron completadas, se nos requirió actualizar el módulo de la pasarela de pago Merchant-E y agregar una validación extra al momento de ingresar los datos de pago al incluir un captcha dentro dele formulario para evitar problemas de validacion de usuarios.
Publicación
Una vez que todo estuvo completado, se revisaron todos los pasos necesarios en un servidor de pruebas para obtener los pasos de migración correcto. Actualmente, el sistema ya se encuentra migrado a la versión 2.4 de Magento permitiendo que la administracion de actualizaciones de seguridad, características y velocidad de esta nueva versión estén disponibles para el cliente de ahora en adelante.
Integración para solicitud de cotizaciones
La web permite enviar solicitudes de cotización para muebles específicos así el posible comprador puede recibir una cotización según sus preferencias, evitando el paso de pago que no es necesario. Esta solicitud inicialmente solo podía hacerse de un elemento por vez.
Fuimos capaces de mejorar esta característica permitiendo utilizar los elementos del carrito del usuario para enviar la solicitud de varios elementos al mismo tiempo. Dado que solo algunos productos tiene la capacidad de solicitar cotizaciones sobre ellos, se agregó la lógica para detectarlos dentro del contenido del carrito del cliente y ofrecerle el formulario de cotización o el proceso normal de compra según corresponda.
Además de recibir las solicitudes de cotización en su correo electrónico, revisamos las capacidades del ERP y validamos que era posible cargar automáticamente los datos de la cotizaciones en el sistema de gestión del cliente, evitando así que se tenga que realizar la carga manualmente y mejorando el tiempo de atención de las solicitudes de cotización.
Estimación de envíos nacionales
Como parte del servicio brindado en el local, existe la posibilidad de enviar los muebles a cualquier lugar de Estados Unidos, pero para lograr esto se debía contactar al local por telefono para que se pueda brindar una estimación personalizada. Este proceso no estaba reflejado en el sitio web y no era hasta el momento de cargar la dirección de envío que el potencial comprador se enteraba que no existía envío a su zona de residencia, dejando solo la opción de retiro en el local disponible.
Para hacer el proceso más fácil para los clientes del sitio web, agregamos la dirección del local cuando se selecciona la opción de “retirar en sucursal” y además se agregó la lógica necesaria para que las solicitudes sean enviadas al local cuando la dirección ingresada no corresponde con aquellas configuradas para envío directo.
De esta forma, los clientes no tienen la frustración de estas novedades y pueden además obtener una costo estimado de envío hacia sus casas directamente sin la necesidad de llamar al local.
Optimizaciones de tiempo de carga
Notamos que la mayoría de las páginas que estaban indexadas por el sitio tenían valores de PageSpeed bajos y realizamos los ajustes para hacerlos mejorar. Inicialmente la pagina de muestra de producto, la cual era la que mayor cantidad de elementos tenía en el indice de google, no estaba haciendo uso correcto del sistema de cache de Varnish, haciendo que la experiencia para el visitante no fuera optima.
Al identificar los elementos que estaban provocando este incidente, pudimos redefinirlos y reducir el tiempo de respuesta promedio del servidor de 1.10s a 0.45s aproximadamente (con cache de página). Luego, nuestros esfuerzos se centraron en lograr reducir la cantidad de cambios en el renderizado de la página (CLS) y mejorar también el despliegue del contenido más extenso (LCP) que son métricas muy importantes para PageSpeed.
También nos concentramos en la sección cabecera de la pagina y el pie de pagina para evitar que tenga un comportamiento que provoque re-ubicación de los elementos a medida que el sitio se va cargando.
Liberando cambios más rápidamente
En la búsqueda de mejorar el servicio para nuestro cliente, validamos que el tiempo que tardaban los cambios en ser desarrollados, validados, aprobados por el cliente y luego publicados se podía mejorar sustancialmente. Así que decidimos darle uso completo a la estrategia de CI/CD (Integración Continua / Entrega Continua en Español) para lograr liberar los cambios una vez testeados en los diferentes entornos automáticamente sin intervención humana.
Teniendo un servidor de pruebas para trabajar, aprovechamos las capacidades de el sistema CI de GitLab que utilizamos y logramos tener un servidor que recibe automáticamente cualquier actualización de código que los desarrolladores integran, donde el dueño del sitio puede validar las nuevas características o arreglos de problemas encontrados.
Una vez que el cliente confirma y aprueba los cambios, podemos liberarlos al entorno final donde los puede empezar a utilizar. Esto nos permite invertir menos tiempo en realizar la actualización de los cambios en los servidores, mayor interacción con el dueño del sitio, mejores devoluciones respecto a los nuevos cambios y mejor cantidad de tiempo sin el sitio funcionando al realizar las actualizaciones.