Nous développons des modules PrestaShop B2B et TVA UE, et nous exploitons nous-mêmes des boutiques européennes ; les noms d'objets et les chemins du back-office ci-dessous sont à jour pour PrestaShop 1.6/1.7/8/9.

Tous les clients ne doivent pas forcément voir le même prix. Un acheteur en gros qui commande 500 unités s'attend à un tarif différent de celui d'un particulier qui achète pour la première fois, et un revendeur de longue date attend encore autre chose. Le réflexe de beaucoup de marchands, ici, est pourtant le mauvais : dupliquer le produit, créer une deuxième boutique "pro" ou coder des remises en dur dans un endroit fragile. PrestaShop gère déjà ce besoin nativement avec les groupes clients. Une couche de segmentation intégrée qui permet à un seul catalogue d'afficher des prix, des catégories et des options de paiement différents selon les personnes, en fonction du groupe auquel appartient le client connecté. Ce guide se concentre précisément sur ce mécanisme : comment les groupes déterminent le prix affiché, comment la logique entre remise et prix spécifique se résout réellement, et à quel moment les groupes ne suffisent plus.

Si vous prenez un peu de recul et vous demandez "comment gérer le B2B dans PrestaShop tout court", commencez par vendre en B2B avec PrestaShop, cet article part du principe que vous avez choisi la tarification par groupes et que vous voulez la configurer correctement.

Ce qu'un groupe client contrôle réellement

Dans PrestaShop, un groupe client est un segment que vous gérez dans Paramètres de la boutique → Paramètres clients → Groupes. Chaque compte client est rattaché à au moins un groupe, et c'est le groupe, pas le client individuel, qui porte la plupart des règles de prix et de visibilité. Par défaut, PrestaShop définit trois groupes, et il vaut la peine de bien comprendre ce qu'ils signifient, car deux d'entre eux ne sont pas des "clients" au sens où on l'imagine spontanément :

  • Visiteur, toute personne qui navigue sans être connectée. Le prix vu par un visiteur anonyme est le prix du groupe Visiteur. C'est un piège fréquent : modifiez les réglages du groupe Visiteur et vous modifiez ce que voient tous les passants et tous les robots des moteurs de recherche.
  • Invité. Un client qui a passé commande sans créer de compte (commande invitée).
  • Client, le groupe par défaut de toute personne qui crée un compte classique.

Vous ajoutez ensuite autant de groupes personnalisés que votre activité l'exige, Grossiste, VIP, Personnel, Distributeur régional, chacun avec sa propre remise, sa propre règle d'affichage des prix et son propre accès aux catégories, et la plupart des modules de paiement peuvent être restreints par groupe depuis l'écran des restrictions/préférences de paiement. L'intérêt concret : une seule boutique PrestaShop, un seul catalogue produits, un seul stock, mais une expérience qui s'adapte à chaque acheteur. Pas de deuxième boutique à synchroniser, pas de références dupliquées qui finissent par diverger.

Les deux façons dont un groupe modifie un prix, et comment elles se résolvent

PrestaShop donne à un groupe deux leviers différents sur le prix, et la principale source de confusion du type "pourquoi ce client voit-il ce mauvais prix ?" vient d'une mauvaise compréhension de leur ordre d'application.

1. La remise globale du groupe (le réglage large)

Dans Paramètres de la boutique → Paramètres clients → Groupes, ouvrez un groupe et vous trouverez un champ Remise %. Définissez Grossiste à 20 % et tous les produits du catalogue s'affichent automatiquement 20 % moins cher pour les membres de ce groupe, sans travail produit par produit. C'est le niveau rapide, à l'échelle de la boutique : idéal pour "tous nos clients professionnels ont 15 % de remise sur tout". La remise s'applique sur le prix de base et se recalcule en direct, elle suit donc automatiquement les changements de prix.

2. Les prix spécifiques (le réglage précis)

