OdooWiki OCA HUB
Inventory/Delivery License: LGPL-3

This module enables you to add delivery fees independently of regular shipping charges. These fees are invoiced separately and may have different tax implications.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds an extra delivery fee to sales orders when a delivery is completed, using a fee product configured on the delivery carrier. Fees can be returned when goods come back, and can be limited to once per order or per customer per day.

This module lets you charge an extra handling or delivery fee on top of normal shipping charges. On each delivery method (delivery.carrier) you pick a fee product and, optionally, a percentage of the fee to give back when everything is returned.

When a delivery is validated, the fee is automatically added as a new line on the related sales order, marked as a delivery fee. The fee line uses the fee product's price and taxes, and is placed after the other lines. If the customer is marked as exempt from delivery fees on their contact form, no fee is added.

Two company settings control how often the fee is charged: only once per sales order, or only once per commercial partner per day. Both are available in the Inventory settings under shipping.

If all deliveries of an order are fully returned, the fee quantity is reduced according to the return percentage set on the carrier. The fee also appears on the delivery slip and on the customer invoice, showing the fee product's sales description and price. Copying a sales order removes its delivery fee lines.

Depends on

stock_delivery
Models and fields (7)
  • sale.order · extends an existing modelall_fee_pickings_returned
  • res.company · extends an existing modelone_delivery_fee_by_sale_order, one_delivery_fee_by_commercial_partner_day
  • res.partner · extends an existing modeldelivery_fee_exemption
  • stock.picking · extends an existing model
  • sale.order.line · extends an existing modelis_delivery_fee (Is a Delivery Fee), delivery_fee_picking_id
  • delivery.carrier · extends an existing modelfee_product_id, fee_return_percentage (Fee return %)
  • res.config.settings · extends an existing modelone_delivery_fee_by_sale_order, one_delivery_fee_by_commercial_partner_day

Text generated by AI (DeepSeek) from reading the Odoo 18.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: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 18.0

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

terminal Installation and usage

OCA documentation · Odoo 18.0

The first thing we need to do is create a delivery fee product:

  • Go to _Sales > Configuration > Delivery Methods_ and choose one.
  • In the Fee product field start writing the name of the product that will be used to charge the fee and pick _Create and edit_.
  • Set the name of the product, its sales price, its taxes and its product type to Service.
  • Set the Quotation description if you want to show a message in the pickings and invoices footer. (you might need to set Can be sold checkbox temporarily to do so)
  • Optionally you can set an image that will be printed along with the text.

If you want to do exemptions for a partner:

  • Go to that partner's form.
  • In the _Sales & Purchase_ tab, _Sales_ section, you'll find the Delivery fee exemption checkbox.

Once you configured your delivery fees setup, you can start applying them.

  • Place a new sales order.
  • Choose a delivery method with delivery fees configured.
  • Confirm the order.
  • Deliver the products.
  • Once the delivery picking is done, the delivery fees line will be added to the sale.
  • In the delivery slip, a message will be printed advising about these extra charges.
  • When the fees are invoiced, the same advisory message will be printed in the invoice as well.

No verified information in OCA: Installation.

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.