VibeFox USPS for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상. 모듈은 그보다 오래된 PHP 버전에서는 설치되지 않습니다.
USPS Developer Portal 앱(실시간 요금에만 필요): 무료 USPS 비즈니스 계정으로 USPS Developer Portal(developers.usps.com)에 로그인하고, 앱을 만든 다음 Consumer Key와 Consumer Secret을 복사합니다. 모듈은 OAuth 2.0을 사용하는 현재 USPS API를 사용합니다. USPS는 기존 Web Tools API(User ID와 XML)를 2026년 1월 25일에 종료했으므로, Web Tools User ID는 더 이상 작동하지 않습니다. 키가 없으면 고정 요금만 사용됩니다.
Ship-from ZIP code: 실시간 요금에는 소포를 발송하는 미국 5자리 ZIP 코드가 필요합니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. 관리자 페이지에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭합니다. 또는 나중에 모듈 목록에서 VibeFox USPS를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key 칸에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참조).
4. Consumer Key와 Consumer Secret, 5자리 Ship from ZIP code를 입력하고 서비스를 선택합니다. 쇼핑몰의 기본 통화가 USD가 아니면 USD exchange rate를 입력합니다. 필요하면 대체용 고정 요금을 입력합니다. Save를 클릭합니다.
설치 시 모듈은 Delivery by USPS 배송 시간 문구가 적힌 USPS 운송업체를 만듭니다. 운송업체는 모든 배송 구역과 모든 고객 그룹에 할당됩니다. 배송 구역, 고객 그룹, 배송 시간, 로고, 크기 제한은 Shipping > Carriers에서 변경할 수 있습니다. 그곳에서 요금은 설정하지 마십시오. 요금은 항상 모듈에서 가져옵니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox USPS > Configure. 설정은 운송업체의 모든 배송 구역에 적용됩니다. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 저장할 때마다 캐시된 USPS 토큰과 요금도 지워집니다.
유효하지 않은 값은 저장되지 않습니다. 이전 값이 유지되고 오류 메시지가 해당 필드를 알려 주며, 다른 필드는 저장됩니다. 페이지 상단의 경고는 다음 경우를 알려 줍니다: 키 중 하나만 입력된 경우, 키와 고정 요금이 모두 없는 경우(이때 운송업체는 표시되지 않습니다), 발송 ZIP 코드가 없는 경우, 서비스가 선택되지 않은 경우, USD 환율이 없는 경우, 테스트 환경이 켜진 경우, 쇼핑몰의 무게 또는 치수 단위를 알 수 없는 경우(International > Localization의 Local units에서 설정하십시오), 또는 USPS 운송업체가 삭제된 경우.
일반
Enable USPS shipping: 운송업체를 켜거나 끕니다. Shipping > Carriers의 운송업체 상태와 같은 스위치입니다.
Name: 체크아웃 시 고객에게 표시되는 운송업체 이름입니다. 기본값: USPS. 필수 항목이며 최대 64자입니다.
Tax status: 운송업체의 세금 규칙입니다. USPS 요금에는 세금이 포함되어 있지 않습니다. 배송비에 세금을 추가하려면 세금 규칙을 선택하고, 배송비에 세금을 매기지 않으려면 None을 선택합니다.
USPS API(실시간 요금)
Consumer Key: USPS 개발자 앱의 Consumer Key(client_id)입니다.
Consumer Secret: 같은 앱의 Consumer Secret(client_secret)입니다. 저장한 후 이 필드는 비어 있으며 Saved — leave empty to keep it.를 표시합니다. 변경하려는 경우에만 새 값을 입력하십시오. Consumer Key를 비우면 저장된 Secret도 삭제됩니다.
Test environment: USPS Testing Environment for Mailers(apis-tem.usps.com)를 사용합니다. 이 환경에 접근 권한이 있는 앱에만 해당합니다. 실제 요금을 사용하려면 끄십시오(apis.usps.com). 기본값: 끔.
Prices: 사용할 USPS 요금입니다.
Services: 제공할 수 있는 USPS 서비스입니다. 소포에 대해 USPS가 제공하는 선택된 서비스 중 가장 저렴한 서비스가 표시됩니다. Flat Rate, Cubic, Hold for Pickup, Sunday 요금은 사용되지 않습니다. 기본값: USPS Ground Advantage, Priority Mail, First-Class Package International Service. 선택된 서비스가 없으면 실시간 요금은 사용되지 않습니다.
USD exchange rate: USPS 요금은 USD로 제공됩니다. 쇼핑몰의 기본 통화가 USD가 아니면, 해당 통화로 1 USD의 가격을 입력합니다(예: 0.92). 이 값이 없으면 실시간 요금은 사용되지 않고 고정 요금이 적용됩니다. 기본 통화가 USD이면 필요하지 않습니다. 0보다 커야 합니다.
Cache: Clear cached USPS token and rates 버튼은 캐시를 즉시 비웁니다. 요금은 1시간, 실패한 요금은 10분 동안 캐시됩니다. 시간 초과, 서버 오류, 요청 제한 또는 거부된 키 이후 5분 동안은 USPS를 호출하지 않습니다.
발송 및 소포(USPS 요금은 발송 ZIP 코드, 무게, 소포 크기에 따라 달라집니다. 장바구니는 하나의 소포로 견적을 내며, 70lb를 초과하는 소포에는 고정 요금이 적용됩니다)
Ship from ZIP code: 소포를 발송하는 미국 5자리 ZIP 코드입니다. ZIP+4는 5자리로 줄여집니다. 다른 값은 메시지와 함께 거부됩니다.
Box size: 쇼핑몰의 치수 단위로 입력하는 선택 사항인 상자 치수입니다. 예: 30x20x15. 상품 치수에서 크기를 만들려면 비워 두십시오. 가장 긴 길이, 가장 넓은 너비, 쌓은 높이의 합으로 계산됩니다. 상품에 치수가 없으면 10 x 8 x 4인치 상자가 사용됩니다.
Default product weight: 무게가 없는 상품에 사용되는 무게(kg)입니다. USPS 요금, 무게 제한, 무게 구간에 사용됩니다. 기본값: 0.5.
고정 요금(쇼핑몰 기본 통화, 세금 제외 가격입니다. API 키가 입력되지 않은 경우에 사용되며, USPS가 요금을 반환하지 않을 때 대체 수단으로도 사용됩니다. 예: API 사용 불가, 잘못된 키, 서비스 없음, 미국 ZIP 코드가 없는 목적지. 이 경우 운송업체를 숨기려면 두 필드를 모두 비워 두십시오)
Country prices: 목적지 국가와 장바구니 무게별 가격입니다. Add country를 클릭하여 행을 추가하고, 휴지통 아이콘을 클릭하여 삭제합니다. 열은 Price와 무게 구간 XS(1kg 이하), S(1–2kg), M(2–3kg), L(3–5kg), XL(5kg 초과)입니다. 비어 있거나 0인 구간은 Price를 사용합니다. * Default (any other country) 행은 그 밖의 모든 국가에 적용됩니다. 가격이 전혀 없는 국가 행은 해당 국가를 Fallback cost로 보냅니다. 숫자가 아닌 값은 메시지와 함께 지워집니다.
Fallback cost: 일치하는 국가별 가격이 없을 때 적용되는 정액 요금입니다. 이 경우 운송업체를 숨기려면 비워 두십시오.
Fixed price is: Per order는 장바구니 전체 무게를 기준으로 가격을 한 번만 청구합니다. Per item (each item priced by its own weight x quantity)는 상품 한 개의 무게(무게가 없으면 기본 무게)로 각 상품의 가격을 계산한 뒤 수량을 곱합니다. USPS 실시간 요금은 항상 소포 전체에 대해 산정됩니다.
조건
Free shipping from: 이 운송업체가 무료가 되는 장바구니 소계(할인 적용 후, 세금 전)입니다. 이 경우 USPS에 요청을 보내지 않습니다. 무료 배송을 제공하지 않으려면 비워 두십시오.
Minimum subtotal: 장바구니 소계가 이 금액 이상일 때만 운송업체를 표시합니다. 항상 표시하려면 비워 두십시오.
Min weight: 이 운송업체가 나타나기 위한 최소 장바구니 무게(kg)입니다. 0은 제한이 없음을 뜻합니다.
Max weight: 장바구니 무게(kg)가 이 값을 초과하면 운송업체를 숨깁니다. 기본값: 30. USPS는 최대 70lb(31.7kg)까지 허용합니다. 0은 제한이 없음을 뜻합니다. Min weight가 Max weight보다 크면 오류가 표시되며 이전 제한이 유지됩니다.
배송 구역 없이 사용 가능 여부
Ignore shipping zones: 아래의 국가에 대해 모든 구역에서 운송업체를 제공합니다. 저장하면 운송업체가 쇼핑몰의 모든 구역(나중에 만든 구역 포함)에 연결됩니다. 끄면 운송업체는 이전 구역을 되찾습니다.
Countries: 이 모드의 목적지 국가입니다. 비워 두면 쇼핑몰이 배송하는 모든 국가가 허용됩니다. 이 필드는 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: API 요청과 요금 계산을 모듈 폴더의 logs/vfd_usps_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 이 옵션이 꺼져 있어도 API 오류는 항상 기록됩니다. 키, 토큰, 고객 주소는 절대 기록되지 않습니다.
Log: 로그의 크기와 최신 항목을 표시합니다. Clear log를 클릭하여 비울 수 있습니다.
Remove data on uninstall: 켜져 있으면 모듈을 제거할 때 USPS 설정, 운송업체, 저장된 주문 서비스, 캐시된 요금, 로그가 삭제됩니다. 꺼져 있으면 재설치를 위해 모든 것이 보존됩니다.
체크아웃 시 작동 방식
배송 단계에서 PrestaShop은 모듈에 USPS 요금을 요청합니다. 실물 상품만 계산에 포함됩니다. 가상 상품은 무게를 더하지 않으며 소계에도 포함되지 않습니다. 모듈은 먼저 조건을 확인합니다: 허용된 국가(Ignore shipping zones 사용 시), 장바구니 무게, 최소 소계. 무료 배송이 적용되면 요금은 0이며 USPS에 요청을 보내지 않습니다.
모듈은 USPS에서 OAuth 토큰을 받아 만료 직전까지 보관합니다. USPS가 거부한 토큰은 갱신되고 견적 요청을 다시 보냅니다. 미국과 그 영토(푸에르토리코, 미국령 버진아일랜드, 괌, 미국령 사모아, 북마리아나 제도, 미크로네시아 연방, 마셜 제도, 팔라우)로의 배송에는 Domestic Prices API를 사용하며 고객의 5자리 ZIP 코드가 필요합니다. 그 밖의 국가에는 국가와 우편번호를 함께 보내 International Prices API를 사용합니다.
요청에는 발송 ZIP 코드, 파운드 단위의 장바구니 무게, 인치 단위의 소포 크기, 요금 유형이 포함됩니다. 70lb를 초과하는 소포에는 고정 요금이 적용됩니다. 고객에게는 선택한 서비스 중 가장 저렴한 서비스를 담은 옵션 하나만 표시되며, 이 요금은 USD에서 쇼핑몰 기본 통화로 환산된 뒤 고객의 장바구니 통화로 표시됩니다.
각 견적은 1시간 동안 캐시됩니다. 실패한 견적은 10분 동안 기억됩니다. 시간 초과, 서버 오류, 요청 제한 또는 거부된 키 이후 5분 동안은 USPS를 호출하지 않습니다. HTTP 시간 제한은 10초입니다.
USPS가 요금을 반환하지 않으면, 가격은 Country prices에서, 그다음 Fallback cost에서 가져옵니다. 둘 다 해당하지 않으면 운송업체는 숨겨집니다. 고객은 USPS 오류 메시지를 보지 않습니다. 이유는 로그에 기록됩니다.
주문이 생긴 후 Shipping > Carriers에서 운송업체를 수정하면, PrestaShop은 이를 새로운 운송업체 버전으로 저장합니다. 모듈은 새 버전을 자동으로 따릅니다.
모듈은 요금만 계산합니다. 우편 요금이나 배송 라벨을 구매하지 않으며, 집하를 예약하지 않고, 소포를 추적하지 않으며, 고객이 우체국이나 픽업 장소를 선택하게 하지 않습니다. 여러 USPS 서비스가 아니라 옵션 하나만 표시합니다. 상자에 담는 기능은 없습니다. 장바구니는 하나의 소포로 견적을 냅니다. 보험과 기타 부가 서비스는 포함되지 않습니다.
주문
USPS 운송업체로 주문이 이루어지면, 모듈은 배송 요금이 어떻게 결정되었는지 저장합니다. 관리자 주문 페이지에는 USPS service(실시간 요금의 경우 예: USPS Ground Advantage)와 Price source(USPS live rate, Fixed price, Free shipping 중 하나)가 포함된 USPS 블록이 표시됩니다.
라이선스 키
모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox USPS는 Modules > Module Manager > VibeFox USPS > Configure 페이지에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key 칸에 입력하고 Activate를 클릭합니다. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스 유효 기한과 도메인), 그리고 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key 버튼이 표시됩니다. 그 아래에는 Product: presta-shipping-usps 줄과 vibefox.net 계정을 여는 Manage licenses and domains in your account 링크가 있습니다. 모듈의 Configure 권한이 있는 직원만 키를 변경할 수 있습니다. 블록의 텍스트는 관리자 페이지 언어를 따릅니다(영어와 러시아어 포함).
키가 받아들여지지 않으면 블록이 그 이유를 표시합니다(예: Key not found, This key belongs to another product, Domain limit reached, 또는 날짜가 붙은 License expired on). 쇼핑몰 주소를 변경한 후, 또는 계정에서 도메인 슬롯을 비운 후에는 Check now를 클릭하십시오. 라이선스 서버에 연결할 수 없으면 모듈은 마지막으로 확인된 상태로 계속 작동합니다.
키 하나는 도메인 하나에서 작동합니다. 기본 쇼핑몰의 도메인이며, 다중 스토어 설정에서도 마찬가지입니다. 쇼핑몰에서 키를 제거해도 도메인 슬롯은 비워지지 않습니다. vibefox.net 계정에서 슬롯을 비우십시오.
활성 키가 없으면 USPS 운송업체는 체크아웃 시 고객에게 표시되지 않으며 요금도 계산되지 않습니다. PrestaShop 스토어프론트는 관리자 페이지에 로그인했는지 알지 못하므로, 운송업체는 관리자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 표시됩니다. 기존 주문에는 영향이 없습니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 관리자 페이지에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 이후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 재설정하면 라이선스 키와 라이선스 상태가 항상 삭제됩니다.
문제 해결
체크아웃에 USPS가 나타나지 않음: 라이선스가 활성 상태인지, Enable USPS shipping이 켜져 있는지 확인하십시오. Shipping > Carriers에서 운송업체가 고객 국가의 구역과 고객 그룹을 포함하는지 확인하거나, Ignore shipping zones를 켜고 Countries를 확인하십시오. 무게 제한과 Minimum subtotal도 확인하십시오. 작동하는 USPS 키가 없으면 운송업체에는 고정 요금(Country prices 또는 Fallback cost)이 필요합니다. 상품 페이지에서 특정 운송업체로만 제한된 상품일 수도 있습니다.
실시간 요금이 나타나지 않음: 모듈 페이지 상단의 경고를 확인하십시오. Debug log를 켜고, 체크아웃을 새로 고친 다음 Log 필드를 확인하십시오. 잘못된 키, 잘못된 환경, USPS 오류 메시지가 그곳에 기록됩니다. 국내 요금에는 고객의 5자리 ZIP 코드가 필요합니다.
쇼핑몰이 USD가 아님: USPS는 USD로만 견적을 냅니다. USD exchange rate를 입력하십시오. 이 값이 없으면 실시간 요금은 사용되지 않고 대신 고정 요금이 표시됩니다.
Web Tools User ID가 작동하지 않음: 기존 Web Tools API는 종료되었습니다. USPS Developer Portal에서 앱을 만들고 그 Consumer Key와 Consumer Secret을 사용하십시오.
변경 후 요금이 오래된 것처럼 보임: 설정을 저장하면 캐시가 지워집니다. Clear cached USPS token and rates를 클릭할 수도 있습니다.
페이지에 USPS 운송업체를 찾을 수 없다고 표시됨: 운송업체가 Shipping > Carriers에서 삭제되었습니다. Modules > Module Manager에서 모듈을 초기화하면 다시 만들어집니다.
제거
Modules > Module Manager로 이동하여 VibeFox USPS 옆의 메뉴를 열고 Uninstall을 선택합니다. 라이선스 키와 라이선스 상태는 항상 제거됩니다. 캐시된 토큰과 요금도 항상 제거됩니다. Remove data on uninstall이 켜져 있으면 운송업체가 삭제되고(주문은 기록을 유지합니다), 설정, 저장된 주문 서비스, 로그도 제거됩니다. 꺼져 있으면 운송업체는 비활성화되기만 하고 모든 설정이 유지됩니다. 모듈을 다시 설치하거나 Reset을 사용하면 저장된 운송업체는 이전 상태를 되찾습니다. 켜져 있던 운송업체는 다시 켜지고, 꺼져 있던 운송업체는 꺼진 상태로 남습니다.
USPS는 해당 소유자의 상표입니다. 이 모듈은 USPS와 제휴하거나 USPS의 승인을 받지 않았습니다.
