En B2B, il est courant de devoir gérer plusieurs groupes de clients dans PrestaShop, chacun avec ses propres conditions commerciales : tarifs, remises, modes de livraison… et moyens de paiement spécifiques.
Le problème ? Par défaut, lorsque vous créez un nouveau groupe client, PrestaShop lui associe automatiquement tous les moyens de paiement disponibles. Ce comportement peut être contraignant si vous souhaitez restreindre certains modes de paiement pour des groupes spécifiques.
Heureusement, il est possible de modifier ce comportement grâce à un override propre de la classe Group. Voici comment procéder.
Étapes techniques pour désactiver certains paiements par défaut
Identifier les modules de paiement à exclure
Connectez-vous à votre base de données (via phpMyAdmin par exemple) et consultez la table ps_module (ou préfixe différent selon votre installation).
Repérez les identifiants (ID) des modules de paiement que vous ne souhaitez pas activer par défaut. Exemple : vous notez les ID 13 et 59 pour les modules à exclure.
Créer un override propre de la classe Group
- Téléchargez le fichier suivant : /classes/Group.php
- Copiez-le dans le dossier override/classes/ de votre installation PrestaShop.
- Ouvrez la copie locale du fichier.
- Modifiez la déclaration de la classe :
class Group extends GroupCore
- Ne conservez que la fonction
addModulesRestrictions
(ligne ~322 des versions 1.7. à 8.2). - Dans cette fonction, repérez la ligne :
foreach ($modules as $module) {
- Ajoutez juste après cette condition pour exclure les modules voulus :
if (in_array($module, ['13', '59'])) {
continue;
}
(remplacez13
et59
par les ID réels de vos modules à désactiver) - Enregistrez le fichier et rechargez les classes via le back-office ou videz le cache de PrestaShop.
Résultat attendu
Désormais, à chaque création d’un nouveau groupe client, les modules de paiement exclus ne seront plus activés par défaut. Vous gardez ainsi la main sur l’activation des moyens de paiement selon vos besoins métier.