Comment migrer vers PrestaShop 1.7

septembre 14, 2020 0 Par Serge Holzer
Comment migrer vers PrestaShop 1.7

Migration manuelle – Détails du processus

Nous utiliserons le processus ETL (Extract – Transform – Load) pour réaliser une migration, un concept généralement appliqué aux entrepôts de données.
La structure de la base de données peut changer à chaque nouvelle version de PrestaShop, mais les versions majeures peuvent également impliquer le remplacement de certaines fonctionnalités, empêchant dans certains cas une mise à niveau en douceur de la boutique. Pour ces boutiques, une migration est une solution pour pouvoir suivre les nouvelles versions.
Nous couvrirons les 3 principales étapes dans ce chapitre :

Extraire les données à transférer

Ajouter / modifier / supprimer certaines valeurs si nécessaire
Importer des données sur le nouveau magasin
Exportation des données à partir de la source
À la différence d’une mise à jour, nous ne modifierons pas directement la base de données. Nous devons d’abord exporter les données. Nous utilisons ici des fichiers CSV, le format le plus compatible et le plus générique.
L’exportation des données peut se faire
Via le panneau d’administration de PrestaShop,
Avec votre client MySQL.
Selon la façon dont vous exportez vos données, vous n’obtiendrez pas la même quantité de données dans vos exportations.

Light – Via le panneau d’administration

L’exportation de données est assez simple. Sur chaque contrôleur dédié aux données que vous souhaitez exporter, vous trouverez des boutons d’action en haut à droite de la page :
Par exemple pour vos produits sur PrestaShop 1.7 :
Localisation de la barre d’action
En cliquant sur le bouton “Exporter”, votre navigateur téléchargera un fichier CSV, qui contient la liste complète des produits avec les colonnes affichées sur la page.
Avec le même processus, vous pouvez exporter les données suivantes :
Adresses (de marque)
Adresses (des clients)
Attributs (de produit)
Marques
Chariots
Catégories
Clients
(Produit) Caractéristiques
Commandes
Stocks
Fournisseurs
Cette méthode se limite aux détails affichés (= ce que vous voyez sur le tableau), elle est donc loin d’être exhaustive. Dans le cas où vous souhaitez plus de colonnes ou toutes les colonnes, vous pouvez préférer procéder manuellement avec votre propre client SQL.

Compléter – Via un client MySQL

Les utilisateurs avancés peuvent utiliser leur propre client pour extraire des données en CSV. Cette option donne un contrôle total sur les données à exporter.
Choisir une extraction en CSV vous permettra d’apporter des modifications facilement avec un éditeur de feuilles de calcul, comme Microsoft Excel ou LibreOffice Calc.
phpMyAdmin
Sur phpMyAdmin, l’exportation en CSV peut se faire sur la même page que le dump SQL classique.
Exportation rapide et complète (recommandée)
Cette étape peut être réalisée simplement en exportant tous les tableaux en un seul appel. Cliquez sur votre base de données, puis sur le bouton “Exporter” pour commencer :

Notez que le fil d’Ariane dans l’en-tête vous indiquera si vous êtes dans une base de données ou dans un contexte de table. Si vous avez cliqué sur ce bouton par erreur alors que vous étiez sur une table, vous terminerez sur l’exportation d’une table spécifique comme indiqué sur cette capture d’écran :
Quel que soit votre choix entre exporter la base de données entière en un seul appel ou exporter vos tables une par une, vous devez choisir d’exporter en “CSV” ou “CSV pour MS Excel”.
Les options disponibles seront mises à jour :
Si vous souhaitez exporter plusieurs tableaux en même temps, vous pouvez le faire en les sélectionnant dans la liste. Les tableaux fonctionnant avec votre boutique commencent par le préfixe donné dans la configuration de votre boutique (par défaut ps_). Si l’une d’entre elles ne commence pas par ce préfixe, il est peu probable qu’elle soit concernée par la migration et peut être ignorée.

Ces tables peuvent également être ignorées :

accès : Comme nous l’avons dit, les permissions ont été retravaillées et doivent être réinitialisées.
configuration. Votre nouvelle boutique a déjà une nouvelle configuration, et l’écraser avec le contenu de l’ancienne boutique est une mauvaise idée.
monnaie : Son contenu sera généré par au cours d’une autre étape.
lang : Son contenu sera généré par au cours d’une autre étape.
module_access : La structure est retravaillée avec le nouveau système de permission. Comme il ne peut pas être migré facilement, nous recommandons de les reconfigurer manuellement.
onglet : Ce tableau contient les contrôleurs d’administration accessibles sur votre backoffice. Comme ses valeurs sont principalement gérées par PrestaShop, ne modifiez pas le contenu de la nouvelle boutique.
tab_lang : Relatif à l’onglet et déjà géré par PrestaShop.
Pour éviter qu’un seul fichier CSV ne soit renvoyé avec toutes vos tables, cochez l’option “Exporter les tables sous forme de fichiers séparés”. Vous obtiendrez à la place un fichier Zip contenant un fichier CSV pour chaque table.
Enfin, nous vous conseillons de cocher l’option “Placer les noms des colonnes dans la première ligne”. Cela vous sera utile à l’étape suivante, lorsque vos données devront être modifiées.

Exportation personnalisée à partir de requêtes SQL personnalisées

Nous vous avons expliqué comment exporter tous vos tableaux pour vous assurer de conserver le plus de données possible.
Si vous obtenez vos données d’un autre CMS ou si vous préférez procéder selon votre propre méthode, vous pouvez lancer une requête SQL personnalisée pour obtenir toutes les informations dont vous avez besoin. Cette option est utile si vous prévoyez d’importer vos données avec la fonction d’importation de PrestaShop.
A titre d’exemple, voici une requête SQL pour obtenir les principaux détails des produits, ainsi que les textes correspondant à la première langue de la première boutique