WooCommerce B2B: Jak założyć hurtownię

Opublikowany: 2020-06-09

Sektor e-commerce odnotowuje niesamowity wzrost z roku na rok, bez przewidywalnego końca. To samo dotyczy e-commerce B2B, ale nie ma wielu dobrych platform dostępnych dla małych i średnich firm, które chcą sprzedawać hurtowo. Na rynku istnieje kilka rozwiązań SaaS, ale są to kosztowne, zamknięte źródła i skierowane głównie do większych firm.

Jeśli jesteś właścicielem firmy lub programistą, WooCommerce to bezpłatne, wszechstronne i wydajne rozwiązanie.

Czy WooCommerce jest odpowiednie dla sklepów B2B?

„Niestandardowe”, tak nie jest. WooCommerce to fantastyczne rozwiązanie dla sklepów e-commerce, ale nie zostało stworzone specjalnie dla hurtowni, więc na wstępie brakuje mu wielu ważnych opcji. Możesz jednak użyć potężnej wtyczki hurtowej, takiej jak B2BKing, aby rozszerzyć WooCommerce i dodać wszystkie funkcje business-to-business, których możesz potrzebować.

Istnieją dwa inne aspekty, o których powinieneś pamiętać wybierając WooCommerce do swojego projektu B2B:

  • WooCommerce będzie wymagać regularnych aktualizacji wtyczek, aby zapewnić bezpieczeństwo i prawidłowe działanie.
  • W zależności od hostingu i konfiguracji witryny środowisko WordPress może czasami działać nieco wolniej. Istnieją jednak sposoby na optymalizację i przyspieszenie, takie jak wtyczki takie jak WP Rocket (lub inne wtyczki do buforowania i optymalizacji).

Chociaż nie jest idealny, WooCommerce obsługuje obecnie ponad 20% sklepów internetowych na świecie i są ku temu dobre powody: jest darmowy, open-source, wydajny i bezpieczny. Te same cechy sprawiają, że jest to również doskonały wybór dla hurtowni.

Czym różni się sklep B2B od typowego e-sklepu?

Sprzedaż między przedsiębiorstwami jest często zupełnie innym i bardziej osobistym doświadczeniem niż sprzedaż bezpośrednio konsumentom. Nabywcy biznesowi są kompetentni, otwarci na negocjacje i chcą otrzymywać świetne oferty i rabaty na zakupy hurtowe. Katalogi cen, opcje rabatów oraz opcje płatności i wysyłki mogą się znacznie różnić w zależności od klienta, w zależności od takich czynników, jak wielkość firmy, wielkość zamówienia lub istniejące relacje biznesowe.

Z punktu widzenia tworzenia stron internetowych przekłada się to na konieczność dużej elastyczności technicznej, jeśli chodzi o ceny, rabaty, zasady wysyłki i zamówień.

Sprzedaż firmom wprowadza również zapotrzebowanie na takie funkcje, jak:

  • Ukrywanie cen dla gości
  • Formularz rejestracyjny firmy
  • Obsługa numeru VAT (lub innego identyfikatora podatkowego)
  • Zwolnienia podatkowe
  • Zapytania o wycenę
  • Niestandardowe pola rozliczeń i kasy
  • Formularz zamówienia hurtowego
  • Możliwość obsługi wielu użytkowników na koncie kupującego (dla struktur korporacyjnych)

Przejdźmy dalej i zobaczmy, jak kilka z tych funkcji można wdrożyć w WooCommerce. Kolejne sekcje będą skierowane bardziej do programistów i podzielę się kilkoma fragmentami kodu , które mam nadzieję, że okażą się pomocne, a także darmowymi wtyczkami , z których możesz korzystać.

1. Ukryj ceny dla użytkowników-gości

Zacznijmy od łatwego. Możesz to zrobić za pomocą dwóch filtrów WooCommerce. Najpierw użyjmy woocommerce_get_price_html , aby zmienić wyświetlaną cenę na „Zaloguj się, aby zobaczyć ceny”.

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;
}
}

