Vendre en B2B : tarifs par client, devis et encours
Une boutique destinée à des professionnels ressemble à une boutique grand public jusqu’au moment où l’on regarde le prix. À partir de là presque tout diverge : qui voit quel tarif, à partir de quelle quantité, hors taxes ou toutes taxes, et payé quand.
Le prix n’est pas une propriété du produit
En vente professionnelle, le prix appartient au triplet client × produit × quantité. Dans PrestaShop, cela passe par la table specific_price, qui accepte un id_group, un id_customer, un id_product_attribute et un from_quantity, avec une règle de priorité qui décide laquelle de ces lignes l’emporte. C’est la première chose à regarder le jour où un acheteur jure voir un tarif que personne ne lui a jamais accordé : il existe presque toujours une ligne plus spécifique que celle à laquelle on pensait.
Vient ensuite l’affichage. Hors taxes ou toutes taxes selon le groupe, mais surtout l’arrondi : arrondir chaque ligne ou arrondir le total ne donne pas le même montant, et sur une commande de plusieurs dizaines de lignes l’écart finit par se voir sur la facture. Un acheteur professionnel rapproche ses factures ; il signalera le centime.
Ce qu’aucun CMS ne sait faire seul en vente professionnelle
- Numéro de TVA intracommunautaire : contrôle du format, validation auprès du service européen VIES, exonération automatique quand la validation réussit, et surtout un comportement défini quand le service est indisponible — ce qui arrive.
- Cycle devis complet : panier, demande de devis, validation par le commercial, transformation en commande. Aucun des trois CMS ne le propose en natif, et c’est le développement le plus souvent demandé sur ce type de boutique.
- Édition du document et suivi des révisions : un devis se discute et se corrige, chaque version doit rester consultable et la transformation doit reprendre les prix acceptés, pas les prix courants du jour.
- Paiement différé et encours : commande validée sans débit immédiat, facture à échéance, plafond d’encours par compte, blocage automatique au-delà. Le tunnel doit accepter un moyen de paiement qui n’encaisse rien mais engage.
- Conditionnement : l’unité de vente n’est pas l’unité de stock. Un article se commande par colis de douze ou par palette, avec des multiples imposés et un pas de quantité appliqué côté serveur, pas seulement dans l’attribut du champ de saisie.
- Commande rapide par référence et reprise d’un panier depuis un fichier : un acheteur qui connaît son catalogue ne navigue pas dans les catégories, il saisit des codes article à la chaîne.
- Cloisonnement : certaines gammes ne doivent apparaître qu’à certains comptes, et un tarif négocié ne doit jamais s’afficher pour un visiteur non connecté ni fuiter dans un flux produit.
Ma façon de reprendre une boutique professionnelle
-
Cartographier les règles de prix existantes
Avant de toucher au code, j’inventorie ce qui s’applique déjà : groupes, règles panier, prix spécifiques par client, paliers de quantité, dates de validité oubliées. Sur une boutique en service depuis plusieurs années, cette cartographie explique à elle seule une bonne part des tarifs jugés incohérents.
-
Trancher l’arrondi une fois pour toutes
Je fixe le mode d’arrondi et le nombre de décimales, je les applique du panier jusqu’au document comptable, puis je contrôle sur une commande volontairement longue que le montant affiché, le montant enregistré et le montant imprimé coïncident au centime.
-
Fiabiliser la vérification du numéro de TVA
Le contrôle s’appuie sur le service européen, avec mise en cache du résultat et statut explicite en cas d’indisponibilité. Une commande ne doit ni rester bloquée sans explication, ni être exonérée par défaut alors que la vérification n’a pas pu aboutir.
-
Modéliser le devis comme un objet distinct
Le devis obtient ses propres états, sa numérotation, ses révisions, sa date de validité et son document. La transformation en commande recopie les montants acceptés et verrouille les lignes, pour qu’une évolution du tarif public ne modifie jamais un devis déjà signé.
-
Faire respecter les conditionnements côté serveur
Le pas de quantité, le minimum de commande et le multiple imposé sont revalidés à l’ajout au panier puis à la validation. Un champ de saisie se contourne, et un panier repris depuis un fichier ne passe jamais par l’interface.
Sujets connexes traités ailleurs sur le site
-
Prix différents selon le groupe client
Pourquoi un acheteur voit un montant que personne ne lui a attribué, et dans quel ordre les règles s’appliquent.
-
Connecter la boutique à ses fournisseurs
Type de mission que je traite : synchronisation de catalogue, de stock et de commandes avec un partenaire.
-
Catalogue professionnel sous Shopify
Ce que la plateforme permet réellement en tarification par compte, et où commencent les contournements.
-
Catalogue multifournisseurs
Une mise en production autour d’un catalogue alimenté par plusieurs sources et de tarifs différenciés.
Questions fréquentes
Pourquoi un client voit-il un prix que je ne lui ai pas donné ?
Faut-il afficher les prix hors taxes ou toutes taxes ?
Le cycle devis existe-t-il en standard ?
Comment gérer un plafond d’encours ?
Que se passe-t-il si le service de vérification de TVA ne répond pas ?
Comment permettre une commande par référence ?
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.