VibeFox Andreani for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상. 모듈은 이전 버전의 PHP에서는 설치되지 않습니다.
Andreani 계정(실시간 요금에만 필요): 실시간 요금은 Andreani 견적 API를 사용합니다. Andreani는 비즈니스 고객에게 API 자격 증명, 고객 코드, 계약 번호를 발급하며, 보통 월 약 300건 이상의 배송부터 이용할 수 있습니다. developers.andreani.com을 참고하거나 ventapyme@andreani.com으로 문의하십시오. API 사용자 이름과 비밀번호, 고객 코드, 계약 번호가 필요합니다. Andreani는 서비스(자택 배송, 지점 수령)마다 별도의 계약을 발급합니다. API 액세스가 없으면 고정 요금을 사용하십시오. 지점 선택기는 자격 증명 없이도 작동합니다.
VibeFox license key: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. 관리자 페이지에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Andreani를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 입력한 다음 Activate를 클릭합니다(라이선스 키 참조).
4. 이름, 요금 출처, 국가별 요금(예: AR=5000)을 설정하고, 실시간 요금을 사용하는 경우 API 자격 증명, 고객 코드, 계약 번호를 설정합니다(설정 참조). Save를 클릭합니다.
설치 시 모듈은 두 개의 운송업체를 만듭니다:
두 운송업체 모두 아르헨티나 지역과 모든 고객 그룹에 할당됩니다. 지역, 고객 그룹, 배송 시간, 로고, 크기 제한은 Shipping > Carriers에서 변경할 수 있습니다. 그곳에서 요금을 설정하지 마십시오. 요금은 항상 모듈에서 가져옵니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Andreani > Configure. 각 섹션에는 자체 Save 버튼이 있으며, 이 버튼은 페이지 전체를 저장합니다. 저장 후에는 Settings saved. Cached token, branches and rates were cleared. 메시지가 표시됩니다. 누락된 설정(API 자격 증명, 계약 번호, ARS 환율, 아르헨티나 요금 없음, 삭제된 운송업체)에 대한 경고는 페이지 상단에 표시됩니다. 모듈이 쇼핑몰의 무게 또는 치수 단위를 인식하지 못하면 경고가 표시되며, 이 경우 무게는 kg, 치수는 cm로 읽힙니다. 저장할 때 64자를 초과하는 이름이나 Max weight (kg)보다 큰 Min weight (kg)는 거부되며, 아무것도 저장되지 않습니다. 숫자가 아닌 값, 음수, 또는 0 이하의 ARS exchange rate는 저장되지 않으며, 경고에 해당 필드가 표시됩니다.
General
Enable/Disable: Andreani 배송을 켜거나 끕니다. Shipping > Carriers에 있는 기본 운송업체의 상태와 같은 스위치입니다. 두 번째 옵션에는 별도의 스위치가 있습니다.
Name: 체크아웃에서 고객에게 표시되는 운송업체 이름. 기본값: Andreani. 필수.
Tax status: None, 또는 세금 규칙 중 하나를 선택한 Taxable. 세금 규칙을 사용하면 쇼핑몰이 배송비에 세금을 추가하므로 API 요금은 IVA 없이 사용됩니다. None을 선택하면 API 요금은 IVA 포함 금액으로 사용됩니다. 이 설정은 두 Andreani 운송업체 모두에 저장됩니다.
Andreani API(실시간 요금에 필요)
Environment: Sandbox / QA (apisqa.andreani.com)(기본값) 또는 Production (apis.andreani.com). 자격 증명이 속한 환경을 사용하십시오.
API username: Andreani API 사용자 이름.
API password: Andreani API 비밀번호. 저장 후 이 필드는 비어 있으며 Saved - leave empty to keep it. Clearing the API username removes it too.가 표시됩니다. 변경하려는 경우에만 새 값을 입력하십시오.
Client code: Andreani가 제공하는 고객 코드(código de cliente), 예: CL0000000.
Contract number: 요금에 사용되는 서비스의 계약. 예: 자택 배송. 두 번째 옵션은 지점 수령 등 다른 계약을 사용할 수 있습니다.
Origin branch code: 견적에 사용하는 선택적 출발 지점(sucursalOrigen). 비워 두면 계약에 설정된 지점을 사용합니다.
배송 및 요금
Delivery modality: 기본 운송업체의 배송 방식. 앞부분은 Andreani가 소포를 가져가는 곳(귀하의 주소 또는 소포를 맡기는 지점)을 나타냅니다. 뒷부분은 고객이 소포를 받는 곳을 나타냅니다.
Rate source: 요금 계산 방식.
Country prices: 목적지 국가별 고정 요금. 쇼핑몰의 기본 통화이며 세금 제외, 한 줄에 한 국가, CC=PRICE 형식으로 입력합니다(예: AR=5000). 고정 모드에서 사용되며 API 실패 시 대체 요금으로도 사용됩니다. 줄이 없는 국가에는 고정 요금이 없습니다. 다른 형식의 줄은 무시되며, 저장할 때 경고에 나열됩니다.
ARS exchange rate: Andreani는 아르헨티나 페소로 견적을 냅니다. 쇼핑몰의 기본 통화가 ARS가 아닌 경우에만 필요합니다: 1 ARS의 쇼핑몰 통화 가격(예: 0.001). 없으면 API 요금은 사용되지 않습니다.
Default product weight (kg): API 요금을 요청하고 무게 제한을 확인할 때 무게가 없는 상품에 사용됩니다. 비워 두면 0.5 kg입니다.
Calculation type: Per order는 요금을 한 번만 청구합니다. Per item (price x number of items)는 Country prices의 고정 요금에 장바구니의 상품 수를 곱합니다. Andreani 실시간 요금은 이미 장바구니 전체에 대한 금액이므로 곱하지 않습니다.
이용 조건
Min weight (kg): 운송업체가 표시되기 위한 최소 장바구니 무게. 0은 제한 없음을 뜻합니다.
Max weight (kg): 최대 장바구니 무게. 초과하면 운송업체가 숨겨집니다. 비워 두면 100 kg, 0은 제한 없음을 뜻합니다.
Minimum subtotal: 장바구니 소계(배송이 필요한 상품, 할인 후, 세금 제외)가 이 금액 이상일 때만 운송업체를 표시합니다. 항상 표시하려면 비워 두십시오.
Ignore shipping zones: 지역을 설정하지 않고 아래 국가에 Andreani를 제공합니다. 켜면 두 운송업체가 모든 지역에 연결되고, 나중에 만든 지역도 즉시 연결됩니다. 끄면 운송업체는 이전 지역을 되찾습니다.
Countries: 이 모드의 목적지 국가. 비워 두면 모든 국가를 허용합니다. Ignore shipping zones가 켜져 있을 때만 사용됩니다.
무료 배송
Free shipping: 무료 배송 기준 금액을 켭니다.
Free shipping from: 배송비가 무료가 되는 장바구니 소계. Free shipping이 켜져 있어야 합니다.
두 번째 옵션
자체 이름, 배송 방식, 계약을 가진 두 번째 Andreani 운송업체입니다. 예를 들어 기본 운송업체는 "a domicilio", 여기는 "retiro en sucursal"로 설정하여 두 가지를 모두 제공할 수 있습니다. 그 밖의 모든 설정은 공유됩니다.
Enable second option: 두 번째 운송업체를 켜거나 끕니다. Shipping > Carriers에 있는 상태와 같은 스위치입니다. 기본값: 끔.
Second option name: 체크아웃에 표시되는 이 옵션의 이름. 기본값: Andreani - branch pickup. 필수.
Delivery modality: Use global setting 또는 네 가지 방식 중 하나. 기본값: Door to branch (Puerta a Sucursal).
Contract number: Andreani는 서비스(자택 배송, 지점 수령)마다 별도의 계약을 발급합니다. 비워 두면 전체 계약을 사용합니다.
체크아웃의 지점 선택기(door to branch 및 branch to branch일 때 표시)
Province select width: 주 목록의 CSS 너비. 예: 100% 또는 300px. 기본값: 100%.
Branch select width: 지점 목록의 CSS 너비. 예: 100% 또는 400px. 기본값: 100%.
고급
Debug log: API 요청과 요금 계산을 모듈 폴더 안의 logs/vfd_andr_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 오류는 항상 기록됩니다. 자격 증명과 토큰은 기록되지 않습니다.
Log: 로그의 크기와 최근 항목을 보여줍니다. Clear log를 클릭하면 비워집니다.
Remove data on uninstall: 켜져 있으면 모듈을 제거할 때 모든 모듈 설정과 운송업체가 삭제됩니다. 꺼져 있으면 제거 시 운송업체만 비활성화됩니다. 주문에 저장된 지점 데이터는 항상 보존됩니다.
체크아웃에서의 동작
배송 단계에서 PrestaShop은 각 Andreani 운송업체의 요금을 모듈에 요청합니다. 실물 상품만 계산에 포함됩니다. 가상 상품은 무게를 더하지 않으며 소계에도 포함되지 않습니다. 모듈은 국가(Ignore shipping zones가 켜져 있을 때), 장바구니 무게(상품 무게는 kg로 변환되며, 무게가 없는 상품은 Default product weight (kg)를 사용), Minimum subtotal을 확인합니다.
고정 모드에서는 요금을 Country prices에서 가져옵니다. 실시간 모드에서는 모듈이 Andreani API에 로그인하여 목적지 우편번호, 계약, 고객 코드, kg 단위 무게, 상품 치수로 계산한 부피, 신고 가치(ARS 기준 장바구니 소계)를 포함해 견적을 요청합니다. 실시간 요금은 유효한 아르헨티나 우편번호에 대해서만 요청됩니다. 쇼핑몰 통화가 ARS가 아니면 ARS 금액은 ARS exchange rate로 환산됩니다. 요금은 쇼핑몰의 기본 통화로 계산된 다음 고객의 장바구니 통화로 표시됩니다.
로그인 토큰은 23시간 캐시되며, Andreani가 거부하면 자동으로 갱신됩니다. 견적은 1시간 캐시됩니다. API 호출이 실패하면 5분 동안 재시도하지 않습니다. API 오류는 고객에게 표시되지 않습니다. 운송업체는 숨겨지거나, 대체 모드에서는 고정 요금이 사용됩니다. 그 이유는 로그에 기록됩니다.
Free shipping이 켜져 있고 장바구니 소계가 Free shipping from에 도달하면 요금은 0입니다. 무료 배송은 운송업체에 요금이 있는 경우에만 적용됩니다. Andreani API가 요금을 반환하지 않고 대체할 고정 요금도 없으면 운송업체는 표시되지 않습니다.
주문이 있는 운송업체를 Shipping > Carriers에서 편집하면 PrestaShop은 이를 운송업체의 새 버전으로 저장합니다. 모듈은 새 버전을 자동으로 따릅니다.
모듈은 Andreani 배송을 생성하거나, 라벨을 인쇄하거나, 소포를 추적하지 않습니다. 이러한 작업은 Andreani 웹 포털을 이용해 주십시오.
픽업 포인트
Door to branch 또는 Branch to branch 운송업체를 선택하면 배송 단계에서 그 아래에 주 목록과 지점 목록이 나타납니다. 주는 배송 주소에서 미리 선택됩니다. 지점 목록은 Andreani의 공개 지점 API에서 가져오며 12시간 동안 캐시됩니다. 소포를 전달하지 않는 지점은 목록에 나타나지 않습니다. 이용 가능한 지점이 없으면 고객에게 No Andreani branches available right now. Please try again later or choose another shipping method.가 표시됩니다.
선택 내용은 고객이 선택하는 즉시 장바구니에 저장됩니다. Andreani의 현재 목록에 있는 지점만 허용됩니다. 지점이 없으면 배송 단계의 Continue와 결제 단계의 주문 버튼이 진행되지 않으며, 고객에게 Please select an Andreani pickup branch.가 표시됩니다. 서버는 고객이 계속 진행할 때 지점을 다시 확인합니다. 지점이 목록에서 사라졌다면 고객에게 The selected Andreani branch is not available. Please choose another one.가 표시됩니다.
고객이 다른 운송업체로 바꾸기 전에 Andreani에서 선택한 지점은 주문에 포함되지 않습니다.
주문
주문에는 배송 방식이 저장되며, 지점을 사용하는 방식의 경우 선택한 지점도 저장됩니다.
Admin order page: Andreani 블록에 배송 방식과 지점(이름, ID, 주)이 표시됩니다. Edit를 클릭하고 다른 주와 지점을 선택한 후 Save를 클릭하면 변경할 수 있습니다. Branch updated.가 표시됩니다. Andreani 목록의 지점만 저장할 수 있습니다. 목록을 사용할 수 없으면 지점을 변경할 수 없습니다.
고객: 지점은 주문 확인 페이지와 주문 상세 페이지에 Andreani pickup branch:로 표시됩니다.
이메일: 주문 확인 이메일과 쇼핑몰로 발송되는 신규 주문 이메일(Mail alerts 모듈)에서 지점은 운송업체 이름에 추가됩니다. 쇼핑몰 이메일에는 지점 ID도 표시됩니다.
기존 주문은 지점 데이터를 그대로 유지합니다.
라이선스 키
이 모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox Andreani 라이선스 블록은 Modules > Module Manager > VibeFox Andreani > Configure 페이지에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 붙여 넣고 Activate를 클릭하십시오. 그러면 블록에 마스킹된 키, 상태(라이선스 유효 기간 종료일, 도메인 등)가 표시되고, 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key 버튼이 나타납니다. 그 아래에는 Product: presta-shipping-andreani 줄과 Manage licenses and domains in your account 링크가 있으며, 이 링크는 vibefox.net 계정을 엽니다. 모듈의 Configure 권한이 있는 직원만 키를 변경할 수 있습니다. 블록의 텍스트는 백오피스 언어를 따릅니다(영어와 러시아어 포함).
키가 승인되지 않으면 블록에 이유가 표시됩니다. 예: Key not found, This key belongs to another product, Domain limit reached 또는 날짜와 함께 표시되는 License expired on. 쇼핑몰 주소가 변경된 후, 또는 계정에서 도메인 슬롯을 해제한 후에는 Check now를 클릭하십시오. 라이선스 서버에 연결할 수 없으면 모듈은 마지막으로 확인된 상태로 계속 작동합니다.
키 하나는 도메인 하나에서 작동합니다. 기본 쇼핑몰의 도메인이며, 멀티스토어 구성에서도 마찬가지입니다. 쇼핑몰에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 Andreani 운송업체는 체크아웃에서 고객에게 표시되지 않으며 요금도 계산되지 않습니다. PrestaShop 스토어프론트는 백오피스에 로그인했는지 알지 못하므로, 운송업체는 관리자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 표시됩니다. 기존 주문에는 영향을 주지 않습니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원을 받으려면 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번 확인합니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 초기화하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
체크아웃에 Andreani가 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지 확인하십시오(두 번째 운송업체의 경우 Enable second option도). Shipping > Carriers에서 운송업체가 고객 국가의 지역과 고객 그룹을 포함하는지 확인하거나, Ignore shipping zones를 켜고 Countries를 확인하십시오. Country prices에 해당 국가의 줄이 있는지(고정 요금 또는 대체용) 확인하고, 무게 제한과 Minimum subtotal도 확인하십시오. Configure 페이지 상단의 경고를 읽으십시오. 또한 상품 페이지에서 특정 운송업체로 상품이 제한되어 있을 수도 있습니다.
실시간 요금이 나타나지 않음: Debug log를 켜고 체크아웃을 새로고침한 다음 모듈 페이지의 Log 필드를 확인하십시오. 이유가 표시됩니다: 자격 증명 또는 계약 번호 누락, 로그인 실패(잘못된 사용자 이름, 비밀번호 또는 환경), 아직 유효한 아르헨티나 우편번호가 없음, 환율 없음, 또는 Andreani HTTP 오류. Andreani API, fixed price if the API fails를 사용하면 문제를 해결하는 동안에도 고객은 고정 요금을 받습니다.
쇼핑몰이 아르헨티나 페소를 사용하지 않음: ARS exchange rate를 1 ARS의 쇼핑몰 기본 통화 가치로 설정하십시오.
배송 세금이 잘못된 것 같음: Tax status에서 세금 규칙을 사용하면 IVA가 없는 Andreani 요금이 사용되고 PrestaShop이 자체 세금을 추가합니다. None이면 IVA 포함 요금이 사용되고 세금이 추가되지 않습니다. 세금 기능이 켜져 있고 아르헨티나용 세금 규칙이 설정되어 있는지 확인하십시오.
목록에 지점이 없음: Andreani 지점 API가 응답하지 않았습니다. 실패한 요청은 5분 후 재시도됩니다. 로그를 확인하십시오.
변경 후 요금이 오래된 것 같음: 모듈 페이지에서 Save를 클릭하십시오. 캐시된 토큰, 지점 목록, 요금이 지워집니다.
Andreani 운송업체를 찾을 수 없다는 페이지 메시지: 운송업체가 Shipping > Carriers에서 삭제되었습니다. Modules > Module Manager에서 모듈을 재설정하면 다시 만들어집니다.
제거
Modules > Module Manager로 이동하여 VibeFox Andreani 옆의 메뉴를 열고 Uninstall을 선택합니다. 라이선스 키와 라이선스 상태는 항상 제거됩니다. 캐시된 토큰, 지점 목록, 요금도 항상 제거됩니다. Remove data on uninstall이 켜져 있으면 운송업체가 삭제되고(주문은 기록을 유지함), 설정, 로그, 주문이 없는 장바구니의 지점 선택 항목이 제거됩니다. 꺼져 있으면 운송업체만 비활성화되고 모든 설정은 유지됩니다. 모듈을 다시 설치하거나 모듈을 Reset하면 두 운송업체 모두 이전 상태로 돌아갑니다. 주문에 저장된 지점 데이터는 절대 삭제되지 않습니다.
Andreani는 각 소유자의 상표입니다. 이 모듈은 Andreani와 제휴 관계가 없으며 Andreani의 승인을 받지 않았습니다.
