PS PrestaShop Intermédiaire

Migration WooCommerce vers PrestaShop — Guide complet

Installer, connecter et exécuter la migration complète WooCommerce → PrestaShop : les 7 étapes, le mapping, le dry-run et le dépannage.

Mis à jour Version du module 1.1.0

Présentation

Migration WooCommerce (dfmigratewoocommerce) migre une boutique WooCommerce complète vers PrestaShop 8 ou 9 : catégories, tags, attributs globaux, produits simples et variables (variations converties en combinaisons), images, métadonnées custom, clients avec adresses et commandes. Le module se connecte directement à la base MySQL de WordPress, travaille par lots AJAX sans timeout et conserve un mapping Woo ↔ PS en base qui rend chaque étape relançable sans doublon.

La base WooCommerce source est uniquement lue, jamais modifiée. Toutes les écritures se font côté PrestaShop.

Installation

  1. Dans le back-office PrestaShop, ouvrez Modules > Gestionnaire de modules > Téléverser un module et sélectionnez le ZIP dfmigratewoocommerce.zip.
  2. Le module crée trois tables techniques : df_woomig_mapping (correspondances Woo ↔ PS), df_woomig_log (journal) et df_woomig_progress (progression des étapes).
  3. Cliquez sur Configurer pour ouvrir l’interface de migration.

Connexion à WooCommerce

Dans l’onglet Connexion, renseignez :

  • Hôte / Port : serveur MySQL de la base WordPress (port 3306 par défaut) ;
  • Base, Utilisateur, Mot de passe : identifiants de la base WordPress ;
  • Préfixe de tables : généralement wp_ — vérifiez dans wp-config.php ($table_prefix) ;
  • URL du site : l’adresse publique de la boutique WooCommerce, utilisée pour télécharger les images (mode HTTP), ou un chemin filesystem en mode local.

Cliquez sur Tester la connexion : le module affiche le nombre de produits, catégories, tags, attributs globaux, clients et commandes détectés dans la source.

Si votre hébergeur bloque les connexions MySQL distantes, importez un dump de la base WordPress dans un schéma dédié sur le serveur PrestaShop (ex. wp_source) et connectez le module à ce schéma en localhost. Un tunnel SSH fonctionne aussi.

Paramètres

  • Langue par défaut : langue PrestaShop dans laquelle les contenus Woo (monolingues) seront écrits ;
  • Groupe de taxes par défaut : appliqué à tous les produits migrés — les prix Woo sont copiés tels quels dans le prix HT PrestaShop ;
  • Attributs en caractéristiques : active le double mapping (chaque attribut global devient aussi une caractéristique, visible sur les produits simples) et la reprise des postmeta custom en caractéristiques meta:* ;
  • Taille de lot : nombre d’entités traitées par requête AJAX (25 par défaut ; réduisez sur hébergement mutualisé lent) ;
  • Mode images : http (téléchargement depuis l’URL du site) ou local (l’URL du site est traitée comme un chemin filesystem contenant wp-content/uploads) ;
  • Dry-run : mode simulation — tout est journalisé, rien n’est écrit ;
  • Transporteur par défaut : affecté aux commandes migrées.

Lancer la migration

Dans l’onglet Migration, exécutez les étapes dans l’ordre — chacune s’appuie sur le mapping créé par les précédentes :

  1. Attributs — chaque attribut global Woo (pa_*) devient un groupe d’attributs PS (les groupes couleur sont détectés) et, si l’option est active, une caractéristique. Toutes les valeurs sont créées des deux côtés.
  2. Catégories — l’arborescence complète est reconstruite ; les parents manquants sont résolus récursivement, les orphelins rattachés à la racine avec un avertissement.
  3. Tags — dédupliqués par nom.
  4. Produits — produits simples et variables : prix, prix barrés (SpecificPrice), SKU, poids, dimensions, stock, statut, produit virtuel, liens catégories/tags, caractéristiques, métadonnées custom. Les variations deviennent des combinaisons avec impact de prix, stock et référence propres. Les images du produit sont migrées dans la foulée.
  5. Images — étape de rattrapage : parcourt les produits déjà migrés et importe les images manquantes (image principale + galerie), avec régénération de toutes les miniatures.
  6. Clients — comptes avec adresses de facturation et livraison. Mots de passe régénérés en bcrypt : les clients utilisent « mot de passe oublié » à la première connexion. Les emails existants côté PS sont réutilisés, jamais dupliqués.
  7. Commandes — détection automatique HPOS (WooCommerce 8+, tables wc_orders) ou legacy (wp_posts). Lignes, totaux, devise et statuts mappés vers les états PrestaShop. Aucun e-mail n’est envoyé.

Chaque étape affiche une barre de progression en direct et peut être interrompue puis relancée : elle reprend exactement où elle s’était arrêtée.

Faites d’abord un passage complet en dry-run pour valider le périmètre dans le journal, puis désactivez le dry-run et relancez.

Mapping et relances

L’onglet Mapping affiche le nombre de correspondances par type d’entité. Toute entité présente dans le mapping est ignorée lors des relances : vous pouvez relancer une étape complète sans créer de doublon. Le bouton de réinitialisation efface le mapping d’un type (ou tout) — les entités déjà créées côté PrestaShop restent en place.

Journal

L’onglet Journal liste les événements par étape et niveau (info, succès, avertissement, erreur) : produits créés, variations ignorées faute d’attribut global, images introuvables, commandes sans client… Purge en un clic.

Après la migration

  • Lancez une réindexation de la recherche : Paramètres boutique > Recherche > Indexer tous les produits ;
  • Vérifiez un échantillon de prix si votre boutique Woo stockait des prix TTC (PrestaShop attend du HT) ;
  • Contrôlez le groupe de taxes, les transporteurs et les moyens de paiement ;
  • Supprimez la configuration de connexion (ou désinstallez le module) : les identifiants MySQL sont stockés dans la configuration PrestaShop.

Limites connues

  • Les attributs locaux (définis sur un seul produit, non pa_*) utilisés en variation ne peuvent pas devenir des combinaisons — PrestaShop exige des attributs globaux. Ces variations sont ignorées et signalées dans le journal. Convertissez-les en attributs globaux côté Woo avant migration si nécessaire.
  • Les commandes sont migrées à titre d’historique : les taxes ne sont pas recalculées, les totaux Woo sont copiés tels quels.
  • Les coupons, avis produits et abonnements ne sont pas migrés dans cette version.

Dépannage

« Échec connexion » au test

Vérifiez que l’utilisateur MySQL est autorisé à se connecter depuis l’IP du serveur PrestaShop (GRANT ... ON base.* TO 'user'@'ip') et que le port 3306 est ouvert. Sinon, utilisez un dump local ou un tunnel SSH.

Images manquantes en mode HTTP

Le site WooCommerce doit être accessible en HTTP/HTTPS depuis le serveur PrestaShop. Si le site source est fermé, utilisez le mode local en copiant wp-content/uploads sur le serveur PrestaShop et en renseignant son chemin comme URL du site.

Variations absentes sur un produit

Consultez le journal : si les variations utilisaient des attributs locaux (non globaux), elles sont ignorées par conception. Le produit parent est migré avec ses données de base.

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support