WooCommerce B2B: Cara Menyiapkan Toko Grosir

Diterbitkan: 2020-06-09

Sektor e-niaga mengalami pertumbuhan yang luar biasa, tahun demi tahun, tanpa akhir yang terlihat. Hal yang sama berlaku untuk e-niaga B2B, namun tidak banyak pilihan platform bagus yang tersedia untuk usaha kecil-menengah yang ingin menjual grosir. Ada beberapa solusi SaaS di pasaran, tetapi ini mahal, sumber tertutup, dan sebagian besar berorientasi pada bisnis yang lebih besar.

Jika Anda adalah pemilik bisnis atau pengembang, WooCommerce adalah solusi yang gratis, serbaguna, dan kuat.

Apakah WooCommerce tepat untuk toko B2B?

"Out-of-the-box", tidak. WooCommerce adalah solusi fantastis untuk toko e-niaga, tetapi tidak dikembangkan secara khusus untuk grosir, sehingga tidak memiliki banyak opsi penting di awal. Namun, Anda dapat menggunakan plugin grosir yang kuat seperti B2BKing untuk memperluas WooCommerce dan menambahkan semua fungsi bisnis-ke-bisnis yang mungkin Anda perlukan.

Ada dua aspek lain yang harus Anda perhatikan saat memilih WooCommerce untuk proyek B2B Anda:

  • WooCommerce akan membutuhkan pembaruan plugin reguler untuk memastikannya aman dan berfungsi dengan benar.
  • Bergantung pada hosting dan konfigurasi situs web Anda, lingkungan WordPress terkadang dapat bekerja sedikit lambat. Namun, ada cara untuk mengoptimalkan dan mempercepatnya seperti melalui plugin seperti WP Rocket (atau plugin caching dan optimasi lainnya).

Meskipun tidak sempurna, WooCommerce saat ini mendukung lebih dari 20% toko online dunia, dan ada alasan bagus untuk itu: gratis, sumber terbuka, kuat, dan aman. Kualitas yang sama ini juga menjadikannya pilihan tepat untuk toko grosir.

Bagaimana toko B2B berbeda dari toko elektronik biasa?

Menjual bisnis-ke-bisnis seringkali merupakan pengalaman yang sangat berbeda dan lebih pribadi daripada menjual langsung ke konsumen. Pembeli bisnis berpengetahuan luas, terbuka untuk negosiasi, dan ingin mendapatkan penawaran dan diskon hebat untuk pembelian dalam jumlah besar. Katalog harga, opsi diskon, serta opsi pembayaran dan pengiriman dapat sangat bervariasi dari pelanggan ke pelanggan, tergantung pada faktor-faktor seperti ukuran bisnis, ukuran pesanan, atau hubungan bisnis yang ada.

Dari sudut pandang pengembangan situs web, ini berarti kebutuhan akan fleksibilitas teknis tingkat tinggi dalam hal penetapan harga, diskon, pengiriman, dan aturan pemesanan.

Menjual ke bisnis juga memperkenalkan kebutuhan akan fitur seperti:

  • Menyembunyikan harga untuk tamu
  • Formulir pendaftaran bisnis
  • Dukungan nomor PPN (atau nomor pajak lainnya)
  • pembebasan pajak
  • Permintaan penawaran
  • Bidang penagihan dan checkout khusus
  • Formulir pemesanan grosir
  • Kemampuan untuk mendukung banyak pengguna pada akun pembeli (untuk struktur perusahaan)

Mari kita lanjutkan dan lihat bagaimana beberapa fitur ini dapat diterapkan di WooCommerce. Bagian selanjutnya akan lebih ditujukan untuk pengembang dan saya akan membagikan beberapa cuplikan kode yang saya harap akan bermanfaat bagi Anda, serta plugin gratis yang dapat Anda gunakan.

1. Sembunyikan harga untuk pengguna tamu

Mari kita mulai dengan yang mudah. Anda dapat melakukan ini dengan dua filter WooCommerce. Pertama, mari kita gunakan woocommerce_get_price_html untuk mengubah harga yang ditampilkan menjadi “Login untuk melihat harga”.

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

