쇼핑몰 구축 시 도와주었던 인연으로 그 쇼핑몰을 알리고 쇼핑몰 구축 경험담을 보다 널리 알리기 위해서 여기 happist.com에도 같이 공유합니다. 조금 사심이 있기는 합니다.
우커머스 배송 지역 및 배송비 설정 방법
여기에서는 실제 상품이 판매 시 배송비 등을 어떻게 책정할 것인지에 대해서 알아 봅니다.
인터넷에는 우커머스에서 배송 지역 및 배송비 설정 방법에 대한 다양한 글들이 많지만 최근 우컴스 버젼을 기반으로 정리한 글을 찾기 어려웠습니다.
그래서 크게 다르지는 않지만 최신 버젼을 기반으로 우커머스 배송 지역 설정 및 배송비 설정 방법에 대해 정리해 봤습니다.
1. 일반 배송 설정
배송에 대한 일반 옵션 내용을 정하는 곳입니다.
판매지역을 어디까지 할 것인지, 이에 따라 배송 지역은 어디까지 할것인지 등등 설정합니다.
이는 우커머스 – 설정 기본에서 할 수 있습니다.
판매 지역 : 모든 국가에 판매할 것인지? 아니면 특정 국가에서만 판매할 것인디 등의 판매 지역을 정합니다.
특정 국가 : 만약 특정국가만 판매한다고 했으며 그 특정국가가 어디인지를 정합니다. 여기에서는 대한민국만을 정의했습니다.
배송 지역 : 판매하는 모든 국가에 배송할 것인지 아니면 특정 국가만 배송할 것인지를 정의합니다. 이는 아마존 어필리에이트처럼 전세계를 대상으로 판매는 하되 배송은 담당하지 않는 등 다양한 상황에 맞추어 세팅할 수 있습니다.
2. 배송설정 – 배송관련 기본 사항
우커머스 배송설정에서는 배송비 계산을 어떻게 할것인지, 배송 목적지를 어디로 설정할 것인지, 디버그 모드를 활성화할 것인지를 설정합니다.
장바구니 페이지에 배송 계산기 활성화 : 장바구니 페이지에서 배송비를 계산하고, 알수 있도록 하는 옵션입니다. 우리나라 고객들은 최종 결제 단계에서 갑자기 금액이 올라가는 것을 굉장히 싫어하므로 가능하면 장바구니에서 배송비를 포함한 비용을 알 수 있도록 하는 것에 좋다고 합니다.
주소가 입력될 때까지 배송 비용 감추기 : 마찬가지로 갑자기 배송료가 튀어나오는 것이 쇼핑 경험에 그리 좋지는 않습니다.
배송 목적지 : 고객 청구 주소를 기본으로하고 필요시 배송 주소를 추가 입력할 수 있게 합니다.
디버그 모드 : 배송 디버그 모드를 활성화하면 결제 단계에서 배송 방식 메세지를 뿌려줍니다. 이는 불필한 정보에 가까우므로 사용하지 않습니다.
3. 배송구역 설정
여기에서는 배송구역을 어떻게 나눌 것인지를 정의합니다.
대한민국을 하나의 배송구역을 보고 전국을 동일한 배송비 정책을 사용할 수도 있고, 대한민국을 몇개의 구역으로 나누어서 각기 다른 배송 설정을 할 수 있습니다.
우리가 그동안 인터넷 쇼핑 시 많이 보았던 도서산간지역, 제주도 등은 분리해서 추가 비용을 받는 것이 일반적이긴 합니다.
따라서 여기서는 대한민국 기본 배송 지역과 도서산간지역 그리고 제주도로 나누는 배송구역을 설정했습니다.
그리고 배송 구역의 순서는 아래 이미지처럼 제주도 > 도서산간지역 > 기본 배송 지역순으로 나열합니다. 그래야 지역적 특성이 제대로 반영됩니다.
여기서 도서산간지역과 제주도를 어떻게 나누느냐가 관건인데요.
4. 배송구역 상세 설정
여기에서는 배송구역을 어떻게 나눌 것인지를 정의합니다.
대한민국을 하나의 배송구역을 보고 전국을 동일한 배송비 정책을 사용할 수도 있고, 대한민국을 몇개의 구역으로 나누어서 각기 다른 배송 설정을 할 수 있습니다.
우리가 그동안 인터넷 쇼핑 시 많이 보았던 도서산간지역, 제주도 등은 분리해서 추가 비용을 받는 것이 일반적이긴 합니다.
따라서 여기서는 대한민국 기본 배송 지역과 도서산간지역 그리고 제주도로 나누는 배송구역을 설정했습니다.
3.1. 도서 산간 지역 설정
배송구역 추가를 선택해, 구역 명을 적고 구역 포함 지역을 입력합니다. 도서 산간 지역의 구역 포함 지역은 G마켓에서 설정한 도서 산간 지역에 해당하는 우편번호를 입력하면 됩니다.
위 코드 중에서 theme_location == ‘primary’)의 ‘primary’가 메뉴의 위치 슬러그를 지칭하고 있습니다. 따라 본인이 사용하는 테마의 메뉴 세팅 부분에서 사용하는 메뉴의 위치 슬러그를 찾아 변경해 주어야 합니다.
이는 메뉴 설정화면에서 크롬의 개발자도구 – 요소 찾기나 파이어폭스의 개발자도구 – 요소 찾기에서 menu-locations 다음에 나오는 위치 슬러그를 찾아 볼 수 있습니다.
아래 이미지는 파이어폭스의 개발자도구 – 검사기에서 메뉴 중 Main을 찍었을 시 검사기에서 나타난 상태인데요. 흐릿한 파란색으로 칠해진 부분을 살펴보면 menu-locations[main menu]를 찾을 수 있죠. 바로 main_menu가 우리가 찾고자하는 메뉴의 위치 슬러그입니다.
이렇게 메뉴에 우커머스 내 계정 로그인/로그아웃 링크를 추가하는 방법은 아래 코드를 function.php 파일에 추가하는 것입니다. 물로 child theme의 function.php에 추가하는 것이 좋겠죠.
add_filter( 'wp_nav_menu_items', 'my_account_loginout_link', 10, 2 );
functionmy_account_loginout_link( $items, $args ){
if (is_user_logged_in() && $args->theme_location == 'primary') { //change your theme registered menu name to suit
$items .= '<li><a href="'. wp_logout_url( get_permalink( wc_get_page_id( 'shop' ) ) ) .'">Log Out</a></li>'; //change logout link, here it goes to 'shop', you may want to put it to 'myaccount'
}
elseif (!is_user_logged_in() && $args->theme_location == 'primary') {//change your theme registered menu name to suit
$items .= '<li><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Log In</a></li>';
}
return $items;
}Code language:PHP(php)
자기 테마 메뉴의 위치 슬러그 찾아 변경하기
이 코드 중에서 theme_location == ‘primary’)의 ‘primary’는 테마에서 사용하는 메뉴의 위치 슬러그를 지칭하는데요.
본인이 사용하는 테마의 메뉴 세팅 부분에서 사용하는 메뉴의 위치 슬러그를 찾아야 합니다.
이는 메뉴 설정화면에서 크롬이나 파이어폭스의 개발자도구 – 요소 찾기에서 menu-locations 다음에서 찾아 볼 수 있습니다.
아래 이미지는 파이어폭스의 개발자도구 – 검사기에서 메뉴 중 Main을 찍었을 시 검사기에서 나타난 상태인데요. 흐릿한 파란색으로 칠해진 부분을 살펴보면 menu-locations[main menu]를 찾을 수 있죠. 바로 main menu가 우리가 찾고자하는 메뉴의 위치 슬러그입니다.
최종적으로는 아래와 같은 코드로 변경됩니다.
add_filter( 'wp_nav_menu_items', 'my_account_loginout_link', 10, 2 );
functionmy_account_loginout_link( $items, $args ){
if (is_user_logged_in() && $args->theme_location == 'main_menu') { //change your theme registered menu name to suit
$items .= '<li><a href="'. wp_logout_url( get_permalink( wc_get_page_id( 'shop' ) ) ) .'">Log Out</a></li>'; //change logout link, here it goes to 'shop', you may want to put it to 'myaccount'
}
elseif (!is_user_logged_in() && $args->theme_location == 'main_menu') {//change your theme registered menu name to suit
$items .= '<li><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Log In</a></li>';
}
return $items;
}Code language:PHP(php)
소셜 로그인이나 한국 주소 검색과 같은 부분 기능만 필요한 경우에도 멤버쉽 플러그인 전체를 사용해야 하므로 다소 무거워집니다.
Memberpress와 같이 매우 뛰어난 유료 멤버쉽 플러그인을 사용하고 싶은 경우 중복 기능과 충돌 가능성이 있습니다.
1.2. 소셜 로그인 플러그인 + 한국 소셜 네트워크 추가 방법
위에서 소개한 한국형 회원관리 플러그인을 사용하지 않는 경우는 외국에서 개발된 소셜 로그인 플러그인에 한국 소셜 네트워크를 추가하는 방법이 있습니다.
외국에서 개발된 소셜 로그인을 지원하는 플러그인은 굉장히 많이 있습니다. 수요가 많은 만큼 다양한 플러그인과 관련 기능들이 발전되어 있습니다.
그러나 대부분 소셜 로그인 플러그인들은 네이버나 카카오와 같은 한국에서 널리 사용되는 소셜 네타워크는 지원하지 않기 때문에 이를 추가해야하는데요. 이는 상당한 저문적인 영역이라 쉽지 않습니다.
현재 일반 사용자가 큰 어려움없이 소셜 로그인 플러그인에 한국의 소셜 네트워크를 추가하는 방법은 Miled라는 사람이 배포한 WordPress Social Login을 이용하는 것입니다.
다만 이 플러그인은 2.3.3 버젼 발표 후 2년전부터 업데이트가 되지 않고 있어 주의가 필요하긴 합니다. 그럼에도 불구하고 당장 대안이 없기때문에 이용할 수 밖에 없는 상황이긴 합니다.
다만 이 플러그인의 소스를 공개하는 GitHub에서는 3.01버젼이 준비되고 있어 조만간 업데이트가 이루어지지 않을까 싶습니다. 그렇지만 업데이트되는 3.01버젼은 기존과 다른 로직으로 설계되면서 이 업그레이드된 플러그인이 출시되면 네이버와 카카오 추가도 능력자분이 업데이트를 해줘야 사용 가능할 것 같습니다.
2. WordPress Social Login에 한국 소셜 네트워크 추가 방법
WordPress Social Login에 한국 소셜 네트워크 추가 방법엔 이미 여러 사이트에 관련 방법을 설명하고 있습니다.
네이버나 페이스북 등 대부분 소셜 미디어들은 이러한 Callback URL을 여러개를 등록할 수 있지만 카카오는 단 하나만 등록할 수 있으니 참고 하시기 바랍니다.
그리고 네이버는 소셜 로그인 기능을 사용하기 위해서는 승인을 받아야 합니다. 이승인 절차에는 네이버에서 가져오는 정보를 어떻게 활용하고 있는지를 스크린 캡워해서 증명해야 하고, 증명이 부족하다싶으면 거절당하기 싶습니다.
저도 세번째에 대대적으로 증빙을 보강해서 겨우통과할 수 있었습니다.
3. WordPress Social Login 플러그인 사용 시 문제 및 해결 방안
WordPress Social Login 플러그인은 앞서서 이야기한대로 오랬동안 업데이트가 이루어지지 않아서인지 사용 시 몇가지 문제에 부딕치게 됩니다.
적용하는 동안 발견했던 문제와 그 해결 방안에 대해서 간단히 소개합니다.
3.1. “404 Not Found” when checking WSL end-points
처음 이 플러그인을 설치하고 소셜 로그인을 시도해 보니 404 Not Found라는 메세지와 함게 작동하지 않는 현상을 만날 수 있습니다.
WordPress Social Login 플러그인에는 WordPress Social Login Diagnostics이라는 메뉴가 있어 상황을 진단해 볼 수 있는 기능이 있는데요. 이 진단 기능을 사용하면 아래와 같은 메세지를 만날 수 있습니다.
Error: Your web server returned “404 Not Found” when checking WSL end-points. This issue usually happen when :
1. Your web host uses mod_security to block requests containing URLs (eg. hosts like HostGator, GoDaddy and The Planet). On this case, you should contact your provider to have WSL end-points urls white-listed.
2. There is a .htaccess file that prevent direct access to the WordPress plugins directory.
In any case, WSL requires this url to be white-listed:
저는 웹서버로 nginx를 사용하고 있는데요. 위 진단에서는 Apache 서버를 기준으로 진단하고 해결책을 제시하고 있어서 별 도움이 안되었습니다.
XETOWN과 같은 고수들이 모여있는 사이트에도 질의를 남겼고, 코스모스팜 커뮤니티에도 관련 질문을 남겼지만 별 도움이 안되더군요.
결국 기존 nginx configure 파일에 적용된 규칙들을 참조해 아래와 같은 코드를 추가했습니다. 그랬더니 문제가 해결되었습니다.
차단된 URL: 리디렉션 URI가 앱의 클라이언트 OAuth 설정의 화이트리스트에 없으므로 리디렉션하지 못했습니다. 클라이언트 및 웹 OAuth 로그인이 설정되었는지 확인하고 모든 앱 도메인을 유효한 OAuth 리디렉션 URI로 추가하세요.
이는 CallBack URL 설정이 제대로 안된 경우이니 개발자 사이트로 들어가 CallBack URL을 제대로 등록해주면 됩니다.
3.4. 페이스북 에러
마찬가지로 이 플러그인이 오랬동안 업데이트가 이루어지지 않았기 때문에 페이스북 사용에 문제가 있습니다.
페이스북이 제공하는 정보가 변경되면서 아래와 같은 user_friends 이슈가 발생하는데요.
Invalid Scopes: This message is only shown to developers. Users of your app will ignore these permissions if present. Please read the documentation for valid permissions at: https://developers.facebook.com/docs/facebook-login/permissions
이 문제를 해결하기 위해서는 코드 추가가 필요합니다. 이에 대한 해결은 이 이슈를 제기한 Error when logging with Fb에서 찾을 수 있습니다.
우선 FTP로 들어가서 /wp-content/plugins/wordpress-social-login/로 이동합니다. 이 폴더에 있는 wp-social-login.php 파일을 편집기로 엽니다. 이 파일의 맨 아래에 아래 코드를 추가하고 저장합니다.
자동으로 구독 주기를 갱신, 다양한 구독 상품 구성, 가입 기반과 비가입 기반 통합 체크아웃 기능, 다양한 구독 주기 설정등 다양한 기능을 제공
비용은 단 한번 49$를 지불함으로써 끝남, 물론 기술 지원이 필요하다면 연간 16.5$를 지불하면 가능
4. 멤버쉽 구독(Membership Subscriptions) 플러그인
멤버쉽 구독(Membership Subscriptions)은 다양한 서비스를 제공하는 회원제 사이트 또는 쇼핑몰을 구성하고 그 회원권을 가입자들에게 판매하는 것입니다.
이러한 멤버쉽 구독(Membership Subscriptions)은 일반적인 회원 가입과는 다른데요.
회원이 된다는 것은 회원제 웹사이트에 계정을 만들고 그 커뮤니티의 일부가 되는 것이라 할 수 있습니다. 예를들어 사진에 관심이 있어 slrclub.com에 등록하면 그 사이트의 일원이 되어 추가적인 비용을 지불하지 않더라도 커뮤니티 토론에 참여하고 다른 회원들과 상호 작용할 수 있습니다.
반면 멤버쉽 구독(Membership Subscriptions)한다는 것은 회원에게 부여된 권한을 계속 사용하기 위해서는 반복적으로 일정 비용을 지불해야 합니다. 그리고 주로 상호작용은 회원들끼리가 아닌 서비스 제공자와 주로 이루어 진다고 봐야 합니다.
워드프레스 쇼핑몰에서 이러한 멤버쉽 구독(Membership Subscriptions)을 제대로 해줄 수 있는 플러그인에는 무엇이 있는지 간단히 살펴 보았습니다.
4.1. MemberPress
MemberPress는 멤버쉽 플러그인 중에서 가장 많이 추천을 받는 프로그램이라고 할 수 있습니다. Membership plugin으로 구글링해보면 수많은 평가 포스팅 중에서 상당수가 MemberPress를 제일 먼저 추천하고 있죠.
다만 이 MemberPress는 상대적으로 비산 가격 체계를 유지하고 있습니다.
다양한 회원 관리 기능, 서브스크립션 기능 등 올인원 기능을 제공하는 플러그인이라 할 수 있음
쇼핑몰 구축 시 도와주었던 인연으로 그 쇼핑몰을 알리고 쇼핑몰 구축 경험담을 보다 널리 알리기 위해서 여기 happist.com에도 같이 공유합니다. 조금 사심이 있기는 합니다.
[이메일 자동화] 수신 거부 고객에게 쿨하게 인사하기
지난 번엔 신규 가입한 회원에게 환영의 메세지를 어떻게 보내야하는지를 알아봤습니다. 이번에는 반대로 탈퇴하려는 고객에게 어떤 메세지를 보낼 것인가를 살펴보죠.
1. 먼저 수신거부 링크를 제공하는 것이 좋을까요?
예전 우리나라의 많은 사이트들은 가입하기는 비교적 쉬웠지만 회원을 탈퇴하기는 매우 어려운 구조로 되어 있었어요.
우선 탈퇴하려면 사이트를 방문해야 했고, 자기 계정 정보를 메뉴를 힘들게 찾아 여기서 탈퇴 신청을 할 수 있도록 되어 있었죠. 어쩌면 최대한 불편하게 만들어 탈퇴를 막자는 원리가 작동했다는 생각이 들어요.
메일링 뉴스레터에도 마찬가지이죠. 뉴스레터 수신을 거절하고 싶다면 마찬가지로 직접 사이트에 방문해 로그인하고 자기 계정 정보로 들어가 가입 해지토록 하는 경우가 많았어요.
그러나 요즘은 뉴스레터에서 수신거부 링크를 삽입해 쉽게 수신거부할 수 있도록 만드는 추세예요.
그것은 스팸메일과 밀접한 관련이 있어요. 스팸 메일은 오래전부터 극성을 부렸고, 이러한 스팸메일 때문에 사람들은 이메일을 기피하게되는 악순환이 일어나게 되죠.
스팸은 메일업체의 생존을 좌우하는 문제로 적극 대응 중
예전 저의 다음메일이나 네이버메일을 보면 정작 필요한 개인 메일은 몇개되지 않고 스팸으로 가득차 있곤 했지요. 그래서 결국 다음메일이나 네이버메일 사용을 포기하고 Gmail로 옮기는 결단을 내렸죠.
이처럼 스팸에 적극 대응하지 않으면 메일업체로서는 생존을 담보할 수 없기 때문에 이메일 업체들은 어떻게하면 스팬 메일을 줄일 수 있을까에 엄청난 고민을 하고 스팸방지 기술을 발전시켜오고 있죠.
그러한 방법 중에 하나가 바로 스팸 신고제도예요. 마음에 들지않는 메일이 오면, 비록 그 메일이 자기가 동의했던 것이라도 스팸으로 신고하는 경향이 높아지고 있어요.
구글의 경우를 보죠. 구글은 메일 상단에 스팸신고 버튼을 버튼을 준비해 놓고 언제든지 쉽게 스팸 신고를 할 수 있도록 만들어 놓았어요. 이 스팸 신고 버튼은 보관보관처리 다음에 배치해 얼마나 이 기능을 중요시하는지를 보여주고 있다는 생각이예요.
스팸신고 버튼을 누르면 스팸 신고 및 수신거부 메세지창이 나오면서 ‘스팸신고’만 할것인지 아니면 ‘스팸신고 및 수신거부’를 할것인지를 선택토록 해요. ‘스팸 신고’만 하는 경우는 메일은 받되 스팸함으로 이동하는 것이구요. ‘스팸신고 및 수신거부’의 경우 아예 메일 전달이 안되게 만들어 버리죠.
아래는 뉴욕타임즈 뉴스레터에서 스팸 신고 버튼을 눌렀을 때 나타난 메세지를 캡춰한 거예요. 물론 뉴욕타임지 뉴스레터를 스팸 신고할 생각은 없지요. 테스트로..
이렇게 스팸으로 신고하는 사례가 많아지면 구글은 해당 발신처 전체를 스팸으로 간주해 보내는 메일은 모두 스팸함으로 가든지 아예 전달 자체가 안되던지 할거예요.
이는 이메일을 통해서 고객과 교감하겠다는 브랜드로서는 재앙에 가까운 일이죠. 자기 브랜드 메일이 스팸으로 간주된다니오..브랜드 자체가 스팸이 된것이죠.
2. 수신거부에 대해 어떻게 대응해야 할까?
어떠한 경우에 고개들이 탈퇴하려고 할까요?
우리나라의 경우 한번 회원 가입되었다면 어지간하면 그대로 유지하는 경향이 강한데 굳이 탈퇴하겠다고 연락을 했다면 무언가 잘못된 요소가 있다고 봐야 할 것 같아요.
그리고 외국처럼 적극적으로 스팸 신고나 수신거부 입장을 표명하는 방향으로 점차 흘러가는 것도 놓칠 수 없는 트렌드라고 보여지네요.
이러한 수신거부 또는 회원 탈퇴가 활성화 되어있는 외국에서는 떠나려는 고객 또는 회원을 잡기위해서 다양한 아이디어를 동원하기도 하는 것 같더라구요.
BONOBOS는 연애하듯이 이메일로 만나는 횟수를 제한해서 더 만남을 지속해보자는 제안을 하고
Groupon은 상사로부터 혼나는 이메일 담당자 데릭의 동영상을 공유하며, 탈퇴하려면 데릭을 혼내주라고 요청하라면 은근 불쌍한 데릭을 위해 탈퇴를 말아달라고 요청하고 있어요. ““That was pretty mean… I hope you’re happy. Want to make it up to Derrick? Resubscribe!”