# EcoTrack

EcoTrack est une API de livraison partagée qui propulse une grande famille de transporteurs algériens. Il n'y a pas de tuile « EcoTrack » à choisir : vous choisissez **la tuile de votre propre transporteur**, et DZBuild dialogue avec lui via l'API EcoTrack au moyen d'un unique jeton bearer. 82 transporteurs ont leur propre tuile :

DHD, Conexlog, MSM Go, Rex Livraison, RB Livraison, Speed Delivery, Areex, Prest, Rocket Delivery, WorldExpress, BA Consult, Packers, 48Hr Livraison, Mono Hub, Anderson Delivery, GOLIVRI, Coyote Express, Salva Delivery, Distazero, FRET.Direct, TSL Express, Negmar Express, Ultra Express, OM Express, Med Express, Allo Livraison, Assil Delivery, Expedia Chrono, HHD Express, Imir Logistics, Navex Delivery, Swift Express, Univer Delivery, Colireli, FZ Delivery, Delivromail, PDEX, SI Express, Colex, OKS Box, Majorex, Chronorex, Samex, Aranex, Amana Speed, Wassim Express, One Express, AB Delivery, Royaume Delivery, Eco Rapide Express, SBL Express, Wee Wee Delivery, Jaguar Livraison, RJ 360 Express, Lynx Express, RM Express, Rihal Express, Atlas Express, Boogi Technologie, Cirta Express, Colizone, GS Ecommerce, Jo Express, On Time Express, Quick Delivery DZ, RS Express, Ruta Express, Tawsil Star, Vitrans, BFK Express, Alania Express, Champion Logistics, El Guide Delivery, Fast Horse Express, LIH LIH Express, Mazaya Logistics, Ovred, Speed Mail, Win Delivery, Zinya Tec, Sultan Colis Express, Red Ex.

Si votre transporteur figure dans cette liste, choisissez sa tuile — pas besoin d'intégration sur mesure.

Deux d'entre eux ne vivent pas sur des hôtes `*.ecotrack.dz` mais sont malgré tout des locataires EcoTrack : **DHD** (`platform.dhd-dz.com`) et **Conexlog** (`app.conexlog-dz.com`). Aucun des deux n'est une intégration directe distincte.

## Ce qu'il vous faut[​](#ce-quil-vous-faut "Lien direct vers Ce qu'il vous faut")

Une seule valeur depuis le tableau de bord EcoTrack de votre transporteur :

* **API token** (parfois appelé "Bearer token", "API key" ou "clé API").

Certains tableaux de bord EcoTrack la séparent sur deux écrans (compte → API → générer). Si vous ne la trouvez pas, demandez à votre interlocuteur d'activer l'accès API.

## Lier un transporteur EcoTrack dans DZBuild[​](#lier-un-transporteur-ecotrack-dans-dzbuild "Lien direct vers Lier un transporteur EcoTrack dans DZBuild")

