VibeFox iMile for WooCommerce — 도움말
요구 사항
WordPress: 5.8 이상.
WooCommerce: 5.0 이상, 설치 및 활성화되어 있어야 합니다. WooCommerce가 없으면 플러그인이 활성화되지 않습니다.
PHP: 8.0 이상.
iMile 요금 계약: iMile 영업팀과 합의한 요금입니다. 쇼핑몰 통화로 요금표에 입력합니다.
iMile API 계정(실시간 견적에만 해당): 실시간 견적은 iMile OpenAPI "Estimated order delivery costs"를 사용합니다. Customer ID와 Secret key(iMile이 Customer ID와 함께 발급하는 API 키)가 필요합니다. 테스트 클라이언트는 iMile 개발자 포털(developer.imile.com)에서 등록하세요. 운영 키는 iMile 담당 매니저가 제공합니다. 요금표만 사용한다면 API 키는 필요하지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 사용할 수 있습니다.
설치
1. WordPress에서 Plugins > Add New > Upload Plugin으로 이동하여 플러그인 ZIP 파일을 선택하고 Install Now를 클릭합니다. FTP로 vfd_imile 폴더를 /wp-content/plugins/에 업로드할 수도 있습니다.
2. Activate를 클릭합니다.
3. 설정을 엽니다: WooCommerce > Settings > Shipping > VibeFox iMile, 또는 Plugins 페이지에서 플러그인 이름 아래의 Settings를 클릭합니다.
4. 페이지 상단의 라이선스 블록에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다.
5. Price table에 iMile 요금을 입력합니다. 필요하면 Live rates (API) 섹션을 채우고 Live estimate를 켭니다(설정 참조).
6. WooCommerce > Settings > Shipping > Shipping zones에서 배송 구역(예: "United Arab Emirates")에 VibeFox iMile을 추가하거나, Ignore shipping zones를 켜고 국가를 선택합니다.
설정
모든 설정은 한 페이지에 있습니다: WooCommerce > Settings > Shipping > VibeFox iMile. 모든 배송 구역에 적용됩니다. 구역에 이 방법을 추가하면 구역 창에는 필드가 하나만 있습니다:
Title (zone): 이 구역에서 고객에게 보이는 이름. 비워 두면 전역 Method title을 사용합니다.
설정을 저장할 때마다 캐시된 iMile 견적과 액세스 토큰이 삭제됩니다. 실시간 견적이 켜져 있지만 작동할 수 없는 경우(키 없음, 출발 도시 또는 국가 없음, 환율 없음, 요금표 비어 있음), 설정 위에 경고가 표시됩니다.
일반
Enable/Disable: 모든 구역에서 이 방법을 한 번에 켜거나 끕니다.
Method title: 장바구니와 체크아웃에 표시되는 배송 방법 이름. 구역에서 재정의할 수 있습니다. 기본값: iMile.
실시간 요금(API) (선택 사항)
iMile이 견적을 반환하지 않으면(키 없음, 도시 미입력, 오류, 시간 초과, 환율 없음) 요금표를 사용합니다.
Live estimate: 켜면 iMile에서 배송비를 가져옵니다. 기본값: 꺼짐. 실시간 견적이 꺼져 있으면 체크아웃 중에 iMile로 아무것도 전송되지 않습니다.
Environment: Production (openapi.imile.com)(기본값) 또는 Test (test-openapi.52imile.cn). 테스트 키는 테스트 서버에서만 작동하며 테스트 가격을 제공합니다.
Customer ID: iMile이 발급한 고객 코드(customerId), 예: C2102192601.
Secret key: iMile이 Customer ID와 함께 발급한 비밀 키(API 키). 요청에 서명하는 데 사용됩니다.
Signature: 요청에 서명하는 방식.
Ship-from country: 발송하는 국가. 기본값은 쇼핑몰 국가입니다. 목록에는 플러그인이 iMile 국가 코드를 가진 국가가 포함됩니다.
Ship-from city: 소포를 발송하는 도시. iMile 도시 목록과 같은 철자로 입력합니다(예: Dubai, Riyadh). 비워 두면 WooCommerce > Settings > General의 쇼핑몰 도시를 사용합니다.
Ship-from province: 선택 사항. 예: Dubai 또는 Riyadh Province.
iMile service: iMile로 보내는 주문 유형: Delivery order (100)(기본값) 또는 Express order (1100). Express는 귀하의 계정과 국가에서 활성화되어 있어야 합니다.
Goods category: iMile로 보내는 상품 유형: Normal goods(기본값), Sensitive (cosmetics, liquids...), With battery, Batteries / power banks, Documents 또는 Parcel.
Exchange rates: iMile은 목적지 국가의 통화로 견적을 제공합니다. 통화마다 한 줄씩, 쇼핑몰 통화 1단위의 가격을 입력합니다. 예: "AED = 0.25" 또는 "SAR = 0.24". 소수점으로 점과 쉼표를 모두 사용할 수 있습니다. 쇼핑몰 통화 자체에는 환율이 필요하지 않습니다. 환율이 없으면 해당 통화의 견적은 사용되지 않고 대신 요금표를 사용합니다. 같은 환율로 iMile에 신고하는 장바구니 금액도 환산합니다. 잘못된 줄은 저장할 때 삭제됩니다.
요금 (실시간 견적이 꺼져 있을 때 사용되며, iMile이 견적을 반환하지 않을 때는 대체 요금으로 사용됨)
iMile 요금 계약을 쇼핑몰 통화로 입력하세요. AED, SAR 또는 다른 통화라면 먼저 환산하세요.
Price table: 목적지 국가마다 한 줄. + Add country를 클릭하여 줄을 추가하고, ×를 클릭하여 삭제합니다. 자체 줄이 없는 모든 국가를 포함하는 줄에는 * All other countries를 선택합니다. 각 줄에는 Base price와 선택 사항인 무게 열이 있습니다: XS ≤1 kg, S ≤2 kg, M ≤3 kg, L ≤5 kg, XL >5 kg. 비어 있거나 0인 무게 열은 기본 요금을 사용합니다. 기본 요금이 0이면 해당 국가는 무료 배송입니다. "9.99"와 "9,99" 모두 허용됩니다. 요금이 없는 줄, 잘못된 국가 코드, 음수 요금은 저장할 때 삭제됩니다. 국가당 한 줄만 유지됩니다.
Price for countries not in the table: 쇼핑몰 통화로 된 요금. 표에 목적지 국가의 줄이 없거나(* 줄도 없는 경우), 해당 줄에 이 무게의 요금이 없을 때 사용됩니다. 이 경우 방법을 숨기려면 비워 두세요.
Price applies: 요금표 요금이 부과되는 방식.
같은 선택이 실시간 견적에도 적용됩니다. 주문별은 장바구니 전체를 하나의 소포로 보내고, 상품별은 서로 다른 소포마다 요청하여 수량을 곱합니다. 장바구니에 서로 다른 소포가 5개를 초과하면 요금표를 사용합니다.
상품 무게는 쇼핑몰의 무게 단위에서 킬로그램으로 환산됩니다.
조건
Minimum weight (kg): 장바구니가 이보다 가벼우면 이 방법을 숨깁니다. 0은 제한 없음을 뜻합니다.
Maximum weight (kg): 장바구니가 이보다 무거우면 이 방법을 숨깁니다. 기본값: 30. 0은 제한 없음을 뜻합니다.
Minimum order amount: 장바구니 소계(할인 후, 세금 전)가 이 금액에 도달한 경우에만 이 방법을 표시합니다. 항상 표시하려면 비워 두세요.
Free shipping from: iMile 배송이 무료가 되는 장바구니 소계(할인 후, 세금 전). 무료 배송을 제공하지 않으려면 비워 두세요.
Excluded shipping classes: 장바구니에 이 WooCommerce 배송 클래스 중 하나에 속한 상품이 있으면 이 방법을 숨깁니다.
Tax status: Taxable은 배송비에 WooCommerce 세금을 추가하고, None은 추가하지 않습니다. 요금표 가격과 iMile 견적에 이미 부가세(VAT)가 포함되어 있다면 None을 선택하세요.
배송 구역 없이 제공
Ignore shipping zones: 이 방법이 어떤 배송 구역에도 추가되지 않았더라도 아래 국가에 iMile을 제공합니다.
Countries: 이 모드의 목적지 국가. 비워 두면 배송하는 모든 국가를 사용합니다. 이 필드는 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: 요금 계산을 WooCommerce > Status > Logs(소스 "vfd_imile")에 기록합니다. 키와 고객 주소는 기록되지 않습니다. 디버그 로그가 꺼져 있어도 실패한 iMile 요청은 항상 기록됩니다. 작업이 끝나면 로그를 끄세요.
Remove data on uninstall: 켜져 있으면 플러그인을 삭제할 때 모든 iMile 설정, 구역 방법, 캐시된 견적이 제거됩니다. 플러그인을 비활성화하면 아무것도 삭제되지 않습니다.
체크아웃 시 작동 방식
고객이 배송 주소를 입력하면 WooCommerce가 플러그인에 요금을 요청합니다. 플러그인은 먼저 조건을 확인합니다: 배송 국가, 장바구니 무게, 최소 주문 금액, 제외된 배송 클래스. 무료 배송이 적용되면 고객은 비용 없이 이 방법을 보며, iMile로 요청이 전송되지 않습니다.
실시간 견적이 켜져 있으면 플러그인은 iMile에 출발지 국가, 주/도, 도시, 목적지 국가, 주, 도시, 우편번호, 장바구니 무게(kg), 크기(cm³, 상품 치수 기준), 장바구니 금액, iMile 서비스, 상품 카테고리를 보냅니다. 견적은 항상 선불로 요청되므로 착불 수수료는 포함되지 않습니다. 실시간 견적은 고객이 도시를 입력한 후이고 모든 소포에 무게가 있을 때만 요청됩니다. 각 응답은 1시간 동안 캐시됩니다. 실패한 요청은 5분 동안 캐시됩니다. 시간 초과 또는 서버 오류 후에는 2분 동안, 거부된 키 후에는 5분 동안 iMile에 요청하지 않으므로, 체크아웃이 새로 고칠 때마다 iMile을 기다리지 않습니다. API 시간 초과는 12초입니다. 만료된 액세스 토큰은 자동으로 갱신됩니다.
견적은 환율을 사용해 쇼핑몰 통화로 환산됩니다. iMile이 사용 가능한 견적을 제공하지 않으면(키 미설정, 도시 미입력, 알 수 없는 도시, 오류, 시간 초과, 환율 없음), 고객은 오류를 보지 않으며 요금표의 가격이 사용됩니다. 요금표에도 가격이 없으면 이 방법은 숨겨집니다. 이유는 로그에 기록됩니다.
이 방법은 클래식 체크아웃과 장바구니 및 체크아웃 블록에서 작동합니다. WooCommerce 고성능 주문 저장소(HPOS)와 호환됩니다.
플러그인은 요금만 계산합니다. iMile 배송 건을 생성하지 않고, AWB 라벨을 출력하지 않으며, 집하를 요청하지 않고, 택배를 추적하지 않으며, 착불 대금을 정산하지 않고, 픽업 포인트나 사물함을 제공하지 않습니다. 배송은 iMile 포털을 사용하세요.
라이선스 키
플러그인은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록은 WooCommerce > Settings > Shipping > VibeFox iMile 상단에 있습니다. 키를 License key에 붙여 넣고 Activate를 클릭합니다. 블록에는 상태가 표시됩니다. 예를 들어 라이선스가 유효한 날짜와 도메인입니다. Check now로 상태를 다시 확인하고, Change key로 다른 키를 입력하며, Remove key로 이 사이트에서 키를 제거합니다. Manage licenses and domains in your account 링크는 vibefox.net 계정을 엽니다.
키 하나는 도메인 하나에서 작동합니다. 사이트에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하세요.
활성 키가 없으면 체크아웃에서 고객에게 iMile이 표시되지 않습니다. 로그인한 쇼핑몰 관리자에게는 (unlicensed — visible to admins only)라고 표시되어 계속 보이므로, 키를 구매하기 전에 플러그인을 설정하고 테스트할 수 있습니다. 플러그인 페이지와 WooCommerce 페이지에 알림이 나타납니다. 기존 주문에는 영향이 없습니다.
라이선스가 만료되어도 플러그인은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 상태는 백그라운드에서 자동으로 다시 확인됩니다.
문제 해결
체크아웃에 iMile이 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 고객 국가의 구역에 방법이 추가되어 있는지(또는 Ignore shipping zones가 켜져 있고 국가가 허용되어 있는지) 확인하세요. 무게 제한, Minimum order amount, Excluded shipping classes를 확인하세요. 국가 또는 *에 Price table 줄이 있는지, 또는 Price for countries not in the table이 설정되어 있는지 확인하세요.
iMile 견적 대신 요금표 가격이 표시됨: WooCommerce > Status > Logs를 열고, 소스 "vfd_imile"을 선택한 다음 Debug log를 켜서 세부 정보를 확인하세요. 흔한 원인: Live estimate가 꺼져 있음, 키 누락, 고객이 아직 도시를 입력하지 않음, iMile이 도시 철자를 인식하지 못함, 상품에 무게가 없음, 대상 통화의 환율이 없음, 또는 API 오류. 설정 위의 경고도 확인하세요.
로그에 "sign is invalid": Secret key를 확인한 다음 Signature = SimpleKey를 시도하세요.
키가 거부됨: Customer ID, Secret key, Environment를 확인하세요. 테스트 키는 테스트 서버에서만 작동합니다.
도시 이름이 일치하지 않음: 도시 이름은 iMile 도시 목록과 일치해야 합니다. 개발자는 vfd_imile_live_request 필터로 도시 이름을, vfd_imile_live_country_code 필터로 국가 코드를 매핑할 수 있습니다.
가격 통화가 잘못됨: 요금표는 쇼핑몰 통화(WooCommerce > Settings > General)로 되어 있습니다. AED, SAR, MXN 요금은 입력할 때 환산하세요. 실시간 견적은 Exchange rates로 환산됩니다.
배송비에 세금이 이중으로 부과됨: 가격에 이미 부가세가 포함되어 있다면 Tax status를 None으로 설정하세요.
변경 후 견적이 오래된 것처럼 보임: 설정 페이지를 저장하세요. 이렇게 하면 캐시된 iMile 견적이 삭제됩니다.
라이선스 블록에 오류가 표시됨: 블록의 메시지를 따르세요. 예를 들어 키가 다른 도메인에서 이미 사용 중이면 vibefox.net 계정에서 슬롯을 해제한 다음 Check now를 클릭하세요. 사이트 주소가 바뀌었다면 Check now를 클릭하여 새 도메인에서 키를 활성화하세요. 라이선스 서버에 연결할 수 없으면 플러그인은 마지막으로 확인된 상태로 계속 작동합니다.
삭제
플러그인을 비활성화하면 모든 데이터가 보존됩니다. 제거하려면 비활성화한 뒤 Plugins 페이지에서 삭제하세요. 이 플러그인의 라이선스 키와 라이선스 상태는 항상 제거됩니다. 설정, 구역 방법, 캐시된 견적은 Remove data on uninstall이 켜져 있었을 때만 제거됩니다. 그렇지 않으면 나중에 재설치할 때를 위해 보존됩니다. 기존 주문은 배송 항목을 유지합니다.
iMile은 해당 소유자의 상표입니다. 이 플러그인은 iMile과 제휴하거나 iMile의 승인을 받은 것이 아닙니다.
