VibeFox J&T Express for OpenCart — 도움말
요구 사항
OpenCart: 3.0.x(3.0.5.0에서 테스트됨) 또는 4.0.2 이상(4.1.0.3에서 테스트됨).
PHP: 8.0 이상.
J&T Express Malaysia API 접근(실시간 견적에만 해당): 실시간 견적은 말레이시아 배송 주소에 대해 J&T Express Malaysia에서만 제공됩니다. 네 가지 값이 필요합니다. J&T Express Malaysia 웹사이트에서 J&T VIP 계정을 신청하십시오(확장 기능 페이지에 링크가 있습니다). J&T가 VIP 고객 코드와 VIP API 키를 제공합니다. API 계정과 요청 서명에 사용하는 개인 키는 API 연동을 위해 J&T가 발급합니다. J&T 계정 담당자에게 문의하십시오. J&T 필리핀, 인도네시아 및 기타 국가에는 공개 견적 API가 없으므로 해당 국가에는 가격표를 사용하십시오. 가격표와 대체 요금만 사용한다면 J&T API 접근 권한은 필요하지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
다운로드 파일은 두 OpenCart 버전용 패키지가 들어 있는 zip 파일 하나입니다. 컴퓨터에서 압축을 푸십시오. 들어 있는 파일은 README.txt, OpenCart 3용 패키지 vfd_jt_express-oc3-(version).ocmod.zip, OpenCart 4용 패키지 vfd_jt_express.ocmod.zip입니다. 사용 중인 OpenCart 버전의 패키지만 설치하십시오. 라이선스 키는 두 버전에서 동일합니다.
OpenCart 3
1. 관리자 화면에서 Extensions > Installer로 이동하여 Upload를 클릭하고 vfd_jt_express-oc3-(version).ocmod.zip 파일을 선택합니다. 이 확장 기능은 OCMOD 수정 사항을 추가하지 않으므로 Extensions > Modifications를 새로 고칠 필요가 없습니다. Installer 대신 이 패키지의 upload 폴더 내용을 쇼핑몰의 루트 폴더에 복사할 수도 있습니다.
2. Extensions > Extensions로 이동하여 확장 기능 유형에서 Shipping을 선택합니다. VibeFox J&T Express를 찾아 Install(녹색 + 버튼)을 클릭합니다.
3. Edit(연필 버튼)을 클릭하여 설정 페이지를 엽니다.
4. Edit 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 붙여 넣고 Activate를 클릭합니다(라이선스 키 참조).
5. 가격표 및/또는 대체 요금을 입력합니다. 말레이시아 실시간 견적을 사용하려면 J&T API 자격 증명, 발송지 우편번호를 입력하고, 쇼핑몰의 기본 통화가 MYR이 아니면 통화 환산 환율도 입력합니다(Configuration 참조). Enable J&T Express를 켜고 Save를 클릭합니다.
OpenCart 4
1. 관리자 화면에서 Extensions > Installer로 이동하여 Upload를 클릭하고 vfd_jt_express.ocmod.zip 파일을 선택합니다. 파일 이름을 바꾸지 마십시오. OpenCart 4는 파일 이름에서 확장 기능 코드를 가져오므로 이름을 바꾼 패키지는 작동하지 않습니다.
2. 같은 페이지의 설치된 확장 기능 목록에 패키지가 나타납니다. 그 옆의 Install(녹색 + 버튼)을 클릭합니다.
3. Extensions > Extensions로 이동하여 확장 기능 유형에서 Shipping을 선택합니다. VibeFox J&T Express를 찾아 Install(녹색 + 버튼)을 클릭한 다음 Edit(연필 버튼)을 클릭합니다.
4. 라이선스 키와 설정은 OpenCart 3의 4단계와 5단계와 같이 입력합니다. 설정 페이지와 그 필드는 두 버전에서 동일합니다.
설치 후에는 Enable J&T Express를 켜고 저장하기 전까지 이 방법이 꺼져 있습니다. 제거 후 확장 기능을 다시 설치하면 보관된 J&T Express 설정이 다시 사용됩니다.
설정
모든 설정은 확장 기능 페이지에 있습니다: Extensions > Extensions > Shipping > VibeFox J&T Express > Edit. 섹션은 왼쪽에 나열됩니다. 하단의 Save 버튼 하나로 페이지를 다시 로드하지 않고 전체를 저장합니다. 저장할 때마다 캐시된 J&T 견적도 지워집니다. 값이 잘못되면 아무것도 저장되지 않고 페이지에 이유가 표시됩니다. 예를 들어 잘못된 배송 방법 제목, 0 이상의 숫자가 아닌 금액, 0인 Currency conversion rate, Max weight (kg)보다 큰 Min weight (kg), 정수가 아닌 정렬 순서 등입니다. 이 확장 기능에 대한 수정 권한이 있는 관리자 사용자만 설정을 저장할 수 있습니다.
설정 위의 경고(저장할 때마다 다시 표시됨)는 실시간 견적 설정이 일부만 완료되었음을 알려 줍니다. 누락된 API 설정을 나열하거나, 쇼핑몰 통화가 MYR이 아니고 환율이 없다고 알려 줍니다. System > Localisation > Weight Classes에 단위가 kg인 무게 등급이 없으면 다른 경고가 나타납니다. 이 경우 상품 무게는 단위 이름(kg, g, lb, oz)에 따라 환산되고, 다른 단위는 kg으로 읽힙니다.
일반
이 방법은 선택한 지오존 또는 Ignore shipping zones의 국가에 제공됩니다. 이 페이지의 설정은 모든 지역에 적용됩니다.
Enable J&T Express: 체크아웃에서 이 방법을 표시하거나 숨깁니다(이 확장 기능의 상태). 기본값: 끔.
Method title: 장바구니와 체크아웃에서 고객에게 표시되는 배송 방법 이름. 기본값: J&T Express. 필수이며 최대 64자이고, 문자 < > ; = # { }는 사용할 수 없습니다.
Tax class: 배송비의 세금 등급 또는 No tax(기본값). 세금 등급을 선택하면 배송비에 배송 세금이 추가됩니다. J&T 요금에 청구하려는 모든 항목이 이미 포함되어 있다면 No tax를 선택하십시오.
Sort order: 체크아웃에서 배송 방법 목록 중 이 방법의 위치. 정수입니다.
J&T Express Malaysia API(실시간 견적)(선택 사항. 말레이시아 배송 주소용. 네 가지 자격 증명 모두 필요합니다)
말레이시아 우편번호마다 J&T Express Malaysia에 견적을 요청하며, 1시간 동안 캐시됩니다. 자격 증명이 없는 경우와 다른 국가에는 가격표와 대체 요금이 사용됩니다.
VIP customer code: J&T Express VIP 코드입니다. 지우면 저장된 VIP API 키도 지워집니다.
VIP API key: J&T Express가 VIP 코드와 함께 제공한 API 키(비밀번호)입니다. 로그에 기록되지 않습니다. 저장 후 이 필드는 비어 있고 Saved — leave empty to keep it.를 표시합니다. 변경하려는 경우에만 새 값을 입력하십시오. 제거하려면 VIP customer code를 지우고 저장합니다.
API account: J&T Express API 계정 이름입니다. 지우면 저장된 개인 키도 지워집니다.
API private key: API 계정의 개인 키입니다. 요청에 서명할 때(SHA-256)만 사용됩니다. J&T에 전송되지 않으며 로그에도 기록되지 않습니다. VIP API 키와 마찬가지로 저장 후에는 다시 표시되지 않습니다. 제거하려면 API account를 지우고 저장합니다.
Sender postcode: 소포를 발송하는 말레이시아 우편번호입니다(예: 50000). 실시간 견적에 필수입니다. OpenCart의 쇼핑몰 주소는 자유 입력 텍스트이므로 우편번호는 거기서 가져오지 않습니다.
Currency conversion rate: J&T Express Malaysia 견적은 MYR로 제공됩니다. 쇼핑몰의 기본 통화가 MYR이 아니면, 1 MYR이 귀하의 통화로 몇 단위인지 입력하십시오(1 MYR = X). 예: 0.20. 이 값이 없으면 실시간 견적은 사용되지 않고 가격표나 대체 요금이 사용됩니다. 기본 통화가 MYR이면 이 필드에 그렇다고 표시되며 입력할 필요가 없습니다. 견적을 그대로 사용합니다. 환율은 0보다 커야 합니다.
가격표 및 대체(실시간 견적이 설정되지 않았거나 J&T가 견적을 제공하지 않을 때, 말레이시아 이외의 국가에 사용됩니다. 쇼핑몰의 기본 통화로, 세금 제외 가격)
Country prices: 국가당 한 행으로 이루어진 표입니다. Add country를 클릭하면 행이 추가되고, 삭제 버튼으로 행을 제거할 수 있습니다. 자체 행이 없는 모든 국가에는 * Any other country를 선택합니다. 각 행에는 Base price와 다섯 개의 무게 구간이 있습니다. XS는 1 kg까지, S는 2 kg까지, M은 3 kg까지, L은 5 kg까지, XL은 5 kg 초과입니다. 0보다 큰 구간 가격은 해당 구간의 장바구니에 대해 기본 요금을 대신합니다. 구간이 0이면 기본 요금을 사용합니다. 기본 요금이 0이면 무료 배송이며, 빈 기본 요금은 0으로 저장됩니다. 행이 없는 국가(* 행이 없는 경우)는 가격표 요금을 받지 않습니다.
Fallback cost: J&T와 가격표 모두 요금을 제공하지 않을 때 사용되는 요금입니다. 이 경우 방법을 숨기려면 비워 두십시오. 0은 무료 배송을 의미합니다.
Table / fallback price is: Per order(기본값)는 요금을 한 번만 청구합니다. Per item (multiplied by the number of items)는 장바구니의 상품 수를 곱합니다. J&T 실시간 견적은 항상 주문 전체에 대한 것입니다.
조건
Free shipping from: 무료 배송이 시작되는 장바구니 소계 금액(배송이 필요한 상품, 쿠폰 적용 후, 세금 전). 무료 배송이 없으면 비워 두십시오.
Minimum subtotal: 장바구니 소계가 이 금액에 도달한 경우에만 방법을 표시합니다. 항상 표시하려면 비워 두십시오.
Min weight (kg): 장바구니 무게가 이보다 가벼우면 방법을 숨깁니다. 상품 무게는 무게 등급에 따라 환산됩니다. 0은 제한 없음(기본값)을 의미합니다. Max weight (kg)보다 클 수 없습니다.
Max weight (kg): 장바구니 무게가 이보다 무거우면 방법을 숨깁니다. 기본값: 50. 0은 제한 없음을 의미합니다.
Geo zone: 이 지오존 내의 주소에만 방법을 제공합니다. All zones(기본값)는 제한 없음을 의미합니다. 지오존은 System > Localisation > Geo Zones에서 관리합니다. Ignore shipping zones가 켜져 있으면 사용되지 않습니다.
배송 구역 없이 사용 가능
Ignore shipping zones: 지오존과 관계없이 아래 국가에 방법을 제공합니다. 기본값: 끔.
Countries: 이 모드의 배송 대상 국가입니다. 쇼핑몰에서 활성화된 국가 중에서 선택합니다. 비워 두면 모든 국가를 허용합니다. 이 필드는 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: 가격 계산을 storage/logs/vfd_jtex_debug.log.php(OpenCart 4에서는 system/storage/logs/vfd_jtex_debug.log.php)에 기록합니다. 이 파일은 웹에서 읽을 수 없습니다. 이 옵션이 꺼져 있어도 J&T API 오류는 항상 기록됩니다. 키, 비밀번호, 고객 코드 또는 고객 우편번호는 기록되지 않습니다. 작업이 끝나면 로그를 끄십시오. 파일이 5 MB에 도달하면 vfd_jtex_debug.old.log.php로 이동되고 새 로그가 시작됩니다.
Log: 디버그 로그의 크기와 최신 항목을 표시합니다. Clear log를 클릭하면 비워집니다.
Remove data on uninstall: 켜져 있으면 확장 기능을 제거할 때 J&T Express 설정과 로그가 삭제됩니다. 꺼져 있으면(기본값) 다시 설치할 수 있도록 보관됩니다. 캐시된 견적은 항상 삭제됩니다.
가져오기 / 내보내기
Export: Download JSON을 클릭하면 설정을 JSON 파일로 저장합니다. VIP API 키와 개인 키는 내보내지 않습니다.
Import: 이전에 내보낸 JSON을 붙여 넣고 Import를 클릭하면 설정을 복원합니다(예: 다른 쇼핑몰에서). 값은 일반 저장과 같은 방식으로 검사됩니다. 저장된 키는 유지됩니다.
체크아웃에서의 동작 방식
OpenCart가 배송 방법을 표시할 때 확장 기능에 J&T Express 요금을 요청합니다. Geo zone이 설정되어 있고(Ignore shipping zones가 꺼져 있을 때) 주소가 그 밖에 있으면 이 방법은 제공되지 않습니다. Requires Shipping이 Yes로 설정된 상품만 계산에 포함됩니다. 그 외의 상품은 무게에 더해지지 않으며 소계에도 포함되지 않습니다. 그다음 확장 기능은 조건을 확인합니다. 허용된 국가(Ignore shipping zones 사용 시), 장바구니 무게, 최소 소계입니다. 소계는 배송이 필요한 상품의 가격으로, 쿠폰 할인 후, 세금 전 금액입니다. 기프트 카드, 적립 포인트, 스토어 크레딧은 고려되지 않습니다. 소계가 Free shipping from에 도달하면 요금은 0이 되며 J&T로 요청이 전송되지 않습니다.
그렇지 않으면 요금은 가격을 제공하는 첫 번째 소스에서 가져옵니다.
1. J&T 실시간 견적: 네 가지 API 자격 증명과 발송지 우편번호가 모두 설정되어 있고, 배송 국가가 말레이시아이며, 고객이 5자리 우편번호를 입력했고, 기본 통화가 MYR이 아닌 쇼핑몰의 경우 환율이 설정되어 있을 때만 사용됩니다. 확장 기능은 표준 서비스 EZ, 소포 1개에 대해 발송지 및 배송지 우편번호와 장바구니 무게(최소 0.1 kg)를 J&T에 보내고, 반환된 MYR 요금을 쇼핑몰의 기본 통화로 환산합니다.
2. 국가별 요금: 배송 국가의 행 또는 * 행에서 장바구니 무게 구간에 해당하는 요금입니다.
3. 대체 요금.
이 중 어느 것도 요금을 제공하지 않으면 해당 장바구니에 대해 이 방법은 숨겨집니다. Per item은 가격표와 대체 요금에만 적용됩니다. 요금은 쇼핑몰의 기본 통화로 계산되고, 해당 통화의 소수점 자릿수에 맞게 반올림되며, 선택한 Tax class의 세금을 포함하여 고객의 통화로 표시됩니다.
J&T의 각 응답은 1시간 동안 캐시되므로 같은 장바구니가 새 요청을 발생시키지 않습니다. 실패한 요청은 10분 동안 캐시되므로 체크아웃이 새로 고칠 때마다 J&T를 기다리지 않습니다. 요청 제한 시간은 10초입니다. J&T가 오류, 0 요금 또는 응답 없음을 반환해도 고객에게는 오류가 보이지 않습니다. 가격표 또는 대체 요금이 사용되며, 이유는 로그에 기록됩니다.
OpenCart 4에서는 고객이 체크아웃 페이지의 배송 방법 블록에서 Choose를 클릭하고, Shipping method options 창에서 J&T Express를 선택합니다. 이 방법은 OpenCart 3과 같은 방식으로 작동합니다.
이 확장 기능은 배송비만 계산합니다. 운송장, 송장 또는 라벨을 생성하지 않고, 집하를 예약하지 않으며, 화물을 취소하거나 추적하지 않고, 고객이 픽업 장소를 선택하도록 하지도 않습니다. 주문에 아무것도 추가하지 않습니다. 주문에는 다른 OpenCart 배송 방법과 마찬가지로 배송 방법 제목과 배송비가 표시됩니다. 평소처럼 J&T 계정에서 배송을 생성하고 추적하십시오. 이 확장 기능은 J&T Express Malaysia 공식 연동의 요청 형식에 맞춰 개발되었습니다. 실제 운영 전에 J&T 계정으로 요금을 확인하십시오.
라이선스 키
이 확장 기능은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox J&T Express 라이선스 블록은 Extensions > Extensions > Shipping > VibeFox J&T Express > Edit 페이지에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 붙여 넣고 Activate를 클릭합니다. 그러면 블록에 키가 마스킹되어 표시되고, 상태(라이선스가 유효한 날짜와 도메인 등)와 다음 버튼이 나타납니다. Check now는 상태를 다시 확인하고, Change key는 다른 키를 입력하고, Remove key는 이 쇼핑몰에서 키를 제거합니다. 그 아래에는 Product: opencart-shipping-jt-express 줄과 Manage licenses and domains in your account 링크가 있으며, 이 링크는 vibefox.net 계정을 엽니다. 이 확장 기능에 대한 Modify 권한이 있는 관리자 사용자만 키를 변경할 수 있습니다. 블록의 텍스트는 관리자 언어를 따릅니다(영어와 러시아어가 포함됩니다).
키가 수락되지 않으면 블록에 그 이유가 표시됩니다(예: Key not found, This key belongs to another product, Domain limit reached 또는 날짜가 붙은 License expired on). 쇼핑몰 주소를 변경한 후 또는 계정에서 도메인 슬롯을 해제한 후에는 Check now를 클릭하십시오. 라이선스 서버에 연결할 수 없으면 확장 기능은 마지막으로 확인된 상태로 계속 작동합니다.
키 하나는 도메인 하나에서 작동합니다. OpenCart 구성의 쇼핑몰 주소가 기준입니다. 쇼핑몰에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 J&T Express 배송 방법은 체크아웃에서 고객에게 표시되지 않으며 요금도 계산되지 않습니다. 같은 브라우저에서 관리자 화면에 로그인한 관리자 사용자에게는 쇼핑몰에서 여전히 이 방법이 표시되며, (unlicensed — visible to admins only)가 함께 표시됩니다. 따라서 키를 구매하기 전에 확장 기능을 설정하고 테스트할 수 있습니다. OpenCart 4에서는 이 미리 보기를 사용할 수 없습니다. 쇼핑몰은 관리자 로그인을 인식하지 못하므로, 활성 키가 없으면 모든 사용자에게 이 방법이 숨겨집니다. Edit 페이지를 한 번 열면 관리자 Dashboard에 알림이 나타납니다. ×를 클릭하여 닫으면 7일 동안 숨겨집니다. 기존 주문은 영향을 받지 않습니다.
라이선스가 만료되어도 확장 기능은 계속 작동하지만, 업데이트와 지원을 받으려면 갱신이 필요합니다. 관리자 Dashboard 또는 Edit 페이지를 열면 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안에는 하루에 한 번, 그 이후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 확장 기능을 제거하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
체크아웃에 J&T Express가 나타나지 않음: 라이선스가 활성 상태이고 Enable J&T Express가 켜져 있는지 확인하십시오. Geo zone을 확인하십시오(또는 Ignore shipping zones가 켜져 있고 국가가 Countries에 있는지 확인). 무게 제한과 Minimum subtotal도 확인하십시오. Country prices에 해당 국가의 행이나 * 행이 있는지, 또는 Fallback cost가 설정되어 있는지 확인하십시오. 상품의 Requires Shipping이 Yes로 설정되어 있는지 확인하십시오. Debug log를 켜고 확장 기능 페이지의 Log 필드를 확인하십시오.
요금이 J&T가 아니라 가격표에서 나옴: 실시간 견적에는 네 가지 API 자격 증명, 발송지 우편번호, 5자리 우편번호가 있는 말레이시아 배송 주소, 그리고 MYR이 아닌 쇼핑몰의 경우 Currency conversion rate가 필요합니다. 확장 기능 페이지 상단의 경고를 확인하십시오. J&T가 요청을 거부하거나 응답하지 않으면 오류가 기록되고 가격표 또는 대체 요금이 사용됩니다. 실패한 요청은 10분 후에 다시 시도됩니다.
필리핀 또는 인도네시아의 실시간 견적이 없음: J&T는 이 국가들에 대해 공개 견적 API를 제공하지 않습니다. 해당 국가에는 가격표와 대체 요금을 사용하십시오.
한 국가가 실수로 무료 배송을 받음: 해당 국가의 행에 기본 요금이 0으로 설정되어 있습니다(빈 기본 요금은 0으로 저장됩니다). 기본 요금을 입력하거나 행을 삭제하십시오. Free shipping from도 확인하십시오.
변경 후 요금이 오래된 것처럼 보임: 확장 기능 페이지에서 Save를 클릭하십시오. 이렇게 하면 캐시된 J&T 견적이 지워집니다.
페이지에 "Warning: You do not have permission to modify VibeFox J&T Express!"가 표시됨: 관리자 사용자 그룹이 설정을 보기만 할 수 있을 수 있습니다. System > Users > User Groups에서 그룹에 extension/shipping/vfd_jt_express(OpenCart 3) 또는 extension/vfd_jt_express/shipping/vfd_jt_express(OpenCart 4)에 대한 수정 권한을 부여하십시오.
개발자용: 다른 확장 기능은 OpenCart 이벤트 vfd_jt_express/quote_request로 견적 요청 본문(예: 서비스 유형)을 변경할 수 있고, vfd_jt_express/api_url로 견적 엔드포인트를 변경할 수 있습니다.
제거
Extensions > Extensions로 이동하여 유형 Shipping을 선택하고, VibeFox J&T Express 옆의 Uninstall(빨간색 − 버튼)을 클릭합니다. 이 확장 기능의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. OpenCart는 항상 Enable J&T Express, Sort order, Tax class, Geo zone을 초기화합니다. 캐시된 견적은 항상 삭제됩니다. Remove data on uninstall이 켜져 있으면 J&T Express 설정과 디버그 로그도 삭제됩니다. 꺼져 있으면 다른 설정은 유지되고 확장 기능을 다시 설치할 때 다시 사용됩니다. 기존 주문은 배송 방법과 배송비를 그대로 유지합니다.
OpenCart 4에서 확장 기능의 파일도 함께 제거하려면, 제거 후 Extensions > Installer로 이동하여 설치된 확장 기능 목록에서 VibeFox J&T Express 옆의 Uninstall(주황색 − 버튼)을 클릭한 다음, 업로드한 패키지를 삭제하려면 Delete(빨간색 휴지통 버튼)를 클릭하십시오.
J&T Express는 해당 소유자의 상표입니다. 이 확장 기능은 J&T Express와 제휴되어 있지 않으며 J&T Express의 승인을 받지 않았습니다.
