Documentation9 min de lecture

Étiquettes de transport, colis et impression automatique

Le module OCA `delivery_carrier_shipping_label` (dépôt `delivery-carrier`, version 18.0.1.0.0, licence AGPL-3) crée un modèle `shipping.label` qui **stocke les étiquettes de transport comme pièces jointes**, avec leur empreinte SHA-1 et un jeton d'accès — et `delivery_carrier_report_to_printer` les envoie **directement à l'imprimante du quai**, sans passer par un téléchargement. Onze autres modules traitent les colis et le dossier d'expédition.

Colis étiquetés prêts à l'expédition sur un convoyeur

Entre « la commande est prête » et « le camion est parti », il y a l'étiquette. Elle doit sortir de la bonne imprimante, porter le bon nombre de colis et le bon poids, et rester retrouvable trois mois plus tard quand le client réclame une preuve de livraison.

Treize modules communautaires s'occupent de ce dernier mètre.

Résumé

Trois modules traitent l'étiquette : un modèle de stockage shipping.label avec pièce jointe, empreinte SHA-1 et jeton d'accès ; une étiquette par défaut imprimée quand aucun transporteur n'est choisi ; et l'envoi direct à une imprimante déclarée, via le rapport d'étiquette du transporteur.

Cinq modules traitent les colis : le nombre de colis demandé ou calculé à la validation d'un transfert — avec un assistant, un réglage par type d'opération et un forçage par contact ou par utilisateur —, le nombre de paquets par type de colis, le poids d'expédition déduit du type de colis, et le filtrage des types de colis par transporteur ou par domaine.

Cinq modules enfin complètent le dossier d'expédition : le rafraîchissement automatique du prix de transport sur la commande, le logo du transporteur, un code sur le transporteur, le coût de transport sur le bon de livraison imprimé, et un lien vers la livraison depuis toutes les opérations intermédiaires.

L'essentiel

  • Les étiquettes de transport stockées en pièce jointe, avec empreinte et jeton d'accès.
  • L'impression directe à l'imprimante du quai, sans téléchargement.
  • Une étiquette par défaut quand aucun transporteur n'est choisi.
  • Le nombre de colis demandé à la validation, avec un assistant par transfert.
  • Le poids d'expédition déduit du type de colis.
  • Les types de colis filtrés par transporteur dans l'assistant d'emballage.
  • Le coût de transport imprimé sur le bon de livraison.
  • Un lien vers la livraison depuis chaque opération intermédiaire.

Ce que ces modules ajoutent à l'instance

ModuleVersionCe qu'il apporte
delivery_carrier_shipping_label18.0.1.0.0Le modèle shipping.label : pièce jointe, empreinte SHA-1, jeton d'accès, taille
delivery_carrier_label_default18.0.1.0.1Une étiquette de base imprimée faute de transporteur
delivery_carrier_report_to_printer18.0.1.0.0label_report_id sur le transporteur, envoyé à une imprimante
delivery_package_number18.0.2.1.1Nombre de colis, assistant de validation, réglages par type d'opération
delivery_package_type_number_parcels18.0.1.0.0number_of_parcels sur le type de colis et le colis
delivery_package_type_shipping_weight18.0.1.0.0is_base_weight_shipping_weight sur le type de colis
stock_picking_delivery_package_type_domain18.0.2.0.0Un domaine de filtrage dans l'assistant « Choisir un colis »
stock_picking_delivery_package_type_carrier18.0.1.0.0allowed_package_carrier_ids : types de colis réservés à un transporteur
delivery_auto_refresh18.0.1.0.1Rafraîchissement du prix de transport sur la commande
delivery_carrier_image18.0.1.0.0Un logo sur le transporteur (LGPL-3)
delivery_carrier_info18.0.1.0.0Un champ code sur le transporteur
stock_picking_report_delivery_cost18.0.1.0.0Le coût de transport sur les rapports de livraison
stock_picking_delivery_link18.0.2.0.0ship_picking_id et ship_carrier_id sur les opérations intermédiaires

Aucun de ces modules n'ajoute de menu : ils enrichissent les écrans de transfert, de transporteur et les assistants d'emballage existants.

L'étiquette : stockée, retrouvable, imprimée

delivery_carrier_shipping_label crée un modèle dédié aux étiquettes de transport. Chaque étiquette est une pièce jointe avec sa taille, son empreinte SHA-1 et un jeton d'accès.

L'empreinte et le jeton ne sont pas des détails techniques : l'empreinte permet de savoir qu'un fichier n'a pas été remplacé, et le jeton permet de donner accès à une étiquette précise sans ouvrir la base. C'est ce qui rend l'étiquette utilisable comme pièce probante.

delivery_carrier_report_to_printer ajoute un champ rapport d'étiquette sur le transporteur et s'appuie sur le module d'impression serveur pour l'envoyer directement à une imprimante déclarée. L'opérateur du quai valide, l'étiquette sort — sans téléchargement, sans boîte de dialogue, sans choix d'imprimante.

delivery_carrier_label_default traite le cas limite : un transfert sans transporteur renseigné. Plutôt que de ne rien imprimer, le module sort une étiquette de base avec les informations d'adresse.

Les colis : combien, de quel type, de quel poids

Le nombre de colis

delivery_package_number est le plus riche des treize. Il ajoute un nombre de colis sur le transfert, un champ indiquant s'il faut le demander, et un assistant de validation qui le réclame transfert par transfert — avec, en option, l'impression de l'étiquette de colis.

