Aller au contenu
Roekish

Tarification

Le prix de livraison se calcule dans cet ordre :

  1. Les destinations non desservies, le Point Relais hors pays couverts et les colis trop lourds (30 kg, 20 kg en Locker) sont refusés.
  2. Un point d'extension _mondialrelay_get_live_price (vide par défaut, car Mondial Relay n'expose pas d'API de cotation en temps réel).
  3. Si la méthode est grille, le prix vient de la grille tarifaire du transporteur, par zone et tranche de poids.
  4. Si la méthode est règles Odoo, le moteur base_on_rule s'applique.

Le prix est exprimé dans la devise de la société.

Zones

La zone de destination est déduite du pays :

ZoneContenu
FRFrance métropolitaine, Monaco
EU1Belgique, Luxembourg, Pays-Bas, Allemagne
EU2Espagne, Royaume-Uni
EU3Italie, Portugal, Autriche

La livraison en Point Relais est disponible en France, Belgique, Luxembourg, Pays-Bas, Espagne et Portugal. Ailleurs, utilisez un transporteur domicile.

Éditer la grille

La grille est éditable directement sur le transporteur (onglet Mondial Relay, tableau des tarifs). Les données de démo contiennent la grille publique 2026 de mondialrelay.fr pour la France et des relevés de comparateurs pour l'Europe. Les tarifs professionnels sont négociés par contrat : remplacez-les par les vôtres.

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 Mondial Relay, 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 (Point Relais et Locker 3 à 5 jours, domicile 2 à 4 jours en France, 4 à 8 jours en Europe) : remplacez-les par ceux de votre contrat.

Le mapping des zones est dans models/delivery_carrier.py. Alignez-le sur votre contrat avant de figer vos prix internationaux.

Source de cette page : wiki GitHub du module.