VibeFox PostNL for WooCommerce — 도움말
요구 사항
WordPress: 5.8 이상.
WooCommerce: 7.0 이상, 설치 및 활성화되어 있어야 합니다. WooCommerce가 없으면 플러그인이 활성화되지 않습니다.
PHP: 8.0 이상.
PostNL API 키(픽업 포인트 전용): 픽업 포인트는 PostNL Checkout API에서 불러옵니다. PostNL 비즈니스 고객은 Mijn PostNL의 My account > API beheren에서 API 키를 찾을 수 있습니다. PostNL 샌드박스에는 별도의 샌드박스 키가 필요합니다. 자택 배송 방법에는 키가 필요하지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 사용할 수 있습니다.
설치
1. WordPress에서 Plugins > Add New > Upload Plugin으로 이동하여 플러그인 ZIP 파일을 선택하고 Install Now를 클릭합니다. FTP로 vfd_postnl 폴더를 /wp-content/plugins/에 업로드할 수도 있습니다.
2. Activate를 클릭합니다.
3. 설정을 엽니다: WooCommerce > Settings > Shipping > VibeFox PostNL. 또는 플러그인 페이지에서 플러그인 이름 아래의 Settings를 클릭합니다.
4. 페이지 상단의 라이선스 블록에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다.
5. 요금을 입력합니다. 픽업 포인트의 경우 PostNL API key와 Ship from (postcode)도 입력합니다(설정 항목 참조).
6. WooCommerce > Settings > Shipping > Shipping zones에서 배송 지역(예: 네덜란드와 벨기에)에 VibeFox PostNL을 추가합니다. 지역에서 Title과 Delivery to를 설정합니다. 다른 배송 유형을 제공하려면 같은 방법을 한 번 더 추가합니다.
구성
제목과 배송 유형을 제외한 모든 설정은 한 페이지에 있습니다: WooCommerce > Settings > Shipping > VibeFox PostNL. 이 설정은 모든 배송 지역에 적용됩니다. 방법을 지역에 추가하면 지역 창에 두 개의 필드가 표시됩니다:
Title (zone): 이 지역 방법에 대해 고객에게 보이는 이름입니다. 비워 두면 전역 Name을 사용합니다.
Delivery to (zone): As in the global settings(기본값), PostNL pickup point (customer chooses a point), 또는 Home address. 두 방법을 모두 제공하려면 같은 방법을 한 지역에 두 번 추가하세요.
설정 위에는 경고가 표시됩니다: 픽업 포인트용 API 키 또는 발송지 우편번호 누락, 샌드박스 켜짐, 요금 미설정, 그리고 마지막으로 실패한 PostNL 요청(날짜와 오류 포함).
일반
Enable/Disable: 모든 지역에서 PostNL 배송을 한꺼번에 켜거나 끕니다.
Name: 체크아웃에 표시되는 배송 방법 이름입니다. 지역에서 설정한 Title이 이 이름을 대체합니다. 기본값: PostNL.
Delivery to: As in the global settings를 사용하는 지역 방법과 Ignore zones 모드의 기본 배송 유형입니다.
Tax status: Taxable은 배송비에 WooCommerce 세금을 추가하고, None은 추가하지 않습니다.
PostNL API(픽업 포인트)(자택 배송에는 필요 없음)
API key: Mijn PostNL(My account > API beheren)에서 가져온 PostNL API 키입니다. "apikey" 헤더로 PostNL에 전송되며, WordPress 데이터베이스에 저장되고, 고객에게 표시되거나 로그에 기록되지 않습니다.
Sandbox: PostNL 샌드박스(api-sandbox.postnl.nl)와 샌드박스 API 키를 사용합니다. 이때 고객에게는 테스트 픽업 포인트가 표시됩니다. 운영 쇼핑몰에서는 끄세요.
Ship from (country): 소포를 PostNL에 전달하는 국가입니다. 네덜란드 또는 벨기에입니다. 기본값은 쇼핑몰이 있는 국가입니다. PostNL은 집하 날짜를 정하는 데 발송자 주소를 사용합니다.
Ship from (postcode): 발송자 우편번호입니다. 예: 네덜란드 1234AB, 벨기에 1000. 쇼핑몰이 같은 국가에 있으면 비워 두어 WooCommerce > Settings > General의 쇼핑몰 우편번호를 사용할 수 있습니다. 잘못된 우편번호는 메시지와 함께 거부됩니다. API 키, 샌드박스 설정 또는 발송 주소를 변경하면 캐시된 픽업 포인트 목록이 지워집니다.
요금(쇼핑몰 통화 기준)
PostNL에는 공개 요금 API가 없으므로 이 플러그인은 실시간 요금을 조회하지 않으며 요금을 환산하지도 않습니다.
Price per country: 배송 국가마다 한 행입니다. + Add country를 클릭하면 행이 추가되고, ×를 클릭하면 제거됩니다. 자체 행이 없는 모든 국가를 포함하는 행에는 * All other countries를 선택합니다. 각 행에는 Price가 있으며, 장바구니 무게에 따라 선택적으로 무게 등급을 설정할 수 있습니다: XS는 1 kg까지, S는 2 kg까지, M은 3 kg까지, L은 5 kg까지, XL은 5 kg 초과입니다. 무게 등급 요금은 Price보다 우선합니다. 비워 두면 Price를 사용합니다. Price가 0이면 무료 배송입니다. "6.95"와 "6,95"는 모두 허용됩니다. 빈 행과 잘못된 국가 코드는 저장할 때 제거됩니다. 같은 국가가 두 번 나오면 첫 번째 행이 유지됩니다. 잘못된 요금은 메시지와 함께 무시됩니다.
Calculation: Per order는 요금을 한 번만 부과합니다. Per item (price x quantity)은 장바구니의 배송 가능한 상품 수를 곱합니다.
Price for other countries: 표에 해당 국가도, * 행도 없을 때 사용합니다. 비워 두면 그 지역에서 방법을 숨깁니다.
조건
Free shipping from: 배송이 무료가 되는 장바구니 소계입니다. 요금이 찾아지는 곳에만 적용됩니다. 비워 두면 무료 배송을 제공하지 않습니다.
Minimum subtotal: 장바구니 소계가 이 금액 이상일 때만 방법을 표시합니다. 비워 두면 항상 표시합니다.
Minimum weight (kg): 장바구니가 이보다 가벼우면 방법을 숨깁니다. 상품 무게는 쇼핑몰의 단위에서 변환됩니다. 비워 두면 제한이 없습니다.
Maximum weight (kg): 이보다 무거운 장바구니에서는 방법을 숨깁니다. 기본값: 30(PostNL 소포는 베네룩스에서 최대 30 kg까지 가능). 비워 두면 제한이 없습니다.
Hide for shipping classes: 장바구니에 이 WooCommerce 배송 클래스 중 하나에 속한 상품이 있으면 방법을 숨깁니다.
모든 금액과 무게는 소수점 쉼표를 허용하며, 천 단위 구분 기호와 함께 입력할 수도 있습니다(1.234,50 또는 1,234.50). 잘못된 숫자는 메시지와 함께 무시됩니다.
배송 지역이 없을 때의 제공
Ignore zones: 어떤 지역도 PostNL을 추가하지 않을 때, 아래 국가에도 PostNL을 제공합니다. 방법이 포함된 지역은 평소처럼 계속 작동합니다. 이 모드는 전역 Name과 Delivery to를 사용합니다.
Countries: 이 모드의 배송 대상 국가입니다. 비워 두면 쇼핑몰이 배송하는 모든 국가를 사용합니다. 이 필드는 Ignore zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: 디버그 메시지를 WooCommerce > Status > Logs(소스 "vfd-postnl")에 기록합니다. API 오류는 항상 기록됩니다. API 키나 고객 데이터는 기록되지 않습니다. 작업이 끝나면 로그를 끄세요.
Remove data on uninstall: 켜져 있으면 플러그인을 삭제할 때 PostNL 설정과 지역 방법이 제거됩니다. 플러그인을 비활성화해도 설정은 삭제되지 않습니다. 주문에 저장된 픽업 포인트는 항상 유지됩니다.
체크아웃에서의 작동 방식
고객이 배송 주소를 입력하면 WooCommerce가 플러그인에 요금을 요청합니다. 플러그인은 조건을 확인합니다: 장바구니 무게, 최소 소계, 배송 클래스. 그다음 국가와 무게 등급에 맞는 요금을 표에서 가져오거나, 그 밖의 국가 요금을 가져옵니다. 요금이 없으면 방법은 숨겨집니다. 장바구니 소계가 Free shipping from에 도달하면 요금은 0입니다.
픽업 포인트 방법은 네덜란드와 벨기에 주소에만 제공되며, API 키가 있을 때만 제공됩니다. 고객이 유효한 우편번호를 입력하면, 플러그인은 PostNL Checkout API에 가장 가까운 픽업 포인트를 요청합니다. 고객의 우편번호, 도로명, 건물 번호, 도시, 국가와 쇼핑몰의 발송지 주소를 보냅니다. 자택 배송 방법에는 아무것도 보내지 않습니다. PostNL에 연결할 수 없거나 주소에 포인트가 없으면 픽업 포인트 방법이 숨겨지고, 다른 방법은 계속 사용할 수 있습니다. API 시간 초과는 12초입니다.
포인트 목록은 우편번호별로 6시간 캐시되며, "포인트 없음" 응답은 1시간 캐시됩니다. 실패한 요청은 10분 동안 캐시되므로, 장애가 있어도 체크아웃 새로 고침마다 느려지지 않습니다. 마지막 오류는 설정 화면에 표시됩니다.
이 방법은 클래식 체크아웃과 장바구니 및 체크아웃 블록에서 작동합니다. WooCommerce 고성능 주문 저장소(HPOS)와 호환됩니다.
이 플러그인은 PostNL 실시간 요금을 조회하지 않으며, 배송 라벨, 바코드, track and trace, 반품 또는 사전 알림을 생성하지 않습니다. 배송일, 저녁 또는 아침 배송 옵션은 없습니다. 저장된 픽업 포인트를 사용하여 Mijn PostNL 또는 다른 PostNL 도구에서 배송을 생성하세요.
픽업 포인트
고객이 픽업 포인트 방법을 선택하면, 그 아래에 가장 가까운 세 개의 포인트(회사명, 주소, 거리)가 있는 PostNL pickup point 목록이 나타납니다. 우편번호를 입력하기 전에 고객에게는 "PostNL 픽업 포인트를 보려면 우편번호를 입력하세요(예: 1234 AB)."라는 메시지가 표시됩니다(벨기에는 4자리). 선택 내용은 체크아웃이 새로 고쳐져도 유지됩니다.
포인트는 필수입니다. 포인트가 없으면 체크아웃은 "PostNL 픽업 포인트를 선택하세요."라는 메시지와 함께 멈춥니다. 서버는 포인트를 배송 주소에 대한 PostNL 목록과 대조합니다. 목록에 없으면 체크아웃은 "선택한 PostNL 픽업 포인트는 이 주소에서 사용할 수 없습니다. 다시 선택하세요."라는 메시지와 함께 멈춥니다. 주문과 함께 저장되는 이름과 주소는 브라우저가 아니라 PostNL에서 가져옵니다.
관리자 주문 화면: 배송 주소 아래에 이름, 주소, Location code와 함께 PostNL pickup point가 표시됩니다.
주문 접수 페이지 및 내 계정 주문 보기: 이름과 주소와 함께 PostNL pickup point가 표시됩니다.
주문 이메일: HTML 및 일반 텍스트 이메일에 포인트 이름과 주소가 표시됩니다.
데이터베이스에서 포인트는 주문 메타 데이터 _vfd_ptnl_servicepoint_id(PostNL 위치 코드), _vfd_ptnl_servicepoint_name(이름과 주소), _vfd_ptnl_servicepoint(파트너 ID, 회사, 도로명, 건물 번호, 우편번호, 도시, 국가)에 저장됩니다.
라이선스 키
이 플러그인은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록은 WooCommerce > Settings > Shipping > VibeFox PostNL 페이지 상단에 있습니다. 키를 License key에 붙여 넣고 Activate를 클릭합니다. 블록에는 상태(예: 라이선스가 유효한 날짜)와 도메인이 표시됩니다. Check now로 상태를 다시 확인하고, Change key로 다른 키를 입력하며, Remove key로 이 사이트에서 키를 제거합니다. Manage licenses and domains in your account 링크를 클릭하면 vibefox.net 계정이 열립니다.
키 하나는 도메인 하나에서만 작동합니다. 사이트에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하세요.
활성 키가 없으면 체크아웃에서 고객에게 PostNL이 표시되지 않습니다. 로그인한 쇼핑몰 관리자에게는 (unlicensed — visible to admins only)라고 표시된 채로 계속 보이므로, 키를 구매하기 전에 플러그인을 설정하고 테스트할 수 있습니다. 플러그인 페이지와 WooCommerce 페이지에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다.
라이선스가 만료되어도 플러그인은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 상태는 백그라운드에서 자동으로 다시 확인됩니다.
문제 해결
체크아웃에 PostNL이 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 그리고 고객 국가의 지역에 방법이 추가되어 있는지 확인하세요(또는 Ignore zones가 켜져 있고 해당 국가가 허용되어 있는지). 국가의 요금, 무게 제한, Minimum subtotal, Hide for shipping classes도 확인합니다.
픽업 포인트 방법이 나타나지 않음: 네덜란드와 벨기에 주소에만, API 키, 발송지 우편번호, 요금이 있을 때만, 그리고 PostNL이 고객의 우편번호에 대해 포인트를 반환할 때만 표시됩니다. 설정 화면 상단의 경고와 WooCommerce > Status > Logs(소스 "vfd-postnl")를 확인하세요. 오류는 항상 기록됩니다. 자세한 내용은 Debug log를 켜세요.
"PostNL 픽업 포인트를 지금 불러올 수 없습니다": PostNL에 연결할 수 없거나, PostNL이 API 키를 거부했거나, 발송지 우편번호가 없습니다. 설정 화면에 마지막 오류가 표시됩니다. 샌드박스 키는 Sandbox가 켜져 있을 때만, 운영 키는 꺼져 있을 때만 작동합니다.
고객에게 테스트 픽업 포인트가 보임: Sandbox를 끄세요.
개발자용 필터: vfd_ptnl_number_of_locations(기본값 3), vfd_ptnl_checkout_request(요청 본문), vfd_ptnl_api_url.
라이선스 블록에 오류가 표시됨: 블록의 메시지를 따르세요. 예를 들어 키가 이미 다른 도메인에서 사용 중이면, vibefox.net 계정에서 슬롯을 해제하고 Check now를 클릭하세요. 사이트 주소가 바뀌었다면 Check now를 클릭하여 새 도메인에 키를 활성화하세요. 라이선스 서버에 연결할 수 없으면, 플러그인은 마지막으로 알려진 상태로 계속 작동합니다.
삭제
플러그인을 비활성화하면 모든 설정이 유지되고, 캐시된 픽업 포인트 목록만 지워집니다. 제거하려면 Plugins 페이지에서 비활성화한 후 삭제하세요. 이 플러그인의 라이선스 키와 라이선스 상태는 캐시된 픽업 포인트 목록 및 마지막 API 오류와 함께 항상 제거됩니다. 설정과 지역 방법은 Remove data on uninstall이 켜져 있었을 때만 제거됩니다. 그렇지 않으면 나중에 다시 설치할 때를 위해 남아 있습니다. 기존 주문은 배송 항목과 저장된 픽업 포인트를 유지합니다.
PostNL은 해당 소유자의 상표입니다. 이 플러그인은 PostNL과 제휴하거나 PostNL의 승인을 받지 않았습니다.
