API Elogistia en Node.js et PHP
Elogistia ne publie pas de documentation API. dz-delivery l’a reconstituée à partir d’une intégration en production et vérifiée en réel : le provider elogistia s’utilise comme les autres.
Installer
npm install @dz-delivery/core
composer require dz-delivery/sdk
Node.js ≥ 18 (aucune dépendance) ou PHP ≥ 8.2 (Guzzle 7). Le même code fonctionne ensuite pour les autres transporteurs : seule la configuration du client change.
Identifiants Elogistia
| Option | Valeur | Notes |
|---|---|---|
apiKey | Clé API de votre compte Elogistia | Envoyée dans l’URL (imposé par Elogistia) |
email | customer@example.com par défaut | Envoyé en mail, obligatoire chez Elogistia |
Elogistia en TypeScript / Node.js
import { createClient, isShippingError } from '@dz-delivery/core'; const elogistia = createClient('elogistia', { apiKey: process.env.ELOGISTIA_API_KEY!, }); const quote = await elogistia.getFees({ toWilayaId: 16, isStopDesk: true }); try { const parcel = await elogistia.createParcel({ recipientName: 'Mohamed Amine', phone: '0550123456', address: 'Cité 221 lots, n°98', wilayaId: 16, communeName: 'Bab Ezzouar', productName: 'T-shirt', price: 2500, orderId: 'ORDER-1001', }); const { parcel: current, events } = await elogistia.track(parcel.trackingNumber); } catch (err) { if (isShippingError(err)) console.error(err.code, err.message); }
Elogistia en PHP / Laravel
use DzDelivery\ClientFactory; use DzDelivery\Errors\ShippingError; $elogistia = ClientFactory::create('elogistia', [ 'apiKey' => getenv('ELOGISTIA_API_KEY'), ]); try { $parcel = $elogistia->createParcel([ 'recipientName' => 'Mohamed Amine', 'phone' => '0550123456', 'address' => 'Cité 221 lots, n°98', 'wilayaId' => 16, 'communeName' => 'Bab Ezzouar', 'productName' => 'T-shirt', 'price' => 2500, 'orderId' => 'ORDER-1001', ]); $result = $elogistia->track($parcel->trackingNumber); } catch (ShippingError $e) { echo "{$e->code}: {$e->getMessage()}"; }
Guide PHP complet (Laravel, erreurs, tests) : guide-php.md.
Méthodes supportées
| Méthode | Support | Notes |
|---|---|---|
createParcel | oui | Domicile ou bureau (Elogistia choisit le bureau). |
track | oui | Statut unifié + historique. |
getFees | oui | Tarifs domicile / bureau par wilaya. |
getWilayas / getCommunes | oui | Orthographe Elogistia, recherche tolérante. |
getStopDesks | NOT_SUPPORTED | Pas de liste de bureaux dans l’API. |
listParcels | NOT_SUPPORTED | Pas de liste des colis dans l’API. |
cancelParcel | NOT_SUPPORTED | Pas d’annulation par API : depuis le tableau de bord. |
healthCheck | oui | Vérifie la clé (appel réel). |
À savoir sur l’API Elogistia
- Testé en réel (octobre 2026, lecture seule) : wilayas, communes, tarifs, colis inconnu, erreurs.
- La clé API passe dans l’URL (choix d’Elogistia) : évitez de journaliser les URLs complètes.
- Un colis tout juste créé peut renvoyer
NOT_FOUNDau suivi tant qu’Elogistia n’a pas encore d’historique. - Les libellés de statut ne sont pas documentés : ils sont reconnus par mots-clés (livré, retour, annulé, en livraison…).
- Le
baseUrldoit être en HTTPS.
Mapping natif détaillé (endpoints, champs, statuts) : PROVIDERS.md.
FAQ Elogistia
Elogistia a-t-il une documentation API ?
Pas publiquement. Le SDK suit une intégration en production, vérifiée en réel : vous n’avez pas à la reconstituer.
Comment choisir le bureau de retrait ?
Elogistia l’attribue lui-même : passez isStopDesk: true (et n’importe quelle valeur de stopDeskId).
Pourquoi un e-mail ?
Elogistia exige un champ mail sur chaque commande. Passez l’option email pour utiliser le vôtre.
Autres transporteurs
Même interface, mêmes statuts normalisés (pending, in_transit, delivered…).