Le comportement se règle à trois niveaux : par type d'opération (demander, éviter, forcer, reporter), par contact et par utilisateur. Un expéditeur de colis le veut partout ; un expéditeur de palettes ne le veut nulle part.

Le type de colis

  • delivery_package_type_number_parcels indique combien de paquets contient un type de colis : une palette comptée comme un colis par le transporteur, mais six paquets à la manutention.
  • delivery_package_type_shipping_weight déduit le poids d'expédition du type de colis — le poids de l'emballage vide s'ajoutant au poids de la marchandise.
  • stock_picking_delivery_package_type_domain filtre les types de colis proposés dans l'assistant « Choisir un colis », avec un réglage par type d'opération.
  • stock_picking_delivery_package_type_carrier restreint ces types au transporteur du transfert : un emballage fourni par un transporteur ne doit pas se retrouver sur l'expédition d'un autre.

Proposer tous les types de colis à un opérateur qui emballe est le meilleur moyen d'obtenir des étiquettes refusées : chaque transporteur impose ses contenants, et un carton au mauvais format revient en litige.

Le dossier d'expédition complété

  • delivery_auto_refresh recalcule le prix de transport sur la commande quand son contenu change — sans quoi le prix affiché reste celui du premier calcul.
  • delivery_carrier_image ajoute un logo au transporteur, repris dans les écrans et les rapports. Seul module LGPL-3 du lot.
  • delivery_carrier_info ajoute un code au transporteur : utile pour les échanges de fichiers, où le nom commercial ne sert à rien.
  • stock_picking_report_delivery_cost fait apparaître le coût de transport sur le bon de livraison et les rapports d'opération.
  • stock_picking_delivery_link ajoute à chaque opération intermédiaire — prélèvement, emballage — un lien vers la livraison et son transporteur.

Le dernier mérite une mention : dans un entrepôt à plusieurs étapes, un opérateur qui regarde un bon de prélèvement ne sait pas à quelle expédition il appartient. Le lien répond à la question sans recherche.

Limites connues

  • Plusieurs READMEs de ce dépôt sont minimaux : delivery_carrier_shipping_label et delivery_carrier_report_to_printer n'ont qu'une ligne de résumé. Les champs décrits ici sont relevés sur instance.
  • L'impression directe suppose le module serveur base_report_to_printer et une imprimante déclarée côté serveur, pas côté poste.
  • Le nombre de colis demandé à chaque validation ralentit le quai s'il est activé sans discernement : le réglage par type d'opération existe pour cela.
  • Le filtrage par transporteur empêche un emballage de secours : prévoir un type de colis générique autorisé partout.
  • Le rafraîchissement automatique du prix peut surprendre sur une commande déjà confirmée et annoncée au client.

Identité technique

Les treize modules viennent du dépôt OCA delivery-carrier, branche 18.0, en licence AGPL-3 — sauf delivery_carrier_image, en LGPL-3. Ils dépendent de stock_delivery ou de delivery ; l'impression directe ajoute base_report_to_printer, et le rafraîchissement automatique sale_order_carrier_auto_assign.

Voir aussi grilles tarifaires, options et contraintes et emballages, poids et unités.

Questions fréquentes

Peut-on imprimer une étiquette de transport directement sur l'imprimante du quai ?

Oui : delivery_carrier_report_to_printer ajoute un rapport d'étiquette sur le transporteur et l'envoie à une imprimante déclarée côté serveur, via base_report_to_printer. L'opérateur valide, l'étiquette sort — sans téléchargement ni choix d'imprimante.

Comment demander le nombre de colis à la validation d'une expédition ?

delivery_package_number ajoute un assistant de validation qui réclame le nombre de colis. Le comportement se règle par type d'opération (demander, éviter, forcer), par contact et par utilisateur — un expéditeur de palettes ne le veut nulle part, un expéditeur de colis partout.

Peut-on réserver certains types de colis à un transporteur ?

Oui, avec stock_picking_delivery_package_type_carrier : le champ allowed_package_carrier_ids sur le type de colis limite sa proposition au transporteur du transfert. Prévoyez un type générique autorisé partout, sinon un emballage de secours devient impossible.

Où sont stockées les étiquettes de transport une fois imprimées ?

Dans le modèle shipping.label créé par delivery_carrier_shipping_label : une pièce jointe, sa taille, son empreinte SHA-1 et un jeton d'accès. L'empreinte prouve que le fichier n'a pas été remplacé, le jeton permet d'y donner accès sans ouvrir la base.

Peut-on faire apparaître le coût de transport sur le bon de livraison ?

Oui : stock_picking_report_delivery_cost l'ajoute aux rapports de livraison et d'opération. À manier avec les clients en franco de port, pour qui voir le coût réel du transport sur un bon gratuit n'est pas toujours souhaitable.

Se faire accompagner

Le dernier mètre d'une expédition est l'endroit où un ERP bien paramétré se voit : l'étiquette sort toute seule, au bon format, sur la bonne imprimante, avec le bon nombre de colis. Et l'endroit où un ERP mal paramétré coûte cher : étiquettes refusées, colis surfacturés, litiges sans pièce.

Nous paramétrons donc le quai avant les intégrations : imprimantes, types de colis par transporteur, nombre de colis par type d'opération. Une étiquette qui sort juste vaut mieux qu'un connecteur qui sort vite. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Le dernier mètre d'une expédition : l'étiquette stockée et retrouvable, imprimée directement au quai, le nombre de colis demandé à la validation, les types de colis réservés au bon transporteur, et le coût de transport sur le bon de livraison. Parlons de votre quai d'expédition.

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