migración prestashop
Podríamos decirte que la migración a la nueva versión de PrestaShop será fácil y la podrás realizar sin problemas. Pero te estaríamos mintiendo. Efectivamente, puedes intentar migrar a la nueva versión pero, entonces, prepárate para tener que adaptar o reemplazar muchos de tus Addons.
Nos explicamos: PrestaShop 1.7.0.0 es una versión principal, no solamente por el hecho de reunir una gran cantidad de cambios más que suculentos, sino también en el sentido SemVer, o versionamiento semántico del término: esta nueva versión está rompiendo partes de la compatibilidad retroactiva. Y es que, si no lo hiciera, no habría tenido sentido haber creado una versión y este post estaría hablando de la versión 1.6.2.0.
La migración de temas vs. módulos
Para empezar: los temas de la versión 1.6 no funcionarán en la versión 1.7, así de sencillo. Se ha reescrito la manera de construir los temas, y todo hace pensar que los diseñadores estarán encantados de encontrar un nuevo Starter Theme que suponga una base sólida para la creación de los suyos propios. Ten en cuenta que, gracias a estos sólidos cimientos, los nuevos theme van a poder crearse en la mitad de tiempo lo que se hacía en la versión anterior.
¿Y cómo queda la compatibilidad entonces la compatibilidad de los Módulos? En principio, todos los módulos de la versión 1.6 que estén bien creados deberían funcionar con pocos o, incluso ningún cambio. Todos, excepto:
– Los módulos que se centren en los temas o en el front office debido a que se ha reescrito la manera en que los temas se han hecho;
– Los módulos enfocados en la página de Producto dado que el DOM, o Modelo de Objetos del Documento, de esta página ha cambiado;
– Los módulos que se centran en la página de Módulos. De nuevo, porque el DOM de esta página ha cambiado.
¿Cómo hacer la migración PrestaShop 1.6 a la versión PrestaShop 1.7?
Son varios los pasos que habría que tener presente a la hora de migrar a la última versión de PrestaShop. ¿Cuáles?:
– Volver a escribir el theme. Lo mejor para ello sería usar el Starter Theme o, si no, el tema por defecto;
– Adaptar los módulos de la página de Producto en CSS y JavaScript;
– Adaptar también los módulos de la página de Módulos en CSS y JavaScript;
– Probar el resto de módulos, como harías en cualquier publicación.
En cualquier caso, lo más recomendable siempre va a ser asegurarse de que tus módulos funcionan para PrestaShop 1.7.
Advertencias para la migración de PrestaShop 1.6 a 1.7
Los módulos de pago han cambiado, así que asegúrate de comprobar lo siguiente:
– Asegúrate de que se han cambiado todas las variantes pasadas a Smarty y asegúrate de que esté asignado en lo que aún se esté utilizando;
– El enlace $ está en desuso (incluso si se ha pasado a Smarty, este será eliminado en algún momento), así que asegúrate de utilizar {url} helper;
– Asegúrate de usar la nueva forma de llamar a las plantillas: fetch (módulo:modulename/views/template.tpl);
– No añadas tus activos con Hard code en el código del encabezado (no cambiaría, pero no es recomendable);
– Smarty se evade automáticamente, por lo que procura eliminar todo | escape: ‘html’: ‘UTF-8’ (solo para front templates) y agregar nofilter si se usa html;
– Muy importante: fíate únicamente de las variables documentadas. Cualquier otra variable que provenga de un módulo, o simplemente sea un sobrante, podrá ser eliminada en cualquier momento;
– Si utilizas el paquete backward_compatiblity, comprueba antes de importarlo que la versión de PrestaShop sea 1.4. Con la versión 1.7 esto generará un error grave.
¿Cómo hacer un módulo compatible con las versiones 1.6 y 1.7?
Aquí van unos cuantos consejos para conseguir un módulo compatible con ambas versiones:
– Usa el sistema de traducción heredado ($ this-> l);
– Utiliza 2 plantillas diferentes, dependiendo de la versión;
– Implementa getWidgetVariables y renderWidget, pero no implementes explícitamente la interfaz de PHP;
– Crea todo el método específico de Hook como hookDisplayHeader y llamar el renderWidget con los parámetros correctos.
Would you like to share your thoughts?
Your email address will not be published. Required fields are marked *