Sur n'importe quel produit, l'onglet Prix contient une section Prix spécifiques (l'objet sous-jacent est SpecificPrice, et le même moteur alimente les règles de prix catalogue dans Catalogue → Réductions). Vous pouvez y dire : pour le groupe Grossiste, ce produit vaut 12,00 € fixe, ou bénéficie de 30 % de remise, éventuellement seulement au-dessus d'une quantité de 50, seulement entre deux dates, ou seulement pour une devise ou un pays. C'est ainsi que vous donnez 30 % de remise aux grossistes sur l'électronique, mais seulement 10 % sur les accessoires. Un niveau de contrôle qu'une remise globale ne peut pas exprimer.

Comment ils se combinent

Voici la version pratique : une remise globale de groupe et les prix spécifiques d'un produit sont deux mécanismes séparés, et leur interaction dépend du type de réduction, de la quantité, de la réduction groupe/catégorie et de votre version de PrestaShop. Les prix spécifiques ont leur propre priorité entre les lignes de prix spécifiques correspondantes, cette priorité décide quel prix spécifique s'applique, elle n'annule pas universellement une remise de groupe. Comme le montant final dépend de tous ces facteurs, la règle fiable consiste à tester les chevauchements avec un vrai panier plutôt que de supposer un ordre fixe. Pourquoi cela compte en pratique :

ScénarioRemise de groupePrix spécifique sur le produitCe que paie le grossiste
Niveau large seulement20 % de remise sur tout, Base − 20 %
Produit avec une offre plus forte20 % de remise sur toutGrossiste : 30 % de remise sur ce produitVérifiez avec un panier de test, le prix spécifique correspondant pilote le prix de ce produit
Prix contractuel fixe20 % de remise sur toutGrossiste : 12,00 € fixe12,00 € fixe, quel que soit le prix de base
Palier de volume20 % de remise sur toutGrossiste : 10 % supplémentaires à partir de 100 unitésVérifiez avec un panier de test, le chevauchement entre remise de groupe et prix spécifique par quantité doit être contrôlé selon la configuration/version

Les résultats ci-dessus ne sont pas garantis par une formule fixe : chaque fois qu'une remise de groupe et un prix spécifique par quantité ou par produit se chevauchent, confirmez le prix final avec un client et un panier de test sur votre propre installation avant de le publier aux acheteurs.

Si vous voulez voir quelles lignes de prix spécifiques existent déjà pour un groupe avant de tester les paniers, utile quand un prix "sort de nulle part", cette requête en lecture seule liste tous les prix spécifiques liés à un groupe client (id_group 0 signifie "tous les groupes"). Exécutez-la sur une sauvegarde ou un réplica en lecture :

-- Read-only: specific prices scoped to a customer group.
-- id_group = 0 means the rule applies to ALL groups.
-- reduction_type: 'amount' = fixed off, 'percentage' = % off; price >= 0 = a set price.
SELECT sp.id_specific_price,
       sp.id_product,
       gl.name        AS group_name,
       sp.from_quantity,
       sp.price,
       sp.reduction,
       sp.reduction_type,
       sp.priority,
       sp.`from`, sp.`to`
FROM ps_specific_price sp
LEFT JOIN ps_group_lang gl
       ON gl.id_group = sp.id_group
      AND gl.id_lang = 1        -- your default language id
WHERE sp.id_group <> 0
ORDER BY sp.id_product, sp.from_quantity;

Elle vous montre les lignes ; elle ne vous indique toujours pas le prix résolu pour un panier donné, car la priorité et la remise de groupe active interagissent au moment de l'affichage. La requête sert à faire l'inventaire, le panier de test sert à établir la vérité.

Et donc ? Définissez une fois la remise globale du groupe pour la base "tous les membres de ce niveau", puis utilisez les prix spécifiques uniquement lorsqu'un produit doit faire exception. Si vous essayez d'encoder chaque contrat comme un prix spécifique produit par produit, vous finirez par maintenir des centaines de lignes à la main, et c'est précisément la limite sur laquelle cet article se termine.

Visibilité des catégories par groupe, un superpouvoir discret

Les groupes ne font pas que déplacer les prix ; ils décident aussi de ce qu'un client peut voir. Modifiez n'importe quelle catégorie dans Catalogue → Catégories, ouvrez ses cases Accès des groupes, puis décochez les groupes qui ne doivent pas la voir. Une catégorie "Réservé aux grossistes" contenant des lots et des quantités par palette n'existe alors tout simplement pas pour les acheteurs particuliers, elle disparaît du menu, et les produits qui se trouvent uniquement dans des catégories masquées disparaissent aussi des résultats de recherche et des listes de produits pour ces groupes.

Le bénéfice, c'est une boutique claire sans boutiques parallèles : vos visiteurs particuliers ne voient jamais les cartons de 24 unités qui les perturberaient, et vos acheteurs professionnels arrivent directement dans le catalogue conçu pour eux. Le point de vigilance : un produit doit rester visible pour au moins un groupe auquel le client appartient, sinon il disparaît, donc lorsqu'un produit refuse mystérieusement de s'afficher, l'accès aux catégories du groupe Visiteur est la première chose à vérifier.

Moyens de paiement par groupe

La plupart des modules de paiement PrestaShop exposent une restriction par groupe dans Paiement → Préférences (la matrice "Restrictions par groupe"), ce qui vous permet de décider quels groupes peuvent utiliser quel moyen de paiement. Le cas B2B classique : autoriser les grossistes à payer par virement bancaire ou sur compte, et leur masquer le paiement par carte pour ne pas absorber des frais de carte sur des commandes à cinq chiffres, tout en laissant aux particuliers toutes les options rapides. Permettre aux clients professionnels d'acheter maintenant et de régler plus tard est un sujet à part entière ; nous en détaillons la mécanique dans les conditions de paiement différé pour les clients professionnels, et le module qui limite le paiement sur compte à un groupe, applique des plafonds de crédit et suit les soldes est notre B2B Deferred Payment Terms.

Comment un client se retrouve dans le bon groupe

Page Trade Account Settings sur l'onglet General, avec le module activé, une liste déroulante de groupe de clients professionnels vide, et des champs d'approbation, d'exonération de taxe et de commande minimale
Sur l'onglet General, le module est activé, aucun groupe de clients n'est sélectionné, l'approbation automatique et l'exonération de taxe sont toutes deux réglées sur No, et le montant minimum de commande est de 0.

Un même client peut appartenir à plusieurs groupes, mais il possède exactement un groupe par défaut, défini sur sa fiche dans Clients → Clients, qui détermine l'affichage de son prix de base. Lorsqu'un client appartient à plusieurs groupes, la priorité des prix spécifiques tranche entre les lignes de prix spécifiques correspondantes, tandis que le groupe par défaut pilote l'affichage du prix et le comportement de groupe de base. C'est ce qui rend indispensable de tester explicitement les appartenances multiples : attribuez le groupe supplémentaire, connectez-vous ensuite comme client de test et vérifiez que le prix prévu est bien celui qui s'affiche.

L'affectation manuelle des groupes convient pour une poignée de comptes professionnels. Elle ne convient plus dès que vous validez des clients B2B en volume, à ce stade, la demande, la vérification et l'affectation du groupe doivent former un seul flux de travail plutôt que trois étapes manuelles. C'est un sujet voisin qui mérite son propre traitement : consultez les demandes de compte professionnel pour vérifier une entreprise avant de lui donner accès aux tarifs grossistes. Si vous vendez à l'international, un numéro de TVA UE validé peut déplacer automatiquement le client dans le bon groupe, c'est le rôle de notre Automatic EU VAT Checker, qui place directement une entreprise vérifiée via VIES dans le groupe approprié.

Une chose que les groupes ne décident PAS seuls : l'affichage des taxes

Il est tentant de considérer "afficher les prix HT aux grossistes" comme un simple réglage de groupe supplémentaire, et PrestaShop expose bien une Méthode d'affichage des prix (taxes incluses / taxes exclues) par groupe. Mais obtenir le bon affichage HT/TTC en B2B ne se limite pas à basculer cette option : cela interagit avec vos règles de taxes par pays, la logique de prix affiché sur les fiches produits et dans le panier, ainsi que la gestion de l'exonération de TVA. Plutôt que de traiter ce point à moitié ici et de contredire le guide dédié, le sujet complet se trouve dans prix HT vs prix TTC : basculer l'affichage des taxes, et la partie automatisée liée au numéro de TVA dans le vérificateur de TVA UE. Définissez la méthode d'affichage du groupe, puis suivez ces guides pour les parties qui posent réellement problème.

Checklist de configuration pratique

  • Gardez peu de groupes, 3 à 5. Chaque groupe multiplie ce que vous devez tester (prix, visibilité, paiement, affichage des taxes). La plupart des boutiques ont besoin d'un groupe Particuliers, d'un ou deux niveaux professionnels, et peut-être d'un groupe Personnel. Résistez à l'idée de créer un groupe par client.
  • Utilisez la remise de groupe pour le niveau, les prix spécifiques pour les exceptions. Réglage large d'abord, réglage précis ensuite, pas des centaines de lignes construites à la main.
  • Réservez les règles panier aux promotions limitées dans le temps. Les groupes structurent une tarification permanente ; une vente saisonnière doit aller dans Catalogue → Réductions → Règles panier, pas être intégrée à une remise de groupe que vous oublierez de retirer.
  • Testez avec un vrai compte dans ce groupe. Créez un client de test, attribuez-lui le groupe, connectez-vous normalement, puis vérifiez le prix, les catégories visibles et les options de paiement. Si vous avez installé un module fiable de connexion en tant que client, cela se fait en quelques clics, mais un simple compte de test fonctionne partout.
  • Documentez la structure. Dès que des prix spécifiques se chevauchent entre groupes, il devient vraiment difficile de prévoir un montant de mémoire, gardez une courte carte groupe → remise → prix spécifiques notables.

Là où les groupes clients ne suffisent plus

Les groupes sont conçus pour des niveaux : des ensembles de clients qui partagent un prix. Ils conviennent mal à une tarification par client. Le cas B2B classique où chaque revendeur a négocié individuellement ses tarifs sur différentes gammes de produits. Vous pouvez l'exprimer avec des prix spécifiques au niveau du client, mais vous devrez maintenir une ligne SpecificPrice par client et par produit, à la main, indéfiniment. Pour quelques dizaines de contrats, c'est fastidieux ; pour des centaines, cela devient un travail à temps partiel et une source d'erreurs de prix qui coûtent réellement de l'argent.

C'est la limite honnête du système natif : les groupes vous donnent des niveaux de prix propres et peu coûteux à maintenir, et c'est la bonne réponse pour la plupart des boutiques, mais si votre modèle est réellement "chaque compte a sa propre liste de prix", vous avez dépassé ce que les groupes seuls permettent de gérer confortablement, et la charge de maintenance devient le facteur décisif. Avant de construire cela, il vaut la peine de tester sérieusement si un plus petit nombre de groupes bien conçus, complétés par quelques prix spécifiques, vous amène à 90 % du résultat avec un dixième de l'entretien. La plupart des boutiques découvrent que oui.

Les groupes clients font partie des fonctionnalités les plus discrètement puissantes de PrestaShop : un seul catalogue, un seul stock, et une boutique qui adapte ses prix, ses catégories et ses options de paiement à la personne connectée. Comprenez clairement la logique entre remise de groupe et prix spécifique, gardez un nombre de groupes maîtrisé, et confiez l'affichage des taxes ainsi que la validation des comptes professionnels aux guides prévus pour cela, vous obtenez alors une couche de tarification B2B qui fonctionne sans vous dévorer du temps.

Questions fréquentes

Quelle est la différence entre une remise de groupe et un prix spécifique ?

La Remise % du groupe (sur le groupe lui-même) est une réduction large, à l'échelle de la boutique, pour tous les clients de ce niveau, définissez Grossiste à 20 % et tout le catalogue s'affiche 20 % moins cher pour ce groupe. Un Prix spécifique (dans l'onglet Prix d'un produit) est une règle par produit qui peut définir un prix fixe ou une réduction différente, éventuellement limitée à un groupe, une quantité, des dates, une devise ou un pays. Utilisez la remise de groupe pour le niveau de base et les prix spécifiques uniquement pour les exceptions.

Si un groupe a 20 % de remise et qu'un produit a aussi un prix spécifique de 30 % pour ce groupe, que paie le client ?

Ne supposez pas une formule fixe, le résultat dépend des types de réduction, de la quantité, de la réduction groupe/catégorie et de votre version de PrestaShop, et la priorité des prix spécifiques tranche entre les lignes correspondantes plutôt que d'annuler universellement la remise de groupe. La réponse fiable consiste à vous connecter comme client de test dans ce groupe et à vérifier le prix dans un vrai panier avant de le publier.

Pourquoi un client ne voit-il pas un produit auquel j'ai attribué un prix pour son groupe ?

La visibilité est séparée du prix. Un produit doit être visible pour au moins un groupe auquel le client appartient (réglage par catégorie dans Catalogue → Catégories → Accès des groupes), et un produit qui se trouve uniquement dans des catégories masquées disparaît aussi de la recherche et des listes de produits. Lorsqu'un produit ne s'affiche pas, vérifiez l'accès du groupe à la catégorie, et commencez par l'accès du groupe Visiteur.

Un client est dans mon groupe Grossiste mais voit encore les prix particuliers. Qu'est-ce qui ne va pas ?

L'affichage des prix et le comportement de base suivent le groupe par défaut du client, pas seulement n'importe quel groupe auquel il est rattaché. Si son groupe par défaut est encore Client/particulier, il voit les prix particuliers et l'affichage TTC, même si le groupe Grossiste est également associé. Définissez Grossiste comme groupe par défaut sur sa fiche, puis retestez avec ce compte.

Puis-je donner à chaque revendeur sa propre liste de prix négociée individuellement avec les groupes ?

Les groupes sont conçus pour des niveaux partagés, pas pour des listes de prix par compte. Vous pouvez exprimer une tarification individuelle avec des prix spécifiques au niveau client, mais cela représente une ligne SpecificPrice par client et par produit, maintenue à la main, gérable pour quelques dizaines de contrats, mais un travail à temps partiel et une source d'erreurs à partir de plusieurs centaines. Si c'est réellement votre modèle, vous avez dépassé les groupes natifs ; testez d'abord si quelques groupes bien conçus plus une poignée de prix spécifiques couvrent l'essentiel.

Tags : B2B PrestaShop SEO
David Miller

David Miller

Fondateur, mypresta.rocks
À propos de l’auteur

David Miller est un spécialiste PrestaShop fort de plus de dix ans d'expérience concrète et le fondateur de mypresta.rocks, un studio de développement situé à Tychy, en Pologne. Il conçoit et maintient un catalogue de 159 modules PrestaShop, dont 21 suites « Revolution » couvrant le SEO, le checkout, la sécurité, la performance, le marketing, la recherche, le support et la gestion d'entrepôt, qui améliorent chaque jour de vraies boutiques, testés sur PrestaShop 1.7.8, 8.x et 9.x. Il assure également la maintenance de boutiques en production : son travail se juge donc sur des ventes réelles, pas sur des démos. Son expérience couvre l'ensemble du e-commerce. Performance, sécurité, SEO et marketing, et va au-delà de PrestaShop, jusqu'à WooCommerce, Shopify et les systèmes sur mesure. Sur le blog, il écrit sur la face technique de PrestaShop : ce que la plateforme fait vraiment, ce qui casse en production et quelles solutions tiennent dans la durée.

Partager cet article:

Commentaires

Aucun commentaire pour le moment. Soyez le premier !

Cet article vous a plu ?

Recevez nos derniers conseils, guides et mises à jour de modules dans votre boîte mail.

Vous pouvez vous désinscrire à tout moment. Vous trouverez pour cela nos informations de contact dans les conditions d'utilisation du site.

Chargement...
Retour en haut