VibeFox Ninja Van for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상. 모듈은 이전 PHP 버전에서는 설치되지 않습니다.
Ninja Van 요금표: Ninja Van 발송인 계정의 요금 또는 Ninja Van 영업팀에서 받은 요금을 요금표에 입력합니다. API 키는 필요하지 않습니다. 인도네시아 국내의 선택 사항인 실시간 요금은 공개되어 있고 인증이 필요 없는 Ninja Van Tariff API를 사용합니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Ninja Van을 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에서 License key에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참고).
4. 요금표에 Ninja Van 요금을 입력합니다. 인도네시아의 경우 필요에 따라 Live rates를 켤 수 있습니다(설정 참고). Save를 클릭합니다.
설치 시 모듈은 배송 기간 텍스트 Courier delivery가 있는 Ninja Van 운송업체를 생성합니다. 운송업체는 켜진 상태이며, 모든 구역과 모든 고객 그룹에 할당되고, 세금 규칙은 없습니다. 구역, 고객 그룹, 배송 기간, 로고, 크기 제한은 Shipping > Carriers에서 변경할 수 있습니다. 그곳에서 요금을 설정하지 마십시오. 요금은 항상 모듈에서 가져옵니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Ninja Van > Configure. 설정은 운송업체의 모든 구역에 적용됩니다. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 숫자 입력란에 텍스트나 음수가 있을 때, IDR conversion rate가 0일 때, Minimum weight (kg)가 Maximum weight (kg)보다 클 때, 또는 Method title이 64자를 초과할 때에는 아무것도 저장되지 않고 오류가 표시됩니다. 쇼핑몰의 무게 단위가 모듈이 인식하는 단위가 아닌 경우, 저장 후 상품 무게를 킬로그램으로 취급한다는 경고가 표시됩니다.
일반
Enable Ninja Van: 운송업체를 켜거나 끕니다. Shipping > Carriers의 운송업체 상태와 같은 스위치입니다.
Method title: 장바구니와 체크아웃에서 고객에게 표시되는 운송업체 이름입니다. 기본값: Ninja Van. 필수 항목이며, 최대 64자입니다.
Tax: 운송업체의 세금 규칙, 또는 No tax(기본값). 요금표의 가격에 이미 세금(GST, SST, VAT)이 포함되어 있다면 No tax를 선택하십시오.
요금(쇼핑몰의 기본 통화 기준, 세금 제외)
Ninja Van 요금표의 요금을 쇼핑몰의 기본 통화로 입력하십시오. 요금표가 SGD, MYR, IDR 또는 다른 통화로 되어 있다면 먼저 환산하십시오. 이 표는 인도네시아 이외의 모든 목적지와 실시간 요금을 사용할 수 없는 경우에 사용됩니다.
Price table: 배송 대상 국가별로 한 행. Add country를 클릭하면 행이 추가되고, 휴지통 아이콘을 클릭하면 행이 삭제됩니다. 자체 행이 없는 모든 국가에는 * All other countries를 선택하십시오. 각 행에는 Base price와 무게 열이 있습니다: XS는 1 kg 이하, S는 2 kg 이하, M은 3 kg 이하, L은 5 kg 이하, XL은 5 kg 초과. 무게 열이 비어 있거나 0이면 기본 요금을 사용합니다. 기본 요금이 0이면 해당 국가는 무료 배송입니다. 「9.99」와 「9,99」 모두 허용됩니다. 요금이 없는 행은 저장할 때 삭제되며, 각 국가의 첫 번째 행만 유지됩니다.
Price for countries not in the table: 표에 배송 대상 국가의 행(및 * 행)이 없거나, 해당 행에 이 무게의 요금이 없을 때 사용됩니다. 이 경우 운송업체를 숨기려면 비워 두십시오. 0은 무료 배송을 의미합니다.
Price applies: 요금이 계산되는 방식입니다. 실시간 요금에도 적용됩니다.
실시간 요금(API) — 인도네시아
Ninja Van Tariff API는 인도네시아 국내에서 발송되는 소포에 대해 할증료와 할인을 제외한 표준 배송비를 반환합니다. Ninja Van은 이 기능을 인도네시아에서만 제공합니다. Live rates가 켜져 있으면, 섹션 제목 아래의 상태 줄에 출발지 구역, 환율 누락, 마지막 Tariff API 응답(환경, 시간 및 결과)이 표시됩니다.
Live rates: 인도네시아 국내 배송에 대한 Ninja Van 실시간 요금을 받습니다. 기본값: 꺼짐. 이 옵션이 꺼져 있으면 체크아웃 중에 Ninja Van으로 아무것도 전송되지 않습니다.
Environment: Production (api.ninjavan.co)(기본값) 또는 Sandbox — testing only (api-sandbox.ninjavan.co).
Service level: 요금을 요청하는 서비스입니다: Standard(기본값), Express, Same day 또는 Next day. Ninja Van에 해당 경로와 서비스의 요금이 없으면 요금표가 사용됩니다.
Ship-from zone code L1 및 Ship-from zone code L2: 발송지 지역의 L1 및 L2 계층 코드입니다(예: ID_A00007_01 및 ID_B00069_01). Ninja Van 구역 코드 매핑(CSV)에서 가져오며, 그 주소는 입력란 아래에 표시됩니다. 둘 다 입력하거나, 둘 다 비워 두어 Shop Parameters > Contact > Stores의 쇼핑몰 주소에서 자동으로 감지하도록 하십시오: 인도네시아, 주(state, 프로빈시), 도시 및 도시에 구역이 여러 개인 경우 주소 줄의 지역(Kecamatan). 잘못된 형식의 코드는 경고와 함께 지워집니다. 코드 하나만 입력하면 두 개를 모두 입력하라는 경고가 표시되고, 상태 줄에 실시간 요금을 요청하지 않는다고 나타납니다.
IDR conversion rate: Tariff API는 요금을 인도네시아 루피아(IDR)로 반환합니다. 쇼핑몰의 기본 통화가 IDR이면 비워 두십시오. 그렇지 않으면 1 IDR이 쇼핑몰 통화로 얼마인지 입력하십시오(예: 0.000058). 0보다 커야 합니다. 이 값이 없으면 실시간 요금은 사용되지 않고 요금표가 사용됩니다.
조건
Minimum weight (kg): 장바구니가 이보다 가벼우면 운송업체를 숨깁니다. 상품 무게는 쇼핑몰의 무게 단위에서 킬로그램으로 환산됩니다. 0은 제한 없음을 의미합니다.
Maximum weight (kg): 장바구니가 이보다 무거우면 운송업체를 숨깁니다. 기본값: 30. 0은 제한 없음을 의미합니다. Minimum weight (kg)보다 작을 수 없습니다.
Minimum order amount: 장바구니 소계(배송이 필요한 상품, 할인 후, 세금 전)가 이 금액에 도달했을 때만 운송업체를 표시합니다. 항상 표시하려면 비워 두십시오.
Free shipping from: Ninja Van 배송이 무료가 되는 장바구니 소계(배송이 필요한 상품, 할인 후, 세금 전). 무료 배송이 없으면 비워 두십시오.
배송 지역 없이 제공
Ignore shipping zones: 운송업체가 해당 국가의 구역에 연결되어 있지 않아도 아래 국가에 Ninja Van을 제공합니다. 켜면 운송업체는 나중에 만드는 구역을 포함하여 활성화된 모든 구역에 연결됩니다. 끄면 운송업체는 이전에 가지고 있던 구역을 되돌려 받습니다.
Countries: 이 모드의 배송 대상 국가입니다. 비워 두면 배송하는 모든 국가를 사용합니다. 이 필드는 Ignore shipping zones가 켜져 있을 때만 사용됩니다.
고급
Debug log: 요금 계산을 모듈 폴더의 logs/vfd_njvn_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 고객 주소는 기록되지 않습니다. 이 옵션이 꺼져 있어도 실패한 Tariff API 요청은 기록됩니다. 작업이 끝나면 끄십시오.
Log: 디버그 로그의 크기와 최신 항목을 보여줍니다. Clear log를 클릭하면 로그가 비워집니다.
Remove data on uninstall: 켜져 있으면 모듈을 제거할 때 모듈 설정, 운송업체, 캐시된 요금, 로그가 삭제됩니다. 꺼져 있으면 재설치를 위해 모든 것이 보존됩니다.
체크아웃에서 작동 방식
배송 단계에서 PrestaShop은 모듈에 Ninja Van 요금을 요청합니다. 실물 상품만 계산에 포함됩니다. 가상 상품은 무게를 더하지 않으며 주문 금액에도 포함되지 않습니다. 모듈은 먼저 조건을 확인합니다: Ignore shipping zones의 국가 목록(켜져 있는 경우), 장바구니 무게, 최소 주문 금액. 무료 배송이 적용되면 요금은 0이 되며 Ninja Van으로 요청을 보내지 않습니다.
요금은 국가의 행(또는 * 행)에서 가져옵니다: 무게 열, 없으면 기본 요금, 그것도 없으면 Price for countries not in the table. 요금이 없으면 해당 장바구니에서 운송업체가 숨겨집니다. 요금은 쇼핑몰의 기본 통화로 계산된 후 고객의 장바구니 통화로 표시됩니다.
Live rates가 켜져 있으면 인도네시아 국내 배송은 먼저 Ninja Van이 요금을 책정합니다. 모듈은 출발지와 배송지 주소를 Ninja Van 구역 코드로 변환합니다: 주(state, 프로빈시), 도시 또는 리젠시(regency) 및 구역이 여러 개인 도시의 경우 주소 줄에 적힌 지역(Kecamatan). 코드, 무게, 서비스 등급을 보내고, 요금을 IDR에서 쇼핑몰 통화로 환산합니다. Per item인 경우, 서로 다른 상품 무게마다 한 번씩 요청을 보내며, 장바구니당 최대 5회입니다. 서로 다른 무게가 이보다 많으면 요금표가 사용됩니다.
Tariff API는 분당 20회 요청을 허용하므로, 응답은 6시간, 실패는 5분, "이 경로에 요금 없음"은 1시간 동안 캐시됩니다. 모듈은 분당 18회를 넘지 않으며, HTTP 429 응답을 받으면 1시간 동안 일시 중지합니다. API 제한 시간은 12초입니다. Ninja Van이 응답하지 않거나, 오류를 반환하거나, 경로에 요금이 없거나, 주소를 일치시킬 수 없으면 요금표의 요금이 사용됩니다. 오류는 로그에 기록되며 고객에게는 절대 표시되지 않습니다.
주문이 있는 운송업체를 Shipping > Carriers에서 편집하면 PrestaShop은 이를 운송업체의 새 버전으로 저장합니다. 모듈은 새 버전을 자동으로 따릅니다.
모듈은 요금만 계산합니다. Ninja Van 주문을 생성하지 않고, 항공 운송장(AWB)을 출력하지 않으며, 수거를 예약하지 않고, 택배를 추적하지 않으며, 착불(COD) 처리도 하지 않습니다. 이러한 작업에는 Ninja Van Dashboard를 사용하십시오. 픽업 장소(Ninja Points) 선택기는 없습니다. 운송업체는 문 앞 배송입니다. 실시간 요금은 인도네시아 이외 지역에서는 제공되지 않습니다.
라이선스 키
이 모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox Ninja Van 라이선스 블록은 Modules > Module Manager > VibeFox Ninja Van > Configure에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 입력하고 Activate를 클릭하십시오. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 다음 버튼이 표시됩니다: 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key. 그 아래에는 Product: presta-shipping-ninja-van 줄과 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 계정에서 슬롯을 비우십시오.
활성 키가 없으면 Ninja Van 운송업체는 체크아웃에서 고객에게 표시되지 않으며 요금도 계산되지 않습니다. PrestaShop 프런트엔드는 백오피스에 로그인했는지 알지 못하므로 운송업체는 사용자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 표시됩니다. 기존 주문에는 영향이 없습니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 이후에는 주 1회입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 재설정하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
체크아웃에 Ninja Van이 나타나지 않음: 라이선스가 활성 상태이고 Enable Ninja Van이 켜져 있는지 확인하십시오. Shipping > Carriers에서 운송업체가 고객 국가의 구역과 고객 그룹을 포함하는지 확인하십시오(또는 Ignore shipping zones를 켜고 Countries를 확인하십시오). 무게 제한과 Minimum order amount를 확인하고, 국가, * 행 또는 Price for countries not in the table에 요금이 있는지 확인하십시오. 상품 페이지에서 상품이 특정 운송업체로만 제한되어 있을 수도 있습니다.
일부 주소에 실시간 요금이 사용되지 않음: 목적지는 Ninja Van 구역과 일치해야 합니다: 인도네시아, 주(state, 프로빈시), 도시 또는 리젠시(regency) 및 구역이 여러 개인 도시의 경우 주소 줄의 지역(Kecamatan). 그렇지 않으면 요금표가 사용됩니다. Debug log를 켜고, 체크아웃을 새로 고친 뒤 모듈 페이지의 Log 필드를 확인하십시오.
실시간 요금이 전혀 요청되지 않음: 실시간 요금(API) — 인도네시아 아래의 상태 줄에 이유가 표시됩니다: 쇼핑몰 주소가 인도네시아가 아니거나, 출발지 구역을 감지할 수 없음(두 구역 코드를 모두 입력하십시오), 두 코드 중 하나만 입력됨, 입력한 코드가 구역 코드 매핑에서 짝을 이루지 않음, 또는 IDR conversion rate가 없음.
요청 한도 도달(HTTP 429): 실시간 요청은 1시간 동안 일시 중지되며, 그 동안 요금표가 사용됩니다.
요금의 통화: 요금표와 조건은 쇼핑몰의 기본 통화로 되어 있습니다. 실시간 요금은 루피아(IDR)로 제공되며, 쇼핑몰 통화가 IDR이 아니면 IDR conversion rate로 환산됩니다.
페이지에 Ninja Van 운송업체를 찾을 수 없다고 표시됨: Shipping > Carriers에서 운송업체가 삭제되었습니다. Modules > Module Manager에서 모듈을 재설정하면 다시 생성됩니다.
개발자: 자체 지역(Kecamatan) 필드를 가진 쇼핑몰은 actionVfdNjvnTariffZone 훅을 통해 구역 코드를 제공할 수 있습니다.
제거
Modules > Module Manager로 이동하여 VibeFox Ninja Van 옆의 메뉴를 열고 Uninstall을 선택하십시오. 라이선스 키와 라이선스 상태는 항상 삭제됩니다. 캐시된 요금은 항상 삭제됩니다. Remove data on uninstall이 켜져 있으면 운송업체가 삭제되고(주문은 기록을 유지합니다), 설정, 마지막 Tariff API 상태, 로그가 삭제됩니다. 꺼져 있으면 운송업체만 비활성화되고 모든 설정이 보존됩니다. 모듈을 다시 설치하면 저장된 운송업체가 제거 전의 상태를 되돌려 받습니다.
Ninja Van은 각 소유자의 상표입니다. 이 모듈은 Ninja Van과 제휴하거나 Ninja Van의 승인을 받은 것이 아닙니다.