1. Ouvrez **[`/dashboard/link-shipping`](https://dzbuild.com/dashboard/link-shipping)** et cherchez le nom de votre transporteur dans la grille de tuiles (par ex. **DHD**, **Conexlog**, **MSM Go**, …).
2. Cliquez sur **Lier** sur sa tuile.
3. Collez votre **API token** dans le champ d'identifiant unique, intitulé **Bearer Token**. Les fournisseurs EcoTrack n'utilisent qu'un seul champ.
4. Cliquez sur **Tester la connexion**. Le tableau de bord interroge le transporteur en direct et confirme la validité du jeton.
5. Cliquez sur **Lier et enregistrer**.

Les prix par wilaya s'éditent sur la page distincte [`/dashboard/shipping`](https://dzbuild.com/dashboard/shipping).

### Custom EcoTrack[​](#custom-ecotrack "Lien direct vers Custom EcoTrack")

Si votre transporteur n'est **pas** dans la grille de tuiles mais s'appuie sur EcoTrack, choisissez **Ecotrack personnalisé** et fournissez :

* L'**API URL** de l'instance EcoTrack de votre transporteur — l'hôte de base uniquement, par ex. `https://yourcourier.ecotrack.dz`. DZBuild ajoute `/api/v1` lui-même.
* Un **nom d'affichage** (champ **Nom du transporteur**), jusqu'à 100 caractères. Ce que vous saisissez est ce qui apparaîtra partout dans le tableau de bord pour ce transporteur.
* Le jeton bearer.

L'URL doit commencer par `https://` et pointer vers un hôte EcoTrack : une adresse se terminant par `.ecotrack.dz`, ou les hôtes DHD et Conexlog cités plus haut. Tout autre domaine est refusé avec « رابط API غير مسموح », et les adresses internes, loopback et réservées sont refusées pour des raisons de sécurité. Chaque URL personnalisée conserve ses propres données synchronisées de communes, bureaux et tarifs : changer l'URL relance donc une synchronisation à zéro. Préférez toujours une tuile native quand il en existe une pour votre transporteur.

## Ce qui est synchronisé[​](#ce-qui-est-synchronisé "Lien direct vers Ce qui est synchronisé")

* Liste des **wilayas** et **communes** desservies.
* **Tarifs domicile** par wilaya.
* **Tarifs stop-desk** par wilaya.
* Les **communes qui ont un stop-desk**. EcoTrack ne publie pas de liste de bureaux nommés : le [sélecteur Stop Desk](https://dzbuild.com/fr/fr/docs/couriers/stop-desk.md) propose donc une entrée par commune à bureau, affichée avec le nom du transporteur et la commune.

## Ce qui se passe à l'expédition d'une commande[​](#ce-qui-se-passe-à-lexpédition-dune-commande "Lien direct vers Ce qui se passe à l'expédition d'une commande")

Quand vous envoyez une commande à un transporteur EcoTrack (le bouton **Envoyer à** sur la commande, ou un envoi en masse), DZBuild envoie le colis vers l'endpoint EcoTrack du transporteur avec :

* `nom_client`, `telephone` et `adresse`. `telephone_2` reste vide, car une commande DZBuild ne porte qu'un seul numéro client.
* `code_wilaya` + `commune`.
* `montant` : le **total de la commande** (produits plus livraison, moins remise), c'est-à-dire ce que paie le client à la livraison. Chaque famille de transporteurs a son propre nom de champ et son propre montant : lisez le tableau par famille dans la [vue d'ensemble des transporteurs](https://dzbuild.com/fr/fr/docs/couriers/overview.md) plutôt que de supposer que celui-ci s'applique ailleurs. La famille Yalidine est celle qui envoie le sous-total, parce qu'elle facture les frais de livraison séparément.
* `produit` (le résumé des articles), `remarque` (votre note), `weight`, et `reference` (votre numéro de commande DZBuild).
* `type` — 1 pour une livraison, 2 pour un échange.
* `stop_desk` — 0 ou 1. Il n'y a **pas** de champ `delivery_type` ni de `stopdesk_id` : un colis en bureau s'exprime en envoyant la *commune du bureau* comme `commune` avec `stop_desk = 1`.
* `fragile = 1`, uniquement quand le produit est marqué fragile.

Le transporteur retourne un **numéro de suivi**.

### Drapeau fragile[​](#drapeau-fragile "Lien direct vers Drapeau fragile")

Marquer un produit **Fragile** ajoute `fragile = 1` aux colis EcoTrack. Hors de la famille EcoTrack, seul MDM Express reçoit aussi un drapeau fragile ; aucun autre transporteur n'en reçoit (l'API de Yalidine rejette purement et simplement les paramètres inconnus).

### Limite de la description produit[​](#limite-de-la-description-produit "Lien direct vers Limite de la description produit")

Le résumé des articles envoyé à EcoTrack est plafonné à **255 caractères**. Une commande longue à plusieurs articles est raccourcie par paliers : la liste complète, puis la même liste sans les suffixes de variantes entre parenthèses, puis les premiers articles suivis de `+N`, et enfin le nom du premier article tronqué, suivi de `+N` si la commande contient d'autres articles.

## Imprimer le bordereau officiel du transporteur[​](#imprimer-le-bordereau-officiel-du-transporteur "Lien direct vers Imprimer le bordereau officiel du transporteur")

EcoTrack est l'une des deux seules familles (l'autre étant Elogistia) dont le **bordereau PDF officiel** s'imprime directement depuis DZBuild. Cliquer sur **Imprimer l'étiquette** sur une commande EcoTrack télécharge l'étiquette officielle du transporteur en PDF — instances Custom EcoTrack comprises, via l'URL d'API que vous avez enregistrée.

