New Slang - Création de Site Internet Artisanale

Tutoriel : Migrer Prestashop 1.7 en local vers votre hébergeur

thierry
Tutoriel : Migrer Prestashop 1.7 en local vers un hébergeur

Si vous avez suivi mon tutoriel pour installer Prestashop 1.7 en local, l’étape suivante est logiquement de mettre le tout en ligne sur votre hébergeur. Découvrons ensemble comment migrer une installation locale de Prestashop 1.7 vers un hébergement et mettre votre boutique en ligne.

Vous y êtes : Prestashop 1.7 a été mis en place sur votre poste en local, après pas mal de boulot, votre boutique est prête à être mise en production.

Le moment est donc venu de transférer votre boutique vers votre hébergeur pour la mettre en ligne.

Voici en quoi consistera le processus de migration :

  1. Exporter la base de données locale
  2. Compresser tous les fichiers qui composent votre boutique
  3. Créer une nouvelle base de données chez votre hébergeur
  4. Importer les données locales de la base
  5. Transférer votre fichier zip et le décompresser chez votre hébergeur
  6. Modifier l’URL de votre boutique dans votre base de données en production
  7. Modifier les informations de connexion à la base dans les paramètres de Prestashop

À quelques subtilités prêtes, ces étapes constitueront l’essentiel du travail que je couvrirai dans ce tutoriel.

Prérequis

Avant de commencer, veuillez bien garder en tête le tutoriel pour installer Prestashop 1.7 en local que j’avais déjà réalisé ici.

Configuration locale

Ma configuration reprend à l’identique ce qui est déjà existant dans ce tutoriel, à savoir :

  1. Une installation de MAMP équipée d’Apache, MySQL, PHPMyAdmin et PHP
  2. Une installation de locale Prestashop 1.7.5.2

En plus de ça, je vous conseille également de disposer d’une application de FTP pour gérer les transferts de fichiers. Dans ce tutoriel j’utiliserai FileZilla qui est la référence gratuite sur PC. Sur Mac j’utilisais l’excellent outil Transmit qui, quant à lui, est payant.

Notez également que j’utiliserai certaines fonctionnalités intégrées du FTP de mon hébergeur et que de, pour ce tutoriel, je migrerai ma boutique vers un hébergement Infomaniak.

Configuration chez l’hébergeur

Veillez à bien contrôler, dans votre hébergement, quelle version de PHP est utilisée. À la date du 19.06.2019, la version de Prestashop que j’utilise est la version 1.7.5.2 et cette version de Prestashop est compatible avec PHP 5.6 jusqu’à PHP 7.2 inclut.

Vérifiez que votre version de PHP soit compatible avec votre version de Prestashop

Mais elle n’est pas compatible avec la version 7.3 de PHP ! Vérifier donc la configuration de votre hébergement et changez ce paramètre si nécessaire.

Attention cependant, modifier la version de PHP peut potentiellement empêcher votre site de fonctionner correctement (si vous avez déjà un site vitrine par exemple). Donc soyez prudents !

Préparation en local

Export de la base de données

Pour commencer, il faudra exporter le contenu de votre base de données depuis votre base de données locale vers la base de votre hébergeur.

Commencez par accéder à PHPMyAdmin depuis votre poste local. Si comme moi vous utilisez MAMP, rendez-vous sur la page de démarrage de celui-ci.

Là choisissez Tools > PHPMyAdmin.

Accéder à PHPMyAdmin depuis MAMP

Entrez vos données de connexion pour accéder à vos bases de données. Sur la gauche, cliquez sur la base de données de votre boutique Prestashop que vous souhaitez exporter.

Là cliquez sur l’onglet Exporter.

Exporter une base de données dans PHPMyAdmin

Dans les options d’export, vous pouvez choisir Rapide pour faire un export direct de toutes les données ou, si vous désirez plus de contrôle, cliquer sur Personnaliser.

Options d'exportation d'une base de données dans PHPMyAdmin

Si vous choisissez de personnaliser l’export, vous aurez par exemple la possibilité de choisir un autre type de fichier que SQL pour la sortie ou de le compresser pour minimiser sa taille.

Une fois votre choix effectué cliquez sur Exécuter pour lancer l’opération. Un fichier [nom de votre base].sql devrait se télécharger, cela peut prendre un certain temps, soyez patient.

Une fois votre fichier correctement téléchargé, l’export de la base de données de votre boutique a été réalisé !

Export des fichiers

Une boutique Prestashop est constituée de centaines de fichiers par défaut. Et après mise en place d’un thème, d’un catalogue de produits, etc. vous pouvez vous retrouver avec une boutique plutôt importante en termes de nombre de fichiers et de poids.

Taille du dossier contenant votre boutique Prestashop
21’145 fichiers, 4’576 dossiers, un total de 228 Mo rien que pour une simple installation

Vous pourriez exporter votre boutique directement chez votre hébergeur sans aucune action préliminaire.

