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 :


VersionSymptôme sans l'override
PrestaShop 9.xLa mise à jour d'un client échoue avec l'erreur 93 : parameter "last_passwd_gen" not writable (ou "secure_key").
PrestaShop 8.xLes 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_gen et secure_key envoyé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.php fourni 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.php n'existe pas : passez à l'étape 2.
  • Le fichier Customer.php existe 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.php

Le 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

  1. Affichez n'importe quelle page de la boutique et du back-office : elles doivent s'afficher normalement.
  2. Lancez une synchronisation depuis E-connecteur.
  3. 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.
  4. 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ômeCause probableSolution
L'erreur 93 persisteL'override n'est pas pris en compteVé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'installationFichier mal copié (tronqué, encodage modifié) ou conflit avec un autre overrideSupprimer 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-mailCorriger le doublon dans la boutique ou dans le logiciel de gestion. Ce point n'est pas lié à l'override.


5. Désinstallation

  1. Supprimez override/classes/Customer.php.
  2. Supprimez var/cache/prod/class_index.php, ainsi que var/cache/dev/class_index.php s'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é $webserviceParameters et les méthodes setWsLastPasswdGen, setWsSecureKey, setWsPasswd et updateWs ;
  • 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.php comme 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.

Pièces jointes (1)

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

Dites-nous comment nous pouvons améliorer cet article !

Sélectionner au moins l'une des raisons
La vérification CAPTCHA est requise.

Commentaires envoyés

Nous apprécions vos efforts et nous allons corriger l'article