Setelah kami melakukannya, harga tidak lagi terlihat dan akan digantikan oleh teks kami. Ini tidak cukup, karena pengguna masih dapat menambahkan produk ini ke keranjang dan melihat harganya. Sebuah solusi diberikan kepada kami oleh filter woocommerce_is_purchasable bernama tepat.

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

Setelah Anda menambahkan ini, produk tidak lagi dapat dibeli oleh pengguna tamu dan tombol “tambahkan ke troli” tidak akan tersedia lagi. Satu hal lagi yang perlu disebutkan adalah bahwa Anda mungkin mendapat masalah saat menggunakan formulir pencarian AJAX, tergantung pada cara pengaturannya. Cara cepat untuk memperbaikinya adalah dengan menambahkan kode di atas ke kode utama Anda dan memeriksa AJAX dengan membungkus kode di dalam :

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

Hasil akhirnya:

Jika Anda tertarik dengan alternatif plugin karena Anda tidak terbiasa dengan pengkodean, B2BKing memiliki ini dan fungsi pembatasan akses tamu lainnya seperti opsi untuk menyembunyikan situs web sepenuhnya, atau menyembunyikan harga untuk produk atau kategori individual.

2. Pendaftaran bisnis, atau formulir pendaftaran B2B dan B2C yang terpisah

Yang ingin Anda lakukan di sini adalah menambahkan bidang khusus seperti "Nama Perusahaan", "Alamat", "ID PPN", dll.

Anda dapat menggunakan kode ini untuk menambahkan bidang khusus untuk nama perusahaan:

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

Jika Anda ingin menyinkronkan bidang ini dengan bidang penagihan WooCommerce untuk nama perusahaan saat pendaftaran, Anda dapat melakukannya dengan menggunakan kait woocommerce_created_customer dan menyimpan nama perusahaan sebagai meta pengguna, menggunakan bidang yang sama yang digunakan WooCommerce: billing_first_name, billing_company, billing_city, dll:

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

Bagaimana Anda bisa membuat bidang formulir B2B dan B2C yang terpisah? Anda dapat menambahkan bidang "Pilih" ke pendaftaran dengan cara yang dijelaskan di atas dan menggunakan sedikit JavaScript untuk menentukan apakah pengguna memilih "Perorangan" atau "Perusahaan". Menampilkan atau menyembunyikan bidang pendaftaran seperti Nama perusahaan tergantung pada apa yang dipilih pengguna.

Jika Anda ingin menghindari pengkodean, ada beberapa solusi plugin gratis untuk memperpanjang pendaftaran, seperti https://wordpress.org/plugins/user-registration/ yang juga memiliki opsi untuk beberapa formulir pendaftaran, meskipun membuat pendaftaran khusus B2B mungkin memerlukan sedikit kerja ekstra di pihak Anda.

Jika Anda mencari solusi premium, B2BKing menyediakan beberapa kode pendek yang praktis dan mudah digunakan yang dapat Anda tambahkan ke halaman mana pun dan membuat formulir pendaftaran bisnis.

3. Formulir pemesanan grosir

Pelanggan bisnis sering kali tahu persis apa yang mereka inginkan, hingga ke SKU, jadi menambahkan formulir pemesanan grosir ke situs web Anda mempercepat pemesanan untuk pelanggan Anda, dan membuat Anda terlihat profesional.

Bagaimana Anda bisa menambahkan satu? Tidak ada cuplikan kode cepat yang dapat melakukan ini, jadi saya pikir plugin adalah solusi terbaik Anda.

Ada plugin gratis yang saya uji secara pribadi, yang terlihat dan berfungsi dengan baik: https://wordpress.org/plugins/woocommerce-bulk-order-form/

B2BKing juga memiliki implementasi miliknya sendiri, yang dapat Anda lihat pada gambar berikut:

4. Struktur harga grosir

