Cómo migrar una tienda Prestashop de una ubicación a otra

Nota: Estas instrucciones son válidas para Prestashop 1.3, 1.4 y 1.5.

Los pasos a seguir para conseguir esta tarea son los siguientes:

1. Realizar backup de la base de datos de la tienda que se desea migrar:
mysqldump -u [usuario] -p -a [nombre_de_la_bd] > c:/ruta/backup.sql

2. Copiar los ficheros de nuestra tienda a la nueva ubicación.

3. Abrir el fichero /nueva_ubicacion/config/settings.inc.php y editar las líneas correspondientes a la definición de las variables __PS_BASE_URI_, _DB_NAME_, _DB_SERVER_, _DB_USER_ y _DB_PASSWORD_ para que se ajusten a la nueva ubicación y a la nueva base de datos.

4. Crear una nueva base de datos vacía e importar en la misma el backup previamente realizado.
mysql -u [usuario] -p -D [bd_nueva] < c:\ruta\backup.sql

5. Dar permisos al usuario designado en el paso 3 para que tenga acceso total a la nueva base de datos
grant all on [bd_nueva].* to [usuario]@localhost identified by "[contraseña]";
donde [usuario] y [contraseña] deben coincidir con los datos introducidos en el fichero settings.inc.php del paso3.

6. Nota: Este punto sólo es válido para Prestashop 1.3. Para 1.4 y 1.5 lee más adelante, el apartado actualizado el 20/03/2013.
Editar el valor de la variable de configuración PS_BASE_URI en la base de datos, cambiándolo por el de la nueva ubicación, que debe coincidir con el valor dado a la variable __PS_BASE_URI_ en el fichero settings.inc.php del punto 3.
update ps_configuracion set value="[nueva_ubicación]" where name="PS_BASE_URI";

7. Eliminar los archivos de la tienda de la ubicación original, así como su base de datos asociada.

Y listo, ya tenemos nuestra tienda en la nueva ubicación. Por supuesto se presupone que en la nueva ubicación ya hay un servidor web con php y mysql levantados.

Estas instrucciones son válidas también para clonar una tienda. En este caso simplemente basta con omitir el paso 7, y si alojamos el clon en la misma máquina que la tienda original, no es necesario dar de alta un nuevo usuario/contraseña para gestionar la BD, por lo que en el punto 3 sólo habría que modificar los 2 primeros parámetros y el grant hacia la nueva BD debería darse al usuario antiguo.

20/03/2013 - Actualización: Migrar Prestashop 1.4 y 1.5

Para migrar una BD de prestashop 1.5 es necesario realizar algunos cambios más:

  1. update ps_configuration set value="[nuevodominio.tld]" where name="PS_SHOP_DOMAIN" or name="PS_SHOP_DOMAIN_SSL";
  2. update ps_shop_url set domain="[nuevodominio.tld]",domain_ssl="[nuevodominio.tld]";
  3. Reemplazar en el .htaccess todas las referencias al antiguo dominio por el nuevo.