Mais sachez que si vous tentez de charger le dossier de votre boutique tel quel par FTP, chaque fichier nécessitera une transaction avec le serveur FTP ce qui ralentira considérablement le transfert. Et quand je dis considérablement, c’est un euphémisme !

Autre problème sur lequel je me suis cassé les dents lors de ce genre d’export : il arrive fréquemment que certains fichiers ou dossiers retournent des erreurs et empêchent le transfert de l’intégralité de votre boutique.

Et bon courage pour aller retrouver les fichiers manquants lors d’un transfert problématique !

C’est pourquoi je vous conseil de commencer par compresser votre boutique Prestashop, c’est à dire la transformer en un fichier zip, avant de la transférer.

Compression de la boutique Prestashop à l'aide d'un outil de compression

Cette action aura deux effets : transformer un dossier composé de centaines de fichiers en un seul fichier transférable facilement et réduire la taille du transfert.

Une fois la compression effectuée, connectez-vous à votre FTP avec votre application FTP ou en utilisant directement le gestionnaire de FTP mis à disposition par votre hébergeur.

Rendez-vous dans le dossier où vous souhaitez installer votre boutique et transférez votre fichier ZIP à cet endroit.

Préparation chez l’hébergeur

Importer la base de données locale

Création de la base de données

Connectez-vous à votre hébergeur et rendez-vous dans l’hébergement du site où vous allez installer votre boutique.

Dans les options de votre hébergement, vous devriez trouver la gestion de vos bases de données. Le but est de créer votre propre base pour votre boutique Prestashop.

Chez Infomaniak, cliquer sur Ajouter. Dans la nouvelle fenêtre donner un nom à cette base de données, dans mon cas je l’appellerai demo_prestashop.

Certains hébergeurs ne vous permettront pas de choisir le nom, vous pourrez simplement donner une description. Chez Infomaniak chaque base de données est préfixé par l’identifiant de votre hébergement.

Cet identifiant est également utilisé pour les utilisateurs de votre base de données. Si vous n’avez encore aucun utilisateur vous pouvez cliquer sur Créer un utilisateur associé et là, créer également un utilisateur qui sera administrateur de votre nouvelle base de données.

Ajouter une base de données et un utilisateur associé chez Infomaniak

Conservez bien le nom de votre base de données, le nom de votre utilisateur et votre mot de passe pour plus tard.

Importation des données

Une fois la base créée et associée à votre utilisateur, rendez-vous dans le gestionnaire de base de données. En général les hébergeurs utilisent également PHPMyAdmin.

Dans Infomaniak, cliquez simplement sur Connexion à PHPMyAdmin. Là entrez vos informations de connexion tel que créés tout à l’heure.

Connexion à PHPMyAdmin dans un hébergement Infomaniak

Une fois dans la console d’administration, cliquez sur la base créée pour votre boutique sur la gauche et allez dans le menu Importer.

Là faites Choisir pour récupérer le fichier SQL à importer. Souvenez-vous, nous avons exporté la base de données locale tout à l’heure. Il suffit d’aller récupérer ce fichier SQL.

L’opération peut prendre un certain temps en fonction de la taille de votre base de données, soyez patient ! Une fois l’opération terminée, votre base en locale a bien été migrée sur votre hébergement.

Modifier l’URL de votre boutique en ligne

URL principale

Prestashop conserve dans la base de données les informations de votre base de données locale, définie lors de l’installation.

La plupart des réglages peuvent être conservés sans problème, cependant pour que votre boutique fonctionne il est impératif de modifier l’URL de votre boutique.

Par défaut, lors d’une installation locale, cette URL est localhost. Pour la modifier, cliquez sur votre base de données dans la barre de gauche et dans la liste des tables, recherchez la table ps_shop_url. Faites Enter pour lancer la recherche.

Détail de la table ps_shop_url

Une fois la table trouvée, cliquez sur celle-ci pour en voir le contenu. Vous ne devriez trouver qu’un seul enregistrement renseignant 3 informations importantes :

  • domain : Le nom de domaine HTTP de votre boutique
  • domain_ssl : Le nom de domaine HTTPS de votre boutique
  • physical_uri : Le chemin vers votre boutique depuis le nom de domaine

Dans mon cas, ma boutique se trouvera à l’adresse :

https://lab.newslang.ch/shop/

Donc les champs deviendront :

  • domain : lab.newslang.ch
  • domain_ssl : lab.newslang.ch
  • physical_uri : /shop/

Il n’y aura pas de distinction de domaine entre la version HTTP et HTTPS et le chemin vers ma boutique sera dans le sous-dossier /shop/. Si votre boutique est à la racine, entrez simplement / mais il est important de bien saisir le slash final !

URL de la boutique et SSL

Si vous recherchez la table ps_configuration dans la liste de table, vous verrez qu’elle se compose de plusieurs centaines d’enregistrements qui gèrent la configuration principale de votre boutique.

Table ps_configuration dans la base de données de Prestashop

