OdooWiki OCA HUB

Delivery costs in purchases

delivery_purchase folder_open OCA/delivery-carrier open_in_new
Operations/Purchase License: AGPL-3

This module allows to use delivery methods defined in delivery module to calculate purchase delivery costs.

It reverses destinations in delivery pricelists to use them as sources when applying the delivery method to purchases.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets buyers choose a delivery method on a purchase order and automatically calculates the incoming shipping cost, adding it as a delivery line to the order and to the receipt.

This module brings the delivery methods already used for sales into the purchasing side, so a buyer can estimate and record what it costs to receive goods.

On a purchase order form a new Delivery Method field appears next to the vendor reminder, with the delivery price shown beside it. When the vendor has a preferred delivery method set on their contact card, it is filled in automatically. The delivery price is recalculated from the order lines (weight, volume, quantity and total) using the method's pricing rules, and it is locked once the order is confirmed.

When a receipt is created from the purchase order, the delivery method and its price are copied onto the receipt. If the method is configured for automatic rate and shipping, sending the receipt confirmation also sends the shipment to the carrier, stores the tracking number and the real cost on the receipt, posts a message in the chatter, and adds a delivery line to the purchase order. Free-shipping thresholds and carrier margins are taken into account.

Delivery lines are flagged as deliveries and are only invoiced once all the regular product lines have been fully invoiced. Each delivery line also keeps a link to the receipt it came from, visible on the line.

Depends on

purchase_stockstock_delivery
Models and fields (4)
  • stock.picking · extends an existing model
  • purchase.order · extends an existing modelcarrier_id (Delivery Method), delivery_price
  • delivery.carrier · extends an existing model
  • purchase.order.line · extends an existing modelis_delivery (Is a Delivery), qty_to_invoice, delivery_picking_orig_id (Origin picking (delivery))

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 7 confirmed, 2 with no information of 9 versions.

Sources · Odoo 15.0

Confirmed on 2026-11-03 in branch 15.0 of OCA/delivery-carrier.

terminal Installation and usage

OCA documentation · Odoo 19.0

To use this module, you need to:

  • Go to Purchase \> Orders \> Purchase Orders and create a new Purchase Order.
  • Select a carrier in the field 'Delivery Method', fill out the rest of the form, be sure you added lines with storable products and save the form.
  • Confirm the purchase order.
  • Go to the linked 'Receipt' by clicking on 'Receipt' smart-button and you will see, under 'Additional info' tab, the same carrier selected in the purchase order.
  • If necessary, you can change the carrier in the 'Receipt'. When it is validated, the 'shipping cost' of the receipt will be calculated according to that new selected Carrier.
  • It is possible to change the shipping cost in picking.
  • The shipping cost will appear in an internal note created automatically when the 'Receipt' is validated.
  • A purchase order line will have been created for the cost of picking.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.