Documentation9 min de lecture

Connecteurs transporteurs, suivi de colis et points relais

Le module OCA `delivery_state` (dépôt `delivery-carrier`, version 18.0.1.2.2, licence AGPL-3) ajoute au transfert un **état transporteur**, un état de suivi, les **dates d'expédition et de livraison**, et un champ **preuve de livraison** — fichier et erreur —, avec un **e-mail de confirmation automatique** au client quand le colis est marqué livré. Quatorze autres modules branchent les transporteurs eux-mêmes, du socle Roulier aux points relais.

Colis suivis en cours d'acheminement

Une expédition ne s'arrête pas au quai. Le client veut savoir où est son colis, le service client veut une preuve de livraison quand il réclame, et la comptabilité veut savoir ce que le transport a réellement coûté.

Quinze modules communautaires branchent les transporteurs et récupèrent ce qu'ils renvoient.

Résumé

Deux modules traitent le suivi : un état transporteur avec dates d'expédition et de livraison, preuve de livraison en pièce jointe et e-mail de confirmation paramétrable par société ; et la possibilité de corriger cet état à la main quand le transporteur ne répond plus.

Huit modules sont des connecteurs : un socle générique s'appuyant sur la bibliothèque Python roulier, l'intégration UPS, Sendcloud, Easypost, PostLogistics — avec sa déclaration de marchandises dangereuses —, et quatre transporteurs européens : CTT Express, Correos Express, Dachser et DB Schenker.

Deux modules sortent les identifiants de la base vers un fichier d'environnement serveur. Un module enfin ajoute les points relais : un référentiel de sites de dépôt géolocalisés avec leurs horaires, un destinataire final distinct du point de retrait, et l'obligation de choisir un site selon le mode d'expédition.

L'essentiel

  • Un état transporteur et des dates d'expédition et de livraison sur le transfert.
  • La preuve de livraison stockée en pièce jointe.
  • Un e-mail automatique au client quand le colis est marqué livré.
  • L'état corrigeable à la main quand le transporteur ne répond plus.
  • Un socle générique (roulier) et sept connecteurs transporteurs.
  • Les identifiants hors base, dans un fichier d'environnement serveur.
  • Les points relais géolocalisés, avec horaires et destinataire final.
  • Quatre connecteurs visent des transporteurs non français : CTT, Correos, Dachser, Schenker.

Ce que ces modules ajoutent à l'instance

FamilleModulesVersion
Suividelivery_state18.0.1.2.2
Suividelivery_state_manual18.0.1.0.0
Socledelivery_roulier18.0.1.0.1
Connecteurdelivery_ups_oca18.0.1.5.1
Connecteurdelivery_sendcloud_oca18.0.1.0.0 (LGPL-3)
Connecteurdelivery_easypost_oca18.0.1.0.0
Connecteurdelivery_postlogistics18.0.2.0.0
Connecteurdelivery_postlogistics_dangerous_goods18.0.1.0.0
Connecteurdelivery_cttexpress18.0.1.0.0
Connecteurdelivery_correos_express18.0.1.0.0
Connecteurdelivery_dachser18.0.1.0.0
Connecteurdelivery_schenker18.0.1.0.0
Identifiantsdelivery_postlogistics_server_env18.0.1.0.0
Identifiantsserver_environment_delivery18.0.1.0.0
Points relaisdelivery_dropoff_site18.0.1.0.0

Les menus ajoutés : Inventaire ▸ Configuration ▸ Livraison ▸ Sites de dépôt et PostLogistics Licenses, Inventaire ▸ Analyse ▸ CTT Express Manifest, Ventes ▸ Configuration ▸ Commandes clients ▸ Sites de dépôt, et un menu racine Sendcloud avec sa configuration.

Le suivi et la preuve de livraison

delivery_state est le module à installer d'abord : six des connecteurs en dépendent. Il ajoute au transfert un état transporteur et un état de suivi, les dates d'expédition et de livraison, le flux de suivi brut renvoyé par le transporteur, et trois champs de preuve de livraison : fichier, nom de fichier, erreur.

Au niveau société, deux réglages activent un e-mail de confirmation au client dès que le colis est marqué livré, avec son modèle de message.