Dans ces enregistrements, 4 sont importants dans notre cas :

  • PS_SSL_ENABLED : Indique si SSL est activé, donc si on accèdera à votre boutique en HTTPS ou non
  • PS_SSL_ENABLED_EVERYWHERE : Flag supplémentaire permettant de forcer l’utilisation de SSL partout dans la boutique
  • PS_SHOP_DOMAIN : Identique à la colonne domain de la table ps_shop_url
  • PS_SHOP_DOMAIN_SSL : Identique à la colonne domain_ssl de la table ps_shop_url

Les 2 premiers enregistrements doivent être passées de 1 à 0 pour activer SSL si vous travaillez sur un hébergement en HTTPS, sinon vous pouvez les laisser à zéro sans autre.

Pour les 2 derniers enregistrements, selon certaines il n’est pas indispensable de les changer, Prestashop s’en occupant par la suite, mais je préfère le faire dès le départ pour éviter tout problème d’accès.

Décompresser votre boutique sur le FTP

Certains outils de FTP vous permettront peut-être de décompresser un fichier ZIP, mais pas FileZilla. Pas d’inquiétude, le gestionnaire de FTP d’Infomaniak propose cette option.

Accédez à vos réglages FTP dans l’hébergement Web de votre site et cliquez sur Connexion au FTP Manager.

Connexion au FTP Manager dans la console d'infomaniak

Là entrez vos informations de connexion pour ouvrir une session et accéder aux fichiers présents sur votre hébergement.

Rendez-vous dans le dossier où se trouve votre fichier compressé et cliquez simplement sur ce dernier, là l’outil de décompression s’exécutera et vous demandera où vous souhaitez extraire vos données.

Décompression de votre boutique chez l'hébergeur

Souvenez-vous, si vous avez compressé votre dossier shop en local par exemple et que vous choisissez, comme dans cet exemple, de l’extraire à la racine de votre site, le dossier shop sera créé à nouveau. Votre boutique se trouvera alors dans ce sous-dossier et pas à la racine.

Vous pourrez, après avoir extrait vos fichiers, vous rendre dans le dossier shop et déplacer l’intégralité de son contenu à la racine si vous le désirez. Ce genre d’action ne prend qu’une seconde.

Modifier les paramètres de connexion de votre boutique

Maintenant si vous tentez d’accéder à votre boutique Prestashop vous devriez tomber sur une erreur 500. Si vous aviez le Mode Debug activé lors du transfert, l’erreur devrait être bien plus claire.

Erreur retournée par Prestashop si les identifiants à la base sont incorrects

En gros, les paramètres de Prestashop sont toujours configurés pour fonctionner avec votre base de données locale et non avec la base de données crée chez votre hébergeur.

Pour modifier ces réglages, accédez à votre boutique par FTP et allez ouvrir le fichier [votre-boutique]/app/config/parameters.php. Il devrait ressembler à quelque chose de ce genre.

<?php return array (
  'parameters' => 
  array (
    'database_host' => '127.0.0.1',
    'database_port' => '',
    'database_name' => 'demo_shop',
    'database_user' => 'shop_admin',
    'database_password' => '******',
    'database_prefix' => 'ps_',
    'database_engine' => 'InnoDB',
    'mailer_transport' => 'smtp',
    'mailer_host' => '127.0.0.1',
    'mailer_user' => NULL,
    'mailer_password' => NULL,
    'secret' => 'y2I4Ig25CtK9uIcW596bK49c74uFmOeJbnVGoWX6AnudtuW2e4JZnNHS',
    'ps_caching' => 'CacheMemcache',
    'ps_cache_enable' => false,
    'ps_creation_date' => '2019-05-21',
    'locale' => 'fr-FR',
    'cookie_key' => 'renHkCaFZkM4V1QcnUZdkWfdVSpGo95IkevMEJVtA01Ix73WamoULVnN',
    'cookie_iv' => '12hqypXk',
    'new_cookie_key' => 'def00000fb0e609cfbe92d6745108ce0d351259eb5c614aedc08d9268da8bf6ea25a7578f0c8cbc59bd0de8c3f6ac714f812c41725ab06a470a72fe5fe321d6def907a91',
  ),
);

Voici les informations importantes que vous devrez changer, tel que je devrais les entrer avec ma configuration (le mot de passe étant masqué volontairement) :

'database_host' => 'ofxn.myd.infomaniak.com',
'database_name' => 'ofxn_demo_prestashop',
'database_user' => 'ofxn_demo',
'database_password' => '******',

Pas de soucis pour database_name, database_user et database_password, reprenez simplement ce que vous avez utilisé lors de la création de votre base de données tout à l’heure.

Pour l’hôte, en règle générale il ne s’agit pas de 127.0.0.1 ou de lolcalhost (du moins pas pour un hébergement mutualisé). Chez Infomaniak, en vous rendant dans la page de gestion de vos bases de données, l’hôte vous sera donné dans l’en-tête.

