Cerințe
- WordPress 6.5 sau mai nou, WooCommerce 8.9 sau mai nou
- PHP 8.1 sau mai nou, cu extensia
sodium(pentru criptarea credențialelor) - Cont de client cu acces API la fiecare curier pe care vrei să-l folosești (nu e necesar pentru modul demo)
Instalare
- WordPress › Module › Adaugă › Încarcă modul › alege
expedro-0.3.1.zip› Instalează › Activează. - Apare meniul Expedro, cu Dashboard și Setări.
- Expedro pornește în mod demo: poți testa imediat, fără conturi la curieri.
- Opțional, adaugă în
wp-config.phpo cheie proprie de criptare:define('EXPEDIO_ENCRYPTION_KEY', 'un-șir-lung-aleatoriu');
Mod demo
Toți curierii sunt simulați. Pentru scenarii, folosește ultima cifră a numărului comenzii: 7 înseamnă colet refuzat și returnat, 9 înseamnă livrare eșuată, apoi reușită. Statusurile avansează câte un pas la 2 minute. Din Setări › Mod demo poți face un curier indisponibil, cu timeout sau cu erori aleatorii, ca să vezi cum se comportă checkout-ul.
În modul demo, clienții nu primesc emailuri, iar AWB-urile apar marcate „DEMO”. Oprește modul demo înainte de lansare.
Configurare curieri
Setări › Curieri: bifează curierul, completează datele de acces și apasă Testează conexiunea. Parolele se salvează criptat și nu se mai afișează. Pentru fiecare curier alegi sursa tarifelor: din API (live) sau dintr-un tabel din contract (mai rapid, fără apel la checkout). GLS nu are API de tarife, deci folosește tabelul.
Metoda de livrare
- WooCommerce › Setări › Livrare › adaugă o zonă „România” (regiune: România).
- Adaugă metoda Expedro — curieri cu tarif live.
- În Expedro › Setări › General alegi strategia (cel mai ieftin, cel mai rapid, echilibrat, ordinea ta), adaosul, rotunjirea, pragul de transport gratuit și regulile de selecție.
Checkout și lockere
Funcționează cu checkout-ul clasic (shortcode) și cu cel pe blocuri. Când clientul alege livrarea în locker, apare harta unificată; tariful se recalculează pentru curierul lockerului ales. Comanda nu poate fi plasată fără locker. Autocompletarea localităților folosește nomenclatorul SIRUTA.
AWB și etichete
Din comandă: Compară tarife › Emite AWB › Printează eticheta. Din lista de comenzi: acțiunea în masă „Expedro: emite AWB”. Automat: alegi statusul la care se emite AWB-ul. Dacă clientul a ales un locker, curierul e fixat la al lockerului.
Tracking și emailuri
Creează o pagină cu shortcode-ul [expedio_tracking] și alege-o în Setări › Tracking. Statusurile se actualizează automat la 30 de minute (Action Scheduler). Emailul cu AWB are subiect și text editabile, cu variabilele {order}, {awb}, {carrier}, {tracking_url} și altele.
Retururi
Pe pagina de tracking, clientul cere returul în termenul ales de tine (implicit 14 zile de la livrare). Tu aprobi din comandă, iar Expedro emite AWB-ul de retur, cu ridicare de la client. Istoricul retururilor e în Dashboard › Retururi.
Customer Intelligence
Caseta „Istoric client” arată comenzile anterioare, rezultatul lor, scorul și factorii care l-au produs. Potrivirile doar după telefon sunt arătate separat și nu intră în scor decât dacă activezi asta. Ponderile și pragurile se setează în Setări › Customer Intelligence. Scorul nu ia nicio decizie: poți marca manual un client „fără ramburs”.
API REST
Bază: /wp-json/expedio/v1/, cu header-ul X-Expedro-Key. Cheile au drepturi separate (quote, shipments, track, label, customer) și se generează din Setări › API.
curl -X POST https://magazin.ro/wp-json/expedio/v1/quote \
-H "X-Expedro-Key: exp_…" -H "Content-Type: application/json" \
-d '{"recipient":{"county":"Mureș","city":"Reghin"},"weight":2,"cod":150}'
Endpoint-uri: POST /quote, POST /shipments, GET /track/{curier}/{awb}, GET /label/{curier}/{awb}, GET /lockers (public), GET /health, POST /customer (doar cu dreptul „customer”).
Securitate și GDPR
- Credențialele curierilor sunt criptate în baza de date (libsodium).
- Jurnalele maschează parolele, tokenurile, telefoanele, emailurile și adresele.
- Istoricul clienților păstrează doar hash-uri și se șterge automat după termenul ales.
- Export și ștergere de date din Instrumente › Confidențialitate.
- Fonturile și harta (Leaflet) sunt găzduite local; doar fundalul hărții vine de la furnizorul de tile-uri ales.
Probleme frecvente
- Nu apar tarife: verifică zona de livrare, adresa expeditorului și Dashboard › Jurnal.
- Un curier lipsește din checkout: probabil e în pauză după erori; vezi alertele din Dashboard.
- Lockerele nu apar: lista se descarcă în fundal o dată pe zi; prima descărcare poate dura câteva minute.