Actualizar manualmente Prestashop 1.6 a 1.7 no es tarea fácil. En este artículo describiré como lo ha logrado para una tienda online con 200 productos sin perder pedidos, clientes o el catálogo de productos.
Por qué actualizar Prestashop
En un artículo anterior ya me referí a los cambios que se habían producido en Prestashop a partir del lanzamiento de la versión 1.7. Quizá la mejor razón para actualizar de la versión 1.6 a la 1.7 sea el mantener nuestra tienda online con la tecnología más avanzada, dada cuenta de que el soporte para la versión 1.6 caducará en un tiempo.
Esto va a afectar tanto al core de Prestashop como a las plantillas y los módulos. De hecho, muchos desarrolladores ya se han puesto las pilas para ir evolucionando sus productos a la nueva versión.
Increased monitoring of concentrations of drugs transported by P-glycoprotein that have a narrow therapeutic index such as digoxin and sirolimus is indicated. Fluzone High-Dose Quadrivalent comes in 0. CEEs are marketed under a large number of brand names throughout the world http://www.farmaciasonline.org/. As you grow older, these hormones help preserve muscle mass and promote sexual fertility and health.
La versión actual de Prestashop -a la hora de escribir esta entrada, la 1.7.2.4-, es bastante estable con respecto a las primeras versiones. No voy a hablar de las novedades de la versión 1.7 porque hay muchos artículos y muy buenos sobre las bondades de Prestashop 1.7.
Después de mucho leer en el blog de Prestashop, en el de mi buen amigo José Luis Torres y del indispensable Víctor Ródenas, cada uno de ellos me dieron ideas pero no llegaron a resolverme el problema por completo. Así que, me puse manos a la obra con lo que cada uno de ellos me aportaron e investigué por mi cuenta. Estos son los resultados.
Qué voy a perder actualizando Prestashop a la 1.7
Prestashop 1.7 abandona la tecnología Smarty para el desarrollo de plantillas, sustituyéndola por Symphony. Esto quiere decir que las plantillas desarrolladas para la versión 1.6 no funcionarán para la 1.7.
Asimismo, muchos de los módulos tampoco la harán.
Por tanto, la actualización requerirá una inversión en:
- Una nueva plantilla
- Nuevos módulos
- Bastante tiempo y paciencia para hacer la actualización y reconfigurar la tienda
Pasos para actualizar Prestashop a la 1.7
Estos son los pasos que he ejecutado para realizar la migración.
Planificar la actualización
Antes de nada, debemos planificar cuidadosamente la actualización de nuestra tienda online. Ello supone contar con la plantilla y módulos necesarios para la versión 1.7 y, sobre todo, ver en qué días vamos a poder hacer la migración. Hay que tener en cuenta que, por desgracia, deberemos reconfigurar la tienda casi al completo, lo que nos llevará 2 o 3 días.
Copia de seguridad de nuestra tienda online
La primera tarea será realizar una copia de seguridad de nuestra tienda online, lo que supone hacer una copia de todas las carpetas y archivos, así como de la base de datos. Si en nuestro servidor disponemos de un panel de tipo Plesk o cPanel, esto no nos debería suponer ningún problema.
Ambas copias de seguridad, archivos y base de datos, las descargaremos a nuestro ordenador.
Crear una tienda Prestashop 1.7 en un servidor local
Lo más recomendable es preparar un servidor local para realizar la migración. Esto se puede hacer instalando WAMP (para Windows) o MAMP (para Mac OS).
Una vez tengamos preparado y configurado nuestro entorno local, vamos a instalar una versión de Prestashop 1.7 en nuestro servidor local, siguiendo las instrucciones del software de servidor local que hayamos elegido.
Lo haremos, por ejemplo, en http://localhost/17.
Para ello seguiremos los pasos que nos indica Prestashop hasta tener una tienda de pruebas totalmente configurada. Aunque nos lo pida, NO debemos eliminar la carpeta /install, una vez terminada la instalación, porque nos hará falta más tarde. En todo caso, la renombraremos, para que Prestashop nos deje acceder a la administración de la tienda.
Recrear nuestra tienda en Prestashop 1.6 en el servidor local
Ahora crearemos un nuevo servidor local, en donde instalaremos la copia de seguridad de nuestra tienda online, tanto de las carpetas y archivos como de la base de datos.
Con phpMyAdmin crearemos una base de datos vacía e importaremos la copia de seguridad de la base de datos. Una vez importada, en la tabla ps_shop_url, modificaremos el registro para adaptarlo a la nueva URL en local.
Por ejemplo, si nuestra tienda estaba en mitienda.com, en el servidor local habremos creado http://localhost/16 y en la tabla anteriormente mencionada, debemos cambiar el registro para que acceda a la nueva URL.
A continuación, modificaremos el archivo /config/settings.inc.php para cambiar los datos de acceso a la base de datos en el servidor local.
Por último, comprobaremos que nuestra tienda funciona correctamente en el servidor local.
Desinstalación de plantillas y módulos
Lo que explico a continuación es de gran importancia para que el proceso se desarrolle correctamente.
Con la tienda funcionando en local, procederemos a cambiar la plantilla por la que trae por defecto Prestashop 1.6, la default-bootstrap.
A continuación, procederemos a deshabilitar, desinstalar y eliminar los módulos que tengamos activos. Algunos módulos crean nuevas tablas en nuestra base de datos. Con un poco de paciencia, las debemos eliminar si es que el módulo no lo hace al eliminarlo.
En este momento deberíamos tener una base de datos bastante limpia como para hacer la migración.
Copia de las imágenes de la tienda antigua a la nueva
Procederemos a mover la carpeta /img de la instalación de nuestra tienda a la instalación de Prestashop 1.7, sobrescribiendo lo que haya en la carpeta de destino.
Cambiar y actualizar la base de datos
El siguiente paso es hacer que Prestashop 1.7 trabaje con la base de datos de nuestra tienda en Prestashop 1.6. Ello requiere de dos pasos:
- Primero con figuraremos la instalación de Prestashop 1.7 para que lea la base de datos de la versión 1.6. En Prestashop 1.7 ya no se utiliza el fichero settings.inc.php para inicar con qué base de datos trabaja, sino que estos datos se encuentran en el archivo /app/config/parameters.php. Allí tendremos que introducir el nombre de nuestra base de datos de Prestashop 1.6, el usuario y la contraseña.
- Luego tendremos que ejecutar la siguiente línea, siguiendo el ejemplo que he puesto anteriormente: http://localhost/17/install/upgrade/upgrade.php. Esto hará que la base de datos se adapte a la versión 1.7, creando nuevas tablas y campos.
Últimos pasos
A partir de este momento, tendremos una instalación de Prestashop 1.7 en la que conservamos todos los datos de nuestra tienda antigua. Si accedemos a la administración, encontraremos nuestro catálogo, nuestros clientes, los pedidos, las zonas que hayamos definido, impuestos, etc.
Ahora solo queda instalar y configurar la nueva plantilla y aquellos módulos que sean necesarios para el correcto funcionamiento.
Pruebas online
Es recomendable, antes de cambiar la tienda antigua por la nueva, crear un subdirectorio o un subdominio y llevar allí la tienda que hemos creado para una última prueba y configuración.
Si todo ha ido bien, solo tendremos que sustituir los archivos de la tienda antigua por los de la nueva y habremos terminado con la actualización.
Ahora, habrá que revisar que todo funciona correctamente e ir resolviendo los problemillas habituales de Prestashop.
Algunos trucos
Estos son algunos trucos adicionales que te pueden ayudar si te atascas.
- Eliminar los archivos .htaccess tanto en el servidor local como cuando se suba la tienda al servidor de producción.
- La base de datos regenerada para Prestashop 1.7 puede ser muy grande, por lo que es conveniente tener una forma alternativa para poder recrear la base de datos en el servidor de producción o hacerlo por partes.
- Mientras estemos trabajando con la tienda para instalar plantillas y módulos, es preferible desconectar los cachés.
¡Suerte con la migración!
[wpforms id=»1240″ title=»true» description=»false»]
10 respuestas
Hola. Estoy intentado lo que indicas aquí; pero tengo un problema para acceder a la administración de la tienda
Después de copiar todos los archivos a local y modificar la URL en la base de datos, la tienda carga pero cuando intento acceder al backoffice no da entrado en la URL y me sale un error
Hola Marcos:
Mira a ver si tienes algún fichero .htaccess en la carpeta de administración y bórralo. A ver si eso te ayuda.
En cualquier caso, mira a ver si me puedes dar más datos del error que te sale.
Hola, la información creo que no es correcta, la base de datos no tiene la misma estructura, para pasar los datos manualmente se tiene que cargar tabla por tabla y ver que contenido cambia en la base de datos, algunas tablas tienen campos nuevos y otros son descartados.
Hola Antonio:
Efectivamente, ambas bases de datos tienen estructuras diferentes. De ahí mi comentario «http://localhost/17/install/upgrade/upgrade.php. Esto hará que la base de datos se adapte a la versión 1.7, creando nuevas tablas y campos.»
Saludos.
Buenas noches,
Llevo todo el día leyendo artículos para actualizar 1.6 a 1.7.
Y el tuyo es el que mas me ha gustado.
Muchas gracias Sonia.
Hola Jorge,
Tengo un problema, al migrar mi web 1.6 a local parece que todo lo ha migrado bien, excepto las contraseñas de los clientes, no ha migrado ninguna. He probado con varias y todas me pone error de autenticación.
Pero si intento dar de alta uno de los clientes que me dan error, me dice que el usuario ya existe.
He probado con mi tema, con el default, borrado cache, actualizado las url amigables,,,y nada, no me funcionan las contraseñas.
Me puedes ayudar???
Muchas gracias.
Hola Sonia:
Si no has tocado la tabla de clientes de Prestashop, normalmente, ps_customers, las contraseñas estarán allí. El problema está en como encripta/desencripta Prestashop esas contraseñas.
Si mantienes la instalación antigua de Prestashop 1.6 busca el fichero /config/settings.inc.php. En este fichero buscas una cadena que es _COOKIE_KEY_ y, al lado encontrarás una cadena alfanumérica. Cópiala al portapapeles.
Ahora vas a la instalación de Prestashop 1.7 y buscas /app/config/parameters.php. En este fichero encontrarás también la cadena _COOKIE_KEY_ y reemplazas la cadena alfanumérica por la de 1.6.
A ver si así te funciona. Dímelo y, si no, probamos otra cosa.
Jorge,
Todavía estoy en el paso de pasar mi web a local, todavía no he empezado con 1.7.
He hecho lo que me dices de copiar _COOKIE_KEY_ del fichero /config/settings.inc.php a la misma ruta pero en local. Ahora me sucede que al intentar entrar al Back Office me dice «El empleado no existe o la contraseña introducida es incorrecta.» Y si le doy a recuperar contraseña me dice «se ha producido un error al cambiar su contraseña».
Gracias.
Buenos días Jorge,
Sabes como puedo recuperar el acceso al Back-Office?
Gracias.