Pertanyaan yang relevan di sini adalah: bagaimana mengatur harga yang berbeda untuk pengguna yang berbeda? Ada 2 cara untuk melakukannya: ubah harga secara langsung, atau tambahkan diskon.

Untuk menambahkan diskon keranjang untuk pengguna atau kategori pengguna, gunakan kode ini:

add_action( 'woocommerce_cart_calculate_fees', 'b2bking_cart_discount' );

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

Kode di atas menggunakan sedikit trik dengan menambahkan biaya negatif, yaitu diskon. Kode di atas tidak banyak membantu, hanya menambahkan diskon 10 dolar untuk semua pengguna. Mari kita perluas kodenya sedikit:

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

Bagaimana dengan ini? Sekarang kode memeriksa apakah status meta pengguna adalah ' b2b' dan memberikan diskon hanya untuk pengguna b2b.

Bagaimana Anda mengatur status meta? Anda dapat mengaturnya pada pendaftaran menggunakan kait woocommerce_created_customer yang saya gunakan di atas di bagian artikel ke-2, dan baris kode sederhana. Fungsi update_user_meta digunakan untuk memperbarui dan membuat meta pengguna.

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

Bagaimana jika Anda ingin menetapkan struktur kompleks dengan harga yang berbeda untuk produk yang berbeda untuk pengguna yang berbeda?

Ini menjadi sedikit lebih rumit tetapi Anda dapat menggunakan prinsip yang sama. Di WooCommerce, suatu produk adalah "posting", dan Anda dapat mengatur data meta posting untuknya. Misalnya, Anda dapat menambahkan meta posting bernama b2b_price, untuk memiliki harga terpisah untuk pengguna b2b. Berikut kodenya.

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

Bagaimana Anda menunjukkan harga ini hanya untuk pengguna 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. Menyiapkan pembebasan pajak

Yang ini lebih mudah dari yang Anda pikirkan! Ada fungsi yang sangat berguna yang dapat Anda gunakan di WooCommerce yang akan melakukan ini untuk Anda dan bahkan menangani tampilan harga di sebagian besar situasi: set_is_vat_exempt() . Nama yang bagus, bukan?

Fungsi ini bahkan akan membuat pengguna B2B melihat harga dengan akhiran “belum termasuk pajak”, sedangkan pengguna B2C melihat harga yang bertuliskan “termasuk pajak”.

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 & Plugin Grosir

Semoga apa yang saya bagikan di atas dapat bermanfaat bagi Anda. Melengkapi WooCommerce dengan fungsionalitas B2B adalah tugas yang rumit, dan saya tidak akan menyalahkan Anda jika Anda memutuskan untuk membeli plugin premium adalah penggunaan waktu Anda yang lebih baik daripada menulis kode sendiri Sungguh, saya tidak akan menghakimi Anda sama sekali.

Dengan mengingat hal itu, saya akan berbagi beberapa kata tentang B2BKing. Ini adalah proyek yang telah saya dan tim saya kerjakan untuk sementara waktu, dengan tujuan mengubah WooCommerce menjadi solusi B2B yang mumpuni, sebuah alternatif untuk platform SAAS yang mahal.

Kami terus mengembangkan dan mendukungnya sebagai proyek jangka panjang, dan saat ini memiliki lebih dari 137 fitur termasuk pendaftaran bisnis, pembebasan pajak, aturan penetapan harga dinamis, dukungan PPN, sistem pesan bawaan, banyak pembeli secara akun, penawaran, mode hybrid B2B&B2C khusus , dan masih banyak lagi.

Minggu ini, kami bangga telah dipilih oleh Envato sebagai “ Plugin Unggulan Minggu Ini ” dan dipamerkan di halaman depan CodeCanyon.

Kami menawarkan demo langsung yang dapat Anda uji kapan saja, baik backend maupun frontend: Demo Langsung

Jika Anda memiliki pertanyaan tentang artikel, tentang plugin, atau hanya ingin menyapa, jangan malu! Jangan ragu untuk menghubungi pengembang plugin lingkungan ramah Anda.