La preuve de livraison est l'argument qui clôt une réclamation. Sans elle, une contestation de réception se règle à la parole — et se règle généralement en faveur du client. La stocker sur le transfert, au moment où le transporteur la fournit, coûte un module.

delivery_state_manual répond au cas inverse : le transporteur ne renvoie rien, ou se trompe. Le module rend l'état modifiable à la main, ce qui évite de laisser une expédition livrée depuis trois semaines affichée « en transit ».

Les connecteurs

Le socle Roulier

delivery_roulier n'est pas un connecteur mais un socle : il s'appuie sur la bibliothèque Python roulier — développée par Akretion — et enrichit quatre modèles, dont le colis, à qui il ajoute un transporteur, un numéro de suivi et son URL de suivi.

Le suivi au niveau du colis, et non du transfert, est la bonne granularité : une expédition de six colis a six numéros de suivi, et c'est le troisième qui se perd.

Les intégrations directes

ModuleTransporteurRemarque
delivery_ups_ocaUPSLe plus mûr du lot (version 1.5.1) ; dépend de delivery_price_method et delivery_package_number
delivery_sendcloud_ocaSendcloudPlateforme multi-transporteurs ; menu racine dédié, LGPL-3
delivery_easypost_ocaEasypostPlateforme multi-transporteurs, orientée marché nord-américain
delivery_postlogisticsLa Poste suisseÉtiquettes via le service Barcode ; licences gérées en configuration
delivery_cttexpressCTT ExpressTransporteur espagnol ; manifeste d'expédition
delivery_correos_expressCorreos ExpressTransporteur espagnol
delivery_dachserDachserTransporteur allemand ; dépend du volume des transferts
delivery_schenkerDB SchenkerTransporteur allemand

Le dépôt ne contient aucun connecteur pour Colissimo, Chronopost, DPD France, GLS ou Geodis en module dédié : c'est le socle Roulier qui les couvre, via la bibliothèque Python. Une PME française qui attend un module au nom de son transporteur cherchera longtemps.

delivery_postlogistics_dangerous_goods ajoute la déclaration de marchandises dangereuses aux étiquettes PostLogistics, en s'appuyant sur le référentiel ADR européen.

Les identifiants

server_environment_delivery et delivery_postlogistics_server_env permettent de sortir les identifiants de connexion de la base et de les placer dans un fichier d'environnement serveur, par environnement — production, recette, développement.

Ce n'est pas une préférence d'administrateur : sans eux, restaurer une copie de production pour recette signifie restaurer les identifiants réels, et une expédition de test part pour de vrai.

Les points relais

delivery_dropoff_site est le module le plus structurant du lot. Il crée un modèle site de dépôt — géolocalisé, avec ses horaires d'ouverture gérés comme une ressource — et le relie au mode d'expédition.

  • Sur le mode d'expédition : une case indiquant qu'il fonctionne avec des sites de dépôt, et la liste des sites concernés.
  • Sur la commande : un destinataire final distinct de l'adresse de livraison, et l'obligation de choisir un site.
  • Sur le contact : la possibilité d'être soi-même un site de dépôt, et le site habituel.
  • Sur le transfert et le mouvement : le destinataire final, propagé depuis la commande.

La distinction entre adresse de livraison et destinataire final est ce qui manque au standard : un colis livré en point relais est adressé au relais et destiné au client. Confondre les deux produit des étiquettes au nom du commerçant et des factures au nom du relais.

La géolocalisation et les référentiels d'adresses sont traités dans adresses et localisation.

Limites connues

  • Quatre connecteurs sur huit visent des transporteurs non français : CTT Express et Correos Express sont espagnols, Dachser et Schenker allemands, PostLogistics suisse.
  • Aucun connecteur dédié aux transporteurs français : passer par le socle roulier et sa bibliothèque Python, dont les versions évoluent indépendamment d'Odoo.
  • Les connecteurs dépendent de services externes : une évolution d'API côté transporteur casse l'intégration, et la correction vient du dépôt communautaire, à son rythme.
  • delivery_easypost_oca et delivery_roulier ont des READMEs minimaux : leur portée réelle se lit dans les champs relevés, pas dans la documentation.
  • L'e-mail automatique de livraison part sur l'état renvoyé par le transporteur : un état erroné envoie un message faux.
  • Les points relais demandent un référentiel maintenu : les sites ouvrent et ferment.

