WooCommerce B2B : comment configurer un magasin de gros
Publié: 2020-06-09
Le secteur du commerce électronique connaît une croissance incroyable, année après année, sans fin prévisible en vue. Il en va de même pour le commerce électronique B2B, mais il n'y a pas beaucoup de bons choix de plateformes disponibles pour les petites et moyennes entreprises qui souhaitent vendre en gros. Il existe plusieurs solutions SaaS sur le marché, mais elles sont coûteuses, fermées et principalement orientées vers les grandes entreprises.
Si vous êtes propriétaire ou développeur d'entreprise, WooCommerce est une solution gratuite, polyvalente et puissante.
WooCommerce est-il adapté aux boutiques B2B ?
"Out-of-the-box", ce n'est pas le cas. WooCommerce est une solution fantastique pour les magasins de commerce électronique, mais il n'a pas été développé spécifiquement pour la vente en gros, il manque donc de nombreuses options importantes au départ. Cependant, vous pouvez utiliser un puissant plugin de vente en gros comme B2BKing pour étendre WooCommerce et ajouter toutes les fonctionnalités interentreprises dont vous pourriez avoir besoin.
Il y a deux autres aspects dont vous devez être conscient lorsque vous choisissez WooCommerce pour votre projet B2B :
- WooCommerce nécessitera des mises à jour régulières du plugin pour s'assurer qu'il est sécurisé et fonctionne correctement.
- Selon la configuration de votre hébergement et de votre site Web, l'environnement WordPress peut parfois fonctionner un peu lentement. Cependant, il existe des moyens de l'optimiser et de l'accélérer, par exemple via des plugins comme WP Rocket (ou d'autres plugins de mise en cache et d'optimisation).
Bien qu'il ne soit pas parfait, WooCommerce alimente actuellement plus de 20 % des boutiques en ligne dans le monde, et il y a de bonnes raisons à cela : c'est gratuit, open-source, puissant et sécurisé. Ces mêmes qualités en font également un excellent choix pour les magasins de gros.
En quoi une boutique B2B diffère-t-elle d'une boutique en ligne typique ?
La vente interentreprises est souvent une expérience très différente et plus personnelle que la vente directe aux consommateurs. Les acheteurs professionnels sont bien informés, ouverts à la négociation et souhaitent obtenir des offres et des remises intéressantes pour les achats en gros. Les catalogues de prix, les options de remise et les options de paiement et d'expédition peuvent varier considérablement d'un client à l'autre, en fonction de facteurs tels que la taille de l'entreprise, la taille de la commande ou les relations commerciales existantes.
Du point de vue du développement de sites Web, cela se traduit par la nécessité d'un degré élevé de flexibilité technique en matière de tarification, de remises, d'expédition et de règles de commande.
La vente aux entreprises introduit également un besoin de fonctionnalités telles que :
- Masquer les prix pour les clients
- Formulaire d'enregistrement d'entreprise
- Prise en charge du numéro de TVA (ou autre numéro d'identification fiscale)
- Exonérations fiscales
- Demandes de devis
- Champs de facturation et de paiement personnalisés
- Formulaire de commande en gros
- Possibilité de prendre en charge plusieurs utilisateurs sur un compte acheteur (pour les structures d'entreprise)
Allons-y et voyons comment certaines de ces fonctionnalités peuvent être implémentées dans WooCommerce. Les sections suivantes seront davantage destinées aux développeurs et je partagerai quelques extraits de code qui, je l'espère, vous seront utiles, ainsi que des plugins gratuits que vous pourrez utiliser.
1. Masquer les prix pour les utilisateurs invités
Commençons par une facile. Vous pouvez le faire avec deux filtres WooCommerce. Tout d'abord, utilisons woocommerce_get_price_html pour changer le prix affiché en "Connectez-vous pour voir les prix".
add_filter( 'woocommerce_get_price_html', 'b2bking_hide_prices_guest_users', 10, 2 );
function b2bking_hide_prices_guest_users( $price, $product ){
if ( ! is_user_logged_in() ){
return esc_html__( 'Login to view prices', 'your-plugin-text-domain' );
} else {
return $price;
}
}
Une fois que nous avons fait cela, les prix ne sont plus visibles et seront remplacés par notre texte. Cela ne suffit cependant pas, car l'utilisateur peut toujours ajouter ces produits au panier et voir leur prix. Une solution nous est apportée par le filtre bien nommé woocommerce_is_purchasable .
add_filter( 'woocommerce_is_purchasable', 'b2bking_disable_purchasable_guest_users' );
function b2bking_disable_purchasable_guest_users( $purchasable ){
if ( ! is_user_logged_in() ){
return false;
} else {
return $purchasable;
}
}
Après avoir ajouté cela, les produits ne devraient plus être achetables par les utilisateurs invités et le bouton "ajouter au panier" ne sera plus disponible. Une autre chose qui mérite d'être mentionnée est que vous pouvez avoir des problèmes lors de l'utilisation des formulaires de recherche AJAX, selon la façon dont ils sont configurés. Un moyen rapide de résoudre ce problème consiste également à ajouter le code ci-dessus à votre code principal et à rechercher AJAX en enveloppant le code à l'intérieur :
if ( wp_doing_ajax() ){
// code here
}
Le résultat final :
Si vous êtes intéressé par une alternative de plugin parce que vous n'êtes pas familier avec le codage, B2BKing a ceci et d'autres fonctionnalités de restriction d'accès des invités comme une option pour masquer entièrement le site Web ou masquer les prix de produits ou de catégories individuels.
2. Enregistrement de l'entreprise ou formulaires d'enregistrement B2B et B2C séparés
Ce que vous voulez faire ici, c'est ajouter des champs personnalisés tels que "Nom de l'entreprise", "Adresse", "ID de TVA", etc.
Vous pouvez utiliser ce code pour ajouter un champ personnalisé pour le nom de l'entreprise :
add_action( 'woocommerce_register_form', 'b2bking_custom_registration_field' );
function b2bking_custom_registration_field(){
echo '<label>' . esc_html__( 'Company name', 'your-custom-text-domain' ) . '</label>';
echo '<input type="text" name="billing_company">';
}
Si vous souhaitez synchroniser ce champ avec le champ de facturation WooCommerce pour le nom de l'entreprise lors de l'inscription, vous pouvez le faire en utilisant le hook woocommerce_created_customer et en enregistrant le nom de l'entreprise en tant que méta utilisateur, en utilisant les mêmes champs que WooCommerce utilise : billing_first_name, billing_company, billing_city, etc:
add_action( 'woocommerce_created_customer', 'b2bking_save_custom_registration_fields' );
function b2bking_save_custom_registration_fields( $user_id ) {
$field_value = sanitize_text_field( filter_input( INPUT_POST, 'billing_company' ) );
if ( $field_value !== NULL ){
update_user_meta( $user_id, 'billing_company', $field_value );
}
}
Comment pouvez-vous créer des champs de formulaire B2B et B2C séparés ? Vous pouvez ajouter un champ "Sélectionner" à l'enregistrement de la manière expliquée ci-dessus et utiliser un peu de JavaScript pour déterminer si l'utilisateur a choisi "Particulier" ou "Société". Afficher ou masquer les champs d'inscription comme le nom de l'entreprise en fonction de ce que l'utilisateur choisit.

Si vous souhaitez éviter le codage, il existe des solutions de plug-in gratuites pour étendre l'inscription, telles que https://wordpress.org/plugins/user-registration/ qui ont également des options pour plusieurs formulaires d'inscription, bien que la création d'une inscription spécifique au B2B puisse nécessiter un peu de travail supplémentaire de votre côté.
Si vous recherchez une solution premium, B2BKing fournit des codes abrégés pratiques et faciles à utiliser que vous pouvez ajouter à n'importe quelle page et créer un formulaire d'enregistrement d'entreprise.
3. Formulaire de commande en gros
Les clients professionnels savent souvent exactement ce qu'ils veulent, jusqu'au SKU, donc l'ajout d'un formulaire de commande en gros à votre site Web accélère la commande pour vos clients et vous donne un aspect professionnel.
Comment pouvez-vous en ajouter un ? Il n'y a pas d'extrait de code rapide qui puisse faire cela, donc je pense qu'un plugin est votre meilleure solution.
Il existe un plugin gratuit que j'ai personnellement testé, qui a l'air et fonctionne très bien : https://wordpress.org/plugins/woocommerce-bulk-order-form/
B2BKing possède également sa propre implémentation propriétaire, que vous pouvez voir dans l'image suivante :
4. Structure des prix de gros
La question pertinente ici est la suivante : comment définir des prix différents pour différents utilisateurs ? Il y a 2 façons de procéder : modifier directement le prix ou ajouter une remise.
Pour ajouter une réduction de panier pour un utilisateur ou une catégorie d'utilisateurs, utilisez ce code :
add_action( 'woocommerce_cart_calculate_fees', 'b2bking_cart_discount' );
function b2bking_cart_discount( $cart ){
$cart->add_fee( 'B2B Discount', -10 );
}
Le code ci-dessus utilise un peu d'astuce en ajoutant des frais négatifs, qui sont une remise. Le code ci-dessus ne fait pas grand-chose, il ajoute simplement une remise de 10 dollars pour tous les utilisateurs. Développons un peu le code :
function b2bking_cart_discount( $cart ){
$user_id = get_current_user_id();
$user_status = get_user_meta( $user_id, 'user_status', true );
if ( $user_status === 'b2b' ){
$cart->add_fee( 'B2B Discount', -10 );
}
}
Comment c'est? Maintenant, le code vérifie si le méta-statut de l'utilisateur est ' b2b' et accorde une remise uniquement aux utilisateurs b2b.
Comment définissez-vous le statut méta ? Vous pouvez définir cela lors de l'inscription à l'aide du crochet woocommerce_created_customer que j'ai utilisé ci-dessus dans la section 2e article et d'une simple ligne de code. La fonction update_user_meta est utilisée à la fois pour mettre à jour et créer la méta utilisateur.
update_user_meta( $user_id, 'user_status', 'b2b' );
Que se passe-t-il si vous souhaitez définir des structures complexes de prix différents pour différents produits pour différents utilisateurs ?
Cela devient un peu plus compliqué mais vous pouvez utiliser les mêmes principes. Dans WooCommerce, un produit est une « publication » et vous pouvez définir des métadonnées de publication pour celui-ci. Par exemple, vous pouvez ajouter une méta post nommée b2b_price, pour avoir un prix séparé pour les utilisateurs b2b. Voici le code.
update_post_meta( $post_id, 'b2b_price', 15 ); // 15 is the price for b2b users
Comment afficher ce prix uniquement aux utilisateurs b2b ?
add_filter('woocommerce_product_get_price', 'b2bking_fixed_price', 99, 2 );
add_filter('woocommerce_product_get_regular_price', 'b2bking_fixed_price', 99, 2 );
add_filter('woocommerce_product_variation_get_regular_price', 'b2bking_fixed_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'b2bking_fixed_price', 99, 2 );
function b2bking_fixed_price( $price, $product ) {
// check if the user is B2B or not
$current_user_id = get_current_user_id();
$current_user_status = get_user_meta( $current_user_id, 'user_status', true );
if ( $current_user_status !== 'b2b' ){
// if user is not b2b show the normal price
return $price;
} else {
// get the current product’s price for B2B users
$current_product_id = $product->get_id();
$b2b_price = get_post_meta( $current_product_id, 'b2b_price', true );
return $b2b_price;
}
}
5. Mise en place d'exonérations fiscales
Celui-ci est plus facile que vous ne le pensez ! Il existe une fonction très pratique que vous pouvez utiliser dans WooCommerce qui le fera pour vous et qui s'occupera même de l'affichage des prix dans la plupart des situations : set_is_vat_exempt() . Bon nom, non?
Cette fonction fera même en sorte que les utilisateurs B2B voient les prix avec le suffixe "hors taxe", tandis que les utilisateurs B2C voient les prix avec la mention "taxe comprise".
add_action( 'init', 'b2bking_tax_exemption' );
function b2bking_tax_exemption(){
// first we check if the user is tax exempt
$tax_exempt = get_user_meta( get_current_user_id(), 'is_tax_exempt', true );
if ( $tax_exempt === 'exempt' ){
$customer = WC()->customer;
$customer->set_is_vat_exempt( true );
} else {
// the next line is only necessary if the user’s exempt status changes dynamically, such as based on billing country
$customer->set_is_vat_exempt( false );
}
}
B2BKing - Plugin WooCommerce B2B et vente en gros
J'espère que ce que j'ai partagé ci-dessus vous sera utile. Équiper WooCommerce de fonctionnalités B2B est cependant une tâche complexe, et je ne vous en voudrais pas si vous décidiez que l'achat d'un plugin premium est une meilleure utilisation de votre temps que d'écrire le code vous-même. Vraiment, je ne vous jugerai pas du tout.
Dans cet esprit, je vais partager quelques mots sur B2BKing. C'est un projet sur lequel mon équipe et moi travaillons depuis un certain temps, dans le but de transformer WooCommerce en une solution B2B performante, une alternative aux plateformes SAAS coûteuses.
Nous le développons et le soutenons constamment en tant que projet à long terme, et il compte actuellement plus de 137 fonctionnalités, notamment l'enregistrement des entreprises, les exonérations fiscales, les règles de tarification dynamique, la prise en charge de la TVA, le système de messagerie intégré, plusieurs acheteurs sur compte, les offres, un mode hybride B2B&B2C dédié , et bien plus encore.
Cette semaine, nous sommes fiers d'avoir été triés sur le volet par Envato comme son " Plugin vedette de la semaine " et présenté sur la page d'accueil de CodeCanyon.
Nous vous proposons une démo live que vous pouvez tester à tout moment, aussi bien en backend qu'en frontend : Live Demo
Si vous avez des questions sur l'article, sur le plugin, ou si vous voulez juste dire bonjour, ne soyez pas timide ! N'hésitez pas à contacter votre sympathique développeur de plugins de quartier.