Tarification
Le prix de livraison se calcule dans cet ordre :
- Un point d'extension
_laposte_get_live_price(vide par défaut, car La Poste n'expose pas d'API de cotation en temps réel). - Si la méthode est grille, le prix vient de la grille tarifaire du transporteur, par zone et tranche de poids.
- Si la méthode est règles Odoo, le moteur
base_on_rules'applique.
Le prix est exprimé dans la devise de la société.
Zones
La zone de destination est déduite du pays :
| Zone | Contenu |
|---|---|
| FR | France métropolitaine, Monaco, Andorre |
| OM1 / OM2 | Outre-mer, zones 1 et 2 |
| EU | Union européenne + Suisse |
| UK | Royaume-Uni |
| INTB / INTC | International, zones B et C |
| DGO1 | Delivengo : Union européenne + Royaume-Uni |
| DGO2 | Delivengo : reste du monde (Suisse incluse) |
Les zones DGO1 et DGO2 ne servent qu'aux transporteurs Delivengo, qui
refusent par ailleurs les destinations en France et Outre-mer et les colis de
plus de 2 kg. Un contrat Delivengo Profil tarifé sur des zones plus fines se
modélise avec les règles Odoo ou avec un transporteur par groupe de pays
(restriction Pays du transporteur).
Éditer la grille
La grille est éditable directement sur le transporteur (onglet La Poste ou Delivengo, tableau des tarifs). Les données de démo contiennent les tarifs Colissimo 2026 publics et la grille publique Delivengo easy. Remplacez-les par vos tarifs négociés.
Une ligne = une zone + un poids maximum + un prix. La recherche prend la première ligne dont le poids maximum couvre le colis.
Délai de livraison
Chaque cotation renvoie aussi le délai annoncé, en jours ouvrés après remise au transporteur :
- Délai min / max sur le transporteur (onglet La Poste ou Delivengo, groupe Pricing) : valeur par défaut pour toutes les destinations.
- Delivery days min / max sur une ligne de la grille : surcharge le transporteur pour cette zone (0 = utiliser la valeur du transporteur). Avec les règles Odoo, seule la valeur du transporteur s'applique.
Le résultat de rate_shipment contient delay_min et delay_max (0 quand
le délai est inconnu) en plus de price. La phrase « Livraison en 2 à 3 jours
ouvrés » s'affiche dans l'assistant Ajouter une livraison et se retrouve
dans delivery_message sur le devis.
Pour choisir un transporteur sur le coût et le délai, il suffit de coter chaque candidat :
quotes = []
for carrier in carriers:
res = carrier.rate_shipment(order)
if res["success"]:
quotes.append((carrier, res["price"], res.get("delay_max", 0)))
cheapest = min(quotes, key=lambda q: q[1])
fastest = min((q for q in quotes if q[2]), key=lambda q: q[2])
Les délais de démo sont indicatifs (Colissimo 48 h en France, 3 à 5 jours en Europe, Eco Outre-mer 15 à 20 jours, Delivengo 4 à 7 jours en Europe) : remplacez-les par ceux de votre contrat.
Liste des pays de la zone B
La zone B est fournie avec un sous-ensemble représentatif de pays. Complétez-la
depuis les grilles officielles de La Poste avant de figer vos prix
internationaux. Le mapping est dans models/delivery_carrier.py.
Source de cette page : wiki GitHub du module.