Aller au contenu
Roekish

Tarification

Le prix de livraison se calcule dans cet ordre :

  1. Un point d'extension _dpd_get_live_price (vide par défaut, car DPD France n'expose pas d'API de cotation en temps réel).
  2. Si la méthode est grille, le prix vient de la grille tarifaire du transporteur, par zone et tranche de poids.
  3. 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 se déduit du pays de livraison, selon le zonage des contrats DPD France :

ZonePays
FRFrance métropolitaine, Monaco
EU1Allemagne, Belgique, Luxembourg, Pays-Bas
EU2Autriche, Espagne, Royaume-Uni, Italie, Liechtenstein, Pologne, Portugal, Tchéquie, Suisse
EU3Andorre, Croatie, Danemark, Estonie, Hongrie, Irlande, Lettonie, Lituanie, Slovaquie, Slovénie, Suède
EU4Bulgarie, Finlande, Grèce, Norvège, Roumanie
EU5Bosnie, Serbie
INTReste du monde

Une grille qui n'a aucune ligne pour Euro 3, 4 ou 5 prend les lignes Euro 2 pour ces pays (grilles saisies avant l'ajout de ces zones).

Surcharges et poids facturé

Sur le transporteur, en méthode grille :

  • Surcharge gasoil (%) : ajoutée au prix de la grille (10 % chez DPD en 2026).
  • Frais fixes par colis : ajoutés ensuite, par exemple participation sûreté 0,81 € + contribution logistique responsable 0,18 € = 0,99 €.
  • Diviseur volumétrique : à 5000, le poids facturé est le plus grand du poids réel et du volume des articles (cm³) / 5000. À 0 (par défaut), seul le poids réel compte : c'est le cas quand le contrat écarte la facturation volumétrique.

Les frais mensuels (frais administratifs par compte) ne vont pas dans le prix d'un colis.

Éditer la grille

La grille est éditable directement sur le transporteur (onglet DPD, tableau des tarifs). Les données de démo contiennent des tarifs indicatifs 2026 relevés sur des comparateurs : DPD France ne publie pas de grille publique, les tarifs 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 DPD, 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 (Predict et Relais 24 à 48 h, CLASSIC Europe 2 à 3 jours en zone 1 et 3 à 5 jours en zone 2) : remplacez-les par ceux de votre contrat.

Découpage Europe

Le découpage Europe 1 / Europe 2 est représentatif. Alignez-le sur le zonage de votre contrat DPD CLASSIC Europe avant de figer vos prix internationaux. Le mapping est dans models/delivery_carrier.py.

Source de cette page : wiki GitHub du module.