Si no se realizan estos cambios, la tienda nueva redireccionará a la URL de la tienda antigua.

  1. Gracias por compartir,
    Añado una contribución..
    En la versión 1.4.3 de prestashop.
    El punto 6 no es correcto.
    Se deben modificar los campos PS_SHOP_DOMAIN y PS_SHOP_DOMAIN_SSL por la base del dominio: Por ejemplo: tudominio.com.
    El campo PS_BASE_URI no existe.

    • brais
    • 7 septiembre 2011

    Hola,
    He intentado varias veces hacer esto para clonar la web en el mismo servidor. Mi problema es que cuando pongo el dominio de la pagina clonada, esta redirecciona automáticamente a la original, y no se que puede ser… me estoy volviendo loco

  2. Buenas, perdón, en qué archivo de la base de datos debo generar la consulta? (paso 5 y 6)

  3. No entiendo muy bien la pregunta. Las consultas no se realizan en ningún archivo, sino contra la base de datos. Te debes conectar a la base de datos asociada a tu tienda (con cualquier cliente mysql) y ejecutar las consultas sobre la misma.

  4. Hola Juan,
    Muchas gracias por compartirlo con nosotros.
    Una duda, si clonamos la tienda (manteniendo las dos) en dos dominios distintos… Nos penaliza Google?

  5. Es muy probable que sí penalice por duplicidad de contenido. Por otro lado, ¿para qué querrías hacer algo así? A la larga resultaría complicado mantener ambas tiendas actualizadas. Por ejemplo las compras de una tendrías que reflejarlas en la otra para que no se te desajuste el stock. Además, suponiendo que no te penalicen los buscadores, tu tráfico sí se dividirá en 2, por lo que vería más complicada la comercialización de cualquier banner en alguna de las tiendas. En mi opinión, y sin conocer más detalles, creo que es un error hacer lo que planteas.

    • wippa
    • 31 diciembre 2011

    Por paradógico que resulte, si clonas una tienda, el trafico de la 1º no disminuye por la existencia de la segunda, se conozca o no, sinó que la segunda irá generando nuevo tráfico. Es un fallo de total lógica asumir que el tráfico se divide.

    La penalizacion por duplicidad no me queda claro si tratandose de 2 dominios distintos aplica.

    Un segundo dominio puede ayudar a gente que descarta una web basandose en su nombre, por simple o por complicado. Te permitiría utilizar 2 plantillas distintas, con 2 imágenes y usos de la web para distintos públicos.

    Otra idea, es además, utilizar la misma base de datos en ambas tiendas. Mismos productos, misma configuración, 2 caras. (Sé que alguien dirá, si tiene la misma base el template será igual… para eso somos mas inteligentes que el template y lo editamos antes, y despues sustituimos… muchas vecs solo con una imagen cambia mucho)

    Son ideas.

  6. Hola, Juan,
    te agradecería mucho tu ayuda. Llevo varios días peleándome con una migración desde local a Servidor 1and1.
    He leído y releído en foros y más pero no doy con la tecla.

    Antecedentes:
    Exporto mi BBDD local a fichero SQL.
    Creo BBDD en Servidor 1and1 (Tipo: MyISAM) e importo mi fichero.
    Cargo todos los archivos de la tienda al servidor (en local he trabajado con la versión 1.4.7 de Prestashop).
    Borro los archivos de tools/smarty/compile exceptuando index.php
    Cambio fichero settings.inc.php con los nuevos datos.
    ….

    Y parece que todo funciona correctamente pero cuando le doy al botón de añadir al carrito me da error:

    “TECHNICAL ERROR: unable to add the product.
    Details:
    Error thrown: [object XMLHttpRequest]
    Text status: error”

    Aparte, parece como si la aplicación hubiera perdido algún tipo de funcionalidad, como por ejemplo que cuando le doy a ejecutar Live Edit da error también.

    En fin, yo ya no sé qué más puedo hacer. He instalado y reinstalado como 7 u 8 veces y probado de todo.

    ¿Puede ser algún problema de mi servidor? Pero es que tengo una tienda funcionando y no me da ningún tipo de problemas. ¿o más bien de ficheros o de algo que haya que cambiar en la BBDD?

    Tengo instalado el sistema en un dominio de prueba en http://www.peluqueriassevilla.com

    Por favor alguna ayuda.
    Gracias

  7. Hola Javivi, ¿la versión local de Prestashop es la misma que tienes en el servidor de 1&1?… si la versión de la base de datos no se corresponde con la versión del código, puedes tener todo tipo de errores raros. Asegúrate primero de eso, porque por tu comentario no queda muy claro.

  8. También tenéis que tener en cuenta que cuando se suba a un servidor deberéis colocar correctamente los permisos.

    • efe
    • 13 marzo 2012

    Excelente, funciona al 100, muchas gracias

    • Ricardo
    • 16 marzo 2012

    hola, a mi me pasa lo mismo. clone una pagina y cuando ingreso a la nueva se redirecciona a la anterior. Solucionaste el problema?

  9. la verdad es que haciendo eso y aún así da problemas.

    En mi caso primero salía un error en un módulo que no sé pq en el original no salía.

    Después resulta que la puse en el nuevo servidor ip/~usuario

    y al hacerlo así antes de que cambien los dns no me pilla la url de los css.

    Me pilla ip/themes en vez de ip/~usuario.. a seguir buscando…

    La redirección que dicen también me salía en el sql que has importado debes hacer un busca y reemplaza del dominio

    • Larose
    • 16 junio 2012

    Hola,
    A mi también me redirecciona al dominio anterior.
    ¿Cómo evitar que redireccione de la nueva instalación a la vieja?

    • Charly
    • 16 junio 2012

    @brais
    Hay dos cosas que suceden al migrar la tienda una es que te manda a la antigua direccion y otra que no te deja entrar al backoffice.

    Para entrar al backoffice despues de que editaste el sufijo de las tablas en el settings.inc.php deves entonces entrar con las credenciales de la antigua tienda (se supone que usaras los datos de la antigua ya que solamente migraste de lugar pero usaras los mismos datos) pero no te deja entrar con las credenciales nuvas credenciales porque ya no las reconoce entonces colocas tus credenciales antiguas y te dira que el password o usuario no son validos entonces haces esto: http://vhspiceros.blogspot.mx/2009/09/recuperar-clave-de-usuarios-en.html y despues ya que te deja entrar al backoffice te advierte que tu dominio esta apuntando a otro lado que lo corrigas eso es en Back Office/ Preferences / SEO & URLs y listo ya no te mandara ala antigua direccion.

  10. Un groso! gracias por el aporte

  11. @Nachoo
    En realidad desde la 1.4.3 la tabla es “ps_configuration” y dento de esa tabla buscar la hilera: “PS_SHOP_DOMAIN” y “PS_SHOP_DOMAIN_SSL”.
    Que está en al Página 6 aproximadamente del phpmyadmin.

    Imagen: Ejemplo de lo mencionado

    Referencia: http://vccit.com/como-migrar-una-tienda-prestashop-de-una-ubicacion-otra

    • Laura
    • 30 enero 2013

    Hola, tengo una pregunta…desde mi ignorancia en este tema.. ¿Si migro mi tienda a prestashop pierdo todo el posicionamiento que he “avanzado hasta ahora” con mi tienda online actual? Tengo una tienda en Palbi n.com y me gustaría saber las desventajas de migrar a prestashop antes de hacerlo. Graciasss!! Te felicito por tu blog!

  12. Hola Laura. En principio, la respuesta es que sí perderías posicionamiento. Para no perderlo tendrías que buscar la manera de que todos los enlaces de tu tienda actual se mapeasen a enlaces de la tienda nueva. En caso de que consiguieras eso, que en realidad no es muy difícil pero requiere un poco de pericia usando el módulo de reescritura de tu servidor web, entonces no perderías posicionamiento. Yo veo 2 opciones:
    – La más sencilla sería reescribir todos los enlaces antiguos para que se redirigiesen a la portada de tu tienda nueva.
    – La más currada sería crear reglas de reescritura que mapeasen el antiguo enlace de la sección X con el nuevo enlace de la sección X, o del antiguo enlace al producto Y al nuevo enlace al producto Y, para todas las secciones, productos y zonas de tu web.
    Espero que te haya sido de utilidad.
    Un saludo y suerte!.

  13. Muy buen articulo,tras los pasos que comentais, en la migracion de 1.5.3 tuve que modificar tambien la tabla ps_shop_url con el nuevo dominio. Funciono a la perfeccion.
    Gracias

  14. OJO esto no es tan fácil como aquí lo pintan. NO explica como exportar Productos, Categorías, Clientes, Pedidos, Newsletter, etc … Si das estos pasos te encontraras con grandes errores.

  15. Hola Jose Llucia: al trasladar una copia de la base de datos completa no hace falta exportar/importar cada grupo de elementos por separado (productos, categorías, pedidos, etc). Todo va tal cual en el fichero SQL que pasas de un sitio a otro. En realidad, sí es tan fácil como indico, es un proceso que he realizado varias veces tal y como está descrito 😉

    • dakkil
    • 18 septiembre 2013

    (novato) Me pierdo en el último paso.

    Reemplazar en el .htaccess todas las referencias al antiguo dominio por el nuevo.

    Donde encontraría ese fichero??

  16. Hola dakkil. El .htaccess tiene que estar en la raíz de tu portal, siempre y cuando utilices Apache como servidor web. Si utilizas IIS el fichero a tocar es el web.config (IIS7, en el 6 no recuerdo dónde había que tocar, hace mucho tiempo de eso… 🙂

    • GuillermoG
    • 22 octubre 2013

    Despues de realizar todos los pasos tengo problemas con algunas imagenes y css que no me esta lenvando, no las encuentra, cuando ejecuto la url de la ubicacion de la imagen aparece error 404. Creo que debe ser por permisos en el .htaccess dentro de la carpeta /modules, pero no se porque, ya que no esta filtrando imagenes. Saben que puede estar pasando.

  17. Hola, estoy tratando de migrar mi tienda prestashop, solo que también estoy mudando mi dominio, entonces actualmente ingreso con una url que me proporcionaron en mi hosting, segui los pasos que mencionas sin embargo no se como sustituir mi dominio, y lo sustituí por la url que utilizo actualmente, sin embargo me redirecciona a mi antiguo sitio web, Que debo hacer?, gracias. Por cierto en PS_SHOP_DOMAIN_SSL y PS_SHOP_DOMAIN el valor que trae es localhost, aun asi debo cambiarselo?

  18. Hola Dago, perdona la demora en contestarte, seguramente a estas alturas ya habrás solucionado el problema, en cualquier caso, te comento: la URL temporal que te habrán dado seguramente la has tenido que utilizar solo durante unas horas, mientras se propagaba la información de DNSs nueva, por lo que en este caso yo no habría hecho el cambio para tener que volver a hacerlo al cabo de unas horas. Simplemente habría puesto la tienda en mantenimiento, la habría migrado (una simple copia) y esperado hasta comprobar que estaba respondiendo en el nuevo alojamiento. Por lo que entendí, en realidad no cambiabas de dominio, sino solo de servidor (el dominio se mantenía), por lo tanto no habrás tenido que hacer ningún otro cambio. No tengo claro si las variables que indicas deberían funcionar con el valor “localhost”… no le encuentro mucho sentido. En esta caso yo probaría a no cambiarlo y en caso de mal funcionamiento, realizar el cambio. Es difícil contestar con exactitud sin ver el escenario completo. ¡Suerte!.

  19. Buenas sigo los pasos, pero solo veo una pagina en blanco en mi nuevo dominio :S

    y no puedo entrar al administrador

  20. @rogama
    se me olvidaba, uso la version 1.5.2

  21. Tengo el mismo problema que rogama, ya hice todas las configuraciones explicadas previamente y nada, solo páginas en blanco, ayuda, estoy desesperado

  22. hola
    migre la tienda a nuevo dominio y hosting
    puedo ver la nueva url tienda funcionando
    el problema es que he perdido los accesos a la tienda como asi tambien los url que me llevan al login de la aplicacion

  23. Tengo mi sitio en versión y 1.4, sobre mi dominio en http://www.miweb.mx, y necesito ahora agregar un nuevo subdominio, para que me responda la misma tienda tienda.miweb.mx.
    Ya agregue los bindins correspondientes en el IIS, y mi DNS responde correctamente, sin embargo al entrar por el subdominio, Prestashop hace un redireccionamiento al dominio original.
    Cabe mencionar que si acceso consulto algunas categorias o algun resultado del busqueda, si me conserva la navegación con el subdominio.
    Que me recomiendan, donde puedo configurar un segundo dominio para mi tienda??

  24. Hola Edgar,
    desconozco si es posible asociar un subdominio “secundario” y que se navegue por el sitio a través del mismo igual que desde el dominio canónico… Pero en caso de poder hacerse, me parece una muy mala idea desde el punto de vista SEO, ya que divides tu tráfico entre 2 sites. Mi recomendación es que elijas uno de los 2 como canónico y dejes la redirección tal y como funciona ahora. Un saludo!.

    • edgar
    • 6 marzo 2016

    Bueno, acabo de crear mi dominio por medio de hostinger y utilicé el instalador automático de prestashop ya había instalado prestashop y utilizado como programa de base de datos appserv que es un servidor local y básicamente lo que yo necesito es colocar la base de datos que ya tenia de prestashop en el servidor local en el de hostinger, ¿como se podría realizar esta operación?

  25. Que tal gente yo logro que conecte pero no me carga ni css ni javascipt ni nada de la plantilla!!!!
    Alguien me puede ayudar????

  26. La descripcion de la web arriba pone error 404

  27. he migrado la tienda a un XAMPP para pruebas

  28. Hola Edgar, dudo mucho que la operación que propones funcione bien, entre otras cosas porque los elementos instalados en el hosting seguramente no tendrán nada que ver con los que tienes en local, así que la cantidad de incongruencias que pueden surgir es tan imprevisible que no creo que merezca la pena hacerlo así (imágenes, módulos, rutas, versión exacta de prestashop, urls…)
    ¡Un saludo, y suerte!

  29. Hola Arturo. Te recomiento que utilices alguna herramienta tipo firebug (pestaña “red”) para averiguar de dónde está pidiendo dichos ficheros faltantes. Lo más probable es que tengas algún problema de rutas, que se soluciona con los consejos que indico en el post.
    ¡Un saludo!

  1. Aun no hay enlaces.

@jfcapristan