VibeFox Melhor Envio for WooCommerce — 도움말
요구 사항
WordPress: 5.8 이상.
WooCommerce: 7.0 이상, 설치되어 있고 활성화되어 있어야 합니다. WooCommerce가 없으면 플러그인이 활성화되지 않습니다.
PHP: 8.0 이상.
Melhor Envio 계정(실시간 견적에만 필요): 실시간 견적에는 액세스 토큰이 필요합니다. Melhor Envio 계정에서 토큰 액세스 권한 페이지(Integrações > Permissões de acesso, melhorenvio.com.br/painel/gerenciar/tokens)를 열고 “shipping-calculate” 권한이 있는 토큰을 생성하세요. 테스트용으로는 Melhor Envio 샌드박스에서 토큰을 생성하세요(sandbox.melhorenvio.com.br/painel/gerenciar/tokens). 운영용 토큰과 샌드박스 토큰은 서로 다릅니다. 토큰에는 만료 기간이 있습니다. ‘연결’ 버튼은 없으며, 토큰을 설정에 붙여 넣으면 됩니다. 토큰이 없으면 이 배송 방법은 대체 요금을 사용합니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 사용할 수 있습니다.
설치
1. WordPress에서 Plugins > Add New > Upload Plugin으로 이동하여 플러그인 ZIP 파일을 선택한 뒤 Install Now를 클릭하세요. FTP로 vfd_melhor_envio 폴더를 /wp-content/plugins/에 업로드할 수도 있습니다.
2. Activate를 클릭하세요.
3. 설정을 여세요: WooCommerce > Settings > Shipping > VibeFox Melhor Envio. 또는 플러그인 페이지에서 플러그인 이름 아래의 Settings를 클릭하세요.
4. 페이지 상단의 라이선스 블록에 VibeFox 라이선스 키를 입력하고 Activate를 클릭하세요.
5. 액세스 토큰, 연락처 이메일, 출발지 CEP를 붙여 넣으세요. 쇼핑몰 통화가 BRL이 아니라면 BRL exchange rate를 설정하세요. 필요하면 대체 요금표(예: 브라질용)나 대체 배송비도 입력할 수 있습니다.
6. WooCommerce > Settings > Shipping > Shipping zones에서 브라질용 구역을 추가하고 그 구역에 VibeFox Melhor Envio를 추가하세요. 또는 Ignore shipping zones를 켜고 국가를 선택하세요.
설정
모든 설정은 한 페이지에 있습니다: WooCommerce > Settings > Shipping > VibeFox Melhor Envio. 설정은 모든 배송 구역에 적용됩니다. 구역에 이 방법을 추가하면 구역 창에는 입력란이 하나만 있습니다:
Title (zone): 체크아웃에서 이 옵션의 이름입니다. 비워 두면 전역 Name을 사용합니다.
페이지 상단의 경고는 설정이 불완전한 상태를 보여 줍니다: 8자리가 아닌 출발지 CEP, 연락처 이메일 누락, BRL 환율 누락, 날짜와 함께 표시되는 마지막 Melhor Envio API 오류, 또는 토큰과 대체 요금이 모두 없는 경우입니다. 설정을 저장할 때마다 캐시된 견적이 지워집니다.
일반
Enable/Disable: 모든 구역에서 Melhor Envio 배송을 한 번에 켜거나 끕니다.
Name: 체크아웃에서 고객에게 표시되는 배송 방법 이름입니다. 기본값: Melhor Envio.
Tax status: Taxable은 배송비에 WooCommerce 세금을 추가하고, None은 추가하지 않습니다.
Melhor Envio API
Access token: 아래에서 선택한 환경의 토큰입니다. 로그에는 절대 기록되지 않습니다.
Sandbox: 테스트에 Melhor Envio 샌드박스(sandbox.melhorenvio.com.br)를 사용합니다. 샌드박스 토큰과 함께 사용하세요. 기본값: 끔.
Contact e-mail: 모든 요청과 함께 Melhor Envio에 전송되는 기술 담당 연락처 이메일입니다. Melhor Envio는 모든 연동에 이 값을 요구합니다.
Origin CEP: 소포를 발송하는 출발지 CEP(8자리)입니다. 예: 01310-100. 올바른 출발지 CEP가 없으면 견적을 요청하지 않습니다.
Services: 견적을 받을 Melhor Envio 서비스 ID를 쉼표로 구분하여 입력하는 선택 항목입니다. 예: 1 = Correios PAC, 2 = Correios SEDEX, 17 = Correios Mini Envios, 3 = Jadlog .Package, 4 = Jadlog .Com. 비워 두면 계정의 모든 서비스에 대해 견적을 받습니다.
Quotes at checkout: 견적을 표시하는 방식입니다.
Delivery time: 이름 옆에 Melhor Envio의 배송 예상 기간을 표시합니다. 예: “(3-5 business days)”. 기본값: 켬.
Declared value: 견적에 상품 가액(보험)을 신고합니다. 끄면 신고 가액 없이 견적을 냅니다. 요금은 더 저렴하지만 소포에 보험이 적용되지 않습니다. 기본값: 켬.
BRL exchange rate: Melhor Envio는 브라질 헤알(BRL)로 견적을 냅니다. 쇼핑몰 통화가 BRL이 아닐 때만 필요합니다. 쇼핑몰 통화로 1 BRL의 가격을 입력하세요. 예: 0.17. 설정하지 않으면 실시간 견적이 사용되지 않습니다. 신고 가액도 같은 환율로 BRL로 환산됩니다.
Default product weight (kg): 무게가 없는 상품에 사용됩니다. 견적과 무게 제한 모두에 적용됩니다. 기본값: 0.3.
Default product size (cm): 크기가 없는 상품에 사용되는 가로 x 세로 x 높이입니다. 기본값: 16x11x5.
Fallback prices(쇼핑몰 통화 기준)
대체 요금은 토큰이 없거나, 목적지 CEP가 없거나, API가 견적을 주지 않을 때(오류, 시간 초과, 서비스 지역 아님) 사용됩니다.
Fallback price table: 국가와 장바구니 무게별 요금입니다. + Add country를 클릭하면 행이 추가되고, ×를 클릭하면 행이 삭제됩니다. 자체 행이 없는 모든 국가에는 * Any country를 선택하세요. 각 행에는 Price와 무게 열이 있습니다: 1 kg까지 XS, 1~2 kg S, 2~3 kg M, 3~5 kg L, 5 kg 초과 XL. 비어 있거나 0인 열은 Price를 사용합니다. “9.99”와 “9,99” 모두 입력할 수 있습니다. 숫자가 아닌 값은 저장 후 알려 주며, 무시됩니다.
Fallback cost: 요금표에도 요금이 없을 때 사용됩니다. 이 경우 배송 방법을 숨기려면 비워 두세요.
Fallback calculation: Per order는 대체 요금을 한 번만 청구합니다. Per item (each item priced by its own weight x quantity)는 상품마다 무게(무게가 없으면 기본 무게)에 맞는 대체 요금을 찾아 수량을 곱합니다. 이는 대체 요금에만 적용됩니다. Melhor Envio 견적에는 이미 모든 상품이 포함되어 있습니다.
Availability
Min weight (kg): 장바구니 무게가 이보다 가벼우면 배송 방법을 숨깁니다. 0은 제한 없음을 뜻합니다.
Max weight (kg): 장바구니 무게가 이보다 무거우면 배송 방법을 숨깁니다. 기본값: 30. 0은 제한 없음을 뜻합니다.
Minimum subtotal: 장바구니 소계(할인 후, 세금 전)가 이 금액 이상일 때만 배송 방법을 표시합니다. 항상 표시하려면 비워 두세요.
Free shipping from: 배송비가 무료가 되는 장바구니 소계입니다. 서비스별 옵션을 사용하면 가장 저렴한 서비스만 무료가 됩니다. 더 빠른 서비스는 원래 가격을 유지합니다. 끄려면 비워 두세요.
Excluded shipping classes: 장바구니에 이 WooCommerce 배송 클래스 중 하나에 속한 상품이 있으면 배송 방법을 숨깁니다.
Ignore shipping zones: 배송 구역에 추가하지 않아도 아래에 나열한 국가에 이 배송 방법을 제공합니다.
Countries: 이 모드에서 배송할 국가입니다. 모든 국가에 적용하려면 비워 두세요. 이 입력란은 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: API 요청과 요금 계산을 WooCommerce > Status > Logs(소스 vfd-melhor-envio)에 기록합니다. 이 옵션이 꺼져 있어도 오류는 항상 기록됩니다. 토큰과 고객 주소는 절대 기록되지 않습니다.
Remove data on uninstall: 켜면 플러그인을 삭제할 때 플러그인의 모든 설정과 구역별 배송 방법이 제거됩니다. 플러그인을 비활성화해도 설정은 절대 삭제되지 않습니다.
체크아웃에서의 동작 방식
고객이 배송 주소를 입력하면 WooCommerce가 플러그인에 요금을 요청합니다. 플러그인은 먼저 조건을 확인합니다: 장바구니 무게, 최소 소계, 제외할 배송 클래스입니다.
브라질의 8자리 CEP가 있는 배송 주소에 대해 플러그인은 출발지 CEP와 목적지 CEP, 그리고 발송 가능한 각 상품의 무게, 크기, 수량, 신고 가액을 Melhor Envio에 보냅니다. 서비스 목록을 설정했다면 그것도 함께 보냅니다. 견적은 쇼핑몰 통화로 환산되어 가격순으로 정렬됩니다. 고객은 가장 저렴한 서비스 또는 서비스별 옵션을 보며, 배송 예상 기간을 켠 경우 그것도 함께 봅니다. 무료 배송이 적용되면 가장 저렴한 서비스는 0원입니다.
각 견적은 소포, CEP, 환경별로 1시간 동안 캐시되므로 같은 장바구니에서 새 요청이 발생하지 않습니다. 실패한 호출은 5분 동안 기억되므로, API 장애 때문에 체크아웃 새로 고침이 매번 느려지지 않습니다. API 시간 초과는 12초입니다.
토큰이 없거나, 주소가 브라질 밖에 있거나, 아직 올바른 CEP가 없거나, BRL 환율이 없거나, Melhor Envio가 오류를 반환하거나 해당 경로의 서비스를 찾지 못하면 대체 요금을 사용합니다: 해당 국가의 행(또는 * 행), 없으면 대체 배송비입니다. 무료 배송이 적용되면 요금이 없어도 무료로 표시됩니다. 요금이 전혀 없으면 배송 방법이 숨겨집니다. 고객이 API 오류를 보는 일은 없습니다.
이 방법은 클래식 체크아웃과 장바구니 및 체크아웃 블록에서 작동합니다. WooCommerce 고성능 주문 저장소(HPOS)와 호환됩니다.
플러그인은 요금만 계산합니다. 라벨을 구매하거나 생성하지 않고, Melhor Envio 장바구니에 발송 건을 추가하지 않으며, 소포를 추적하거나 집하를 예약하지 않고, 송장(NF-e) 데이터를 보내지 않습니다. Jadlog, Azul, LATAM의 지점(접수처) 선택이나 “본인 수령”, “수령 확인” 같은 추가 서비스는 제공하지 않습니다. 발송은 Melhor Envio 패널에서 관리하세요. Melhor Envio는 브라질 내에서만 배송합니다. 다른 국가는 대체 요금만 적용됩니다.
주문
실시간 견적으로 주문이 이루어지면 서비스와 배송 예상 기간이 주문의 배송 항목에 저장됩니다. 이 정보는 주문 화면과 주문 이메일에 Melhor Envio service와 Delivery estimate로 표시되므로, Melhor Envio에서 어떤 서비스를 구매해야 하는지 알 수 있습니다. 기존 주문은 배송 항목을 그대로 유지합니다.
라이선스 키
이 플러그인은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록은 WooCommerce > Settings > Shipping > VibeFox Melhor Envio 페이지 상단에 있습니다. 키를 License key에 붙여 넣고 Activate를 클릭하세요. 블록에는 상태가 표시됩니다. 예를 들어 라이선스가 유효한 날짜와 도메인입니다. Check now로 상태를 다시 확인하고, Change key로 다른 키를 입력하고, Remove key로 이 사이트에서 키를 제거하세요. Manage licenses and domains in your account 링크는 vibefox.net 계정을 엽니다.
키 하나는 도메인 하나에서 작동합니다. 사이트에서 키를 제거해도 도메인 슬롯이 해제되지는 않습니다. vibefox.net 계정에서 슬롯을 해제하세요.
활성 키가 없으면 체크아웃에서 고객에게 Melhor Envio가 표시되지 않습니다. 로그인한 쇼핑몰 관리자에게는 (unlicensed — visible to admins only) 표시와 함께 계속 보이므로, 키를 구매하기 전에 플러그인을 설정하고 테스트할 수 있습니다. 플러그인 페이지와 WooCommerce 페이지에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다.
라이선스가 만료되어도 플러그인은 계속 작동하지만, 업데이트와 지원을 받으려면 갱신이 필요합니다. 상태는 백그라운드에서 자동으로 다시 확인됩니다.
문제 해결
체크아웃에 Melhor Envio가 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 그리고 고객의 국가가 속한 구역에 이 방법이 추가되어 있는지 확인하세요(또는 Ignore shipping zones가 켜져 있고 해당 국가가 허용되어 있는지). 설정 페이지 상단의 경고, 무게 제한, Minimum subtotal, Excluded shipping classes를 확인하세요. 토큰이나 견적이 없으면 이 방법에는 대체 요금이 필요합니다: Fallback price table의 행 또는 Fallback cost입니다.
대체 요금만 표시됨: Debug log를 켜고 체크아웃을 새로 고친 뒤 WooCommerce > Status > Logs(소스 vfd-melhor-envio)를 여세요. 흔한 원인: 토큰이 없음, 출발지 CEP가 8자리가 아님, BRL이 아닌 쇼핑몰 통화에 BRL exchange rate가 없음, 목적지 CEP가 아직 없음, 또는 해당 경로를 처리하는 서비스가 없음.
로그나 경고에 HTTP 401 또는 403: Melhor Envio가 액세스 토큰을 거부했습니다. 토큰이 잘못되었거나, 만료되었거나, 취소되었거나, 다른 환경의 토큰입니다. 새 토큰을 생성하고 Sandbox 설정이 토큰과 일치하는지 확인하세요.
고객이 보는 가격: 옵션이 하나면 Melhor Envio가 반환한 가장 저렴한 서비스입니다. 서비스별 옵션이면 해당 경로를 처리하는 모든 서비스입니다. Per item은 대체 요금에만 적용됩니다.
변경 후 견적이 오래된 것처럼 보임: 설정 페이지를 저장하세요. 캐시된 견적이 지워집니다.
라이선스 블록에 오류가 표시됨: 블록에 나온 메시지를 따르세요. 예를 들어 키가 이미 다른 도메인에서 사용 중이면 vibefox.net 계정에서 슬롯을 해제하고 Check now를 클릭하세요. 사이트 주소가 바뀌었다면 Check now를 클릭해 새 도메인에 키를 활성화하세요. 라이선스 서버에 연결할 수 없으면 플러그인은 마지막으로 확인된 상태로 계속 작동합니다.
제거
플러그인을 비활성화하면 모든 설정이 유지되며, 견적 캐시만 지워집니다. 완전히 제거하려면 비활성화한 뒤 Plugins 페이지에서 삭제하세요. 이 플러그인의 라이선스 키와 라이선스 상태, 그리고 캐시된 견적은 항상 제거됩니다. 설정과 구역별 배송 방법은 Remove data on uninstall이 켜져 있었을 때만 제거됩니다. 그렇지 않으면 나중에 다시 설치할 때를 위해 남아 있습니다. 기존 주문은 배송 항목을 그대로 유지합니다.
Melhor Envio는 해당 소유자의 상표입니다. 이 플러그인은 Melhor Envio와 제휴하지 않았으며 Melhor Envio의 승인이나 보증을 받지 않았습니다.
