WooCommerce B2B: Cum să creați un magazin cu ridicata
Publicat: 2020-06-09
Sectorul comerțului electronic înregistrează o creștere incredibilă, an de an, fără un sfârșit previzibil în vedere. Același lucru este valabil și pentru comerțul electronic B2B, dar nu există multe opțiuni bune de platforme disponibile pentru întreprinderile mici și mijlocii care doresc să vândă en-gros. Există mai multe soluții SaaS pe piață, dar acestea sunt costisitoare, cu sursă închisă și orientate în mare parte către afaceri mai mari.
Dacă sunteți proprietar sau dezvoltator de afaceri, WooCommerce este o soluție gratuită, versatilă și puternică.
Este WooCommerce potrivit pentru magazinele B2B?
„Ieșit din cutie”, nu este. WooCommerce este o soluție fantastică pentru magazinele de comerț electronic, dar nu a fost dezvoltat special pentru comerțul cu ridicata, așa că îi lipsesc multe opțiuni importante la început. Cu toate acestea, puteți utiliza un plugin angro puternic, cum ar fi B2BKing, pentru a extinde WooCommerce și pentru a adăuga toate funcționalitățile business-to-business de care aveți nevoie.
Există alte două aspecte de care ar trebui să fii conștient atunci când alegi WooCommerce pentru proiectul tău B2B:
- WooCommerce va necesita actualizări regulate de plugin pentru a se asigura că este sigur și funcționează corect.
- În funcție de găzduirea și configurația site-ului, mediul WordPress poate funcționa uneori puțin lent. Cu toate acestea, există modalități de optimizare și accelerare, cum ar fi prin pluginuri precum WP Rocket (sau alte pluginuri de cache și optimizare).
Deși nu este perfect, WooCommerce alimentează în prezent peste 20% din magazinele online din lume și există motive întemeiate pentru asta: este gratuit, open-source, puternic și sigur. Aceste aceleași calități îl fac și o alegere excelentă pentru magazinele angro.
Cum diferă un magazin B2B de un magazin electronic tipic?
Vânzarea business-to-business este adesea o experiență foarte diferită și mai personală decât vânzarea direct către consumatori. Cumpărătorii de afaceri sunt informați, deschiși la negociere și doresc să obțină oferte grozave și reduceri pentru cumpărături în vrac. Cataloagele de prețuri, opțiunile de reducere și opțiunile de plată și livrare pot varia foarte mult de la client la client, în funcție de factori precum dimensiunea afacerii, dimensiunea comenzii sau relațiile de afaceri existente.
Din punct de vedere al dezvoltării site-ului, acest lucru se traduce printr-o necesitate pentru un grad ridicat de flexibilitate tehnică atunci când vine vorba de prețuri, reduceri, transport și reguli de comandă.
Vânzarea către companii introduce, de asemenea, nevoia de caracteristici precum:
- Ascunderea prețurilor pentru oaspeți
- Formular de înregistrare a afacerii
- Suport pentru numărul de TVA (sau alt cod fiscal).
- Scutiri de impozite
- Cereri de cotatie
- Câmpuri personalizate de facturare și de plată
- Formular de comandă angro
- Abilitatea de a sprijini mai mulți utilizatori într-un cont de cumpărător (pentru structuri corporative)
Să mergem mai departe și să vedem cum câteva dintre aceste caracteristici pot fi implementate în WooCommerce. Următoarele secțiuni vor fi orientate mai mult către dezvoltatori și voi împărtăși câteva fragmente de cod pe care sper să le găsiți utile, precum și pluginuri gratuite pe care le puteți utiliza.
1. Ascundeți prețurile pentru utilizatorii invitați
Să începem cu unul ușor. Puteți face acest lucru cu două filtre WooCommerce. Mai întâi, să folosim woocommerce_get_price_html pentru a schimba prețul afișat în „Conectează-te pentru a vedea prețurile”.
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;
}
}
Odată ce am făcut acest lucru, prețurile nu mai sunt vizibile și vor fi înlocuite cu textul nostru. Totuși, acest lucru nu este suficient, deoarece utilizatorul poate adăuga aceste produse în coș și poate vedea prețul acestora. O soluție ne este oferită de filtrul bine numit 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;
}
}
După ce adăugați acest lucru, produsele nu ar mai putea fi achiziționate de utilizatorii oaspeți, iar butonul „adăugați în coș” nu va mai fi disponibil. Încă un lucru care merită menționat este că puteți avea probleme atunci când utilizați formularele de căutare AJAX, în funcție de modul în care acestea sunt configurate. O modalitate rapidă de a remedia acest lucru este să adăugați și codul de mai sus la codul dvs. principal și să verificați AJAX prin împachetarea codului în interior :
if ( wp_doing_ajax() ){
// code here
}
Rezultatul final:
Dacă sunteți interesat de o alternativă de plugin, deoarece nu sunteți familiarizat cu codarea, B2BKing are aceasta și alte funcționalități de restricție a accesului oaspeților, cum ar fi opțiunea de a ascunde complet site-ul sau de a ascunde prețurile pentru produse sau categorii individuale.
2. Înregistrarea afacerii sau formulare separate de înregistrare B2B și B2C
Ceea ce doriți să faceți aici este să adăugați câmpuri personalizate precum „Numele companiei”, „Adresa”, „ID TVA”, etc.
Puteți folosi acest cod pentru a adăuga un câmp personalizat pentru numele companiei:
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">';
}
Dacă doriți să sincronizați acest câmp cu câmpul de facturare WooCommerce pentru numele companiei la înregistrare, puteți face acest lucru utilizând hook-ul woocommerce_created_customer și salvând numele companiei ca meta utilizator, folosind aceleași câmpuri pe care le folosește WooCommerce: 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 );
}
}
Cum puteți crea câmpuri de formular B2B și B2C separate? Puteți adăuga un câmp „Selectați” la înregistrare în modul explicat mai sus și puteți utiliza puțin JavaScript pentru a determina dacă utilizatorul a ales „Persoană fizică” sau „Companie”. Afișați sau ascundeți câmpurile de înregistrare precum Numele companiei, în funcție de ceea ce alege utilizatorul.

