10/09/20 Franck Bugnet Tuto

La meilleure façon de migrer un site PrestaShop de 1.4 à 1.6 ou 1.7

Enfin une vraie solution sûre et simple pour faire passer votre vieux site Prestashop dans la dernière version 1.6, tout en conservant l'intégralité des données...

Problèmes avec la méthode officielle de migration proposée par PrestaShop

Il ne se passe pas une semaine sans qu'un utilsateur de mes modules me demande si c'est ou non une bonne idée de migrer un "vieux" site vers la dernière version de PrestaShop 1.6 ou 1.7, et si oui, comment faire.

Ayant du moi même me lancer dans l'aventure de la migration de ce site de 1.4.5.3 vers 1.6.1, j'ai pu comme presque tout le monde, me rendre compte que l'outil de migration automatique de PrestaShop (module "one click upgrade" ou "migration en 1 clic") était totalement incapable d'aller au bout du processus. Le nombre d'erreurs et de plantages suite à l'utilisation de cet outil est assez incroyable, dés que l'on part d'une version assez ancienne.

Si vous souhaitez malgré tout l'essayer, mon meilleur conseil sera de le faire pas à pas:

  1. migration en 1 clic de votre version actuelle vers la dernière version 1.4
  2. migration en 1 clic vers la dernière 1.5
  3. migration en  1 clic vers la dernière 1.6

Pour la 1.7, je rappelle que les modules compatibles 1.6 ne le sont pas forcément sur la 1.7 et surtout que les thèmes 1.6 ne fonctionnent pas sur 1.7. Inutile d'essayer, ce n'est pas la même technologie qui est utilisée.

En conclusion la probabilité de succés avec cette méthode est assez faible.

Heureusement il existe une autre solution, qui fonctionne !


Cette page est visible uniquement aux personnes inscrites à notre newsletter. Merci de vous identifier et de vous inscrire à notre newsletter. C'est gratuit.



Méthode de mise à jour de PrestaShop alternative, plus technique, mais qui plante moins souvent

Il y a donc mieux, beaucoup mieux et je vais partager avec vous cette méthode vraiment géniale. Pour résumer il s'agit de:

  1. Migrer la base de données dans le nouveau format 1.6, en conservant ses données, sans faire en même temps de migration du code de PrestaShop.
  2. Associer la base ainsi mise à jour à un Prestashop 1.6 tout neuf, vierge, pour se retrouver avec un site 1.6 totalement focntionnel, avec le thème par défaut, mais utilsant vos données.
  3. Changer le thème du site, ré-installer vos modules complémentaires (versions compatibles 1.6 bien sûr)




Choix de l'hébergement :


Avant de présenter cette méthode pas à pas, je voudrais revenir sur le choix de l'hébergement pour votre nouveau site. En effet si votre site actuel est lent, effectuer une mise à jour majeure de PrestaShop est je pense la bonne occasion de choisir le bonne solution d'hébergement.

Mutualisé ou dédié ? : En dessous de 1000 commandes par mois, le trafic du site ne justifie pas d'investir dans un dédié.

Il y a une quantité incroyable d'hébergeurs et ne peut parler en toute indépendance que de ceux que j'ai eu l'occasion de tester, au nombre de 4 :

  • LWS : solution pas chère mais que je déconseille fortement si pour vous la notion de support est importante. Réponses aux questions par un système de ticket, souvent seulement le lendemain et la plupart du temps complétement à coté du problème posé.

  • OVH : tout le monde connait, numéro 1 mondial. Mais franchement je ne sais pas pourquoi. Je ne compte plus le nombre de fois ou j'ai du travailler sur des sites hébergés en mutualisé chez OVH et qui étaitent par intermitence très très lent. Il est une rumeur qui dit qu'OVH aurait mis en place sur ses serveurs mutualisés un système de "protection" de la bande passante, limitant la vitesse ou le volume des requètes SQL autorisées sur un site, pour ne pas pénaliser les autres sites du même serveurs. Je déconseille donc aussi.

  • o2Switch : sitolog à longtemps été hébergé chez eux et j'ai encore pour un autre site un compte chez eux. Je dirais que ça reste un bon choix très économique car tout est "illimité" pour 6€ par mois. Leur support est aussi très disponible et compétent. Mais ils ont fait le choix de n'avoir qu'une seule offre au catalogue et globalement j'étais déçu par la vitesse du serveur ainsi que son manque de stabilité (fréquents arrêts intermittents de quelques minutes, jamais expliqués). De l'avis d'o2Switch, à cause de mon PrestaShop, et n'ayant pu obtenir de l'assistance pour l'optimiser, j'ai préferré partir...

  • Yoorshop : j'ai donc migré mon site d'o2Switch à Yoorshop, autre hébergeur français, à l'identique et ai pu constater tout de suite une nette amélioration en terme de vitesse. Pour un peu plus cher (16€/mois), j'ai des sauvegardes automatiques, un certificat SSL et une solution vraiment optimisée pour la vitesse. Leur support est tip top. Seul bémol avec cet hébergeur, la communication est un peu "rude" parfois. Je suis de l'ancienne école et apprécie la courtoisie. Ce dernier point mis à part, et même si je sais qu'il existe sans doute d'autres alternatives, je recommende à ce jour franchement le choix de Yoorshop. Mon nouveau site, une fois passé en PS 1.6 tourne franchement plus vite qu'avant.