Les commandes EcoTrack disposent aussi d'un bouton **Expédier** (« تأكيد الشحن ») propre à EcoTrack sur le panneau de détail de la commande, pour confirmer l'expédition auprès du transporteur.

## Erreurs fréquentes[​](#erreurs-fréquentes "Lien direct vers Erreurs fréquentes")

| Symptôme                                                                                                                                         | Cause probable                                             | Correction                                                                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Le test de connexion échoue avec "Invalid or expired API credentials"                                                                            | Jeton incorrect ou expiré                                  | Régénérez le jeton dans le tableau de bord du transporteur et recollez-le.                                                                                                                                                                       |
| « يرجى إدخال رابط API » (Custom EcoTrack)                                                                                                        | Le champ API URL est vide                                  | Collez l'hôte de base de votre transporteur.                                                                                                                                                                                                     |
| « يرجى إدخال رابط صحيح يبدأ بـ https\:// » (Custom EcoTrack)                                                                                     | L'URL n'est pas en `https://`                              | Ressaisissez-la avec le schéma `https://`.                                                                                                                                                                                                       |
| « يرجى إدخال رابط عام صحيح (لا يُسمح بعناوين داخلية) » (Custom EcoTrack)                                                                         | L'URL pointe vers une adresse privée, loopback ou réservée | Utilisez le nom d'hôte public du transporteur. Un domaine public hors EcoTrack est refusé avec « رابط API غير مسموح » ; une adresse erronée sur un hôte EcoTrack se manifeste par un échec du test de connexion venant de l'API du transporteur. |
| Commande créée mais sans numéro de suivi                                                                                                         | Adresse refusée par le transporteur                        | Vérifiez l'adresse sur la commande ; généralement une commune absente ou non reconnue.                                                                                                                                                           |
| « مكتب الاستلام (Stop Desk) غير متوفر في هذه الولاية لشركة التوصيل المختارة » ou « لا يوجد مكتب استلام (Stop Desk) متاح في هذه الولاية لشركة … » | Aucun bureau nulle part dans cette wilaya                  | Repassez la commande en livraison à domicile, ou cliquez sur **Actualiser** sur la tuile si vous pensez que les données des bureaux sont périmées.                                                                                               |

## Routage stop-desk[​](#routage-stop-desk "Lien direct vers Routage stop-desk")

Une expédition EcoTrack en bureau n'est **jamais** rétrogradée en livraison à domicile. Si la commune du client n'a aucun bureau, DZBuild réachemine le colis vers une autre commune à bureau de la même wilaya, garde le drapeau bureau actif, et inscrit la redirection dans la remarque du colis (« مكتب الاستلام: X (بلدية الزبون: Y) »). Ce n'est que lorsque la wilaya n'a aucun bureau du tout que l'envoi échoue, avec un message vous invitant à passer en livraison à domicile.

## Astuces[​](#astuces "Lien direct vers Astuces")

* Beaucoup de transporteurs EcoTrack ont une **force régionale** (un cluster de wilayas). Demandez à votre interlocuteur où il est le plus rapide avant de promettre une livraison J+1.
* Si vous changez de transporteur tout en restant sur EcoTrack, il suffit de lier la tuile du nouveau transporteur avec son jeton — les commandes, adresses et données client ne bougent pas.
* Utilisez **Ecotrack personnalisé** pour les nouveaux transporteurs absents du tableau de bord DZBuild ; cela fonctionne tant que leur API est sur un hôte EcoTrack (une adresse se terminant par `.ecotrack.dz`) et expose les endpoints EcoTrack standards.
