⚙️ ConfigurationIntermédiaire PS 1.7 PS 8.x

Modifier une adresse e-mail dans PrestaShop : back-office, SQL et API

Comment changer l'adresse e-mail d'un client ou d'un administrateur dans PrestaShop 1.7 et 8.x : back-office, requête SQL directe et API REST.

En bref : Pour modifier une adresse e-mail dans PrestaShop, privilégiez le back-office (Clients ou Employés). En cas d'urgence, une requête SQL UPDATE sur ps_customer ou ps_employee fonctionne, à condition de vérifier l'unicité de l'adresse et de vider le cache ensuite.

Publié le 21 mars 2026 5 min de lecture Alexandre Carette

Pourquoi modifier une adresse e-mail dans PrestaShop ?

La modification d'une adresse e-mail — qu'il s'agisse d'un compte client ou d'un compte administrateur — est une opération courante mais souvent mal documentée. Un client change de fournisseur de messagerie, une faute de frappe bloque l'accès au compte, ou un administrateur quitte l'entreprise : les cas d'usage sont nombreux.

Pourtant, cette manipulation touche à un identifiant unique critique dans PrestaShop. L'adresse e-mail sert à la fois de login, de canal de communication transactionnelle et de clé de dédoublonnage. Une modification mal effectuée peut entraîner des conflits de compte, des e-mails de confirmation perdus, voire un verrouillage du back-office.

Voici les trois méthodes pour effectuer cette opération proprement, classées par ordre de recommandation.

Méthode 1 : via le back-office (recommandée)

Modifier l'e-mail d'un client

