Override customer PrestaShop
Tiana Riantsoa RAHARISON
Modifié le : Lun, 21 Sept., 2026 à 5:41 H
Public : marchands utilisant E-connecteur avec PrestaShop, et leur webmaster.
Versions concernées : PrestaShop 8.0 et supérieures, PrestaShop 9.0 et supérieures.
Durée : environ 5 minutes. Un accès FTP ou SSH à la boutique est nécessaire.
1. À quoi sert ce fichier ?
E-connecteur crée et met à jour les comptes clients de votre boutique au travers du webservice PrestaShop. Selon la version de PrestaShop, ce webservice présente deux comportements qui perturbent la synchronisation :
| Version | Symptôme sans l'override |
|---|---|
| PrestaShop 9.x | La mise à jour d'un client échoue avec l'erreur 93 : parameter "last_passwd_gen" not writable (ou "secure_key"). |
| PrestaShop 8.x | Les champs internes last_passwd_gen et secure_key du client peuvent être vidés en base lors d'une mise à jour. Conséquences possibles : lien de réinitialisation de mot de passe inopérant, délai anti-spam de réinitialisation non respecté. |
L'override Customer.php corrige ces deux points :
- les champs
last_passwd_genetsecure_keyenvoyés par le webservice sont ignorés : PrestaShop conserve ses propres valeurs ; - les valeurs existantes en base sont préservées lors de chaque mise à jour ;
- le mot de passe du client n'est jamais modifié par erreur:
- s'il est vide, le mot de passe existant est conservé ;
- s'il est identique à celui en base, rien ne change ;
- s'il est déjà chiffré (format bcrypt ou md5 PrestaShop), il est enregistré tel quel ;
- sinon, il est chiffré avec le mécanisme standard de PrestaShop.
Le fichier ne modifie aucun autre comportement de la boutique : l'inscription, la connexion, le back-office et les modules ne sont pas concernés.
2. Prérequis
- Un accès FTP, SFTP ou SSH aux fichiers de la boutique.
- Le fichier
Customer.phpfourni par Vaisonet. - Dans le back-office, sous Paramètres avancés > Performances > Mode debug, l'option « Désactiver tous les overrides » doit être sur Non.
Avant toute intervention, sauvegardez les fichiers de la boutique, au minimum le dossier override/.
3. Installation
Étape 1 : vérifier qu'aucun override Customer n'existe déjà
Ouvrez le dossier override/classes/ à la racine de votre boutique.
- Le fichier
Customer.phpn'existe pas : passez à l'étape 2. - Le fichier
Customer.phpexiste déjà, installé par un autre module : ne l'écrasez pas, reportez-vous au paragraphe 6.
Étape 2 : déposer le fichier
Copiez Customer.php dans :
<racine de la boutique>/override/classes/Customer.phpLe fichier doit être placé dans override/classes/ et pas dans classes/. Ne modifiez jamais le fichier classes/Customer.php d'origine de PrestaShop.
Étape 3 : régénérer l'index des classes
PrestaShop garde en cache la liste des overrides. Supprimez les fichiers suivants, qui sont recréés automatiquement :
<racine de la boutique>/var/cache/prod/class_index.php
<racine de la boutique>/var/cache/dev/class_index.php (s'il existe)Vous pouvez aussi vider le cache depuis le back-office : Paramètres avancés > Performances > Vider le cache.
Étape 4 : vérifier
- Affichez n'importe quelle page de la boutique et du back-office : elles doivent s'afficher normalement.
- Lancez une synchronisation depuis E-connecteur.
- Vérifiez qu'un client modifié dans votre logiciel de gestion est bien mis à jour sur la boutique, sans erreur 93 dans le rapport du connecteur.
- Test conseillé : depuis la boutique, utilisez « Mot de passe oublié » avec un compte client synchronisé. L'e-mail de réinitialisation doit arriver et son lien doit fonctionner.
4. En cas de problème
| Symptôme | Cause probable | Solution |
|---|---|---|
| L'erreur 93 persiste | L'override n'est pas pris en compte | Vérifier l'emplacement (override/classes/), supprimer class_index.php, vérifier que les overrides ne sont pas désactivés. |
| Page blanche ou erreur 500 après l'installation | Fichier mal copié (tronqué, encodage modifié) ou conflit avec un autre override | Supprimer override/classes/Customer.php et class_index.php pour revenir à l'état initial, puis contacter le support Vaisonet. |
| Erreur « The email is already used » | Comportement standard de PrestaShop : un autre compte utilise déjà cet e-mail | Corriger le doublon dans la boutique ou dans le logiciel de gestion. Ce point n'est pas lié à l'override. |
5. Désinstallation
- Supprimez
override/classes/Customer.php. - Supprimez
var/cache/prod/class_index.php, ainsi quevar/cache/dev/class_index.phps'il existe.
La boutique retrouve immédiatement son comportement d'origine.
6. Un fichier Customer.php existe déjà
PrestaShop n'accepte qu'un seul override par classe. Si un module a déjà installé un override/classes/Customer.php, les deux fichiers doivent être fusionnés par votre webmaster :
- reprendre dans le fichier existant les éléments de l'override Vaisonet : la propriété
$webserviceParameterset les méthodessetWsLastPasswdGen,setWsSecureKey,setWsPasswdetupdateWs; - si l'override existant définit déjà l'une de ces méthodes ou la propriété
$webserviceParameters, fusionner le contenu au lieu de le dupliquer : PHP refuse deux méthodes du même nom ; - supprimer ensuite
class_index.phpcomme indiqué à l'étape 3.
Mises à jour de modules : lors de la désinstallation ou de la mise à jour du module qui a créé l'override d'origine, PrestaShop peut tenter de retirer « ses » lignes du fichier. Après chaque intervention de ce type, vérifiez que les éléments Vaisonet sont toujours présents.
En cas de doute, contactez le support Vaisonet en joignant le contenu de votre fichier override/classes/Customer.php actuel.
7. Questions fréquentes
Faut-il réinstaller l'override après une mise à jour de PrestaShop ?
Non, les fichiers du dossier override/ sont conservés lors des mises à jour. Après une mise à jour majeure, par exemple de 8.x vers 9.x, videz simplement le cache et vérifiez qu'une synchronisation client passe sans erreur.
L'override a-t-il un impact sur la sécurité des mots de passe ?
Non. Les mots de passe en clair sont chiffrés avec le mécanisme natif de PrestaShop (bcrypt). Seul le webservice, déjà protégé par votre clé d'API, peut transmettre un mot de passe déjà chiffré.
L'override ralentit-il la boutique ?
Non. Il n'intervient que lors des mises à jour de clients par le webservice, avec une seule lecture en base supplémentaire par client mis à jour.
Est-il utile sur PrestaShop 1.7 ?
Ce fichier a été validé pour PrestaShop 8.x et 9.x. Pour une version antérieure, contactez le support avant de l'installer.
Cet article a-t-il été utile ?
C'est super !
Merci pour votre commentaire
Désolé ! Nous n'avons pas pu vous être utile
Merci pour votre commentaire
Commentaires envoyés
Nous apprécions vos efforts et nous allons corriger l'article