VibeFox Purolator for WooCommerce — 도움말
요구 사항
WordPress: 5.8 이상.
WooCommerce: 5.0 이상, 설치 및 활성화되어 있어야 합니다. WooCommerce가 없으면 플러그인을 활성화할 수 없습니다.
PHP: 8.0 이상. PHP SOAP 확장은 필요하지 않습니다.
Purolator E-Ship Web Services(실시간 요금에만 필요): Purolator 웹사이트의 Purolator E-Ship Resource Centre에서 E-Ship Web Services에 등록하세요. Purolator는 개발 환경과 운영 환경에 각각 별도의 키와 비밀번호를 발급합니다. 또한 Purolator 청구 계정 번호와 배송 출발지인 캐나다 우편번호가 필요합니다. 고정 요금만 사용한다면 API 키는 필요하지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서만 작동합니다.
설치
1. WordPress에서 Plugins > Add New > Upload Plugin으로 이동하여 플러그인 ZIP 파일을 선택하고 Install Now를 클릭하세요. FTP로 vfd_purolator 폴더를 /wp-content/plugins/에 업로드할 수도 있습니다.
2. Activate를 클릭하세요.
3. 설정을 여세요: WooCommerce > Settings > Shipping > VibeFox Purolator. 또는 Plugins 페이지에서 플러그인 이름 아래의 Settings를 클릭하세요.
4. 페이지 상단의 라이선스 블록에 VibeFox 라이선스 키를 입력하고 Activate를 클릭하세요.
5. 실시간 요금을 사용하려면 Purolator API (live rates) 섹션을 작성하세요. 테스트할 때는 개발용 키로 Development environment를 켜세요. 고정 요금이나 대체 요금을 원하면 Country prices 또는 Fallback price를 입력하세요(구성 항목 참조).
6. WooCommerce > Settings > Shipping > Shipping zones에서 배송 지역에 VibeFox Purolator를 추가하거나, Ignore shipping zones를 켜고 국가를 선택하세요.
구성
모든 설정은 한 페이지에 있습니다: WooCommerce > Settings > Shipping > VibeFox Purolator. 설정은 모든 배송 지역에 적용됩니다. 배송 지역에 방법을 추가하면 지역 창에는 필드가 하나만 표시됩니다:
Title (zone): 이 지역에서 고객에게 보이는 이름입니다. 비워 두면 전역 Method title을 사용합니다.
설정을 저장할 때마다 캐시된 Purolator 요금이 지워집니다. 저장된 값으로 실시간 요금이 작동할 수 없는 경우(키, 비밀번호 또는 계정 누락, 캐나다 출발지 우편번호 없음, CAD 환율 없음)이거나, API 자격 증명과 고정 요금이 모두 없으면 설정 위에 경고가 표시됩니다.
일반
Enable/Disable: 모든 배송 지역에서 이 방법을 한 번에 켜거나 끕니다.
Method title: 장바구니와 체크아웃에 표시되는 배송 방법 이름입니다. 지역별로 바꿀 수 있습니다. 기본값: Purolator.
Tax status: Taxable은 WooCommerce 세금을 배송비에 더하고, None은 더하지 않습니다. 아래의 Canadian sales taxes도 참조하세요.
Purolator API(실시간 요금)
API 키, 비밀번호, 청구 계정이 입력되면 가격은 Purolator E-Ship Estimating 웹 서비스에서 가져옵니다. Purolator가 요금을 반환하지 않으면 고정 요금을 사용하고, 고정 요금도 없으면 배송 방법을 숨깁니다.
API key: 선택한 환경에 대한 E-Ship Web Services 키입니다.
API password: 키에 해당하는 비밀번호입니다.
Billing account number: Purolator 계정 번호입니다. 견적은 이 계정의 요금을 사용합니다. 개발 환경에서는 Purolator 문서에 있는 테스트 계정을 사용할 수 있습니다.
Development environment: 개발용 키로 Purolator 개발 환경(devwebservices.purolator.com)을 사용합니다. 요금은 테스트 데이터입니다. 운영 쇼핑몰에서는 끄세요.
Ship-from postal code: 소포를 발송하는 캐나다 우편번호입니다(예: L4W 5M8).
Service in Canada: Cheapest available(기본값), Purolator Ground, Purolator Ground 9AM, Purolator Ground 10:30AM, Purolator Ground Evening, Purolator Express, Purolator Express 9AM, Purolator Express 10:30AM, Purolator Express 12PM 또는 Purolator Express Evening 중 하나입니다.
Service to the USA: Cheapest available(기본값), Purolator Ground U.S., Purolator Express U.S., Purolator Express U.S. 9AM, Purolator Express U.S. 10:30AM 또는 Purolator Express U.S. 12:00 중 하나입니다.
International service: Cheapest available(기본값), Purolator Express International, Purolator Express International 9AM, Purolator Express International 10:30AM 또는 Purolator Express International 12:00 중 하나입니다.
선택한 서비스가 해당 주소에 제공되지 않으면 이용 가능한 가장 저렴한 서비스를 사용합니다.
Canadian sales taxes: 캐나다 주소의 경우 Purolator 합계에는 GST/HST/PST/QST가 포함됩니다. Tax status가 Taxable일 때 세금이 두 번 부과되지 않도록 Use Purolator prices without GST/HST/PST/QST를 켜세요.
CAD → (store currency) rate: Purolator 요금은 CAD로 표시됩니다. 쇼핑몰 통화가 CAD가 아니면, CAD 1단위가 쇼핑몰 통화로 몇 단위인지 입력하세요(예: 0.68). 입력하지 않으면 실시간 요금을 사용하지 않습니다. 쇼핑몰 통화가 CAD이면 비워 두세요.
Default product weight (kg): 무게가 없는 모든 상품에 사용됩니다. 기본값: 0.5. 무게는 쇼핑몰 단위에서 변환되며, 올림하여 파운드 단위의 정수 총 무게로 Purolator에 전송됩니다.
고정 요금(API 자격 증명 없이 사용되며, API가 요금을 반환하지 않을 때 대체 수단으로 사용됩니다)
Country prices: 쇼핑몰 통화로 된, 국가와 장바구니 무게별 요금입니다. + Add country를 클릭하면 행이 추가되고, ×를 클릭하면 행이 삭제됩니다. 자체 행이 없는 모든 국가를 포함하는 행을 원하면 * Default (all other countries)를 선택하세요. 각 행에는 Base 요금과 크기별 열이 있습니다: XS는 1 kg까지, S는 1–2 kg, M은 2–3 kg, L은 3–5 kg, XL은 5 kg 초과입니다. 크기 요금이 비어 있거나 0이면 Base를 사용합니다. Base가 0이거나 Base가 비어 있으면, 자체 크기 요금이 없는 무게에 대해 무료 배송이 적용됩니다. 요금이 하나도 없는 행과 잘못된 국가 코드는 저장할 때 삭제됩니다. 국가당 행은 하나만 유지됩니다.
Fallback price: Country prices에 행이 없고 * 행도 없는 국가에 적용되는 요금입니다. 해당 국가에서 배송 방법을 숨기려면 비워 두세요.
Fixed price per: Order는 요금을 한 번만 청구합니다. Item (price × quantity)은 장바구니의 상품 수량을 곱해 청구합니다. 이는 고정 요금에만 적용됩니다. 실시간 요금은 항상 전체 배송 기준으로 계산됩니다.
조건
Min cart weight (kg): 장바구니 무게가 이 값보다 가벼우면 배송 방법을 숨깁니다. 0은 제한 없음을 뜻합니다.
Max cart weight (kg): 장바구니 무게가 이 값보다 무거우면 배송 방법을 숨깁니다. 기본값: 30. 0은 제한 없음을 뜻합니다.
Minimum order amount: 장바구니 소계가 이 금액에 도달했을 때만 배송 방법을 표시합니다. 비워 두면 항상 표시합니다.
Excluded shipping classes: 장바구니에 이 WooCommerce 배송 클래스 중 하나에 속한 상품이 있으면 배송 방법을 숨깁니다.
Free shipping from: 무료 배송이 적용되는 장바구니 소계입니다. 배송 방법에 요금이 있는 경우에만 적용됩니다. 국가 요금이나 대체 요금(이 경우 Purolator에 요청이 전송되지 않음) 또는 실시간 요금이 해당합니다. 비워 두면 무료 배송을 제공하지 않습니다.
이 조건에 사용되는 장바구니 무게는 무게가 없는 상품을 0으로 계산합니다. 요금과 무게는 소수점 구분자로 쉼표 또는 마침표를 받습니다.
배송 지역 없이 사용하는 경우
Ignore shipping zones: 배송 방법이 어떤 배송 지역에도 추가되지 않았더라도, 아래 국가에 대해 Purolator를 제공합니다.
Countries: 이 모드의 배송 대상 국가입니다. 비워 두면 배송하는 모든 국가를 사용합니다. 이 필드는 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: 요금 계산을 WooCommerce > Status > Logs에 기록합니다(소스 "vfd-purolator"). API 오류는 디버그 로그가 꺼져 있어도 항상 기록됩니다. API 키, 청구 계정, 고객 우편번호는 기록되지 않습니다. 작업이 끝나면 로그를 끄세요.
Remove data on uninstall: 켜져 있으면 플러그인을 삭제할 때 설정, 지역별 배송 방법, 캐시된 요금이 제거됩니다. 플러그인을 비활성화해도 아무것도 삭제되지 않습니다.
체크아웃에서의 동작 방식
고객이 배송 주소를 입력하면 WooCommerce는 플러그인에 요금을 요청합니다. 플러그인은 먼저 조건을 확인합니다: 배송 국가, 장바구니 무게, 최소 주문 금액, 제외된 배송 클래스입니다. 그다음 요금을 찾습니다: Purolator 실시간 요금, 국가별 요금표, 마지막으로 대체 요금 순서입니다. 요금이 없으면 배송 방법을 숨깁니다. 무료 배송이 적용되면 고객은 배송 방법을 무료로 봅니다.
API 자격 증명이 있으면, 플러그인은 Purolator에 Quick Estimate 요청을 보냅니다. 청구 계정, 출발지 우편번호, 고객의 도시, 주 또는 도, 국가와 우편번호, 그리고 파운드 단위 정수로 환산한 장바구니 총 무게를 포함합니다. 캐나다에는 유효한 우편번호가, 미국에는 유효한 ZIP 코드가 필요합니다. 그 밖의 국가는 입력한 우편번호 그대로 보냅니다. 치수(부피 무게)는 보내지 않습니다. Purolator는 모든 서비스의 요금을 반환하며, 플러그인은 선택한 서비스 또는 가장 저렴한 서비스를 사용하고, 설정되어 있으면 캐나다 판매세를 제외한 뒤 CAD 요금을 환산합니다. 서비스는 Purolator service라는 이름으로 주문과 함께 저장되며, 관리자 주문 화면에 표시됩니다.
각 응답은 1시간 동안 캐시됩니다. 실패한 요청은 10분 동안 캐시되므로, Purolator 장애로 인해 체크아웃 새로고침이 매번 느려지지 않습니다. API 제한 시간은 10초입니다.
Purolator가 요금을 반환하지 않으면(API 중단, 잘못된 자격 증명이나 우편번호, 서비스 사용 불가, CAD 환율 없음) 고객에게 오류가 표시되지 않습니다. 고정 요금을 사용하며, 고정 요금이 없으면 배송 방법을 숨깁니다. 그 이유는 로그에 기록됩니다.
이 배송 방법은 클래식 체크아웃과 장바구니 및 체크아웃 블록 모두에서 작동합니다. WooCommerce 고성능 주문 저장소(HPOS)와 호환됩니다.
플러그인은 요금만 계산합니다. Purolator 배송 건을 생성하지 않으며, 라벨을 인쇄하거나, 픽업을 예약하거나, 반품을 처리하거나, 소포를 추적하지 않습니다. Full Estimate(치수, 여러 개의 소포, 서명이나 위험물 같은 옵션)는 사용하지 않으며, 배송 날짜를 표시하지 않고, 여러 서비스를 별도의 요금으로 표시하지 않으며, 환율을 자동으로 가져오지 않습니다.
라이선스 키
이 플러그인은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록은 WooCommerce > Settings > Shipping > VibeFox Purolator 페이지 상단에 있습니다. 키를 License key에 붙여넣고 Activate를 클릭하세요. 블록에는 상태가 표시되며, 예를 들어 라이선스가 활성 상태인 기한과 도메인이 나타납니다. Check now로 상태를 다시 확인하고, Change key로 다른 키를 입력하며, Remove key로 이 사이트에서 키를 제거하세요. Manage licenses and domains in your account 링크는 vibefox.net 계정을 엽니다.
키 하나는 도메인 하나에서만 작동합니다. 사이트에서 키를 제거해도 도메인 슬롯은 비워지지 않습니다. vibefox.net 계정에서 슬롯을 비우세요.
활성 키가 없으면 Purolator는 체크아웃에서 고객에게 표시되지 않습니다. 로그인한 쇼핑몰 관리자에게는 (unlicensed — visible to admins only)라는 표시와 함께 계속 보이므로, 키를 구매하기 전에 플러그인을 설정하고 테스트할 수 있습니다. 플러그인 페이지와 WooCommerce 페이지에 알림이 표시됩니다. 기존 주문에는 영향이 없습니다.
라이선스가 만료되어도 플러그인은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 상태는 백그라운드에서 자동으로 다시 확인됩니다.
문제 해결
Purolator가 체크아웃에 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 그리고 배송 방법이 고객 국가의 배송 지역에 추가되어 있는지(또는 Ignore shipping zones가 켜져 있고 해당 국가가 허용되어 있는지) 확인하세요. 무게 제한, Minimum order amount, Excluded shipping classes도 확인하세요. Purolator가 요금을 반환하지 않으면, 배송 방법은 국가 요금, * 행 또는 Fallback price가 있을 때만 표시됩니다.
실시간 요금이 나타나지 않음: WooCommerce > Status > Logs를 열고 소스를 "vfd-purolator"로 선택하세요. API 오류는 항상 여기에 있습니다. 자세한 내용은 Debug log를 켜서 확인하세요. API 키를 사용할 때는 주소에 유효한 우편번호(캐나다) 또는 ZIP 코드(미국)가 있어야 합니다.
로그에 HTTP 401: API 키 또는 비밀번호가 선택한 환경과 맞지 않습니다. 개발 키는 Development environment가 켜져 있을 때만, 운영 키는 꺼져 있을 때만 작동합니다.
요금이 Purolator 웹사이트와 다름: Quick Estimate는 청구 계정의 요금과, 파운드 단위로 올림한 총 무게를 사용하며 부피 무게는 사용하지 않습니다. 캐나다 주소의 경우 합계에 판매세가 포함됩니다. WooCommerce가 배송비에 세금을 부과한다면 Canadian sales taxes를 사용하세요. 요금은 CAD → (store currency) rate로 환산됩니다.
변경 후 요금이 오래된 것처럼 보임: 설정 페이지를 저장하세요. 캐시된 Purolator 요금이 지워집니다.
라이선스 블록에 오류가 표시됨: 블록의 메시지를 따르세요. 예를 들어 키가 다른 도메인에서 이미 사용 중이면, vibefox.net 계정에서 슬롯을 비운 뒤 Check now를 클릭하세요. 사이트 주소가 바뀌었다면 Check now를 클릭해 새 도메인에 키를 활성화하세요. 라이선스 서버에 연결할 수 없으면 플러그인은 마지막으로 확인된 상태로 계속 작동합니다.
제거
플러그인을 비활성화하면 모든 데이터가 유지됩니다. 완전히 제거하려면 비활성화한 뒤 Plugins 페이지에서 삭제하세요. 이 플러그인의 라이선스 키와 라이선스 상태는 항상 제거됩니다. 설정, 지역별 배송 방법, 캐시된 요금은 Remove data on uninstall이 켜져 있었던 경우에만 제거됩니다. 그렇지 않으면 나중에 다시 설치할 때를 위해 남아 있습니다. 기존 주문은 배송 항목을 그대로 유지합니다.
Purolator는 각 소유자의 상표입니다. 이 플러그인은 Purolator와 제휴하거나 Purolator의 승인을 받은 제품이 아닙니다.
