Migraciones Prestashop

Después de un par de años trabajando con Prestashop he hecho unas cuantas migraciones y me he encontrado varias situaciones que me gustaría comentar en este post.

No es lo mismo migrar dentro de una rama (1.5.X, 1.6.X) que dar un salto (1.4.X ->1.6.X), los temas y módulos no son compatibles (hay excepciones, pero sobre el papel no son compatibles).

Aquí se aplica el sentido común, cuanto mas lejos estén las versiones mas problemas pueden surgir.

Actualización Prestashop

Actualización Prestashop

Aún teniendo en cuenta que la migración dentro de una rama es mas sencilla, es muy posible que un tema  que no se haya testeado específicamente en esa versión, de problemas. Prestashop aplica también mejoras en el tema default que los desarrolladores de temas tienen que aplicar. Lo mismo para los módulos.

Migraciones dentro de la misma rama

Es por esto último que es posible que haya problemas con el tema y módulos aunque se migre dentro de la misma rama. Suelen ser problemas menores pero pueden pasar. La mayoría de temas, a parte de los ficheros propiamente de la plantilla, tienen sus modificaciones para los módulos nativos habituales que usan todas las tiendas (sobretodo carrito, pero también busqueda, newlsetter..etc) ya que éstos están fuertemente integrados con el tema.

 

A parte de problemas en los módulos y tema, me he encontrado fallos de todo tipo en el funcionamiento base de la tienda, debidos a cosas de lo mas variopintas, desde configuraciones que aparecían duplicadas en Prestashop y provocaban funcionamientos extraños a desapariciones de la asignación de impuestos y otros “malentendidos”.. Nada que no se pueda corregir aplicando alguna sentencia SQL para cambios masivos en base de datos.

Que vaya todo perfecto suele ser una lotería… En general lo de actualizar en un click hay que cogerlo con pinzas y muy a menudo no va bien. Siempre hay algún tipo de problema. Afortunadamente el método manual es mas robusto.

 

Teniendo en cuenta las migraciones con salto de versión

Las migraciones de 4-5h sólo se pueden aplicar en tiendas muy muy sencillas (sin ningún módulo no nativo de Prestashop, con un catálogo pequeño..etc) donde se usa el tema default y el tema estético se obvia totalmente. Se usa el modulo de migración si es posible (sino se aplica la migración manual), y se actualiza el tema default. Se checkea que todo vaya bien (sobretodo si tiene pago por tpv) y se aplican la correcciones correspondientes. Previamente se ha hecho una copia de seguridad de todo, por si surge algún problema.

Pero este escenario no suele ser el habitual en una tienda que rinde. Es decir, seguramente se ha usado un tema comprado, se ha modificado y personalizado, se han instalado e integrado módulos, se han corregido fallos, se han aplicado overrides para cosas a medida..etc etc.

En este caso realmente hay que hacer una evaluación previa de que funcionalidades extra tiene la tienda, y como reproducirlas. Suele ser un proceso mas costoso en todos los sentidos (tiempo y dinero).

El hecho de que la plantilla y módulos no sean compatibles hace que en muchos aspectos sea como hacer una tienda de cero.

Lo mas sensato, desde mi punto de vista (y es lo que hago), es desarrollar una tienda nueva en paralelo en un subdominio (protegido por contraseña) v2.tutienda.com donde se haya migrado la tienda original y se pueda trabajar y testear todo. A parte siempre esta la versión local de desarrollo donde se trabajan temas mas complejos si es necesario y se aplican luego a la versión v2.

migra_2

Es decir, se trabaja en el catálogo de la V2 de forma que se tiene claro que esta tienda sera la que saldrá a producción. Al fin y al cabo el catálogo es lo mas importante.

En esta tienda V2 se aplica el nuevo tema, se instalan los módulos y todo lo necesario para reproducir las funcionalidades de la tienda vieja.

Normalmente suelo aconsejar a la gente que aproveche la migración para mejorar toda la tienda, ya que es un momento ideal para replantearse muchas cosas y darle un aire diferente a la tienda.

Una vez esta todo testeado en esta nueva tienda será necesario actualizar las tablas de pedidos,clientes,direcciones..etc. Se tiene que lanzar el proceso de actualización contra la base de datos (en local) y con la base de datos actualizada se seleccionan únicamente las tablas implicadas en estas entidades y se machacan en la V2.

El script manual de actualización de base de datos muestra un fichero con el resultado de las operaciones. Se van aplicando incrementalmente scripts php/SQL para que el modelo de datos se ajuste versión a versión.

Migración manual base de datos

Migración manual base de datos

Es entonces cuando se hace el Intercambio entre la V2 y la versión en producción. Se trata de que el dominio bueno apunte ahora a la tienda V2. Lo mas aconsejable es poner la tienda en mantenimiento durante unas horas para que no coja a nadie en medio de alguna transacción.

migra_3