Nom de l'hôte pour votre serveur de base de données

Il vous suffira de le reprendre dans ce fichier de configuration.

Une fois les modifications appliquées et enregistrez, actualisez la page de votre shop. L’erreur concernant votre base de données devrait avoir disparue… mais il y a de grande chance que la page reste introuvable !

Restaurer l’accès à votre boutique

Il est possible (voir même normal) que vous ne puissiez pas accéder à votre boutique immédiatement après cette modification. Voici deux erreurs que vous pourriez rencontrer.

ERR_TOO_MANY_REDIRECTS

Si la page vous renvoit cette erreur, cela signifie que la configuration définie dans votre table ps_shop_url créé une boucle de redirection infinie. C’est à dire qu’à chaque nouvel accès à votre boutique, celle-ci redirige vers une page incorrecte qui tente elle-même de rediriger vers cette même page et ainsi de suite.

Cette erreur m’est arrivée à plusieurs reprise, vérifiez bien les informations saisies dans cette table. Je répète les points importants :

  • domain et domain_ssl sont en générale similaires et représentent votre nom de domaine, sans http ni https en préfixe et sans / en fin de chaîne
  • physical_uri doit représenter l’accès à votre boutique à partir du nom de domaine. Si vous êtes à la racine, un simple / suffit, sinon, il faut entrer le slash de départ et de fin, sans le nom de domaine, par exemple /shop/

Si tout vous semble correct, n’hésitez pas à aller vérifier également dans la table ps_configuration que le SSL soit activé ou désactivé en fonction de votre utilisation.

Objet non trouvé ou Erreur 404

Si l’une de ces deux erreurs arrivent, une simple suppression du fichier .htaccess à la racine de votre boutique devrait vous permettre de les régler. Si l’erreur ERR_TOO_MANY_REDIRECTS persiste également, tentez la chose suivante.

Accédez à votre boutique par FTP et à la racine de celle-ci, supprimez le fichier .htaccess. Celui-ci est généré par Prestashop et s’occupe de toutes les redirections de votre boutique (utilisation des permaliens, restriction d’accès aux pages admin, etc.).

Une fois le fichier supprimé, si l’accès à votre boutique ne fonctionne toujours pas, accédez au back office de celle-ci. Pour se faire tapez simplement le chemin vers le dossier d’administration tel qu’il existe dans votre boutique, par exemple /admin123xyz.

Vous devriez pouvoir accéder à votre back office. Là le but sera de recréer un .htaccess propre. Pour se faire, rendez-vous dans Paramètres de la boutique > Trafic et SEO.

Prestashop > Paramètres de la boutique > Trafic et SEO

Dans cette fenêtre, allez sous Configuration des URL et désactivez le mode de réécriture d’URL. Et cliquez sur Enregistrer.

Désactiver le mode de réecriture des URL dans Prestashop

Puis activez ce mode à nouveau pour forcer la réécriture des fichiers .htaccess.

Une fois cette action réalisée, votre boutique devrait être accessible !

Conclusion

Ça y est, vous avez mis votre boutique en ligne et tout fonctionne à merveille. Si ce n’est pas le cas, n’hésitez pas à me contacter en commentaire pour me détailler votre problème.

J’ai moi-même découvert plusieurs soucis au fil de ce tutoriel (version de PHP, problèmes de redirections, etc.) que j’ai documenté ici, mais si vous deviez trouver une autre spécialité non répertoriée, je suis à votre disposition pour tenter de vous aider à la régler !

Grâce à ce tutoriel, vous devriez avoir toutes les clés en main pour mettre votre boutique en production sur votre hébergeur.

39 commentaires

