Cum să integrezi un API de urmărire a expedierilor în magazinul tău de comerț electronic
Pentru a integra un API de urmărire a expedierilor în magazinul dvs. de comerț electronic, conectați sistemul de comenzi la furnizorul de urmărire, trimiteți datele despre expediere și transportator printr-o solicitare securizată pe partea de server, salvați evenimentele de urmărire normalizate și afișați starea rezultată în interfețele pentru clienți și echipa de asistență. O implementare fiabilă înseamnă mai mult decât adăugarea unui câmp pentru numărul de urmărire: aceasta trebuie să gestioneze selectarea transportatorului, actualizările de stare, excepțiile de livrare, reîncercările, confidențialitatea și modul în care clienții folosesc efectiv informațiile post-achiziție.
Acest ghid explică o abordare practică pentru integrare, destinată proprietarilor de magazine, dezvoltatorilor și echipelor operaționale. Folosește documentația oficială 17TRACK pentru Tracking API ca punct de referință, însă aceleași principii de planificare se aplică și atunci când evaluați un alt furnizor multi-transportator.
Decideți ce trebuie să realizeze integrarea
Începeți cu rezultatul de afaceri, nu cu endpointul API. Majoritatea magazinelor doresc să reducă solicitările de tipul „Unde este comanda mea?”, să le ofere cumpărătorilor o imagine clară asupra livrării și să ajute echipele operaționale să identifice expedierile întârziate înainte ca un client să se plângă. Aceste obiective necesită date și fluxuri de lucru diferite.
- Vizibilitatea pentru clienți: afișați starea actuală a expedierii, informațiile estimate despre livrare atunci când sunt disponibile, detaliile transportatorului și cel mai recent eveniment relevant.
- Vizibilitatea operațională: permiteți personalului să găsească expedierile întârziate, blocate, returnate sau cu excepții, indiferent de transportator.
- Comunicarea automatizată: declanșați e-mailuri, SMS-uri sau alte notificări aprobate atunci când o expediere ajunge într-o stare definită.
- Consecvența datelor: transformați diferitele etichete ale evenimentelor transportatorilor într-un set mai restrâns de stări pe care magazinul dvs. le poate utiliza în mod fiabil.
Definiți aceste rezultate înainte de a alege o metodă de implementare. Un API de urmărire poate furniza date despre expediere, dar nu decide automat care evenimente merită o notificare pentru client sau cum ar trebui magazinul dvs. să gestioneze o problemă legată de adresă.
Alegeți arhitectura de integrare potrivită
O arhitectură tipică are patru straturi: platforma de comerț, un serviciu de integrare, furnizorul de urmărire și experiența destinată clienților. Serviciul de integrare poate fi o aplicație backend, un sistem de gestionare a comenzilor sau un flux de lucru serverless. Păstrarea acestei logici pe server este de obicei mai sigură decât plasarea acreditărilor API în codul browserului.
Fluxul de bază arată astfel:
- O comandă plătită este procesată pentru expediere și primește un număr de urmărire și un transportator.
- Backendul dvs. trimite detaliile expedierii către furnizorul de urmărire.
- Furnizorul returnează un identificator de urmărire sau date de urmărire conform designului propriului API.
- Sistemul dvs. salvează referința furnizorului și mapează evenimentele expedierii la stări interne.
- Un proces de actualizare programat sau o notificare de eveniment acceptată reîmprospătează expedierea.
- Magazinul online, pagina comenzii, instrumentele de asistență și serviciul de notificări citesc din propriile date normalizate.
Nu faceți ca fiecare afișare de pagină să apeleze transportatorul sau API-ul de urmărire. Un astfel de design poate genera experiențe lente pentru clienți, solicitări duplicate, probleme legate de limitele de trafic și rezultate inconsecvente. Salvați cea mai recentă stare de urmărire acceptată în baza de date și reîmprospătați-o prin joburi controlate în fundal sau prin mecanismul de actualizare acceptat de furnizor.
Confirmați documentația furnizorului înainte de a scrie cod
Înainte de implementare, consultați documentația oficială a API-ului furnizorului pentru autentificare, formatele solicitărilor, câmpurile răspunsurilor, transportatorii acceptați, comportamentul în caz de eroare, mecanismele de actualizare și cerințele contului. 17TRACK oferă o pagină dedicată produsului Tracking API și documentație pentru dezvoltatori. Considerați aceste pagini drept sursa de autoritate pentru comportamentul actual al API-ului, în loc să vă bazați pe exemple copiate de pe forumuri sau din tutoriale vechi de integrare.
Construiți o listă scurtă de cerințe pe baza documentației:
- Cum sunt emise, stocate, reînnoite și revocate acreditările API?
- Solicitarea necesită un cod de transportator sau serviciul poate identifica transportatorul pe baza numărului de urmărire?
- Ce câmpuri ale răspunsului identifică expedierea, starea, locația, marcajele temporale și mesajul de excepție?
- Cum sunt transmise actualizările asincrone, dacă acel cont le acceptă?
- Care sunt limitele documentate pentru solicitări, regulile de facturare, așteptările privind expirarea și codurile de eroare?
- Cum trebuie gestionate numerele de urmărire duplicate, numerele invalide, transportatorii necunoscuți și expedierile livrate?
Nu deduceți o funcție doar din numele unui produs. De exemplu, „în timp real” poate descrie poziționarea unui produs, nu o garanție că fiecare eveniment al transportatorului apare imediat. Implementarea dvs. ar trebui să explice că scanările transportatorului pot fi întârziate și că un API nu poate crea o scanare pe care transportatorul nu a raportat-o.
Pregătiți datele despre comandă și expediere
Momentul cel mai util pentru a crea urmărirea este, de obicei, procesarea expedierii, nu crearea comenzii. O comandă poate fi plătită, dar încă neambalată, iar un număr de urmărire poate fi generat înainte ca coletul să fie acceptat de transportator. Decideți ce eveniment din fluxul dvs. de procesare a comenzilor ar trebui să creeze înregistrarea expedierii.
Cel puțin, înregistrarea internă a expedierii ar trebui să distingă următoarele valori:
- ID-ul intern al comenzii și ID-ul procesării expedierii
- Numărul de urmărire
- Numele sau codul transportatorului
- Țara sau regiunea de destinație, atunci când este necesar din punct de vedere operațional
- ID-ul de urmărire al furnizorului sau referința abonamentului, dacă este returnată
- Starea normalizată actuală
- Marcajul temporal al ultimului eveniment și marcajul temporal al ultimei sincronizări
- Răspunsul brut al furnizorului sau o referință de audit controlată
Păstrați separat datele despre comandă și datele despre expediere. O comandă poate conține mai multe colete, expedieri parțiale sau transportatori diferiți. Presupunerea că unei comenzi îi corespunde un singur număr de urmărire eșuează adesea atunci când un depozit expediază articolele separat.
Utilizați un proces idempotent. Dacă sistemul de procesare a comenzilor reîncearcă aceeași solicitare, integrarea ar trebui să actualizeze expedierea existentă, nu să creeze abonamente duplicate sau mesaje duplicate pentru clienți. O cheie practică de idempotență poate combina ID-ul intern al procesării expedierii, identificatorul transportatorului și numărul de urmărire, în funcție de cerințele furnizorului.
Normalizați stările transportatorilor pentru clienți
Transportatorii folosesc etichete și secvențe de evenimente diferite. Magazinul dvs. ar trebui să mențină un model intern restrâns de stări, precum Informații primite, În tranzit, În curs de livrare, Livrată, Excepție și Returnată. Păstrați evenimentul original al transportatorului pentru personalul de asistență, dar utilizați starea normalizată pentru logica magazinului online.
Regulile de normalizare trebuie să fie explicite. Un eveniment de tipul „etichetă creată” nu ar trebui prezentat ca dovadă că pachetul este în mișcare. „Livrată” ar trebui tratată ca un eveniment raportat de transportator, nu ca o garanție că clientul a localizat fizic coletul. O excepție nu ar trebui transformată în tăcere în „în tranzit” doar pentru că expedierea poate continua ulterior.
Definiți, de asemenea, prioritatea stărilor și gestionarea regresiilor. Un flux de date întârziat al transportatorului poate ajunge într-o ordine greșită. Comparați marcajele temporale ale evenimentelor atunci când sunt disponibile, înregistrați evenimentul brut și evitați înlocuirea unei stări mai noi de tip „livrată” cu o stare mai veche de tip „în tranzit”. Dacă marcajele temporale lipsesc sau sunt ambigue, marcați înregistrarea pentru o actualizare prudentă în loc să inventați o secvență.
Construiți fluxul solicitării pe partea de server
Backendul dvs. ar trebui să valideze datele primite despre procesarea expedierii înainte de a apela furnizorul de urmărire. Verificați dacă numărul de urmărire este prezent, eliminați spațiile accidentale, validați formatul așteptat acolo unde este potrivit și confirmați că valoarea transportatorului este acceptabilă. Nu respingeți numere de urmărire neobișnuite, dar valide, doar pentru că nu corespund unui tipar local restrictiv.
Un flux de solicitare independent de furnizor poate fi reprezentat astfel:
receive fulfillment event
validate order and shipment fields
check for an existing idempotency key
send the documented tracking request from the server
store the provider response and internal shipment record
queue a refresh or process the supported update event
publish only approved fields to the storefront
Utilizați intervale scurte de expirare, reîncercări limitate și backoff exponențial pentru erori temporare. Nu reîncercați fiecare eroare. O eroare de autentificare, o solicitare invalidă sau un transportator neacceptat necesită de obicei corectare, nu apeluri repetate. Înregistrați un ID de corelare, rezultatul solicitării și categoria erorii furnizorului, dar evitați să scrieți în jurnalele aplicației chei API, adrese complete ale clienților sau informații personale inutile.
Păstrați răspunsul furnizorului separat de modelul destinat clienților. Astfel este mai ușor să schimbați furnizorii, să corectați o regulă de mapare și să limitați informațiile expuse printr-o pagină publică a comenzii.
Proiectați experiența de urmărire pentru clienți
O pagină de urmărire ar trebui să răspundă rapid la trei întrebări: care este starea actuală, ce s-a întâmplat cel mai recent și ce ar trebui să facă clientul în continuare? Afișați referința comenzii, numărul expedierii într-un format care protejează confidențialitatea, numele transportatorului, ora ultimului eveniment și o explicație clară pentru excepții.
Nu afișați o cronologie goală ca și cum ar fi o eroare tehnică. Înainte de prima scanare a transportatorului, explicați că informațiile despre expediere au fost primite și că este posibil ca mișcarea să nu fie încă vizibilă. Pentru o excepție, oferiți o explicație într-un limbaj simplu doar atunci când datele sursă o susțin. Dacă transportatorul raportează o problemă de adresă, trimiteți către procesul de asistență sau acțiunea de servicii pentru clienți pe care compania dvs. o poate furniza efectiv.
Pentru magazinele construite pe Shopify sau pe o altă platformă de comerț, verificați modul în care platforma expune evenimentele de procesare a expedierii, conturile clienților, paginile de stare a comenzilor și șabloanele de notificări. Documentația oficială pentru dezvoltatori Shopify include resurse pentru webhook-uri și datele despre procesarea expedierii. API-urile platformei și documentația cu versiuni se pot schimba, așa că confirmați versiunea utilizată de aplicația dvs. înainte de activitatea de producție.
Utilizați notificările cu atenție
Evenimentele expedierii sunt declanșatoare utile, dar trimiterea unui mesaj pentru fiecare scanare a transportatorului poate provoca oboseală informațională. Definiți reguli de afaceri, cum ar fi notificarea la crearea expedierii, progresul relevant în tranzit, ieșirea pentru livrare, livrarea și anumite excepții. Suprimați duplicatele și adăugați un interval minim pentru mesajele repetate despre întârzieri.
Separați alertele operaționale de notificările pentru clienți. O echipă de asistență poate avea nevoie să știe că o expediere nu s-a modificat de câteva zile, în timp ce un client poate avea nevoie de un mesaj doar atunci când transportatorul raportează o excepție concretă. Pragul de timp ar trebui să reflecte nivelul serviciului, destinația, transportatorul și metoda de expediere, nu un număr universal fără bază operațională.
Testați folosind scenarii reale de livrare
Un răspuns reușit pentru un singur număr de urmărire nu este suficient pentru lansarea în producție. Creați o matrice de testare care să includă mai mulți transportatori, țări, tipuri de expediere și stări ale evenimentelor. Testați cel puțin:
- O expediere nou creată, fără scanare a transportatorului
- O expediere normală în tranzit
- O expediere aflată în curs de livrare
- O expediere livrată
- O excepție sau un eveniment legat de adresă
- O expediere returnată
- Un număr de urmărire invalid
- Un eveniment duplicat de procesare a expedierii
- Un răspuns întârziat al furnizorului sau o expirare
- Un eveniment sosit într-o ordine greșită
Măsurați mai mult decât disponibilitatea API-ului. Verificați dacă este actualizată comanda corectă, dacă clientul vede un limbaj ușor de înțeles, dacă notificările duplicate sunt suprimate și dacă personalul de asistență poate identifica evenimentul original al transportatorului. Începeți mai întâi cu o lansare limitată, păstrați o soluție operațională alternativă și monitorizați categoriile de erori după lansare.
Securitate, confidențialitate și întreținere
Stocați acreditările într-un manager de secrete sau într-o variabilă de mediu protejată, nu în codul temei, codul mobil, sistemul de control al versiunilor sau solicitările browserului. Restricționați accesul la datele despre expedieri în funcție de rol, utilizați HTTPS și verificați cât timp sunt păstrate răspunsurile brute și câmpurile asociate clienților.
Consultați periodic documentația furnizorului și versiunea API a platformei dvs. de comerț. Compatibilitatea cu transportatorii, numele evenimentelor, cerințele de autentificare și comportamentul webhook-urilor platformei se pot schimba. Păstrați regulile de mapare a stărilor configurabile, documentați presupunerile care stau la baza lor și faceți posibilă redarea sau reconcilierea unei expedieri fără trimiterea unui alt mesaj către client.
API-ul 17TRACK este o opțiune relevantă de evaluat atunci când magazinul dvs. are nevoie de o integrare dedicată de urmărire pentru mai mulți transportatori. Alegerea potrivită depinde în continuare de transportatorii utilizați, țările deservite, comportamentul actualizărilor documentat pentru contul dvs., volumul estimat de solicitări și controalele operaționale necesare echipei. Confirmați aceste aspecte în documentația oficială și într-o dovadă de concept controlată înainte de a adopta un design pentru producție.
Întrebări frecvente
Ar trebui creată urmărirea atunci când este plasată comanda?
De obicei, nu. Creați sau activați înregistrarea expedierii atunci când fluxul dvs. de procesare are un transportator și un număr de urmărire. Crearea acesteia la finalizarea comenzii poate produce înregistrări pentru comenzi care sunt anulate, neprocesate sau împărțite ulterior.
Poate un API de urmărire să garanteze informații despre livrare în timp real?
Nu. Niciun API nu poate garanta că fiecare scanare a transportatorului este vizibilă imediat. Furnizorul depinde de datele transportatorului, iar sistemele transportatorilor pot raporta evenimente cu întârzieri sau întreruperi. Prezentați corect marcajele temporale și formulările privind starea și evitați să promiteți un timp exact de reîmprospătare, cu excepția cazului în care documentația relevantă și acordul de servicii susțin această promisiune.
Ar trebui browserul să apeleze direct API-ul de urmărire?
În majoritatea implementărilor, nu. Utilizați o integrare pe partea de server, astfel încât acreditările să rămână protejate, răspunsurile să poată fi normalizate, reîncercările să poată fi controlate, iar datele destinate clienților să poată fi filtrate. Magazinul online ar trebui, de regulă, să citească o vizualizare aprobată a expedierii din aplicația dvs.
Cum ar trebui un magazin să gestioneze mai multe colete într-o singură comandă?
Modelați fiecare procesare sau colet ca o expediere separată, păstrând în același timp ID-ul comenzii părinte. Pagina comenzii poate afișa un rezumat general și cronologii separate pentru fiecare colet. Astfel evitați ascunderea unui colet întârziat în spatele stării „livrat” a unui alt colet.
Care este primul indicator de producție care trebuie monitorizat?
Monitorizați întregul flux, de la crearea procesării expedierii până la o actualizare corectă și vizibilă pentru client. Succesul API-ului nu este suficient. Urmăriți înregistrările duplicate, expedierile învechite, evenimentele fără mapare, eșecurile notificărilor și procentul expedierilor care necesită corectare manuală.