C'est la méthode la plus sûre et la plus traçable.

  1. Accédez à **Clients > Clients** dans le menu latéral
  2. Recherchez le client concerné par nom ou par e-mail actuel
  3. Cliquez sur **Modifier** (icône crayon)
  4. Changez le champ **Adresse e-mail**
  5. Enregistrez
  6. PrestaShop vérifie automatiquement que la nouvelle adresse n'est pas déjà utilisée par un autre compte. Si c'est le cas, vous devrez d'abord fusionner ou supprimer le doublon.

    Modifier l'e-mail d'un administrateur

    1. Accédez à **Paramètres avancés > Équipe > Employés**
    2. Cliquez sur **Modifier** à côté de l'employé concerné
    3. Modifiez le champ e-mail
    4. Enregistrez
    5. Attention sur PrestaShop 8.x : depuis la refonte Symfony du back-office, la page Employés utilise le nouveau framework de formulaires. Le comportement est identique, mais les validations sont plus strictes (format RFC 5322).

      Permettre au client de modifier lui-même son e-mail

      Par défaut, PrestaShop permet au client de changer son adresse e-mail depuis Mon compte > Informations personnelles. Le client doit saisir son mot de passe actuel pour valider la modification — c'est une sécurité essentielle.

      Si cette fonctionnalité semble désactivée sur votre boutique, vérifiez :

      • Que le thème n'a pas supprimé ou masqué le formulaire dans `themes/votre-theme/templates/customer/identity.tpl`
      • Que le module `ps_emailsubscription` ne crée pas de conflit
      • Que le fichier `controllers/front/IdentityController.php` n'a pas été surchargé avec une restriction

      Méthode 2 : via une requête SQL directe

      Pour les cas urgents ou les modifications en masse, l'accès direct à la base de données est parfois nécessaire.

      Modifier l'e-mail d'un client

      
      -- Vérifier d'abord que la nouvelle adresse n'existe pas déjà
      SELECT id_customer, email, firstname, lastname
      FROM ps_customer
      WHERE email = 'nouvelle-adresse@example.com';
      
      -- Si aucun résultat, procéder à la modification
      UPDATE ps_customer
      SET email = 'nouvelle-adresse@example.com'
      WHERE id_customer = 42;
      

      Modifier l'e-mail d'un employé back-office

      
      UPDATE ps_employee
      SET email = 'nouveau-admin@example.com'
      WHERE id_employee = 1;
      

      Important : remplacez le préfixe ps_ par le préfixe réel de vos tables si vous l'avez personnalisé à l'installation.

      Précautions indispensables

      • **Sauvegardez** votre base de données avant toute modification manuelle
      • **Videz le cache** PrestaShop après la modification : supprimez le contenu de `var/cache/prod/` et `var/cache/dev/` (PrestaShop 8.x) ou `app/cache/` (1.7)
      • **Vérifiez les tables liées** : l'e-mail peut aussi apparaître dans `ps_address` (champ de facturation), `ps_newsletter` ou des tables de modules tiers
      • **Ne modifiez jamais le mot de passe hashé** en même temps sans utiliser la fonction de hachage de PrestaShop (`password_hash()` avec `PASSWORD_BCRYPT` sur PS 8.x)

      Méthode 3 : via l'API Webservice

      Si vous gérez les comptes via un ERP ou un CRM externe, l'API Webservice de PrestaShop est la bonne approche.

      
      # Récupérer les données actuelles du client
      curl -s -u 'VOTRE_CLE_API:' \
        'https://votre-boutique.com/api/customers/42' \
        -H 'Output-Format: JSON'
      
      # Modifier l'e-mail via PUT
      curl -X PUT -u 'VOTRE_CLE_API:' \
        'https://votre-boutique.com/api/customers/42' \
        -H 'Content-Type: application/xml' \
        -d '<?xml version="1.0" encoding="UTF-8"?>
      <prestashop>
        <customer>
          <id>42</id>
          <email>nouvelle-adresse@example.com</email>
        </customer>
      </prestashop>'
      

      PrestaShop 8.x : pensez à activer la ressource customers avec les permissions GET et PUT dans Paramètres avancés > Webservice.

      Gestion des conflits et cas particuliers

      Doublon d'adresse e-mail

      PrestaShop interdit deux comptes client avec la même adresse e-mail (contrainte d'unicité). Si le client souhaite récupérer un e-mail déjà associé à un autre compte, vous devez :

      1. Identifier l'ancien compte : `SELECT * FROM ps_customer WHERE email = 'adresse@example.com';`
      2. Soit supprimer l'ancien compte s'il est inactif (attention à l'historique de commandes)
      3. Soit fusionner les deux comptes en réassignant les commandes
      4. Multiboutique

        En mode multiboutique, l'adresse e-mail est partagée entre toutes les boutiques du même groupe. Modifier l'e-mail d'un client sur la boutique A le modifie aussi sur la boutique B. C'est un comportement normal car la table ps_customer est commune — seule l'association ps_customer_shop varie.

        Impact sur les abonnements newsletter

        Si le client était inscrit à la newsletter, la table ps_emailsubscription conserve l'ancienne adresse. Pensez à la mettre à jour :

        
        UPDATE ps_emailsubscription
        SET email = 'nouvelle-adresse@example.com'
        WHERE email = 'ancienne-adresse@example.com';
        

        Bonnes pratiques de sécurité

        • **Journalisez** chaque modification d'e-mail (un hook `actionObjectCustomerUpdateAfter` permet de logger automatiquement)
        • **Envoyez une notification** à l'ancienne ET à la nouvelle adresse pour prévenir toute usurpation
        • **Imposez une re-authentification** si vous développez un module personnalisé de modification de profil
        • **En RGPD**, la modification d'e-mail doit être traçable : conservez un log horodaté des changements d'identifiants
#email #compte client #back-office #base de données #administration

Questions fréquentes

Tout ce que vous devez savoir sur ce sujet.

Un projet PrestaShop ?

Discutons-en directement.

★★★★★

193 projets livrés

Gratuit & sans engagement — réponse sous 24h

Alexandre Carette

Alexandre Carette

Expert PrestaShop & Architecture E-commerce

Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.