WooCommerce B2B: 卸売店のセットアップ方法

公開: 2020-06-09

e コマース部門は、年々驚異的な成長を遂げており、予見できる終わりは見えません。 同じことが B2B e コマースにも当てはまりますが、卸売りを希望する中小企業が利用できる適切なプラットフォームの選択肢は多くありません。 市場にはいくつかの SaaS ソリューションがありますが、これらはコストがかかり、クローズド ソースであり、ほとんどが大企業向けです。

あなたが事業主または開発者である場合、WooCommerce は無料で用途が広く強力なソリューションです。

WooCommerce は B2B ショップに適していますか?

「すぐに使える」、そうではありません。 WooCommerce は e コマース ストア向けの優れたソリューションですが、卸売専用に開発されたわけではないため、最初は多くの重要なオプションがありません。 ただし、B2BKing のような強力なホールセール プラグインを使用して WooCommerce を拡張し、必要な企業間機能をすべて追加することができます。

B2B プロジェクトに WooCommerce を選択する際に注意すべき点が他に 2 つあります。

  • WooCommerce は、安全で正しく機能することを保証するために、定期的なプラグインの更新を必要とします。
  • ホスティングと Web サイトの構成によっては、WordPress 環境のパフォーマンスが少し遅くなることがあります。 ただし、WP Rocket (または他のキャッシュおよび最適化プラグイン) などのプラグインを使用して、最適化および高速化する方法があります。

完全ではありませんが、WooCommerce は現在、世界のオンライン ストアの 20% 以上で使用されており、それには十分な理由があります。それには、無料で、オープンソースで、強力で安全です。 これらの同じ品質は、卸売店にも最適です。

B2B ストアは通常の e ストアとどう違うのですか?

企業間販売は、消費者への直接販売とは大きく異なり、より個人的な経験になることがよくあります。 ビジネスバイヤーは知識が豊富で、交渉にオープンであり、まとめて購入することで素晴らしいオファーや割引を得たいと考えています. 価格カタログ、割引オプション、支払いおよび配送オプションは、ビジネスの規模、注文の規模、または既存のビジネス関係などの要因に応じて、顧客ごとに大きく異なる可能性があります。

ウェブサイト開発の観点からすると、これは、価格設定、割引、配送、および注文ルールに関して高度な技術的柔軟性が必要になることを意味します.

企業への販売では、次のような機能も必要になります。

  • ゲストの価格を隠す
  • ビジネス登録フォーム
  • VAT (またはその他の納税者番号) 番号のサポート
  • 免税
  • 見積もり依頼
  • カスタム請求およびチェックアウト フィールド
  • 卸売注文フォーム
  • 購入者アカウントで複数のユーザーをサポートする機能 (企業構造用)

これらの機能のいくつかを WooCommerce に実装する方法を見てみましょう。 次のセクションでは開発者向けの内容を扱います。役立つと思われるいくつかのコード スニペットと、使用できる無料のプラグインを紹介します。

1.ゲストユーザー向けの価格を非表示

簡単なものから始めましょう。 これは、2 つの WooCommerce フィルターで行うことができます。 まずはwoocommerce_get_price_htmlで表示価格を「ログインして価格を表示」に変更してみましょう。

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

これが完了すると、価格は表示されなくなり、テキストに置き換えられます。 ただし、ユーザーはこれらの製品をカートに追加して価格を確認できるため、これでは十分ではありません。 適切な名前の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;
	}
}

これを追加すると、ゲスト ユーザーは製品を購入できなくなり、[カートに追加] ボタンは使用できなくなります。 言及する価値があるもう 1 つのことは、AJAX 検索フォームを使用するときに、それらの設定方法によっては問題が発生する可能性があることです。 これを修正する簡単な方法は、上記のコードをメイン コードに追加し、コードを 内にラップして AJAX をチェックすることです。

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

最終結果:

コーディングに慣れていないためにプラグインの代替品に興味がある場合、B2BKing には、Web サイトを完全に非表示にするオプションや、個々の製品またはカテゴリの価格を非表示にするオプションなど、この機能と他のゲスト アクセス制限機能があります。

2. ビジネス登録、または B2B と B2C の別個の登録フォーム

ここでやりたいことは、「会社名」、「住所」、「VAT ID」などのカスタム フィールドを追加することです。

このコードを使用して、会社名のカスタム フィールドを追加できます。

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

このフィールドを、登録時に会社名の WooCommerce 請求フィールドと同期させたい場合は、 woocommerce_created_customerフックを使用し、WooCommerce が使用するのと同じフィールドを使用して会社名をユーザー メタとして保存することにより、これを行うことができます:billing_first_name、billing_company、billing_city、等:

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

