WooCommerce B2B: So richten Sie einen Großhandelsshop ein
Veröffentlicht: 2020-06-09Der E-Commerce-Sektor verzeichnet Jahr für Jahr ein unglaubliches Wachstum, und ein Ende ist nicht absehbar. Dasselbe gilt für den B2B-E-Commerce, aber es gibt nicht viele gute Plattformoptionen für kleine und mittlere Unternehmen, die im Großhandel verkaufen möchten. Es gibt mehrere SaaS-Lösungen auf dem Markt, aber diese sind kostspielig, geschlossen und meist auf größere Unternehmen ausgerichtet.
Wenn Sie Geschäftsinhaber oder Entwickler sind, ist WooCommerce eine kostenlose, vielseitige und leistungsstarke Lösung.
Ist WooCommerce das Richtige für B2B-Shops?
„Out-of-the-box“ ist es nicht. WooCommerce ist eine fantastische Lösung für E-Commerce-Shops, wurde jedoch nicht speziell für den Großhandel entwickelt, sodass viele wichtige Optionen von Anfang an fehlen. Sie können jedoch ein leistungsstarkes Großhandels-Plugin wie B2BKing verwenden, um WooCommerce zu erweitern und alle Business-to-Business-Funktionen hinzuzufügen, die Sie möglicherweise benötigen.
Es gibt zwei weitere Aspekte, die Sie beachten sollten, wenn Sie WooCommerce für Ihr B2B-Projekt auswählen:
- WooCommerce erfordert regelmäßige Plugin-Updates, um sicherzustellen, dass es sicher ist und ordnungsgemäß funktioniert.
- Abhängig von Ihrem Hosting und Ihrer Website-Konfiguration kann die WordPress-Umgebung manchmal etwas langsam arbeiten. Es gibt jedoch Möglichkeiten, es zu optimieren und zu beschleunigen, z. B. durch Plugins wie WP Rocket (oder andere Caching- und Optimierungs-Plugins).
Obwohl es nicht perfekt ist, betreibt WooCommerce derzeit mehr als 20 % der weltweiten Online-Shops, und dafür gibt es gute Gründe: Es ist kostenlos, Open Source, leistungsstark und sicher. Dieselben Eigenschaften machen es auch zu einer großartigen Wahl für Großhandelsgeschäfte.
Wie unterscheidet sich ein B2B-Shop von einem typischen E-Shop?
Der Verkauf zwischen Unternehmen ist oft eine ganz andere und persönlichere Erfahrung als der Direktverkauf an Verbraucher. Geschäftskäufer sind sachkundig, offen für Verhandlungen und möchten tolle Angebote und Rabatte für den Kauf in großen Mengen erhalten. Preiskataloge, Rabattmöglichkeiten sowie Zahlungs- und Versandmöglichkeiten können von Kunde zu Kunde stark variieren, abhängig von Faktoren wie Unternehmensgröße, Bestellumfang oder bestehenden Geschäftsbeziehungen.
Aus Sicht der Website-Entwicklung bedeutet dies, dass ein hohes Maß an technischer Flexibilität in Bezug auf Preise, Rabatte, Versand und Bestellregeln erforderlich ist.
Der Verkauf an Unternehmen führt auch zu einem Bedarf an Funktionen wie:
- Ausblenden von Preisen für Gäste
- Formular Gewerbeanmeldung
- Unterstützung von Umsatzsteuer- (oder anderen Steuer-ID-) Nummern
- Steuerbefreiungen
- Angebotsanfragen
- Benutzerdefinierte Rechnungs- und Checkout-Felder
- Großhandel Bestellformular
- Möglichkeit, mehrere Benutzer auf einem Käuferkonto zu unterstützen (für Unternehmensstrukturen)
Sehen wir uns an, wie einige dieser Funktionen in WooCommerce implementiert werden können. Die nächsten Abschnitte werden sich mehr an Entwickler richten und ich werde ein paar Codeschnipsel teilen, von denen ich hoffe, dass Sie sie hilfreich finden, sowie kostenlose Plugins , die Sie verwenden können.
1. Preise für Gastbenutzer ausblenden
Beginnen wir mit einem einfachen. Sie können dies mit zwei WooCommerce-Filtern tun. Lassen Sie uns zunächst woocommerce_get_price_html verwenden, um den angezeigten Preis in „Anmelden, um Preise anzuzeigen“ ändern.
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;
}
}
Danach sind die Preise nicht mehr sichtbar und werden durch unseren Text ersetzt. Dies reicht jedoch nicht aus, da der Benutzer diese Produkte immer noch in den Warenkorb legen und ihren Preis sehen kann. Eine Lösung bietet uns der treffend benannte Filter 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;
}
}
Nachdem Sie dies hinzugefügt haben, sollten Produkte nicht mehr von Gastbenutzern gekauft werden können und die Schaltfläche „In den Warenkorb“ nicht mehr verfügbar sein. Eine weitere erwähnenswerte Sache ist, dass Sie Probleme bekommen können, wenn Sie AJAX-Suchformulare verwenden, je nachdem, wie diese eingerichtet sind. Eine schnelle Möglichkeit, dies zu beheben, besteht darin, den obigen Code auch zu Ihrem Hauptcode hinzuzufügen und nach AJAX zu suchen, indem Sie den Code darin einschließen :
if ( wp_doing_ajax() ){
// code here
}
Das Endergebnis:
Wenn Sie an einer Plugin-Alternative interessiert sind, weil Sie mit Codierung nicht vertraut sind, bietet B2BKing diese und andere Funktionen zur Einschränkung des Gastzugriffs, z. B. eine Option zum vollständigen Ausblenden der Website oder zum Ausblenden von Preisen für einzelne Produkte oder Kategorien.
2. Gewerbeanmeldung oder separate B2B- und B2C-Anmeldeformulare
Was Sie hier tun möchten, ist, benutzerdefinierte Felder wie „Firmenname“, „Adresse“, „Umsatzsteuer-ID“ usw. hinzuzufügen.
Sie können diesen Code verwenden, um ein benutzerdefiniertes Feld für den Firmennamen hinzuzufügen:
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">';
}
Wenn Sie dieses Feld mit dem WooCommerce-Abrechnungsfeld für den Firmennamen bei der Registrierung synchronisieren möchten, können Sie dies tun, indem Sie den woocommerce_created_customer- Hook verwenden und den Firmennamen als Benutzermeta speichern, indem Sie die gleichen Felder verwenden, die WooCommerce verwendet: 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 );
}
}
Wie können Sie separate B2B- und B2C-Formularfelder erstellen? Sie können der Registrierung wie oben beschrieben ein „Auswählen“-Feld hinzufügen und ein bisschen JavaScript verwenden, um festzustellen, ob der Benutzer „Individuell“ oder „Firma“ gewählt hat. Registrierungsfelder wie Firmenname ein- oder ausblenden, je nachdem, was der Benutzer auswählt.
Wenn Sie Codierung vermeiden möchten, gibt es einige kostenlose Plugin-Lösungen zur Erweiterung der Registrierung, wie z. B. https://wordpress.org/plugins/user-registration/, die auch Optionen für mehrere Registrierungsformulare haben, obwohl das Erstellen einer B2B-spezifischen Registrierung erforderlich sein kann ein wenig zusätzliche Arbeit auf Ihrer Seite.
Wenn Sie nach einer Premium-Lösung suchen, bietet B2BKing einige praktische, einfach zu verwendende Shortcodes, die Sie zu jeder Seite hinzufügen und ein Unternehmensregistrierungsformular erstellen können.
3. Großhandels-Bestellformular
Geschäftskunden wissen oft genau, was sie wollen, bis hin zur SKU. Wenn Sie also ein Großhandels-Bestellformular auf Ihrer Website hinzufügen, können Sie für Ihre Kunden schnell bestellen und lassen Sie professionell aussehen.
Wie können Sie einen hinzufügen? Es gibt kein schnelles Code-Snippet, das dies tun kann, daher denke ich, dass ein Plugin die beste Lösung ist.
Es gibt ein kostenloses Plugin, das ich persönlich getestet habe und das großartig aussieht und funktioniert: https://wordpress.org/plugins/woocommerce-bulk-order-form/
B2BKing hat auch eine eigene proprietäre Implementierung, die Sie im nächsten Bild sehen können:
4. Großhandelspreisstruktur
Die relevante Frage hier ist: Wie richtet man unterschiedliche Preise für verschiedene Benutzer ein? Dazu gibt es zwei Möglichkeiten: Ändern Sie den Preis direkt oder fügen Sie einen Rabatt hinzu.
Verwenden Sie diesen Code, um einen Warenkorbrabatt für einen Benutzer oder eine Kategorie von Benutzern hinzuzufügen:
add_action( 'woocommerce_cart_calculate_fees', 'b2bking_cart_discount' );
function b2bking_cart_discount( $cart ){
$cart->add_fee( 'B2B Discount', -10 );
}
Der obige Code verwendet einen kleinen Trick, indem er eine negative Gebühr hinzufügt, die ein Rabatt ist. Der obige Code macht nicht viel, er fügt nur einen Rabatt von 10 Dollar für alle Benutzer hinzu. Erweitern wir den Code ein wenig:
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 );
}
}
Wie ist das? Jetzt prüft der Code, ob der Metastatus des Benutzers „ b2b“ ist, und gewährt nur b2b- Benutzern einen Rabatt.
Wie setzt man den Metastatus? Sie können dies bei der Registrierung mit dem Hook woocommerce_created_customer festlegen , den ich oben im zweiten Artikelabschnitt verwendet habe, und einer einfachen Codezeile. Die Funktion update_user_meta wird sowohl zum Aktualisieren als auch zum Erstellen von Benutzermeta verwendet.
update_user_meta( $user_id, 'user_status', 'b2b' );
Was ist, wenn Sie komplexe Strukturen mit unterschiedlichen Preisen für verschiedene Produkte für verschiedene Benutzer festlegen möchten?
Dies wird etwas komplizierter, aber Sie können die gleichen Prinzipien anwenden. In WooCommerce ist ein Produkt ein „Post“, und Sie können Post-Metadaten dafür festlegen. Sie können beispielsweise ein Post-Meta namens b2b_price hinzufügen, um einen separaten Preis für b2b-Benutzer zu haben. Hier ist der Code.
update_post_meta( $post_id, 'b2b_price', 15 ); // 15 is the price for b2b users
Wie zeigen Sie diesen Preis nur b2b-Benutzern an?
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. Einrichtung von Steuerbefreiungen
Das ist einfacher als Sie denken! Es gibt eine sehr praktische Funktion, die Sie in WooCommerce verwenden können, die dies für Sie erledigt und sich in den meisten Situationen sogar um die Preisanzeige kümmert: set_is_vat_exempt() . Guter Name, oder?
Diese Funktion sorgt sogar dafür, dass B2B-Benutzern Preise mit dem Zusatz „ohne Steuern“ angezeigt werden, während B2C-Benutzern Preise mit dem Zusatz „einschließlich Steuern“ angezeigt werden.
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 – WooCommerce B2B- und Großhandels-Plugin
Ich hoffe, einiges von dem, was ich oben geteilt habe, wird Ihnen hilfreich sein. Die Ausstattung von WooCommerce mit B2B-Funktionalitäten ist jedoch eine komplexe Aufgabe, und ich würde Ihnen nichts vorwerfen, wenn Sie sich entschieden haben, dass der Kauf eines Premium-Plugins Ihre Zeit besser nutzt, als den Code selbst zu schreiben. Wirklich, ich werde Sie überhaupt nicht verurteilen.
In diesem Sinne werde ich ein paar Worte über B2BKing sagen. Dies ist ein Projekt, an dem ich und mein Team seit einiger Zeit arbeiten, mit dem Ziel, WooCommerce in eine leistungsfähige B2B-Lösung zu verwandeln, eine Alternative zu den kostspieligen SAAS-Plattformen.
Wir entwickeln und unterstützen es ständig als langfristiges Projekt und es verfügt derzeit über mehr als 137 Funktionen, darunter Unternehmensregistrierung, Steuerbefreiungen, dynamische Preisregeln, Mehrwertsteuerunterstützung, integriertes Nachrichtensystem, mehrere Käufer auf Rechnung, Angebote, ein dedizierter B2B&B2C-Hybridmodus und vieles mehr.
Wir sind stolz darauf, dass wir diese Woche von Envato als „ Empfohlenes Plugin der Woche “ ausgewählt und auf der CodeCanyon-Titelseite präsentiert wurden.
Wir bieten eine Live-Demo an, die Sie jederzeit testen können, sowohl Backend als auch Frontend: Live-Demo
Wenn Sie Fragen zum Artikel oder zum Plugin haben oder einfach nur Hallo sagen möchten, seien Sie nicht schüchtern! Fühlen Sie sich willkommen, sich an Ihren freundlichen Plugin-Entwickler in der Nachbarschaft zu wenden.