Gdy to zrobimy, ceny nie będą już widoczne i zostaną zastąpione naszym tekstem. To jednak nie wystarczy, ponieważ użytkownik nadal może dodać te produkty do koszyka i zobaczyć ich cenę. Rozwiązanie zapewnia nam trafnie nazwany filtr 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;
	}
}

Po dodaniu produkty nie powinny już być dostępne dla gości, a przycisk „dodaj do koszyka” nie będzie już dostępny. Jeszcze jedną rzeczą, o której warto wspomnieć, jest to, że możesz mieć kłopoty podczas korzystania z formularzy wyszukiwania AJAX, w zależności od ich konfiguracji. Szybkim sposobem na naprawienie tego jest również dodanie powyższego kodu do głównego kodu i sprawdzenie AJAX, owijając kod wewnątrz :

if ( wp_doing_ajax() ){ 
// code here
}

Efekt końcowy:

Jeśli interesuje Cię alternatywa dla wtyczki, ponieważ nie znasz się na kodowaniu, B2BKing ma tę i inne funkcje ograniczenia dostępu gości, takie jak opcja całkowitego ukrycia witryny lub ukrycia cen poszczególnych produktów lub kategorii.

2. Rejestracja firmy, czyli oddzielne formularze rejestracyjne B2B i B2C

To, co chcesz tutaj zrobić, to dodać niestandardowe pola, takie jak „Nazwa firmy”, „Adres”, „Identyfikator VAT” itp.

Możesz użyć tego kodu, aby dodać niestandardowe pole dla nazwy firmy:

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">';
}

Jeśli chcesz zsynchronizować to pole z polem rozliczeniowym WooCommerce dla nazwy firmy podczas rejestracji, możesz to zrobić, używając haka woocommerce_created_customer i zapisując nazwę firmy jako meta użytkownika, używając tych samych pól, których używa WooCommerce: billing_first_name, billing_company, billing_city, itp:

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 );
}
}

Jak utworzyć oddzielne pola formularzy B2B i B2C? Możesz dodać pole „Wybierz” do rejestracji w sposób opisany powyżej i użyć trochę JavaScript, aby określić, czy użytkownik wybrał „Indywidualne” czy „Firmowe”. Pokaż lub ukryj pola rejestracji, takie jak Nazwa firmy, w zależności od tego, co wybierze użytkownik.

Jeśli chcesz uniknąć kodowania, istnieje kilka darmowych wtyczek rozszerzających rejestrację, takich jak https://wordpress.org/plugins/user-registration/, które również oferują opcje dla wielu formularzy rejestracyjnych, chociaż utworzenie rejestracji specyficznej dla B2B może wymagać trochę dodatkowej pracy po twojej stronie.

Jeśli szukasz rozwiązania premium, B2BKing zapewnia przydatne, łatwe w użyciu skróty, które możesz dodać do dowolnej strony i utworzyć formularz rejestracyjny firmy.

3. Formularz zamówienia hurtowego

Klienci biznesowi często wiedzą dokładnie, czego chcą, aż do SKU, więc dodanie formularza zamówienia hurtowego do Twojej witryny przyspiesza składanie zamówień dla klientów i sprawia, że ​​wyglądasz profesjonalnie.

Jak możesz go dodać? Nie ma szybkiego fragmentu kodu, który mógłby to zrobić, więc myślę, że wtyczka jest najlepszym rozwiązaniem.

Jest darmowa wtyczka, którą osobiście przetestowałem, która wygląda i działa świetnie: https://wordpress.org/plugins/woocommerce-bulk-order-form/

B2BKing posiada również własną autorską implementację, którą możecie zobaczyć na kolejnym obrazku:

4. Struktura cen hurtowych

Istotne pytanie brzmi: jak ustawić różne ceny dla różnych użytkowników? Można to zrobić na dwa sposoby: bezpośrednio zmienić cenę lub dodać zniżkę.