39 réflexions au sujet de “Tutoriel : Migrer Prestashop 1.7 en local vers votre hébergeur”

  1. hello merci de votre info,
    cela m’a bien rafraîchi la mémoire 😉 le mien date de 2012 😉 je tourne en prod sur le version 1.5.4.0

    Mais il est temps de mettre tout cela a jour ..

    Juste une petite info manquante dans votre tuto, pourriez me ré indiquer les droits d’accès exacte des répertoires copié chez l’herbergeur …. pour la sécurité et la bonne marche de Presta …

    Merci encore et Merci encore

    Répondre
    • Bonjour et merci du retour Maurizio !

      En règle générale les droits hérités par le dossier parent chez l’hébergeur doit faire l’affaire, par défaut c’est du 775 : propriétaire lire, écrire, exécuter; groupe lire, écrire, exécuter; autre lire, exécuter.

      En cas de problème, retomber sur ces droits là et ça devrait fonctionner.

      Bonne suite dans votre projet et bonne chance pour le passage à la 1.7 !

      Répondre
  2. Bonjour,

    Tout d’abord un grand merci pour cet excellent tuto !

    J’ai eu cependant un petit soucis lors du transfert d’un prestashop v.1.7.6.7 en ligne vers un Wamp local.

    Pas de soucis pour accéder à la vitrine en suivant les procédures, cependant, une page blanche s’affichait lors de l’accès à la partie « admin ».

    La solution consiste à activer le mode « debug » en modifiant la ligne 29 du fichier « config\defines.inc.php » :
    « define(‘_PS_MODE_DEV_’, false); » par « define(‘_PS_MODE_DEV_’, true); »

    Il suffit ainsi de modifier le booléen « false » par « true » puis de sauvegarder le fichier et recharger la page d’administration. Elle s’affiche correctement.

    En désactivant le mode « debug », le problème persiste. La page blanche réapparait.

    J’ai donc supprimé les dossiers « prod » et « dev » présents dans le dossier « var\cache\ ».

    La partie administration s’affiche de nouveau, le mode « debug » étant désactivé.

    En espérant que cette solution puisse être utile.

    Répondre
    • Bonjour Ludo,

      Merci beaucoup pour les compliments et les compléments d’information !
      J’ai déjà donné quelques-unes de ces solutions en commentaires de mes vidéos YouTube et effectivement, vous êtes tombé juste, j’ai ce genre de soucis pratiquement à chaque migration.

      Je vais certainement mettre à jour mon article avec plus d’infos à ce sujet dans les prochaines semaines et votre commentaire en fera partie !

      Bonne suite à vous.

      Répondre
    • MERCI Ludo et également Thierry pour ce super tuto !!!!

      Je viens de me prendre la tête tout l’après-midi sur ce soucis, j’avais comme toi tout le site fonctionnel sauf la partie admin qui me retournait une erreur HTTP 500.

      La suppression des fichiers cache fut la solution après avoir tenté milles choses différentes sans succès.

      Répondre
  3. Salut @new slang, j’ai suivi ton tutoriel à la lettre et je me retrouve avec une erreur « 501 Not Implemented » sur mon site.. As-tu des pistes/solutions à me donner stp ? Merci d’avance

    Répondre
    • Bonjour Hugo,

      Je viens de tomber sur ce message sur les forums d’OVH, est-ce qu’il vient de toi ? 😉
      Si c’est le cas ou si tu en arrives au même stade que l’erreur 500 mentionnée, jette un oeil au commentaire que Ludo a laissé plus haut et à notre échange, en faisant ces corrections dans 90% des cas les problèmes sont résolus (suppression du dossier /var/cache en priorité).

      Bon courage à toi !

      Répondre
  4. Bonjour Thierry,

    Bravo pour les tutos, ils sont top et super clairs… bon ma config « maison » avec un serveur un peu léger en puissance n’aide pas beaucoup.

    Au final mes erreurs étaient plutôt dues à la lenteur et non à de vraies erreurs… je vais me mettre à étudier apache plus en détail 🙂

    Au plaisir de lire d’autres tutos intéressants et joyeuses fêtes !
    Chris

    Répondre
    • Bonjour Chris,

      Merci beaucoup pour les compliments ça fait toujours plaisir !

      Je vous dirais qu’en local, même avec une configuration solide, ce n’est jamais vraiment idéal question rapidité, et effectivement cela peut mener à toutes sortes d’erreurs (notamment de timeout).

      Bon courage pour ce projet et de belles fêtes à vous aussi.

      Répondre
  5. Comme d’habitude, tutoriel aux petits oignons 😉

    Pour info, et éviter de s’arracher les cheveux si il vous en reste, une manipulation supplémentaire est à faire sur la base de donné avec une version 1.7.7.x :

    J’ai été confronté à un souci (et ne suis pas le seul) et il me semble utile de le signaler.
    Plus d’accès aux anciennes commandes après l’importation de la BDD. En cliquant sur une commande, on tombe sur une page d’erreur.

    En cause, certains champs se remplissent en NULL alors qu’ils devraient être vides lors de l’import SQL ( https://github.com/PrestaShop/PrestaShop/issues/22215 ).

    Les requêtes à lancer pour corriger le bazar :
    Penser à modifier l’entête des tables suivant ce que vous avez configuré en installant votre boutique (ici « ps_ »)
    Pensez à changer les dates, si besoin, sur les requetes sur le champ « available » des tables « ps_product » et « ps_product_shop »

    UPDATE ps_address SET phone = '' WHERE phone IS NULL;
    UPDATE ps_address SET phone_mobile = '' WHERE phone_mobile IS NULL;
    UPDATE ps_address SET dni = '' WHERE dni IS NULL;
    UPDATE ps_address SET other = '' WHERE other IS NULL;
    UPDATE ps_address SET address2 = '' WHERE address2 IS NULL;
    UPDATE ps_address SET company = '' WHERE company IS NULL;
    UPDATE ps_address SET vat_number = '' WHERE vat_number IS NULL;
    UPDATE ps_order_detail SET id_order_invoice = '0' WHERE id_order_invoice IS NULL;
    UPDATE ps_order_detail SET product_reference = '' WHERE product_reference IS NULL;
    UPDATE ps_order_detail SET product_supplier_reference = '' WHERE product_supplier_reference IS NULL;
    UPDATE ps_order_detail SET product_isbn = '' WHERE product_isbn IS NULL;
    UPDATE ps_order_detail SET product_upc = '' WHERE product_upc IS NULL;
    UPDATE ps_order_detail SET product_mpn = '' WHERE product_mpn IS NULL;
    UPDATE ps_order_detail SET download_hash = '' WHERE download_hash IS NULL;
    UPDATE ps_orders SET gift_message = '' WHERE gift_message IS NULL;
    UPDATE ps_order_payment SET transaction_id = '' WHERE transaction_id IS NULL;
    UPDATE ps_order_payment SET card_number = '' WHERE card_number IS NULL;
    UPDATE ps_order_payment SET card_brand = '' WHERE card_brand IS NULL;
    UPDATE ps_order_payment SET card_expiration = '' WHERE card_expiration IS NULL;
    UPDATE ps_order_payment SET card_holder = '' WHERE card_holder IS NULL;
    UPDATE ps_order_carrier SET tracking_number = '' WHERE tracking_number IS NULL;
    UPDATE ps_order_carrier SET id_order_invoice = '0' WHERE id_order_invoice IS NULL;
    UPDATE ps_order_carrier SET weight = '0' WHERE weight IS NULL;
    UPDATE ps_product SET isbn = '' WHERE isbn IS NULL;
    UPDATE ps_product SET upc = '' WHERE upc IS NULL;
    UPDATE ps_product SET mpn = '' WHERE mpn IS NULL;
    UPDATE ps_product SET unity = '' WHERE unity IS NULL;
    UPDATE ps_product SET supplier_reference = '' WHERE supplier_reference IS NULL;
    UPDATE ps_product SET location = '' WHERE location IS NULL;
    UPDATE ps_product SET redirect_type = '301-category' WHERE redirect_type = '';
    UPDATE ps_product SET available_date = '2021-12-01' WHERE available_date IS NULL;
    UPDATE ps_product SET cache_default_attribute = '0' WHERE cache_default_attribute IS NULL;
    UPDATE ps_product_shop SET unity = '' WHERE unity IS NULL;
    UPDATE ps_product_shop SET redirect_type = '301-product' WHERE redirect_type = '';
    UPDATE ps_product_shop SET available_date = '2021-12-01' WHERE available_date IS NULL;
    UPDATE ps_product_shop SET cache_default_attribute = '0' WHERE cache_default_attribute IS NULL;

    Si ça peut aider et éviter de chercher des heures 😉

    Répondre
    • Bonjour Bruno,

      Merci beaucoup pour le retour détaillé, ça aidera certainement d’autres utilisateurs ! Je vais certainement tester la 1.7.7 ces prochains temps pour des clients, articles, formations et je suis presque sûr que ça me sera très utile.

      Bon courage pour ce projet en tout cas 🙂

      Répondre
  6. L’entraide, ça marche dans les deux sens !
    Je me suis servi de votre travail pour migrer ma boutique vers mon nouvel hébergeur, normal que je revienne ici pour compléter ce cas particulier qui peut faire perdre pas mal de temps à en chercher la cause.

    !!!! Je viens de me rendre compte que les requêtes SQL ont été modifiées par le module de commentaires.

    Il faut remplacer les » par deux guillemets simples que SQL interprétera comme champs vide non NULL

    (Ce serait pas mal d’implémenter un éditeur de code 😛 )

    Répondre
    • Oui, mais tout le monde ne prends pas le temps de venir mettre un commentaire à la suite de ça, en général on prend l’info dont on a besoin et on s’en va, donc merci encore 😉
      J’ai modifié votre commentaire pour que tout s’affiche en mode « code », ce n’est pas idéal, mais ça corrige déjà le problème de guillemets, bien vu !

      Pour l’éditeur de code, je suis en plein révision du site (bon je dis ça depuis 6 mois :P) donc c’est un élément que je pourrais intégrer oui.

      Répondre
  7. Bonjour,
    Merci pour votre tutoriel. Il est très clair et bien expliqué.
    Malheureusement mon site n’est toujours pas fonctionnel…
    J’ai réussi à mettre en application tout ce que vous avez expliqué dans l’article et je me retrouve à la fin comme indiqué à l’erreur 404 :

    « Error 404 – Not found
    Le fichier requis n’a pas été trouvé. Il peut s’agir d’une erreur technique. Veuillez réessayer ultérieurement. Si vous ne pouvez pas accéder au fichier après plusieurs tentatives, cela signifie qu’il a été supprimé. »

    J’ai donc supprimé le fichier .htaccess, ca ne marche toujours pas. J’essaye donc d’accéder au backoffice pour régénérer le fichier mais impossible d’accéder au backoffice. L’erreur 404 apparait toujours même quand je vais sur le backoffice.
    Je suis un peu perdu et je ne sais pas quoi faire d’autres. Si vous avez des idées, merci par avance.

    Rudy

    Répondre
    • Bonjour Rudy,

      Est-ce que le site que vous donnez avec votre commentaire (zafenzy) est celui sur lequel vous aviez un problème de 404 ? Je l’ai testé la semaine dernière et effectivement je voyais une erreur 404, mais qui à mon avis ne venait pas de Prestashop.
      Maintenant que j’ai un peu de temps pour vous répondre, je reteste et ça a l’air corrigé je me trompe ? Beau travail en tout cas que cette jolie boutique !

      Répondre
  8. merci beaucoup pour ce tuto
    je suis entrain de migrer mon site prestashop 1.7.6.1
    j’ai suivi votre tuto je rencontre ce problème.
    Fatal error: Uncaught PrestaShop\PrestaShop\Core\Localization\Exception\LocalizationException: No decimal pattern found for numbering system: in /home/vrqlcrq/www/src/Core/Localization/CLDR/Locale.php:219 Stack trace: #0 /home/vrqlcrq/www/src/Core/Localization/Specification/Factory.php(60): PrestaShop\PrestaShop\Core\Localization\CLDR\Locale->getDecimalPattern() #1 /home/vrqlcrq/www/src/Core/Localization/Locale/Repository.php(182): PrestaShop\PrestaShop\Core\Localization\Specification\Factory->buildNumberSpecification(Object(PrestaShop\PrestaShop\Core\Localization\CLDR\Locale), 3, true) #2 /home/vrqlcrq/www/src/Core/Localization/Locale/Repository.php(149): PrestaShop\PrestaShop\Core\Localization\Locale\Repository->getNumberSpecification(‘fr-FR’) #3 /home/vrqlcrq/www/classes/controller/Controller.php(189): PrestaShop\PrestaShop\Core\Localization\Locale\Repository->getLocale(‘fr-FR’) #4 /home/vrqlcrq/www/classes/controller/FrontController.php(271): ControllerCore->init() #5 /home/vrqlcrq/www/classes/controller/Controller.p in /home/vrqlcrq/www/src/Core/Localization/CLDR/Locale.php on line 219
    pourriez vous m’aider s’il vous plait

    Répondre
  9. merci pour votre réponse j’ai résolu le problème en remplassant les fichier supplementaldata.xml (ça pourrait aider quelqu’un d’autre )
    mais en migrant mon site tout en suivant ces étapes aucun module n’est configuré (menu, caroussel..) et il m’affiche les produits démo
    c’est très urgent merci de me donner votre avis

    Répondre
    • Bonjour baraa,

      Alors merci du retour je ne connaissais pas du tout ce problème !

      Au sujet de la suite de ce problème, vous voulez dire qu’avant la migration vous n’aviez aucun produit de démo vous aviez tout supprimé ? Et désormais il n’y a plus que ceux-là ?
      Là il semblerait qu’il y ait un souci de base de données. Allez voir manuellement dans votre base les tables ps_product et ps_product_shop les produits qui s’y trouvent. Vérifiez bien que dans les données de connexion sous /app/config/parameters.php vous vous connectez-bien à la bonne base de données, c’est-à-dire celle que vous avez récupérée en local et migrée chez votre hébergeur.

      Je ne vois pas d’autres raisons d’un tel comportement, j’espère que vous trouverez la solution !

      Répondre
  10. Bonjour Thierry,

    Magnifique tuto très clair et très détaillé qui me rassure sur une éventuelle migration à faire et merci à tous ceux qui complètent avec leurs retours d’expérience car je me rends compte que je ne partage plus assez

    Bonne continuation
    Dominique

    Répondre
    • Bonjour Dominique,

      Merci à toi d’avoir pris le temps de poster un commentaire uniquement pour complimenter le travail, ça fait vraiment super plaisir ! 🙂
      Bon courage pour ta migration dans tous les cas.

      Répondre
  11. Bonjour, Merci pour votre tuto clair et bien expliqué.
    Cependant, j’ai toujours un problème.

    « Objet non trouvé!
    L’URL demandée n’a pas pu être trouvée sur ce serveur. Si vous avez tapé l’URL à la main, veuillez vérifier l’orthographe et réessayer.

    Si vous pensez qu’il s’agit d’une erreur du serveur, veuillez contacter le webmestre.

    Error 404 »

    J’ai revérifié les infos dans ps_shop et config, je ne vois pas d’erreurs. j’ai supprimé le fichier htaccess et je n’arrive pas a me connecter au back office, je ne sais plus quoi faire. Avez vous des idées ?

    Bien a vous,

    Répondre
  12. Bonjour,

    J’ai suivi votre tuto qui est très bien fait au passage, seulement je suis bloquée à l’étape « Erreur 404 », je ne peux pas accéder à la page admin de prestashop par contre certaines pages sont accessibles mais pas toutes, beaucoup ont des liens en « localhost » et je pense qu’il faudrait juste que je puisse accéder à la page admin et modifier les liens : https://luxurycars.hynadev.com/prestashop/nous-contacter. Si quelqu’un connaît la solution s’il vous plaît ? ça fait des jours que je suis dessus.

    Merci d’avance

    Répondre
    • Bonjour,

      Dans votre cas, je vous conseille d’essayer de vider le dossier cache se trouvant dans l’installation de Prestashop sous /var/cache et d’essayer de supprimer le fichier .htaccess à la racine du dossier admin. Et éventuellement à la racine de l’installation de Prestashop, pour annuler la réécriture des liens. Ensuite si vous avez à vous rendre dans le back-office, essayez d’aller dans Trafic et SEO et de désactiver, puis réactiver la réécriture des URLs.

      Bon courage à vous !

      Répondre
  13. Merci pour ce tuto,
    J’etais sur la doc de prestashop.com, rien n’est à jour et il manque la moitié du job… Ici on trouve les bonnes infos !
    Petite question :
    Je suis mandaté pour migrer un presta de OVH vers Infomaniak, je voulais savoir s’il est normal que le site fait 42 Go ? Et la DB presque 2 Go ?
    Merci :*

    Répondre
    • Bonjour Serge,

      Tout d’abord merci pour le retour ça fait bien plaisir, c’est l’idée : essayer d’étayer la documentation sur le CMS que Prestashop n’offre pas 😉
      Oui c’est tout à fait possible, si la boutique a beaucoup d’articles, vous aurez toutes les photos d’articles par exemple stockées dans le dossier /img. Je vous conseille d’aller y jeter un oeil. Par contre, si vous avez un module de backup, vérifiez bien si des fichiers de backups existent, si c’est le cas cela peut doubler, tripler, etc. la taille de la boutique en fonction des copies de backups existantes.

      Et pour la base de données, c’est effectivement important, mais possible également. Vérifiez peut-être que vous ayez bien dans cette base uniquement des tables commençant par ps_ (préfixe indiquant qu’il s’agit d’une table Prestashop).

      Bonne migration !

      Répondre
  14. Bonjour Thierry,
    Je partage la résolution des problèmes mentionnés dans mon post précédent.
    – concernant le poids exagéré du Presta, il y avait ~37 Go dans /img/tmp que j’ai supprimé (il se reconstruira)
    – pour la DB, j’ai vidé la table « ps_layered_filter_block » (1,3 Go), et pour éviter une reprise de poids, j’ai désactivé le cache du module « Navigation à facettes » (NDD/modules/ps_facetedsearch/ps_facetedsearch-clear-cache.php?token=…)
    En espérant que ça puisse servir.
    Bonne continuation

    Répondre
    • Bonjour Serge,
      Merci d’être repassé ici pour donner un retour d’expérience ! Effectivement c’est très juste les points que vous mentionnez, notamment les images où les miniatures peuvent également être régénérées tant que le fichier original existe. Et pour la navigation à facette, la désactivation du cache est une bonne idée. Je n’ai pas creusé plus que ça la question dans ma précédente réponse, mais il s’agit d’excellentes idées pour réduire la taille des fichiers et DB à migrer.

      Je me les note (surtout le cache de la navigation à facette) ça pourra d’ailleurs m’être utile 😉

      Répondre
  15. Cet article m’a été très utile, merci! J’ai encore quelques soucis, mais surtout lié aux déclinaisons, mais ça, c’est une autre histoire.

    Répondre
  16. Bonjour

    Thierry,

    Je vous ai contacté la semaine dernière à propos de ma migration que j’avais effectué en local vers l’hébergeur, cependant je recontre toujours le même problème d’affichage sur l’ensemble du site.

    Pour info, j’ai bien désactiver et réactiver les réécritures URL dans le BO mais rien n’y fait malheureusement avez-vous d’autres pistes ? Si possible

    Je vous remercie d’avance.

    Cdt.

    Répondre
    • Bonjour,
      Changer les permaliens n’aura aucun effet sur votre problème si vous ne changez par l’URL de votre boutique comme je vous l’aie indiqué. Il manque un slash après le nom de domaine et cela va empêcher de fonctionner toutes les URLs. Il faut que vous changiez ça dans la base de données (ps_shop_url et ps_configuration) et qu’ensuite seulement, vous fassiez l’opération sur la réecriture des URLs. Avez-vous bien changé l’URL de votre site dans la base ?

      Répondre
  17. Bonjour,
    Merci pour le tuto…parfait pour moi.
    Juste un soucis, je n’ai plus accès au backoffice du site.
    Lorsque je lance l’URL de connexion j’ai une page blanche.
    J’ai vidé le dossier cache de prestsahop et du navigateur…mais rien
    Une idée?
    Merci d’avance
    Jérôme

    Répondre

Laisser un commentaire

Télécharger cette super ressource gratuite !

Entrez votre adresse e-mail ci-dessous et recevez cette ressource dans votre boîte de réception dans quelques secondes.