Pas à pas de la méthode alternative de migration :


Imaginons que votre vieux PrestaShop soit sur le serveur dans un dossier /actuel/

  1. Faites une , non deux, sauvegardes de l'intégralité de votre site, fichiers de /actuel/ (avec Filezilla pour une sauvegarde sur PC ou bien plus rapide avec le gestionnaire de fichiers de votre Cpanel pour une sauvegarde sur le serveur lui même) et base de données (avec PrestaShop ou avec PHPMyAdmin).
  2. Au fait, ça va de soit sans le dire, mais l'écrire c'est encore mieux : je décline toute responsabilité si la procédure ci-dessous échouait et que vous ayez une perte de données ou un impact négatif quel qu'il soit.
  3. Pendant l'opération, il est conseillé de mettre la boutique actuelle en mode maintenance. Donc il est préferrable de le faire la nuit lorsque tout le monde dort pour éviter de perdre des commandes.

Important : si vous n'étes pas à l'aise avec l'idée de faire tout cela directement sur le serveur, il est aussi possible, voir recommendé, d'installer un émulateur de serveur pour PC (comme EasyPHP) et de tout faire en local. Puis de téléverser le nouveau site et la nouvelle base de données une fois que tout fonctionne en local.

Mon site nécessitant beaucoup de personnalisation après la migration, c'est d'ailleurs ce que j'ai fait, pour éviter de devoir laisser trop longtemps le site en maintenance.

  1. Créez sur le serveur (le nouveau si vous avez changé d'hébergement) un nouveau répertoire. Je l'appelle /nouveau
  2. En option, par sécurité, vous pouvez aussi créer un autre répertoire de travail temporaire sur le serveur et dupliquer dedans l'intégralité de votre site actuel. Je l'appelle /ancien

Sachant que c'est très long, j'ai pour m'a part sauté cette étape, le risque me semblant faible ayant auparavant fait de bonnes sauvegardes.

  1. Téléchargez Prestashop 1.6, dézippez le fichier sur le PC dans un dossier temporaire et avec un outil commme Filezilla, transferez l'intégralité du contenu de ce dossier, avec les sous dossiers, dans le répertoire /nouveau. Allez boire un café, c'est très long....
  2. Une fois le transfert terminé, renommez le dossier admin de ce nouveau Prestashop du même nom que le dossier admin de votre ancien Prestashop
  3. Donnez le droit d'accés 777 au fichier setting.inc.php contenu dans le dossier admin du nouveau PrestaShop.
  4. Copiez depuis /ancien/ (ou /actuel/), vers /nouveau/  les dossiers suivants avec leur contenu:

/mails

/img, sauf les sous dossiers /img/admin et /img/jquery-ui

/download

/upload

  1. Lancer PHPMyAdmin sur le nouveau serveur (ou le même si vous ne changez pas de serveur), créez une nouvelle base de données, que je vais appeler "ancienneamigrer" et importez dedans votre dernière sauvegarde de votre base de données actuelle.
  2. Copier depuis /ancien/config/ vers nouveau/config/ le fichier settings.inc.php (remplacement du fichier déjà présent dans ce dossier)
  3. Editez le contenu de ce fichier (n'importe quel traitement de texte le permet) de la manière suivante :

define(‘__PS_BASE_URI__’, ‘/nouveau/’);
define(‘_THEME_NAME_’, ‘default-bootstrap’);
define(‘_DB_NAME_’, ‘ancienneamigrer′);
define(‘_DB_SERVER_’, ‘localhost’);
define(‘_DB_USER_’, ‘root’);
define(‘_DB_PASSWD_’,  ‘’);

Note: Adaptez bien sûr root et le mot de passe selon vos propres réglages de SQL.

  1. C'est ici que tout se passe : depuis votre navigteur internet, allez à cette adresse :

urlduserveur/nouveau/install/upgrade/upgrade.php

ou si vous travailez en local:

localhost/nouveau/install/upgrade/upgrade.php

Cela lance un script de migration de votre base de données actuelle vers le format (ou structure) de la dernère version de PrestaShop, tout en conservant les données.

Au bout de quelques secondes ou minutes,, si la page affiche un fichier xml dont la 1ere ligne contient

action result = ok error =

C'est que tout s'est bien passé. Bravo.

Dans le cas contraire il va falloir analyser et comprendre les erreurs indiquées (ou pas) dans le fichier xml, les corriger et relancer le script. Ce que j'ai pu observer:

  • Si vous avez pleins d'erreurs un peu partout : l'étape 9 n'a pas bien focntionnée, il manque des tables dans la base.
  • Erreur 5 : problème de droits d'écriture dans settings.inc.php, remettez le en 777
  • Erreur 28 : soucis avec la ligne define(‘__PS_BASE_URI__’, ‘/nouveau/’);  dans le fichier setting.ic.php
  • Page blanche : il y a une erreur de syntaxe dans le fichier setting.inc.php comme un guillemet manquant.


  1. Si tout est ok, testez le nouveau site (commencez par le back office avec votre logging habituel). Devrait être un beau site en version 1.6, avec son thème par défaut et vos anciennes données.
  2. Supprimez le dossier /nouveau/install/ par sécurité.
  3. Mettez en place vos modules, choissisez un autre thème ou personnalisez le thème par défaut, etc...
  4. Si vous avez travaillé en local, quand tout est ok, mettez le en maintenance, dupliquez le tout, fichiers et base vers le serveur, adaptez en fonction le fichier setting.inc.php, testez et sortez du mode maintenance quand tout fonctionne bien.
  5. Satisfait ?, dites le ! Il vous reste encore une étape prenant 20 sec, facultative, mais vous en serez remercié, merci de partager cette page sur les réseaux sociaux grâce aux boutons présents en bas de l'article.
  6. Il vous reste à gérer votre catalogue de manière optimale. Si ce n'est pas déjà fait, c'est le bon moment pour vous équiper de solutions professionnelles d'édition de masse, PrestaCatégories pour la création de catégories et l'organisation des produits et PrestaPricing pour la création et modification des produits, l'ajout de photos, l'importation, la gestion des soldes et tellement plus. L'essayer c'est l'adopter :


Autres soucis rencontrés lors de la mise à jour:


  • Les images des produits n'apparaissent pas => Activez le mode "Legacy images", puis le déplacement des images dans les sous dossiers et désactivez le mode "Legacy images". Si ca suffit pas, lancez la regénération des vignettes.
  • Nombreuses erreurs 404 en local => désactivez la redirection des URLs
  • Nombreuses erreurs 404 en distant => désactivez la redirection des URLs et réactivez la pour reconstruire le .htAccess.
  • Le backoffice ou le site s'afichent sans la mise en page, souvent une erreur avec la ligne define(‘__PS_BASE_URI__’, ‘/nouveau/’);  dans le fichier setting.ic.php

Il existe malheureusement encore beaucoup de cas ou cette méthode alternative ne passe pas. En témoigne certains commentaires ci dessous. Et il n'est pas toujours facile ou possible d'en comprendre la raison et de la corriger.

Reste donc la 3ieme solution de dernier recours. Son grand avantage : elle fonctionne dans tous les cas.

3ieme méthode de migration, par export / import xls grâce à notre module PrestaShop

  1. Installation d'un PrestaShop 1.6 ou 1.7 tout neuf avec son thème et ses modules.
  2. Exportation du catalogue depuis votre PrestaShop 1.4 ou 1.5 grâce à Merlin Backoffice ™ dans le format xlsx ou csv. Nous recommandons de créer trois fichiers distincts, un pour les catégories, un pour les produits et prix spécifiques, un pour les déclinaisons (avec ou sans prix spéciaux et photos spécifiques)
  3. Importation du catalogue complet ou partiel dans PrestaShop 1.6 ou 1.7 grâce à Merlin Backoffice à partir des fichier.


Merlin Backoffice ™ pour Prestashop


Créez ou importez vos produits et modifiez les en masse

  • Puissance
  • Rapidité
  • Souplesse


Avantages de cette méthode :


  • Fonctionne quelques soit les versions de PrestaShop et la taille de la base.
  • Il n'y a pas de conversion de format de base de données, donc peu de risque d'erreur. C'est notre module qui se charge d'importer les données au bon format.
  • L'investissement de ces deux modules sera très vite rentabilisé, car vous découvrirez toute la puissance de ces outils qui ne sont pas juste des modules d'importation, qui une vraie alternative à toute la partie gestion du catalogue du back office, grâce à des fonctionnalités de gestion en masse dont on a ensuite du mal à se passer.
  • Le format des fichier xls ou csv produits par l'outil export sont directement compatibles avec la fonctionnalité d'importation. Le travail de mappage des colonnes est donc rapide et intuitif.
  • Une option permet de ré-utiliser les identifiants des produits et catégories. Ainsi les Urls seront conservées et il n'y aura pas d'impact sur le SEO (référencement des pages).



Inconvénient de la méthode :


  • Actuellement ces applications ne savent exporter et importer "que" le catalogue (produits, catégories, déclinaisons, attributs, caractéristiques, images,...) et pas les commandes et les clients. Mais il existe d'autres modules sur Presta Addons qui savent très bien se charger de cette partie (n'hésitez pas en commentaire à partager votre solution).



Comment faire ? :


  1. Acheter et installer les deux modules (PrestaCatégories n'est nécessaire que si vous souhaitez importer les catégories). Plus exactement les deux applications, car il s'agit de logiciels Windows.
  2. Suivre ce tuto concernant la fonctionnalité importation csv ou xls
  3. Soliicitez notre assistance si vous ne vous en sortez pas seul.

J'espère que cet article saura en aider plus un, la migration d'un site PrestaShop d'une version à une autre étant une vraie galère, les solutions qui focntionnent vraiment sont peu nombreuses.


Autres articles de la même catégorie

Cet article vous a plu ? Partagez-le !