Aby dodać zniżkę na koszyk dla użytkownika lub kategorii użytkowników, użyj tego kodu:

add_action( 'woocommerce_cart_calculate_fees', 'b2bking_cart_discount' );

function b2bking_cart_discount( $cart ){
$cart->add_fee( 'B2B Discount', -10 );
}

Powyższy kod wykorzystuje pewną sztuczkę, dodając ujemną opłatę, która jest zniżką. Powyższy kod nie robi wiele, po prostu dodaje 10 dolarów zniżki dla wszystkich użytkowników. Rozwińmy trochę kod:

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 );
	}
}

Jak to jest? Teraz kod sprawdza, czy meta status użytkownika to „ b2b” i daje zniżkę tylko użytkownikom b2b.

Jak ustawić status meta? Możesz ustawić to podczas rejestracji za pomocą haka woocommerce_created_customer , którego użyłem powyżej w sekcji drugiego artykułu, i prostej linii kodu. Funkcja update_user_meta służy zarówno do aktualizowania, jak i tworzenia meta użytkownika.

update_user_meta( $user_id, 'user_status', 'b2b' );

Co zrobić, jeśli chcesz ustalić złożone struktury różnych cen dla różnych produktów dla różnych użytkowników?

To się trochę komplikuje, ale możesz użyć tych samych zasad. W WooCommerce produkt jest „postem” i możesz ustawić dla niego metadane posta. Na przykład możesz dodać meta posta o nazwie b2b_price, aby mieć oddzielną cenę dla użytkowników b2b. Oto kod.

update_post_meta( $post_id, 'b2b_price', 15 ); // 15 is the price for b2b users

Jak pokazać tę cenę tylko użytkownikom 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. Ustanawianie zwolnień podatkowych

To jest łatwiejsze niż myślisz! Istnieje bardzo przydatna funkcja, której możesz użyć w WooCommerce, która zrobi to za Ciebie, a nawet zadba o wyświetlanie ceny w większości sytuacji: set_is_vat_exempt() . Dobre imię, prawda?

Ta funkcja sprawi nawet, że użytkownicy B2B zobaczą ceny z sufiksem „bez podatku”, podczas gdy użytkownicy B2C zobaczą ceny z napisem „z podatkiem”.

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 i wtyczka hurtowa

Mam nadzieję, że niektóre z tego, co udostępniłem powyżej, będą dla Ciebie pomocne. Wyposażenie WooCommerce w funkcje B2B jest jednak złożonym zadaniem i nie miałbym nic do zarzucenia, gdybyś zdecydował, że zakup wtyczki premium jest lepszym sposobem wykorzystania czasu niż samodzielne pisanie kodu. Naprawdę, nie będę Cię oceniać.

Mając to na uwadze, podzielę się kilkoma słowami o B2BKing. Jest to projekt, nad którym ja i mój zespół pracowaliśmy od dłuższego czasu, mając na celu przekształcenie WooCommerce w wydajne rozwiązanie B2B, alternatywę dla kosztownych platform SAAS.

Stale rozwijamy i wspieramy go jako projekt długoterminowy, a obecnie ma ponad 137 funkcji, w tym rejestrację firmy, zwolnienia podatkowe, dynamiczne reguły cenowe, wsparcie VAT, wbudowany system przesyłania wiadomości, wielu kupujących na koncie, oferty, dedykowany tryb hybrydowy B2B&B2C i wiele, wiele więcej.

W tym tygodniu jesteśmy dumni, że zostaliśmy ręcznie wybrani przez Envato jako „ Wyróżniona wtyczka tygodnia ” i zaprezentowana na głównej stronie CodeCanyon.

Oferujemy demo na żywo, które możesz przetestować w dowolnym momencie, zarówno backend, jak i frontend: Live Demo

Jeśli masz jakieś pytania dotyczące artykułu, wtyczki lub po prostu chcesz się przywitać, nie wstydź się! Zapraszam do kontaktu ze swoim przyjaznym twórcą wtyczek z sąsiedztwa.