Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

Un même catalogue, des prix différents selon le client

Un distributeur B2B vendait aux mêmes références à des profils de clients très différents, chacun avec sa propre grille tarifaire négociée.

Décrire mon problème Discuter sur WhatsApp

Le contexte

La boutique servait plusieurs catégories de clients professionnels : des revendeurs, des centrales d'achat, des entreprises passant commande ponctuellement. Chacun avait négocié des conditions différentes, parfois par famille de produits, parfois par volume d'achat annuel. PrestaShop propose nativement des groupes de clients avec des remises simples, mais ce mécanisme ne suffisait plus dès que les règles se sont complexifiées : une remise différente selon la marque, un plancher de marge à ne jamais descendre, des exceptions négociées produit par produit pour certains comptes.

Gérer ça avec des remises manuelles saisies compte par compte serait devenu ingérable à mesure que le nombre de clients professionnels augmentait.

Ce que j'ai fait

  1. Cadrage des règles réelles

    Recueil de toutes les règles de tarification effectivement appliquées, y compris les exceptions non documentées ailleurs que dans la tête de l'équipe commerciale.

  2. Conception du moteur de règles

    Développement d'un module qui calcule le prix affiché à partir d'une hiérarchie de règles : prix de base, remise par groupe, remise par famille, exception par compte, avec priorité claire entre les niveaux.

  3. Interface d'administration dédiée

    Écran back-office permettant à l'équipe commerciale de créer et modifier une grille sans intervention technique à chaque changement de condition.

  4. Vérification du plancher de marge

    Ajout d'un garde-fou empêchant qu'une combinaison de remises fasse descendre un prix sous un seuil de marge minimale défini par produit.

Ce qui a demandé le plus de soin

  • Cohérence avec les promotions natives

    Le moteur devait cohabiter avec les règles de promotion déjà existantes dans PrestaShop, sans double application ni conflit de priorité.

  • Performance au moment de l'affichage

    Le calcul de prix intervient à chaque affichage de fiche produit et de liste : la logique a été pensée pour rester rapide même avec un grand nombre de règles actives.

  • Traçabilité du prix affiché

    Possibilité de savoir, pour un prix donné, quelle règle a été appliquée — utile en cas de question d'un client sur son tarif.

Questions fréquentes

Ce système remplace-t-il les groupes de clients natifs de PrestaShop ?
Non, il s'appuie dessus et les complète. Les groupes natifs restent la base de segmentation, le moteur de règles ajoute les niveaux de priorité et les exceptions que le natif ne couvre pas seul.
Combien de règles peuvent coexister sans ralentir la boutique ?
Le nombre de règles compte moins que leur structure : une hiérarchie bien pensée avec les bons index en base reste rapide même avec plusieurs centaines de règles actives.
L'équipe commerciale peut-elle modifier les grilles seule ?
C'est justement l'objectif de l'interface d'administration : créer, modifier ou désactiver une grille ne nécessite pas d'intervention technique une fois le module en place.
Que se passe-t-il en cas de règles contradictoires ?
La hiérarchie de priorité définie à la conception tranche automatiquement. Les cas ambigus détectés en amont ont été discutés avec l'équipe commerciale avant la mise en production.

Décrivez votre besoin en 1 minute

Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.

Votre besoin ressemble-t-il à cette réalisation ?
Qu’est-ce qui diffère principalement de l’exemple que vous venez de consulter ? (facultatif)

Ça évite de recopier une solution qui ne correspond pas exactement à votre cas.

Où en êtes-vous sur votre projet ?
Quelle est votre échéance ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.