Dacă doriți să evitați codificarea, există câteva soluții de plugin gratuite pentru a extinde înregistrarea, cum ar fi https://wordpress.org/plugins/user-registration/ care au și opțiuni pentru mai multe formulare de înregistrare, deși crearea unei înregistrări specifice B2B poate necesita puțină muncă în plus de partea ta.
Dacă sunteți în căutarea unei soluții premium, B2BKing oferă câteva coduri scurte la îndemână, ușor de utilizat, pe care le puteți adăuga la orice pagină și puteți crea un formular de înregistrare a afacerii.
3. Formular de comandă cu ridicata
Clienții de afaceri știu adesea exact ce își doresc, până la SKU, așa că adăugarea unui formular de comandă en-gros pe site-ul dvs. face comandă rapidă pentru clienții dvs. și vă face să arăți profesionist.
Cum poți adăuga unul? Nu există un fragment de cod rapid care să poată face acest lucru, așa că cred că un plugin este cea mai bună soluție.
Există un plugin gratuit pe care l-am testat personal, care arată și funcționează grozav: https://wordpress.org/plugins/woocommerce-bulk-order-form/
B2BKing are și propria sa implementare proprietară, pe care o puteți vedea în imaginea următoare:
4. Structura prețului cu ridicata
Întrebarea relevantă aici este: cum să setați prețuri diferite pentru diferiți utilizatori? Există 2 moduri de a proceda în acest sens: modificați direct prețul sau adăugați o reducere.
Pentru a adăuga o reducere la coș pentru un utilizator sau o categorie de utilizatori, utilizați acest cod:
add_action( 'woocommerce_cart_calculate_fees', 'b2bking_cart_discount' );
function b2bking_cart_discount( $cart ){
$cart->add_fee( 'B2B Discount', -10 );
}
Codul de mai sus folosește un mic truc prin adăugarea unei taxe negative, care este o reducere. Codul de mai sus nu face mare lucru, doar adaugă o reducere de 10 dolari pentru toți utilizatorii. Să extindem puțin codul:
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 );
}
}
Cum e asta? Acum codul verifică dacă meta statusul utilizatorului este „ b2b” și oferă o reducere doar utilizatorilor b2b.
Cum setați starea meta? Puteți seta asta la înregistrare folosind hook-ul woocommerce_created_customer pe care l-am folosit mai sus în secțiunea a 2-a articol și o simplă linie de cod. Funcția update_user_meta este folosită atât pentru actualizarea, cât și pentru crearea meta utilizatorului.
update_user_meta( $user_id, 'user_status', 'b2b' );
Ce se întâmplă dacă doriți să setați structuri complexe de prețuri diferite pentru produse diferite pentru utilizatori diferiți?
Acest lucru devine puțin mai complicat, dar puteți folosi aceleași principii. În WooCommerce, un produs este o „postare” și puteți seta metadatele de postare pentru acesta. De exemplu, puteți adăuga un meta post denumit b2b_price, pentru a avea un preț separat pentru utilizatorii b2b. Iată codul.
update_post_meta( $post_id, 'b2b_price', 15 ); // 15 is the price for b2b users
Cum arătați acest preț numai utilizatorilor 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. Stabilirea scutirilor de taxe
Acesta este mai ușor decât crezi! Există o funcție foarte utilă pe care o puteți folosi în WooCommerce care va face acest lucru pentru dvs. și chiar va avea grijă de afișarea prețului în majoritatea situațiilor: set_is_vat_exempt() . Bun nume, nu?
Această funcție va face chiar și astfel încât utilizatorii B2B să vadă prețurile cu sufixul „fără taxe”, în timp ce utilizatorii B2C văd prețurile spunând „inclusiv taxe”.
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 și en-gros
Sper că o parte din ceea ce am împărtășit mai sus vă va fi de ajutor. Echiparea WooCommerce cu funcționalități B2B este totuși o sarcină complexă și nu v-aș reproșa dacă ați decide că cumpărați un plugin premium este o utilizare mai bună a timpului dvs. decât să scrieți singur codul. Într-adevăr, nu vă voi judeca deloc.
Având în vedere asta, voi împărtăși câteva cuvinte despre B2BKing. Acesta este un proiect la care eu și echipa mea lucrăm de ceva vreme, cu scopul de a transforma WooCommerce într-o soluție B2B capabilă, o alternativă la platformele costisitoare SAAS.
Îl dezvoltăm și sprijinim în mod constant ca un proiect pe termen lung, iar în prezent are peste 137 de funcții, inclusiv înregistrarea afacerii, scutiri de taxe, reguli de prețuri dinamice, suport TVA, sistem de mesagerie încorporat, cumpărători multipli în cont, oferte, un mod hibrid dedicat B2B&B2C și multe, multe altele.
Săptămâna aceasta, suntem mândri că am fost aleși manual de Envato drept „ Pluginul recomandat al săptămânii ” și prezentat pe prima pagină a CodeCanyon.
Oferim o demonstrație live pe care o puteți testa oricând, atât backend, cât și frontal: Live Demo
Dacă aveți întrebări despre articol, despre plugin sau doar doriți să vă salutați, nu vă sfiați! Simțiți-vă binevenit să contactați dezvoltatorul prietenos de pluginuri de cartier.