VibeFox DHL Africa for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: cURL 확장이 포함된 8.0 이상. 모듈은 이전 버전의 PHP나 cURL이 없는 환경에서는 설치되지 않습니다. DHL XML Services에는 PHP SimpleXML 확장도 필요합니다.
DHL Express 계정(실시간 요금에만 필요): 실시간 요금은 MyDHL API를 사용합니다. DHL Express 계정 번호와 MyDHL API 자격 증명, 즉 API 키와 API 시크릿이 필요합니다. DHL Developer Portal(MyDHL API, "Get access")에서 신청하거나 DHL Express 계정 관리자에게 요청할 수 있습니다. 아직 DHL XML Services 자격 증명(Site ID와 비밀번호)이 있는 계정은 이를 대신 사용할 수 있습니다. 대체 가격만 사용한다면 DHL 자격 증명은 필요하지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서만 작동합니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox DHL Africa를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key 칸에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참조).
4. DHL API를 선택하고 API key, API secret, DHL 계정 번호를 입력합니다. 테스트 자격 증명을 사용하는 동안에는 Test mode를 켜 두십시오. Ship from 발송지 주소를 입력합니다. DHL 계정이 쇼핑몰 기본 통화로 청구되지 않는다면 DHL quote currency와 Exchange rate를 설정합니다. 필요하면 국가별 가격과 대체 비용을 설정합니다(설정 항목 참조). Save를 클릭합니다.
설치 시 모듈은 배송 시간 문구 DHL Express courier가 적용된 DHL Express 운송업체를 생성합니다. 운송업체는 모든 배송 지역과 모든 고객 그룹에 할당됩니다. 배송 지역, 고객 그룹, 배송 시간, 로고, 크기 제한은 Shipping > Carriers에서 변경할 수 있습니다. 그곳에서는 가격을 설정하지 마십시오. 가격은 항상 모듈에서 가져옵니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox DHL Africa > Configure. 설정은 운송업체의 모든 배송 지역에 적용됩니다. 각 섹션에는 별도의 Save 버튼이 있으며, 이 버튼은 페이지 전체를 저장합니다. 저장할 때마다 캐시된 DHL 견적도 지워집니다. 가격과 무게는 소수점 쉼표 또는 마침표를 모두 입력할 수 있습니다.
페이지 상단의 경고는 다음 경우에 표시됩니다. API key, API secret 또는 계정 번호가 없어 실시간 요금이 꺼져 있는 경우(XML Services의 경우 Site ID 또는 비밀번호), 발송 국가 또는 도시가 없는 경우, XML Services가 선택된 경우(DHL이 지원을 종료하고 있습니다), 환율 없이 견적 통화가 설정된 경우, International > Localization(Local units)의 쇼핑몰 무게 또는 치수 단위를 모듈이 인식하지 못하는 경우(이때는 kg 또는 cm로 간주합니다). 저장할 때 값이 유효하지 않으면(이름이 비어 있거나 64자를 초과, 숫자가 올바르지 않거나 음수, 환율 0, 최소 무게가 최대 무게보다 큼, 견적 통화, 발송 국가 또는 세금 규칙), 오류 메시지가 해당 항목을 알려 주고 그 항목의 이전 값은 유지되며, 다른 설정은 저장됩니다.
일반
Enable DHL Express Africa: 운송업체를 켜거나 끕니다. Shipping > Carriers의 운송업체 상태와 같은 스위치입니다.
Name: 체크아웃에서 고객에게 보이는 운송업체 이름. 기본값: DHL Express. 필수 항목이며 최대 64자입니다.
Tax: 운송업체의 세금 규칙 또는 No tax. 세금 규칙이 있으면(쇼핑몰에서 세금이 활성화된 경우) DHL 요금은 DHL이 견적에 포함한 세금을 뺀 금액으로 적용되고, PrestaShop이 자체 세금을 추가합니다. No tax이면 DHL 요금은 견적대로, 세금 포함 금액으로 청구됩니다.
DHL Express 계정(실시간 요금에만 필요)
DHL API: 사용할 DHL 인터페이스. 선택한 API의 항목만 표시됩니다.
API key: MyDHL API 사용자 이름(API 키).
API secret: MyDHL API 비밀번호(API 시크릿). 저장한 후에는 API key와 API secret 항목이 비어 있고 Saved — leave empty to keep it.가 표시됩니다. 변경하려는 경우에만 새 값을 입력하십시오.
Remove the saved API key and API secret: 키나 시크릿이 저장되어 있을 때만 표시됩니다. 켜고 Save를 클릭하면 둘 다 삭제됩니다.
XML Site ID: DHL XML Services Site ID(레거시 API 전용). 지우면 저장된 XML 비밀번호도 함께 삭제됩니다.
XML password: DHL XML Services 비밀번호(레거시 API 전용). API secret과 마찬가지로 저장 후에는 다시 표시되지 않습니다.
DHL account number: DHL Express 계정 번호(9자리). MyDHL API에 필요합니다. XML Services를 사용하면 공개 요금이 아니라 계정 요금이 반환됩니다.
Test mode: DHL 테스트 환경을 사용합니다. 기본적으로 켜져 있습니다. 테스트 자격 증명은 테스트 환경에서만, 운영 자격 증명은 운영 환경에서만 작동합니다. 실제 운영을 시작할 때 끄십시오.
Ship from
DHL이 소포를 수거하는 주소입니다. 요금은 이 주소에 따라 달라집니다.
Origin country: 발송하는 국가.
Origin city: 발송하는 도시(예: Johannesburg). MyDHL API에 필요합니다.
Origin postcode: 우편번호가 없는 국가(예: 케냐, 나이지리아, 가나)에서는 비워 두십시오.
요금
모든 가격은 쇼핑몰 기본 통화로, 세금 제외 금액입니다. 실시간 요금은 소포에 대해 가장 저렴한 DHL Express 제품입니다. DHL이 설정되지 않았거나, 요청이 실패하거나, 경로에 해당 서비스가 없으면 국가별 가격이 사용되고, 그것도 없으면 대체 비용이 사용됩니다. 둘 다 없으면 운송업체가 숨겨집니다.
DHL quote currency: DHL은 DHL 계정 국가의 통화로 견적을 냅니다(예: ZAR, NGN, KES). DHL이 쇼핑몰 기본 통화의 금액을 반환하지 않으면, 실시간 요금은 이 통화에서 아래의 환율로 환산됩니다. 그렇지 않으면 사용되지 않습니다. 기본값: — None —.
Exchange rate: DHL 견적 통화 1단위가 쇼핑몰 기본 통화로 얼마인지(예: 1 ZAR = 0.05). 0보다 커야 합니다. 환산이 필요 없으면 비워 두십시오. 환율은 직접 입력하는 설정입니다.
Fallback cost: 실시간 요금도 국가별 가격도 없을 때 적용되는 정액 비용. 이 경우 운송업체를 숨기려면 비워 두십시오.
Country prices: 목적지 국가별 대체 가격, 한 줄에 하나씩 CC:Price 형식으로 입력합니다(예: ZA:25.00). 실시간 요금이 없을 때 사용됩니다. 다른 형식의 줄은 무시되며, 저장 시 경고에 목록이 표시됩니다.
Fallback price basis: Per order는 가격을 한 번만 청구합니다. Per item (multiplied by the cart quantity)는 장바구니 수량을 곱한 금액을 청구합니다. 국가별 가격과 대체 비용에만 적용됩니다. DHL 실시간 요금은 항상 소포 전체를 기준으로 합니다.
Free shipping from: 이 운송업체가 무료가 되는 장바구니 소계(배송이 필요한 상품, 할인 후, 세금 전). DHL에는 문의하지 않습니다. 절대 무료가 되지 않게 하려면 비워 두십시오.
조건
Minimum weight: 장바구니 무게가 이 값보다 낮으면 운송업체를 숨깁니다(kg 단위). 0은 제한 없음을 의미합니다. Maximum weight보다 클 수 없습니다.
Maximum weight: 장바구니 무게가 이 값보다 높으면 운송업체를 숨깁니다(kg 단위). 기본값: 70(항목이 비어 있을 때도 사용됩니다). 0은 제한 없음을 의미합니다.
Minimum subtotal: 장바구니 소계(할인 후, 세금 전)가 이 금액 이상일 때만 운송업체를 표시합니다. 항상 표시하려면 비워 두십시오.
배송 지역 없이 사용하기
Ignore shipping zones: 직접 배송 지역을 할당하지 않고 운송업체를 제공합니다. 운송업체는 나중에 만드는 지역을 포함한 모든 지역을 받으며, 아래의 국가가 적용 여부를 결정합니다. 끄면 운송업체는 자체 배송 지역을 다시 갖게 됩니다.
Countries: 이 모드에서 사용할 목적지 국가. 배송하는 모든 국가를 허용하려면 비워 두십시오. Ignore shipping zones를 사용할 때만 적용됩니다.
고급
Debug log: 요금 계산 내역을 모듈 폴더의 logs/vfd_dhla_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 이 옵션이 꺼져 있어도 DHL 오류는 항상 기록됩니다. 자격 증명과 고객 주소는 절대 기록되지 않습니다.
Log: 디버그 로그의 크기와 최근 항목을 표시합니다. Clear log를 클릭하면 로그를 비웁니다.
Remove data on uninstall: 켜져 있으면 모듈을 제거할 때 설정, 운송업체, 주문에 저장된 DHL 제품, 로그가 삭제됩니다. 꺼져 있으면 재설치를 위해 모든 항목이 보존됩니다.
체크아웃에서의 동작
배송 단계에서 PrestaShop은 모듈에 DHL Express 요금을 요청합니다. 실물 상품만 계산에 포함됩니다. 가상 상품은 무게를 더하지 않으며 소계에도 포함되지 않습니다. 모듈은 먼저 조건을 확인합니다. Ignore shipping zones의 국가, 장바구니 무게, 최소 소계입니다. 무료 배송이 적용되면 요금은 0이 되며 DHL에는 요청이 전송되지 않습니다.
그렇지 않으면 모듈은 DHL에 발송지와 목적지(국가, 도시, 우편번호), kg으로 환산한 장바구니 무게(최소 0.5kg), 그리고 상품 치수(cm 단위)로 만든 상자 하나를 보냅니다. 상자는 가장 긴 길이, 가장 넓은 너비, 쌓은 높이로 구성됩니다. 치수가 없는 상품은 아무것도 더하지 않습니다. 치수가 있는 상품이 하나도 없으면 10 x 10 x 10cm 상자를 사용합니다. 다른 국가로의 발송은 장바구니 소계를 신고 가액으로 하여 세관에 신고됩니다. 국내 발송은 신고하지 않습니다. 집하일은 오늘이며, 주말이면 월요일입니다. 실시간 요금은 고객이 도시를 입력한 후에만 요청됩니다(XML Services의 경우 도시 또는 우편번호). 그 전까지는 대체 가격이 적용됩니다.
가장 저렴한 DHL Express 제품은 운송업체 이름과 함께 하나의 가격으로 표시됩니다. 고객은 DHL 제품을 보지 못합니다. 가격은 기본 통화로 계산되고 반올림된 뒤, 고객의 장바구니 통화로 표시됩니다.
각 견적은 소포와 경로별로 1시간 동안 캐시됩니다. 실패한 요청은 10분 동안 캐시되므로, 새로 고칠 때마다 체크아웃이 DHL을 기다리지는 않습니다. API 제한 시간은 12초입니다. DHL이 오류를 반환하거나, 서비스가 없거나, 사용할 수 없는 통화로 응답하면, 고객에게는 오류가 표시되지 않습니다. 대체 가격이 사용되거나 운송업체가 숨겨집니다. 이유는 디버그 로그에 기록됩니다.
주문이 있는 운송업체를 Shipping > Carriers에서 편집하면, PrestaShop은 이를 새 버전의 운송업체로 저장합니다. 모듈은 새 버전을 자동으로 따릅니다.
모듈은 요금만 계산합니다. DHL 배송 건을 생성하지 않고, 상업 송장이나 라벨을 출력하지 않으며, 집하를 예약하거나, 소포를 추적하거나, DHL 서비스 포인트를 제공하지 않습니다. 고객이 DHL 제품을 선택하게 하지 않고, 여러 상자를 포장하지 않으며, 보험을 추가하지 않고, 관세와 세금을 산정하지 않습니다. 견적은 배송비에만 해당합니다. 관세와 수입 세금은 수취인이 부담합니다.
주문
주문이 생성되면 모듈은 장바구니에 대해 계산된 요금을 보관합니다. 그런 다음 백오피스의 주문 페이지에 DHL Express Africa 블록이 표시되므로, DHL에 무엇을 예약해야 하는지 알 수 있습니다.
DHL product: 실시간 요금의 DHL Express 제품(예: "EXPRESS WORLDWIDE (P)"). 실시간 요금인 경우에만 표시됩니다.
Price source: Live DHL rate, Fallback price (no live rate) 또는 Free shipping threshold.
Calculated price (excl. tax): 쇼핑몰 기본 통화의 가격.
백오피스에서 주문을 편집하는 경우처럼 나중에 장바구니를 다시 계산해도 이 값은 바뀌지 않습니다. 주문으로 이어지지 않은 장바구니의 요금 기록은 30일 후에 삭제됩니다.
라이선스 키
이 모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox DHL Africa 라이선스 블록은 Modules > Module Manager > VibeFox DHL Africa > Configure 페이지에서 설정 위쪽에 있는 첫 번째 블록입니다. License key에 키를 입력하고 Activate를 클릭하십시오. 그러면 블록에 마스킹된 키, 상태(예: 라이선스 유효 기간 종료일과 도메인)가 표시되고, 다음 버튼이 나타납니다: 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key. 그 아래에는 Product: presta-shipping-dhl-africa 줄과 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 계정에서 슬롯을 해제하십시오.
유효한 키가 없으면 DHL Express 운송업체는 체크아웃에서 고객에게 표시되지 않으며 요금도 계산되지 않습니다. PrestaShop 프런트엔드는 백오피스에 로그인했는지 알지 못하므로, 운송업체는 나에게도 숨겨집니다. 키를 구입하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 표시됩니다. 기존 주문에는 영향이 없습니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 이후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 초기화하면 라이선스 키와 라이선스 상태가 항상 삭제됩니다.
문제 해결
체크아웃에 DHL Express가 나타나지 않음: 라이선스가 활성 상태이고 Enable DHL Express Africa가 켜져 있는지 확인하십시오. Shipping > Carriers에서 운송업체가 고객 국가의 배송 지역과 고객 그룹을 포함하는지 확인하십시오(또는 Ignore shipping zones를 켜고 Countries를 확인하십시오). 무게 제한과 Minimum subtotal도 확인하십시오. 실시간 요금이 없으면 국가별 가격이나 대체 비용이 설정되어 있어야만 운송업체가 나타납니다. 상품 페이지에서 특정 운송업체로 제한된 상품일 수도 있습니다.
실시간 요금이 나타나지 않음: 모듈 페이지 상단의 경고(자격 증명 또는 발송지 누락)를 확인하십시오. Debug log를 켜고 체크아웃을 새로 고친 후, 모듈 페이지의 Log 필드를 확인하십시오. MyDHL API의 HTTP 오류, 경로에 대한 제품 없음, 통화 문제 같은 DHL 오류는 항상 기록됩니다. Test mode가 자격 증명과 일치하는지, 고객 주소에 도시가 있는지도 확인하십시오.
DHL이 ZAR, NGN 또는 KES로 요금을 반환하지만 쇼핑몰은 다른 통화를 사용함: 로그에 DHL quote not usable이 표시됩니다. DHL quote currency를 해당 통화로 설정하고 Exchange rate를 입력하십시오. 그렇지 않으면 실시간 요금은 사용되지 않고 대체 가격이 적용됩니다.
이전 DHL XML Services 자격 증명이 있음: DHL API에서 XML Services (legacy)를 선택하십시오. MyDHL 자격 증명을 받으면 MyDHL API로 전환하십시오.
배송비에 세금이 이중으로 부과됨: Tax에서 세금 규칙을 설정하여 DHL 요금이 DHL 부가세를 뺀 금액으로 적용되게 하거나, No tax를 선택하여 DHL 금액을 견적대로 청구하십시오.
변경 후 요금이 오래된 것처럼 보임: 모듈 페이지에서 Save를 클릭하십시오. 이렇게 하면 캐시된 DHL 견적이 지워집니다.
페이지에 DHL Express 운송업체를 찾을 수 없다고 표시됨: Shipping > Carriers에서 운송업체가 삭제되었습니다. Modules > Module Manager에서 모듈을 초기화하여 다시 생성하십시오.
개발자를 위해 모듈은 API 주소, 세관 신고, 상자, DHL 요청을 변경할 수 있도록 actionVfdDhlaApiUrl, actionVfdDhlaIsDutiable, actionVfdDhlaPackageBox, actionVfdDhlaRestRequest, actionVfdDhlaXmlRequest 훅을 제공합니다.
제거
Modules > Module Manager로 이동하여 VibeFox DHL Africa 옆 메뉴를 열고 Uninstall을 선택하십시오. 라이선스 키, 라이선스 상태, 캐시된 DHL 견적은 항상 삭제됩니다. Remove data on uninstall이 켜져 있으면 운송업체가 삭제되고(주문은 기록을 유지합니다), 설정, 주문의 저장된 DHL 제품, 로그가 제거됩니다. 꺼져 있으면 운송업체만 비활성화되고, 설정과 주문된 주문의 DHL 제품은 유지됩니다. 모듈을 다시 설치하면 운송업체는 이전 상태를 복원합니다.
DHL은 각 소유자의 상표입니다. 이 모듈은 DHL과 제휴하거나 DHL의 보증을 받은 것이 아닙니다.
