Stop carrier weight and dimension surcharges before the parcel leaves — multi carrier shipping base for Odoo Community: refuses a shipment over the weight or size limit, incomplete address, missing customs declaration or unchosen pickup point. Parcels, packaging, tracking, shipping log. Free.
Présentation
Socle multi-transporteurs — le produit d'appel d'une famille
Ce module ne parle à aucun transporteur. Il ne fait aucun appel réseau. Il pose ce dont tous les transporteurs ont besoin, une fois, et laisse aux modules opérateurs — payants, un par transporteur — le soin de parler à qui que ce soit.
C'est ce qui le rend installable, lisible et testable sans le moindre compte marchand, et c'est ce qui doit rester vrai.
Ce qu'il porte
Une expédition greffée sur le bon de livraison : transporteur, service, poids et dimensions consolidés depuis les colis, valeur assurée, incoterm, numéro et URL de suivi, coût réel facturé en regard du coût estimé.
Les colis : le module ne redouble aucun champ d'Odoo. Les dimensions, la tare et le poids maximal viennent du type de colis natif ; le poids déclaré suit l'idiome d'Odoo — poids pesé s'il existe, sinon contenu + tare. Le socle n'ajoute que la longueur + circonférence, qu'Odoo ne calcule nulle part.
Un point d'extension par opérateur : cinq méthodes nommées, au contrat documenté, que chaque module transporteur implémentera — tarifer, étiqueter, suivre, annuler, chercher des points relais.
Les points relais : stockage, sélection sur la commande, report sur le bon de livraison et impression dessus.
Le journal d'expédition : chaque tentative, réussie ou non, laisse une ligne datée avec son opérateur, sa demande résumée et sa réponse.
La file : Odoo tient la file, un processus externe la consomme et vient consigner son résultat.
Ce qu'il refuse
C'est là que le module vaut quelque chose. Il refuse de préparer une expédition quand le poids dépasse le plafond déclaré du service, quand une dimension dépasse le maximum, quand longueur + circonférence dépasse la limite, quand l'adresse manque un champ obligatoire pour le pays de destination, quand un envoi hors Union manque sa déclaration douanière, ou quand un point relais est exigé et non choisi.
Chaque refus nomme ce qui manque et la valeur en cause. Jamais « expédition invalide » : « Colis PACK0003 : hauteur de 82,0 cm pour un maximum de 60,0 cm sur le service « Domicile ». »
Les plafonds ne sont pas dans le code
Aucun chiffre de transporteur n'est écrit en dur. Les plafonds de poids et de dimensions sont des champs paramétrables par service, avec un champ « Source des plafonds » pour noter d'où vient le chiffre et quand il a été relevé. Le socle n'a pas à connaître les limites d'un transporteur : il doit seulement savoir les faire respecter.
Ce qu'il ne fait pas
Il n'appelle aucun transporteur, ne cherche aucun point relais, n'achète aucune étiquette et ne calcule aucun tarif. Installé seul, ses cinq méthodes d'extension lèvent une erreur explicite qui dit quel module opérateur installer.
Caractéristiques
| Prix | Gratuit |
|---|---|
| Licence | LGPL-3 |
| Séries Odoo | 19.0 : publiée sur l'Odoo Apps Store ; 20.0 : publiée sur l'Odoo Apps Store |
| Version | 1.0.0 |
| Édition | Odoo Community / sur site |
| Nom technique | dyo_transporteurs_base |
| Domaine | Achats, stock et logistique |
Prix hors taxes tel qu'affiché sur l'Odoo Apps Store ; l'achat et l'installation se font sur le Store ou via votre instance Omnifloo.