VibeFox CTT for WooCommerce — 도움말
요구 사항
WordPress: 5.8 이상.
WooCommerce: 7.0 이상, 설치 및 활성화되어 있어야 합니다. WooCommerce가 없으면 플러그인이 활성화되지 않습니다.
PHP: 8.0 이상.
CTT 전자상거래 계정(실시간 요금과 CTT 픽업 포인트에만 필요): 실시간 요금과 CTT 픽업 포인트 배송은 CTT 전자상거래 API를 사용합니다. enviosecommerce.ctt.pt에서 CTT 전자상거래 계정이 필요합니다(CTT Expresso 계약 고객용이며, 또는 CTT에 견적을 요청하세요). 해당 계정의 키 관리 페이지에서 공개 키와 비공개 키 쌍을 만드세요. App ID(X-APPID)는 귀사의 연동을 위해 CTT가 발급합니다. CTT 전자상거래 담당자에게 문의하세요. CTT는 또한 App ID가 사용할 수 있는 API 기능(비용 견적, CTT 픽업 포인트)을 결정합니다. 마지막으로, 계정에 있는 CTT Carrier ID가 필요합니다. 키를 저장하면 설정 페이지에 계정의 운송사가 표시됩니다. 요금표와 자택 배송만 사용한다면 API 키는 필요하지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. WordPress에서 Plugins > Add New > Upload Plugin으로 이동해 플러그인 ZIP 파일을 선택하고 Install Now를 클릭합니다. FTP로 vfd_ctt 폴더를 /wp-content/plugins/에 업로드할 수도 있습니다.
2. Activate를 클릭합니다.
3. 설정을 엽니다: WooCommerce > Settings > Shipping > VibeFox CTT. 또는 플러그인 페이지에서 플러그인 이름 아래의 Settings를 클릭합니다.
4. 페이지 상단의 라이선스 블록에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다.
5. 요금표를 작성합니다(최소한 Portugal 또는 * Default 행 하나). 필요하면 CTT API 키와 Carrier ID를 입력하고 Live rates를 켭니다(설정 항목 참조).
6. WooCommerce > Settings > Shipping > Shipping zones에서 포르투갈용 영역을 열거나 만든 뒤 VibeFox CTT를 추가합니다. 방법 설정에서 제목과 배송 유형을 선택합니다. 또는 Ignore shipping zones를 켜고 국가를 선택합니다.
설정
요금, API 키, 조건은 한 페이지에 있습니다: WooCommerce > Settings > Shipping > VibeFox CTT. 이 설정은 모든 배송 영역에 적용됩니다. 영역에 방법을 추가하면 영역 창에 두 개의 필드가 나타납니다:
Title (zone): 이 영역의 결제 페이지에 표시되는 이 옵션의 이름. 비워 두면 전역 Name을 사용합니다.
Delivery: To the customer's address(기본값) 또는 To a CTT point or parcel locker chosen at checkout. CTT 포인트에는 전역 설정의 CTT API 키와 Carrier ID가 필요합니다. 한 영역에 방법을 두 번 추가하면 자택 배송과 CTT 포인트 배송을 나란히 제공할 수 있습니다.
설정 위에 표시되는 경고는 포르투갈 요금 누락, API 키 불완전, Carrier ID 누락, 환율 없는 쇼핑몰 통화, CTT API 연결 실패를 알려 줍니다. 설정을 저장할 때마다 캐시된 CTT 응답이 삭제됩니다.
일반
Enable/Disable: 모든 영역에서 이 방법을 한 번에 켜거나 끕니다.
Name: 결제 페이지에 표시되는 배송 방법 이름(예: "CTT Expresso"). 기본값: CTT. 영역의 Title이 있으면 이를 대신합니다.
Tax status: Taxable은 요금에 WooCommerce 배송세(예: IVA)를 더합니다. None은 요금이 최종 금액임을 뜻합니다.
CTT 전자상거래 API(실시간 요금, CTT 포인트)(선택 사항. 키가 없으면 요금표를 사용합니다)
Public key: CTT 전자상거래 계정의 키 관리 페이지에 있는 공개 키.
Private key: 모든 요청에 서명할 때 사용하는 비밀 키(HMAC-SHA256). CTT로 전송되지 않으며 로그에도 기록되지 않습니다.
App ID (X-APPID): 귀사의 연동을 위해 CTT가 발급한 애플리케이션 키.
Carrier ID: 계정에 있는 CTT 운송사의 ID. 실시간 요금과 CTT 포인트 검색에 사용됩니다. 키를 저장하면 계정의 운송사가 이 필드 아래에 나열되며, CTT 포인트를 지원하는 운송사는 표시가 붙습니다.
Live rates: 고객이 도로명, 우편번호, 도시를 입력하면 CTT에 요금(비용 견적)을 요청합니다. 주소가 불완전한 동안, 그리고 CTT가 요금을 주지 않을 때는 요금표를 사용합니다. CTT는 이 요금을 견적이라고 부릅니다. 기본값: 꺼짐.
Service ID: 선택 사항. CTT가 여러 서비스를 반환하면 이 ServiceId를 가진 서비스를 사용합니다. 비워 두면 가장 저렴한 서비스를 사용합니다.
Exchange rate: CTT 요금은 유로로 표시됩니다. 쇼핑몰 통화가 다르면 CTT 통화 1단위가 쇼핑몰 통화로 몇 단위에 해당하는지 입력합니다. 입력하지 않으면 다른 통화의 실시간 요금은 사용되지 않고 요금표가 적용됩니다.
Default product size (cm): 치수가 없는 상품에 대해 CTT로 보내는 가로 x 세로 x 높이. 기본값: 30x20x15. 치수가 있는 상품은 자체 치수를 사용합니다. 치수는 cm로, 무게는 쇼핑몰 단위에서 g으로 변환됩니다.
요금(섹션 제목에 쇼핑몰 통화가 표시됩니다)
CTT 계약 또는 CTT 공개 요금표의 요금을 쇼핑몰 통화로 입력합니다. 실시간 요금이 꺼져 있으면 이 표가 요금을 결정합니다. 켜져 있으면 대체 요금으로 사용됩니다.
Price table: 목적지별로 한 행. 국가, Portugal - Azores (PT-AC), Portugal - Madeira (PT-MA), 또는 * Default (other destinations)를 선택합니다. 각 행에는 기본 요금(Price)과 선택적인 크기별 요금이 있습니다. 크기는 XS(1kg 이하), S(2kg 이하), M(3kg 이하), L(5kg 이하), XL(5kg 초과)입니다. 크기별 요금이 비어 있거나 0이면 기본 요금을 사용합니다. 두 값이 모두 비어 있는 행은 방법을 숨깁니다. Azores 행은 포르투갈 우편번호 9500-9999에, Madeira 행(Porto Santo 포함)은 9000-9499에 적용됩니다. 이 행들이 없으면 Portugal 행이 적용됩니다. + Add destination을 클릭하면 행을 추가하고, ×를 클릭하면 행을 삭제합니다. 요금은 소수점 또는 쉼표로 입력할 수 있습니다. 잘못된 행은 저장할 때 표시됩니다.
Calculation: 표의 요금이 결정되는 방식.
CTT 실시간 요금은 항상 전체 배송에 대한 것입니다.
조건
Min weight (kg): 방법이 표시되는 데 필요한 장바구니 최소 무게. 0은 제한 없음을 뜻합니다.
Max weight (kg): 장바구니 무게가 이 값을 넘으면 방법을 숨깁니다. 기본값: 30(CTT 소포는 최대 30kg). 0은 제한 없음을 뜻합니다.
Minimum order amount: 장바구니 소계(할인 후, 세금 전)가 이 금액에 도달했을 때만 방법을 표시합니다. 항상 표시하려면 비워 두세요.
Excluded shipping classes: 장바구니의 상품 중 하나라도 이 WooCommerce 배송 클래스에 속하면 방법을 숨깁니다.
무료 배송
Free shipping: 아래 금액 이상에서 CTT 배송을 무료로 제공합니다.
Free shipping from: 이 방법이 0원이 되는 장바구니 소계(할인 후, 세금 전). 방법에 요금이 설정된 경우에만 적용됩니다. Free shipping이 켜져 있을 때만 사용됩니다.
배송 영역 없이 제공하기
Ignore shipping zones: 고객의 영역에 방법이 없을 때, 아래 국가에서 방법을 제공합니다.
Countries: 이 모드의 목적지 국가. 기본값: Portugal. 비워 두면 배송하는 모든 국가를 사용합니다. 이 필드는 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: 요금 계산과 CTT API 호출을 WooCommerce > Status > Logs에 소스 vfd-ctt로 기록합니다. CTT API 오류는 이 옵션이 꺼져 있어도 항상 기록됩니다. 키, 토큰, 고객 주소는 기록되지 않습니다.
Remove data on uninstall: 켜져 있으면 플러그인을 삭제할 때 설정과 영역 방법이 제거됩니다. 플러그인을 비활성화해도 데이터는 삭제되지 않습니다. 주문은 변경되지 않습니다.
결제 페이지에서의 동작
고객이 배송 주소를 입력하면 WooCommerce가 플러그인에 요금을 요청합니다. 플러그인은 먼저 장바구니 무게, 최소 주문 금액, 제외된 배송 클래스를 확인합니다. Live rates가 켜져 있고 주소가 완전하면, 배송 주소와 장바구니 각 항목의 수량, 그램 단위 무게, cm 단위 치수를 CTT에 보내고 반환된 요금을 표시합니다. 그렇지 않거나 CTT가 요금을 주지 않으면(API 오류, 시간 초과, 서비스 지역 아님, 귀사의 App ID에 기능이 활성화되지 않음), 요금은 요금표에서 가져옵니다. 무료 배송이 적용되면 요금은 0입니다.
CTT 요금은 1시간 동안 캐시되므로 같은 장바구니에서 새 요청이 발생하지 않습니다. 실패한 요청은 5분 동안 기억되므로, 결제 페이지가 새로 고침할 때마다 CTT를 기다리지 않습니다. API 시간 초과는 12초입니다.
이 방법은 클래식 체크아웃과 장바구니 및 체크아웃 블록에서 작동합니다. WooCommerce 고성능 주문 저장소(HPOS)와 호환됩니다.
API 키를 입력하면 플러그인은 배송 주소, 상품 무게와 치수, 쇼핑몰 URL을 CTT에 보내 요금 또는 가장 가까운 CTT 포인트를 가져옵니다.
플러그인은 배송 생성, 라벨 인쇄, 집화 요청, 추적 번호 제공, CTT 포인트 지도 표시를 하지 않습니다. 쇼핑몰 전체에 요금표 하나와 API 설정 한 세트만 있습니다. 영역마다 다른 것은 제목과 배송 유형뿐입니다.
픽업 포인트
영역 방법의 Delivery가 CTT 포인트로 설정되어 있으면, 결제 페이지에서 방법 아래에 검색 필드와 목록이 나타납니다. 배송 주소는 자동으로 검색됩니다. 고객은 우편번호나 도시로 다른 CTT 포인트를 검색할 수 있으며, 주문하기 전에 하나를 선택해야 합니다. 이는 서버에서도 확인됩니다. CTT 포인트 목록은 6시간 동안 캐시됩니다. CTT에 연결할 수 없으면 고객에게 메시지가 표시되며, 나중에 다시 시도하거나 다른 배송 방법을 선택할 수 있습니다.
선택한 포인트는 주문에 저장됩니다. 주문 관리 화면에서는 배송 주소 아래에, 주문 접수 페이지와 My account > Orders, 주문 이메일(HTML 및 일반 텍스트)에는 CTT point로 표시됩니다.
주문 관리 화면에서 CTT 포인트 옆의 Change를 클릭하고, 우편번호나 도시로 검색한 뒤 다른 포인트를 선택하세요. 변경 사항은 즉시 저장되며 주문 메모가 추가됩니다.
라이선스 키
이 플러그인은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록은 WooCommerce > Settings > Shipping > VibeFox CTT 페이지 상단에 있습니다. 키를 License key에 붙여 넣고 Activate를 클릭하세요. 블록에는 상태가 표시되며, 예를 들어 라이선스가 유효한 날짜와 귀사의 도메인이 나타납니다. Check now로 상태를 다시 확인하고, Change key로 다른 키를 입력하며, Remove key로 이 사이트에서 키를 제거할 수 있습니다. Manage licenses and domains in your account 링크는 vibefox.net 계정을 엽니다.
키 하나는 도메인 하나에서만 작동합니다. 사이트에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하세요.
활성 키가 없으면 결제 페이지에서 고객에게 CTT가 표시되지 않습니다. 로그인한 쇼핑몰 관리자에게는 계속 보이며, (unlicensed — visible to admins only)로 표시됩니다. 따라서 키를 구매하기 전에 플러그인을 설정하고 테스트할 수 있습니다. 플러그인 페이지와 WooCommerce 페이지에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다.
라이선스가 만료되어도 플러그인은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 상태는 백그라운드에서 자동으로 다시 확인됩니다.
문제 해결
결제 페이지에 CTT가 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 고객 국가의 영역에 방법이 추가되어 있는지(또는 Ignore shipping zones가 켜져 있고 해당 국가가 허용되어 있는지) 확인하세요. 목적지에 요금표 행(또는 * Default 행)이 있는지, 장바구니 무게가 Min weight와 Max weight 사이인지, Minimum order amount에 도달했는지, 제외된 배송 클래스에 속한 상품이 없는지 확인하세요.
고객이 CTT 포인트를 선택할 수 없음: 선택기는 영역 방법의 Delivery가 CTT 포인트로 설정되어 있고, 공개 키, 비공개 키, App ID, Carrier ID가 모두 입력된 경우에만 나타납니다. Debug log를 켜고 WooCommerce > Status > Logs를 확인하세요.
실시간 요금이 나타나지 않음: 고객이 도로명, 우편번호, 도시를 입력할 때까지 요금표가 사용됩니다. 설정 위의 경고와 로그를 확인하세요. "405" 응답은 해당 기능이 귀사의 App ID에 대해 활성화되지 않았다는 뜻입니다. CTT에 문의하세요. 유로를 사용하지 않는 쇼핑몰에서는 Exchange rate를 입력하세요.
CTT API 연결 실패: 설정 위의 경고에 오류가 표시됩니다. 키와 App ID를 확인하세요. 플러그인은 몇 분 후 자동으로 다시 시도합니다.
부가세 포함 또는 제외 요금: Tax status가 Taxable이면 WooCommerce는 요금에 배송세를 더합니다. None이면 요금이 최종 금액입니다.
라이선스 블록에 오류가 표시됨: 블록에 나온 메시지를 따르세요. 예를 들어 키가 다른 도메인에서 이미 사용 중이면 vibefox.net 계정에서 슬롯을 해제하고 Check now를 클릭하세요. 사이트 주소가 바뀌었다면 Check now를 클릭해 새 도메인에 키를 활성화하세요. 라이선스 서버에 연결할 수 없으면 플러그인은 마지막으로 확인된 상태로 계속 작동합니다.
제거
플러그인을 비활성화해도 모든 데이터는 유지됩니다. 제거하려면 비활성화한 뒤 Plugins 페이지에서 삭제하세요. 이 플러그인의 라이선스 키와 라이선스 상태는 항상 삭제되며, 캐시된 CTT 응답과 API 토큰도 함께 삭제됩니다. 설정과 영역 방법은 Remove data on uninstall이 켜져 있었을 때만 삭제됩니다. 그렇지 않으면 나중에 다시 설치할 때를 위해 남겨집니다. 선택한 CTT 포인트를 포함한 주문은 절대 변경되지 않으며, 기존 주문은 배송 항목을 그대로 유지합니다.
CTT는 해당 소유자의 상표입니다. 이 플러그인은 CTT와 제휴하거나 CTT의 승인을 받지 않았습니다.
