WooCommerce B2B: 도매 상점을 설정하는 방법

게시 됨: 2020-06-09

전자 상거래 부문은 예측 가능한 끝이 보이지 않는 놀라운 성장을 매년 보고 있습니다. B2B 전자 상거래의 경우에도 마찬가지이지만 도매 판매를 원하는 중소기업이 선택할 수 있는 좋은 플랫폼은 많지 않습니다. 시장에는 여러 SaaS 솔루션이 있지만 이들은 비용이 많이 들고 폐쇄 소스이며 대부분 대기업을 대상으로 합니다.

비즈니스 소유자 또는 개발자인 경우 WooCommerce는 무료이며 다재다능하며 강력한 솔루션입니다.

WooCommerce는 B2B 상점에 적합합니까?

"즉시 사용", 그렇지 않습니다. WooCommerce는 전자 상거래 상점을 위한 환상적인 솔루션이지만 도매용으로 특별히 개발되지 않았기 때문에 처음에는 많은 중요한 옵션이 부족합니다. 그러나 B2BKing과 같은 강력한 도매 플러그인을 사용하여 WooCommerce를 확장하고 필요한 모든 B2B 기능을 추가할 수 있습니다.

B2B 프로젝트를 위해 WooCommerce를 선택할 때 알아야 할 두 가지 다른 측면이 있습니다.

  • WooCommerce는 안전하고 올바르게 작동하도록 정기적인 플러그인 업데이트가 필요합니다.
  • 호스팅 및 웹 사이트 구성에 따라 WordPress 환경이 때때로 약간 느리게 수행될 수 있습니다. 그러나 WP Rocket(또는 기타 캐싱 및 최적화 플러그인)과 같은 플러그인을 통해 최적화하고 속도를 높이는 방법이 있습니다.

완벽하지는 않지만 WooCommerce는 현재 전 세계 온라인 상점의 20% 이상을 지원하고 있으며 여기에는 충분한 이유가 있습니다. 무료, 오픈 소스, 강력하고 안전하기 때문입니다. 이러한 동일한 특성으로 인해 도매점에서도 탁월한 선택이 됩니다.

B2B 상점은 일반적인 전자 상점과 어떻게 다릅니까?

B2B 판매는 종종 소비자에게 직접 판매하는 것과 매우 다르고 개인적인 경험입니다. 비즈니스 구매자는 지식이 풍부하고 협상에 열려 있으며 대량 구매에 대한 훌륭한 제안과 할인을 받기를 원합니다. 가격 카탈로그, 할인 옵션, 지불 및 배송 옵션은 비즈니스 규모, 주문 규모 또는 기존 비즈니스 관계와 같은 요인에 따라 고객마다 크게 다를 수 있습니다.

웹사이트 개발의 관점에서 이것은 가격, 할인, 배송 및 주문 규칙과 관련하여 고도의 기술적 유연성이 필요하다는 의미로 해석됩니다.

기업에 판매하는 경우에도 다음과 같은 기능이 필요합니다.

  • 손님에게 가격 숨기기
  • 사업자 등록 양식
  • VAT(또는 기타 세금 ID) 번호 지원
  • 면세
  • 견적 요청
  • 사용자 정의 청구 및 체크아웃 필드
  • 도매 주문 양식
  • 구매자 계정에서 여러 사용자를 지원하는 기능(기업 구조용)

계속해서 이러한 기능 중 일부를 WooCommerce에서 구현할 수 있는 방법을 살펴보겠습니다. 다음 섹션은 개발자를 대상으로 하며 도움이 되었으면 하는 몇 가지 코드 조각 과 사용할 수 있는 무료 플러그인 을 공유하겠습니다.

1. 게스트 사용자의 가격 숨기기

쉬운 것부터 시작합시다. 두 개의 WooCommerce 필터를 사용하여 이 작업을 수행할 수 있습니다. 먼저 woocommerce_get_price_html 을 사용하여 표시되는 가격을 "Login to view price"로 변경해 보겠습니다.

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

이것을 추가하면 게스트 사용자가 더 이상 제품을 구매할 수 없으며 "장바구니에 추가" 버튼을 더 이상 사용할 수 없습니다. 언급할 가치가 있는 또 다른 사항은 설정 방법에 따라 AJAX 검색 양식을 사용할 때 문제가 발생할 수 있다는 것입니다. 이를 수정하는 빠른 방법은 위의 코드를 기본 코드에 추가하고 코드를 내부에 래핑하여 AJAX를 확인하는 것입니다 .

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

최종 결과:

코딩에 익숙하지 않아 플러그인 대안에 관심이 있는 경우 B2BKing에는 웹사이트를 완전히 숨기거나 개별 제품 또는 카테고리에 대한 가격을 숨기는 옵션과 같은 이 기능 및 기타 게스트 액세스 제한 기능이 있습니다.

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/과 같이 여러 등록 양식에 대한 옵션이 있는 등록을 연장할 수 있는 몇 가지 무료 플러그인 솔루션이 있습니다. 귀하의 측면에서 약간의 추가 작업.

프리미엄 솔루션을 찾고 있다면 B2BKing에서 모든 페이지에 추가하고 사업자 등록 양식을 만들 수 있는 편리하고 사용하기 쉬운 단축 코드를 제공합니다.

3. 도매주문서

비즈니스 고객은 종종 SKU에 이르기까지 원하는 것이 무엇인지 정확히 알고 있으므로 웹 사이트에 도매 주문 양식을 추가하면 고객을 위해 신속하게 주문할 수 있고 전문가처럼 보일 수 있습니다.

어떻게 하나를 추가할 수 있습니까? 이 작업을 수행할 수 있는 빠른 코드 조각이 없으므로 플러그인이 최상의 솔루션이라고 생각합니다.

제가 개인적으로 테스트한 무료 플러그인이 있습니다. 훌륭하게 작동합니다. https://wordpress.org/plugins/woocommerce-bulk-order-form/

B2BKing에는 다음 이미지에서 볼 수 있는 고유한 구현도 있습니다.

4. 도매가격 구조

관련 질문은 다음과 같습니다. 사용자별로 다른 가격을 설정하는 방법은 무엇입니까? 가격을 직접 변경하거나 할인을 추가하는 두 가지 방법이 있습니다.

사용자 또는 사용자 범주에 대해 장바구니 할인을 추가하려면 다음 코드를 사용하십시오.

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 사용자에게만 할인을 제공합니다.

메타 상태를 어떻게 설정합니까? 위의 두 번째 기사 섹션에서 사용한 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 첫 페이지에 선보인 것을 자랑스럽게 생각합니다.

백엔드와 프론트엔드 모두에서 언제든지 테스트할 수 있는 라이브 데모를 제공합니다. 라이브 데모

기사, 플러그인에 대해 질문이 있거나 인사를 하고 싶다면 부끄러워하지 마세요! 친절한 이웃 플러그인 개발자에게 연락을 환영합니다.