Identité technique

Les quinze modules viennent du dépôt OCA delivery-carrier, branche 18.0, en licence AGPL-3 — sauf delivery_sendcloud_oca, en LGPL-3. delivery_roulier exige la bibliothèque Python roulier (> 0.2.0) ; les couches d'environnement exigent server_environment ; les points relais s'appuient sur base_geolocalize et resource.

Voir aussi grilles tarifaires, options et contraintes et étiquettes de transport, colis et impression.

Questions fréquentes

Existe-t-il un module OCA pour Colissimo, Chronopost ou DPD France ?

Pas de module portant leur nom dans le dépôt delivery-carrier en 18.0. Ces transporteurs passent par le socle delivery_roulier et la bibliothèque Python roulier d'Akretion. Les connecteurs dédiés du dépôt visent UPS, Sendcloud, Easypost, PostLogistics, CTT Express, Correos Express, Dachser et DB Schenker.

Comment conserver une preuve de livraison dans Odoo ?

delivery_state ajoute au transfert trois champs de preuve de livraison — fichier, nom de fichier, erreur — remplis par le connecteur transporteur. C'est l'argument qui clôt une réclamation : sans elle, une contestation de réception se règle à la parole, et généralement en faveur du client.

Peut-on prévenir le client automatiquement quand son colis est livré ?

Oui : delivery_state ajoute deux réglages de société — activation de l'e-mail de confirmation et modèle de message — déclenchés quand le transfert passe à l'état livré. Attention, le message part sur l'état renvoyé par le transporteur : un état erroné envoie un message faux.

Comment gérer une livraison en point relais ?

delivery_dropoff_site crée un référentiel de sites de dépôt géolocalisés avec leurs horaires, et distingue l'adresse de livraison — le relais — du destinataire final — le client. Sans cette distinction, les étiquettes partent au nom du commerçant et les factures au nom du relais.

Où mettre les identifiants d'API transporteur ?

Dans un fichier d'environnement serveur, grâce à server_environment_delivery ou delivery_postlogistics_server_env. Sans eux, restaurer une copie de production pour recette restaure les identifiants réels — et une expédition de test part pour de vrai.

Se faire accompagner

Brancher un transporteur est la partie visible du travail ; la partie utile est ce qu'on fait de ce qu'il renvoie. Un numéro de suivi par colis, une preuve de livraison classée, un état corrigeable à la main : c'est ce qui fait baisser les appels au service client, pas l'étiquette automatique.

Nous commençons donc par le suivi et la preuve, puis nous branchons le transporteur — et nous disons franchement quand un transporteur français n'a pas de connecteur dédié et qu'il faut passer par le socle Roulier. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Ce que les transporteurs renvoient et comment Odoo le garde : état de suivi par colis, preuve de livraison classée, e-mail automatique au client, points relais avec destinataire final — et la liste franche des transporteurs qui ont un connecteur dédié, ou pas. Parlons de votre suivi d'expéditions.

Documentation OCALogistiqueTransport

Partager

Fiches connexes

Équipe au travail sur des ordinateurs portables autour d'une table
Le module OCA `account_invoice_en16931` (dépôt `fr-einvoicing`, version 18.0.1.0.0, licence AGPL-3) est le socle qui fabrique le fichier de facture électronique conforme à la norme européenne **EN 16931** : Factur-X (PDF/A-3 avec XML CII embarqué), XML UBL, XML CII ou PDF accompagné d'un UBL — et il ajoute des **contrôles bloquants à la validation** d'une facture client. Les quatre modules qui s'y greffent pour la France, et ce que le socle ne fait pas.
Lire la suite
Documentation OCA, Facturation électronique
Réunion d'approbation autour d'un document de travail
Relevé sur une instance Odoo 18 Community, le module OCA `base_tier_validation` (dépôt `server-ux`, version 18.0.3.5.1, licence AGPL-3) ajoute 1 modèle, 101 champs et 3 menus, mais ne s'active sur aucun document métier par lui-même : il lui faut un module d'implémentation. C'est le point qui surprend le plus — voici ce qu'il fait réellement, et comment le mettre en service.
Lire la suite
Documentation OCA, Odoo