Pour vendre aux professionnels sur une boutique WooCommerce qui vend déjà aux particuliers, il faut trois briques : un formulaire qui crée des comptes avec un rôle « Pro », des prix réservés à ce rôle, puis quelques règles propres au B2B. Tout peut se faire avec des extensions gratuites, et quelques lignes de code pour les règles plus fines.
En bref
- User Registration crée un formulaire d’inscription qui attribue le rôle « Pro ».
- Role Based Pricing (gratuit) ou YITH Role Based Prices (payant) fixent les prix de ce rôle.
- Un rôle peut évoluer automatiquement selon le montant acheté.
- Quatre extraits de code : minimum de commande, catégories masquées, colonne Société, moyens de paiement par rôle.
- Les codes sont compatibles avec le stockage des commandes HPOS de WooCommerce.
1. Un formulaire pour créer des comptes pro
Deux extensions gratuites suffisent :
- User Registration & Membership crée le formulaire d’inscription et attribue automatiquement le rôle choisi au nouveau compte ;
- Role Based Pricing for Woo, de Meow Crew, crée le rôle « Pro » lui-même.
Pensez à demander dès l’inscription la raison sociale, le SIREN et le numéro de TVA : depuis la réforme de la facturation électronique, ces informations sont indispensables pour facturer un professionnel.
2. Des prix réservés au rôle Pro
Avec l’extension gratuite
Role Based Pricing for Woo, déjà installée à l’étape 1, fixe des prix par rôle ou par client, produit par produit ou pour des catégories entières. Elle peut aussi masquer les prix ou bloquer l’achat pour les visiteurs non connectés. Les remises en pourcentage et les quantités minimum ou maximum par rôle sont dans sa version payante.
Avec l’extension payante de YITH
YITH WooCommerce Role Based Prices va plus loin :
- des règles globales sur toute la boutique, en pourcentage ou en euros, ou produit par produit ;
- des prix différents pour vos partenaires, revendeurs ou membres ;
- le masquage des prix et du bouton « Ajouter au panier » pour certains rôles ou les visiteurs non inscrits.
Elle ne crée pas de rôle : ajoutez votre rôle « Professionnel » avec l’extension gratuite Members.
Voir la mise en place des prix pro, version premium
Pour un catalogue B2B plus complet (formulaire de commande en gros, devis, conditions de paiement par client), une extension dédiée comme B2BKing regroupe tout dans un seul outil.
3. Faire évoluer le rôle automatiquement
Un exemple : quand un client pro atteint 1 000 € d’achats, il passe au rôle « Pro 2 », qui bénéficie de remises plus fortes, réglées comme à l’étape 2. C’est ce que fait YITH Automatic Role Changer for WooCommerce.
4. Quatre règles B2B en quelques lignes de code
Ces extraits se collent dans le fichier functions.php de votre thème enfant ou dans l’extension Code Snippets. Remplacez pro par l’identifiant de votre rôle. Ils servent aussi sur une boutique classique.
Imposer un minimum de commande aux pros
Sur le site d’un client, les comptes pro ne pouvaient commander qu’à partir de 450 € HT. Le message s’affiche dans le panier et bloque la commande tant que le montant n’est pas atteint :
add_action( 'woocommerce_check_cart_items', 'wycan_minimum_commande_pro' );
function wycan_minimum_commande_pro() {
$minimum = 450;
$roles = (array) wp_get_current_user()->roles;
if ( ! in_array( 'pro', $roles, true ) || ! WC()->cart ) {
return;
}
$total = (float) WC()->cart->get_cart_contents_total();
if ( $total < $minimum ) {
wc_add_notice(
sprintf(
'Les comptes pro commandent à partir de %s HT. Votre panier : %s HT.',
wc_price( $minimum ),
wc_price( $total )
),
'error'
);
}
} Masquer des catégories aux pros
add_action( 'pre_get_posts', 'wycan_masquer_categories_pro' );
function wycan_masquer_categories_pro( $query ) {
if ( is_admin() || ! in_array( 'pro', (array) wp_get_current_user()->roles, true ) ) {
return;
}
$liste_produits = 'product' === $query->get( 'post_type' )
|| ( $query->is_main_query() && $query->is_tax( array( 'product_cat', 'product_tag' ) ) );
if ( ! $liste_produits ) {
return;
}
$tax_query = (array) $query->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => array( 10, 20, 30 ),
'operator' => 'NOT IN',
);
$query->set( 'tax_query', $tax_query );
} Remplacez 10, 20, 30 par les identifiants des catégories à masquer. Ce code retire les produits des listes ; une personne qui connaît l’adresse exacte d’un produit peut encore l’ouvrir.
Afficher la société dans la liste des commandes
Une colonne « Société » dans la liste des commandes montre d’un coup d’œil quel client pro a commandé. Elle reprend le champ Société saisi au paiement et peut être masquée depuis les options de l’écran. Ce code fonctionne avec le stockage HPOS, activé par défaut sur les boutiques récentes, comme avec l’ancien stockage :
add_filter( 'manage_woocommerce_page_wc-orders_columns', 'wycan_colonne_societe' );
add_filter( 'manage_edit-shop_order_columns', 'wycan_colonne_societe' );
function wycan_colonne_societe( $columns ) {
$nouvelles = array();
foreach ( $columns as $cle => $libelle ) {
$nouvelles[ $cle ] = $libelle;
if ( 'order_status' === $cle ) {
$nouvelles['billing_company'] = 'Société';
}
}
return $nouvelles;
}
add_action( 'manage_woocommerce_page_wc-orders_custom_column', 'wycan_colonne_societe_contenu', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column', 'wycan_colonne_societe_contenu', 10, 2 );
function wycan_colonne_societe_contenu( $column, $commande ) {
if ( 'billing_company' !== $column ) {
return;
}
$commande = $commande instanceof WC_Order ? $commande : wc_get_order( $commande );
if ( $commande ) {
echo esc_html( $commande->get_billing_company() );
}
} Masquer des moyens de paiement aux pros
Par exemple, ne pas proposer PayPal ni le chèque aux comptes pro :
add_filter( 'woocommerce_available_payment_gateways', 'wycan_paiements_pro' );
function wycan_paiements_pro( $passerelles ) {
if ( ! in_array( 'pro', (array) wp_get_current_user()->roles, true ) ) {
return $passerelles;
}
foreach ( array( 'cheque', 'paypal' ) as $id ) {
unset( $passerelles[ $id ] );
}
return $passerelles;
} Les identifiants des moyens de paiement se lisent dans l’adresse de leur page de réglages, dans WooCommerce, Réglages, Paiements.
Et ensuite ?
Avec ces briques, votre boutique accueille les professionnels avec leurs propres prix et leurs propres règles, sans créer un second site. Pour un vrai portail B2B (tarifs négociés par client, commandes récurrentes, liaison avec votre ERP), un développement sur mesure devient souvent plus simple à maintenir qu’une pile d’extensions.
Vous avez un projet B2B sur WooCommerce ? On développe les règles qui collent à votre façon de vendre, ou parlons de votre boutique.