B2B と B2C のフォーム フィールドを個別に作成するにはどうすればよいですか? 上記の方法で「選択」フィールドを登録に追加し、JavaScript を少し使用して、ユーザーが「個人」または「会社」のどちらを選択したかを判断できます。 ユーザーの選択に応じて、会社名などの登録フィールドを表示または非表示にします。

コーディングを避けたい場合は、https://wordpress.org/plugins/user-registration/ など、登録を拡張するための無料のプラグイン ソリューションがいくつかあります。これには、複数の登録フォームのオプションもありますが、B2B 固有の登録を作成するには必要になる場合があります。あなたの側で少し余分な仕事。

プレミアム ソリューションをお探しの場合、B2BKing は便利で使いやすいショートコードを提供しており、任意のページに追加してビジネス登録フォームを作成できます。

3. 卸注文書

ビジネスのお客様は、SKU に至るまで自分が何を望んでいるかを正確に把握していることが多いため、Web サイトに卸売注文フォームを追加すると、顧客がすばやく注文できるようになり、プロフェッショナルに見えます。

どうすれば追加できますか? これを実行できる簡単なコード スニペットはないため、プラグインが最適なソリューションだと思います。

私が個人的にテストした無料のプラグインがあります。

B2BKing には独自の実装もあり、次の画像で確認できます。

4.卸価格構造

ここでの関連する質問は、ユーザーごとに異なる価格を設定する方法です。 これには 2 つの方法があります: 価格を直接変更するか、割引を追加します。

ユーザーまたはユーザーのカテゴリにカート割引を追加するには、次のコードを使用します。

add_action( 'woocommerce_cart_calculate_fees', 'b2bking_cart_discount' );

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

上記のコードは、割引である負の手数料を追加するというちょっとしたトリックを使用しています。 上記のコードは大したことはしません。すべてのユーザーに 10 ドルの割引を追加するだけです。 コードを少し拡張してみましょう。

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

どうですか? コードは、ユーザーのメタ ステータスが「 b2b」であるかどうかをチェックし、b2b ユーザーにのみ割引を提供します。

メタステータスをどのように設定しますか? 上記の 2 番目の記事セクションで使用したwoocommerce_created_customerフックと単純なコード行を使用して、登録時に設定できます。 関数update_user_metaは、ユーザー メタの更新と作成の両方に使用されます。

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

ユーザーごとに製品ごとに異なる価格の複雑な構造を設定したい場合はどうすればよいでしょうか?

これは少し複雑になりますが、同じ原則を使用できます。 WooCommerce では、商品は「投稿」であり、投稿メタデータを設定できます。 たとえば、b2b_price という名前の投稿メタを追加して、b2b ユーザーに別の価格を設定できます。 これがコードです。

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

この価格を 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. 免税の設定

これは思ったより簡単です! WooCommerce で使用できる非常に便利な関数があります。これは、ほとんどの状況でこれを行い、価格表示も処理します: set_is_vat_exempt() 。 いい名前でしょ?

この機能により、B2B ユーザーには「税抜き」という接尾辞が付いた価格が表示され、B2C ユーザーには「税込み」と表示された価格が表示されるようになります。

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 & ホールセール プラグイン

上記で共有した内容の一部があなたのお役に立てば幸いです。 ただし、WooCommerce に B2B 機能を装備するのは複雑な作業であり、自分でコードを書くよりもプレミアム プラグインを購入する方が時間を有効に活用できると判断したとしても、私はあなたを責めません。

そのことを念頭に置いて、B2BKing についていくつか説明します。 これは私と私のチームがしばらく取り組んできたプロジェクトであり、WooCommerce を高価な SAAS プラットフォームに代わる有能な B2B ソリューションに変えることを目標としています。

長期的なプロジェクトとして常に開発とサポートを行っており、現在、事業登録、免税、動的価格設定ルール、VAT サポート、組み込みメッセージング システム、複数のバイヤー アカウント、オファー、専用の B2B&B2C ハイブリッド モードなど。

今週、私たちは Envato によって「注目のプラグイン オブ ザ ウィーク」として厳選され、CodeCanyon のフロント ページで紹介されたことを誇りに思います。

バックエンドとフロントエンドの両方でいつでもテストできるライブ デモを提供しています: ライブ デモ

記事やプラグインについて質問がある場合、または単に挨拶したい場合は、恥ずかしがらないでください! フレンドリーな近所のプラグイン開発者に連絡することを歓迎します.