VibeFox UPS for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: cURL 확장이 포함된 8.0 이상. 이전 버전의 PHP이거나 cURL이 없으면 모듈을 설치할 수 없습니다.
UPS Developer Portal 앱(실시간 요금에만 필요): UPS Developer Portal(developer.ups.com)에 로그인하여 "Rating" 제품이 포함된 앱을 만들고, UPS 계정을 연결한 뒤 Client ID와 Client Secret을 복사합니다. 모듈은 OAuth 2.0을 사용합니다. Access Key, 사용자 이름, 비밀번호는 필요하지 않습니다. 협상 요금을 사용하려면 6자리 UPS 계정 번호도 필요합니다. 인증 정보가 없으면 고정 요금만 사용됩니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 사용할 수 있습니다.
설치
1. 관리자 페이지에서 Modules > Module Manager로 이동하고 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭합니다. 나중에 모듈 목록에서 VibeFox UPS를 찾아 Configure를 클릭해도 됩니다.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key 필드에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참조).
4. Client ID와 Client Secret, UPS 계정 번호(협상 요금용), Ship from 주소(우편번호, 미국과 캐나다의 경우 2자리 주 코드)를 입력합니다.
5. UPS 계정 통화가 쇼핑몰 기본 통화와 다르면 UPS account currency와 Exchange rate를 입력합니다.
6. 필요하면 대체용 고정 요금을 입력하고 Save를 클릭합니다.
설치 시 모듈은 배송 시간 텍스트 UPS delivery를 가진 UPS 운송업체를 만듭니다. 이 운송업체는 모든 지역과 모든 고객 그룹에 할당됩니다. 지역, 고객 그룹, 배송 시간, 로고, 크기 제한은 Shipping > Carriers에서 변경할 수 있습니다. 그곳에서는 요금을 설정하지 마십시오. 요금은 항상 모듈에서 가져옵니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox UPS > Configure. 설정은 운송업체의 모든 지역에 적용됩니다. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 저장할 때마다 캐시된 UPS 토큰과 요금이 지워집니다. UPS API 섹션에서 Clear cached UPS token and rates를 클릭할 수도 있습니다.
설정 위에 표시되는 경고는 다음 상황을 알려 줍니다: Client ID와 Client Secret 중 하나만 입력된 경우, 인증 정보와 고정 요금이 모두 없는 경우(이 경우 운송업체는 표시되지 않습니다), 발송지 우편번호나 주가 빠진 경우, 계정 번호 없이 계정 요금을 선택한 경우, 환율이 없는 경우, 또는 모듈이 쇼핑몰의 무게 또는 치수 단위를 인식하지 못하는 경우입니다. 올바르지 않은 숫자, 잘못된 상자 크기, Max weight보다 큰 Min weight는 저장할 때 알려 주며, 이전 값이 유지됩니다.
일반
Enable UPS shipping: 운송업체를 켜거나 끕니다. Shipping > Carriers의 운송업체 상태와 같은 스위치입니다.
Name: 결제 시 고객에게 표시되는 운송업체 이름입니다. 기본값: UPS. 필수 항목이며 최대 64자입니다.
Tax status: 운송업체의 세금 규칙 또는 None입니다. UPS 요금은 세금 제외 금액으로 제시됩니다. 세금 규칙이 있으면 쇼핑몰은 배송 세금을 그 위에 추가합니다.
UPS API(실시간 요금)
Test mode: UPS 테스트 환경을 사용합니다. 테스트 요금은 실제 가격이 아닙니다. 실시간 요금을 사용하려면 끄십시오. 기본값: off.
Client ID: UPS Developer Portal에 있는 앱의 Client ID입니다. 지우면 저장된 Client Secret도 함께 삭제됩니다.
Client Secret: 같은 앱의 Client Secret입니다. 저장한 후에는 이 필드가 비어 있고 Saved — leave empty to keep it.라고 표시됩니다. 변경하려는 경우에만 새 값을 입력하십시오.
UPS account number: 6자리 UPS 발송자 번호(예: A1B2C3)입니다. 계정(협상) 요금에 필요하며, 공개 요금에는 선택 사항입니다.
Rates: 사용할 UPS 요금입니다.
Measurement units: UPS로 보내는 단위입니다. 쇼핑몰의 무게와 크기는 변환됩니다.
Residential delivery: 고객 주소를 UPS 주거지 할증료를 적용하여 주거용 주소로 계산합니다. 주로 기업에 배송한다면 끄십시오. 기본값: on.
Box size: 쇼핑몰의 치수 단위로 입력하는 선택 상자 크기입니다(예: 30x20x15). UPS는 이 값으로 부피 무게를 적용합니다. 무게만으로 견적을 내려면 비워 두십시오.
UPS account currency: UPS는 발송자 계정 국가의 통화로 견적을 냅니다(예: 미국은 USD, 캐나다는 CAD, 유로 지역은 EUR). 기본값: USD.
Exchange rate: UPS 계정 통화가 쇼핑몰 기본 통화와 다를 때만 필요합니다. 계정 통화 1단위의 가격을 기본 통화로 입력하십시오(예: 0.92). 입력하지 않으면 이러한 요금은 사용되지 않고 고정 요금이 적용됩니다. 환율은 자동으로 업데이트되지 않습니다.
발송지 주소(UPS가 픽업하거나 고객님이 소포를 맡기는 주소이며, 실시간 요금에 사용됩니다)
Country: 발송하는 국가입니다. 기본값은 쇼핑몰의 국가입니다.
State / province code: 2자리 주 또는 도 코드입니다. 미국과 캐나다에는 필수입니다(예: NY, CA, ON).
City: 발송하는 도시입니다.
ZIP / postal code: 발송하는 우편번호입니다. UPS가 요금을 계산하려면 필요합니다.
고정 요금(API 인증 정보가 입력되지 않은 경우에 사용되며, UPS가 요금을 반환하지 않을 때는 대체 요금으로 사용됩니다. 두 항목을 모두 비워 두면 이 경우 운송업체가 숨겨집니다)
Country prices: 쇼핑몰 기본 통화로 된, 세금 제외 요금이며 목적지 국가별로 설정합니다. Add country를 클릭하면 행이 추가되고, 삭제 버튼으로 행을 지울 수 있습니다. 국가 *는 그 밖의 모든 국가에 적용됩니다. 무게 열(XS 1kg 이하, S 1–2kg, M 2–3kg, L 3–5kg, XL 5kg 초과)은 해당 무게에서 Price보다 우선합니다. 빈 셀은 Price를 사용합니다. 0은 무료 배송을 의미합니다. 가격이 전혀 없는 행은 저장할 때 삭제되며, 숫자가 아닌 값은 메시지와 함께 거부됩니다.
Fallback cost: 일치하는 국가 요금이 없을 때 적용되는, 쇼핑몰 기본 통화의 정액 요금입니다. 이 경우 운송업체를 숨기려면 비워 두십시오.
Fixed price is: Per order는 장바구니 전체 무게에 대해 요금을 한 번만 부과합니다. Per item (each item priced by its own weight x quantity)은 각 상품을 자체 무게(무게가 없으면 기본 무게)로 계산한 뒤 수량을 곱합니다. 상품에 고정 요금이 없으면 운송업체가 숨겨집니다. UPS 실시간 요금은 항상 장바구니 전체 무게로 견적됩니다.
조건
Free shipping from: 이 운송업체가 무료가 되는 장바구니 소계(배송이 필요한 상품, 할인 적용 후, 세금 전)입니다. 이 경우 UPS에 요청을 보내지 않습니다. 무료 배송을 제공하지 않으려면 비워 두십시오.
Minimum subtotal: 장바구니 소계가 이 금액 이상인 경우에만 운송업체를 표시합니다. 항상 표시하려면 비워 두십시오.
Min weight: 이 운송업체가 표시되기 위한 최소 장바구니 무게(kg)입니다. 0은 제한 없음을 의미합니다.
Max weight: 장바구니 무게가 이 값(kg)을 초과하면 운송업체를 숨깁니다. 기본값: 70, UPS의 패키지당 한도(70 kg / 150 lbs)입니다. 0은 제한 없음, 비워 두면 70을 의미합니다. Min weight는 Max weight보다 클 수 없습니다.
Default product weight: 무게가 없는 상품에 사용되는 무게(kg)입니다. UPS 요금, 무게 열, 무게 제한에 사용됩니다. 기본값: 0.5.
배송 지역 없이 제공하기
보통 운송업체는 Shipping > Carriers에서 할당된 지역에 제공됩니다.
Ignore shipping zones: 일치하는 지역과 관계없이 아래 국가에 대해 운송업체를 제공합니다. 저장하면 운송업체가 모든 지역에 추가되며, 나중에 만든 지역에도 추가됩니다. 끄면 해당 지역이 다시 제거됩니다.
Countries: 이 모드의 배송 대상 국가입니다. 비워 두면 쇼핑몰의 활성 국가 전체를 사용합니다. 이 필드는 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: API 요청과 요금 계산을 모듈 폴더의 logs/vfd_upsx_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 이 옵션을 꺼도 API 오류는 항상 기록됩니다. 인증 정보, 토큰, 고객 주소는 기록되지 않습니다.
Log: 로그의 크기와 최신 항목을 보여 줍니다. Clear log를 클릭하면 비워집니다.
Remove data on uninstall: 켜져 있으면 모듈을 제거할 때 설정, 운송업체, 캐시된 토큰과 요금, 로그, 주문과 함께 저장된 UPS 서비스가 삭제됩니다. 주문 자체는 유지됩니다. 꺼져 있으면 재설치를 위해 모든 항목이 유지됩니다.
결제 시 동작 방식
배송 단계에서 PrestaShop은 모듈에 UPS 요금을 요청합니다. 실물 상품만 계산에 포함됩니다. 가상 상품은 무게를 더하지 않으며 소계에도 포함되지 않습니다. 모듈은 먼저 조건을 확인합니다: Ignore shipping zones의 국가, 장바구니 무게, 최소 소계입니다. 무료 배송이 적용되면 요금은 0이 되며 UPS에 요청을 보내지 않습니다.
모듈은 UPS에서 OAuth 토큰을 받아 만료될 때까지 보관합니다. UPS가 거부한 토큰은 자동으로 갱신됩니다. 그런 다음 발송지 주소에서 고객 주소까지의 모든 서비스를 UPS Rating API에 요청하며, 장바구니는 하나의 패키지로 처리됩니다. 우편번호가 있는 국가에서는 고객이 우편번호를 입력할 때까지 요청을 기다립니다. 미국에서 캐나다나 푸에르토리코로 발송하는 경우, UPS의 요구에 따라 상품 가액이 함께 전송됩니다.
고객에게는 가장 저렴한 UPS 서비스를 포함한 하나의 옵션이 표시됩니다. 요금은 쇼핑몰 기본 통화로 계산된 뒤 고객의 장바구니 통화로 표시됩니다. 모듈은 Access Point 주소를 수집하지 않으므로 UPS Access Point Economy는 견적되지 않습니다.
각 견적은 1시간 동안 캐시됩니다. 실패한 요청은 10분, 실패한 토큰 요청은 5분 동안 기억되므로, 장애가 발생해도 결제 화면의 모든 업데이트가 느려지지 않습니다. HTTP 제한 시간은 15초입니다.
UPS가 요금을 반환하지 않으면(API 중단, 잘못된 인증 정보, 서비스 없음, 환율이 없는 다른 통화 등) 요금은 먼저 Country prices에서, 그다음 Fallback cost에서 가져옵니다. 둘 다 해당하지 않으면 운송업체가 숨겨집니다. 고객에게는 UPS 오류 메시지가 표시되지 않습니다.
운송업체에 주문이 생긴 뒤 Shipping > Carriers에서 운송업체를 수정하면, PrestaShop은 이를 새 버전의 운송업체로 저장합니다. 모듈은 새 버전을 자동으로 따릅니다.
이 모듈은 요금만 계산합니다. UPS Access Point 선택을 제공하지 않으며, 배송 라벨이나 UPS 운송장을 만들지 않고, 집화를 예약하거나 소포를 추적하지 않습니다. 여러 UPS 서비스가 아니라 하나의 옵션만 표시합니다. 상자 포장은 하지 않으며, 장바구니는 하나의 패키지로 견적됩니다. 환율은 자동으로 업데이트되지 않습니다.
주문
실시간 UPS 요금으로 주문이 이루어지면 UPS 서비스가 주문과 함께 저장됩니다. 관리자 페이지의 주문 화면에는 UPS service(예: UPS Ground)와 Live rate (excl. tax)를 표시하는 UPS 블록이 나타납니다. 관리자 페이지에서 나중에 장바구니를 변경해도 이 정보는 바뀌지 않습니다. 고정 요금이나 무료 배송 주문에는 이 블록이 없습니다.
라이선스 키
이 모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 동작합니다. 라이선스 블록 License — VibeFox UPS는 Modules > Module Manager > VibeFox UPS > Configure 페이지에서 설정 위쪽에 있는 첫 번째 블록입니다. 키를 License key에 입력하고 Activate를 클릭합니다. 그러면 블록에 마스킹된 키, 상태(예: 라이선스 유효 기간과 도메인), 그리고 다음 버튼이 표시됩니다: 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key. 그 아래에는 Product: presta-shipping-ups 줄과 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 계정에서 슬롯을 해제해야 합니다.
활성 키가 없으면 UPS 운송업체는 결제 시 고객에게 표시되지 않으며 요금도 계산되지 않습니다. PrestaShop 스토어프런트는 백오피스에 로그인되어 있는지 알지 못하므로, 운송업체는 관리자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 결제 시 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 표시됩니다. 기존 주문에는 영향을 주지 않습니다.
라이선스가 만료되어도 모듈은 계속 동작하지만, 업데이트와 지원을 받으려면 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 이후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 초기화하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
결제 시 UPS가 나타나지 않습니다: 라이선스가 활성 상태인지, Enable UPS shipping이 켜져 있는지 확인하십시오. Shipping > Carriers에서 운송업체가 고객 국가의 지역과 고객 그룹을 포함하는지 확인하거나, Ignore shipping zones를 켜고 Countries를 확인하십시오. 무게 제한과 Minimum subtotal도 확인하십시오. 작동하는 UPS 인증 정보가 없으면 운송업체에는 고정 요금(Country prices 또는 Fallback cost)이 필요합니다. 또한 상품 페이지에서 상품을 특정 운송업체로만 제한할 수도 있습니다.
실시간 요금이 나타나지 않습니다: Configure 페이지 상단의 경고를 확인하십시오. Debug log를 켜고 결제 화면을 새로 고친 다음, 모듈 페이지의 Log 필드를 보십시오. OAuth 오류(Client ID, Client Secret, Test mode 확인), UPS 오류 메시지, 통화 문제가 표시됩니다.
요금은 USD인데 쇼핑몰은 다른 통화입니다: UPS는 발송자 계정의 통화로 요금을 반환합니다. UPS account currency와 Exchange rate를 설정하십시오. 환율이 없으면 이러한 요금은 무시되고 고정 요금이 사용됩니다.
"This measurement system is not valid for the selected country": Measurement units를 Automatic으로 두거나, 발송 국가에 대해 UPS가 요구하는 단위를 선택하십시오.
페이지에 쇼핑몰의 무게 또는 치수 단위를 알 수 없다는 경고가 나타납니다: 이 경우 무게는 kg, 상자 크기는 cm로 읽힙니다. International > Localization의 Local units 섹션에서 표준 단위(kg, g, lb 또는 oz; cm, mm, m 또는 in)를 설정하십시오.
변경 후 요금이 오래된 것처럼 보입니다: 모듈 페이지에서 Save를 클릭하거나 Clear cached UPS token and rates를 클릭하십시오.
페이지에 UPS 운송업체를 찾을 수 없다고 나타납니다: Shipping > Carriers에서 운송업체가 삭제되었습니다. Modules > Module Manager에서 모듈을 초기화하면 다시 만들어집니다.
개발자용: 훅 actionVfdUpsxAllowedServices와 actionVfdUpsxExcludedServices는 표시할 수 있는 UPS 서비스를 제한합니다. actionVfdUpsxRateRequest는 요금 요청을 변경하고, actionVfdUpsxApiBaseUrl은 API 주소를, actionVfdUpsxCurrencyCodes는 UPS가 반환하는 통화 코드를 매핑합니다.
제거
Modules > Module Manager로 이동하여 VibeFox UPS 옆의 메뉴를 열고 Uninstall을 선택하십시오. 라이선스 키와 라이선스 상태는 항상 삭제됩니다. 캐시된 UPS 토큰과 요금은 항상 삭제됩니다. Remove data on uninstall이 켜져 있으면 운송업체가 삭제되고(주문은 기록을 유지합니다), 설정, 로그, 주문과 함께 저장된 UPS 서비스가 제거됩니다. 꺼져 있으면 운송업체는 비활성화만 되고 설정은 유지됩니다. 모듈을 다시 설치하거나 재설정하면 운송업체는 이전 상태를 되찾습니다.
UPS는 해당 소유자의 상표입니다. 이 모듈은 UPS와 제휴하지 않으며 UPS의 승인을 받지 않았습니다.
