This glue module integrates delivery fees with customer deposits.
It keeps the regular delivery fee behavior for standard deliveries while avoiding extra fees when a delivery only moves products that are already in the customer's deposit.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Adjusts delivery fees when a transfer only moves products that already belong to the customer's deposit, so customers are not charged twice for shipping their own goods.
This module connects two existing features: delivery fees and customer deposits (stock that belongs to the customer but is stored by you). It changes when a delivery fee is added to a sales order, depending on what the transfer actually moves.
- When a transfer only releases products that are already the customer's own deposit stock, no delivery fee is added.
- When a transfer mixes deposit stock with your own products, the fee is still applied, but only for outgoing transfers linked to a sales order, and only if the customer is not exempt from delivery fees and the carrier has a fee product.
- The first transfer that puts products into the customer's deposit is still treated as a normal delivery, so the usual fee rules apply.
- If the carrier is not set on the transfer, the module falls back to the carrier chosen on the related sales order.
- On returns, the fee is only recalculated when all the non-deposit products of the transfer have been fully returned.
The behaviour is automatic; there are no new menus, screens or buttons. It affects stock transfers (stock.picking) and, through them, the delivery fee lines on sales orders. Customers marked as exempt from delivery fees are respected.
Depends on
Models and fields (1)
- stock.picking · extends an existing model
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-03Confirmation 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.0Usage
Source · Odoo 18.0When this module is installed, delivery fees follow these rules:
- The sale order that creates the customer deposit applies the delivery fee.
- A delivery that only delivers products from the customer deposit does not apply the delivery fee.
- A mixed delivery, with products from the customer deposit and regular stock, applies the delivery fee normally.
Behavior matrix
| Scenario | Exempt | Delivery fee applied | | --- | --- | --- | | Sale creating a customer deposit | Yes | No | | Sale creating a customer deposit | No | Yes | | Delivery fully from customer deposit | Yes | No | | Delivery fully from customer deposit | No | No | | Mixed delivery: customer deposit + regular stock | Yes | No | | Mixed delivery: customer deposit + regular stock | No | Yes | | Delivery fully from pre-existing customer deposit | Yes | No | | Delivery fully from pre-existing customer deposit | No | No |
A pre-existing customer deposit means customer-owned stock already available before the sale being delivered. Releasing it should not create a new delivery fee, even for successive deliveries.
Return behavior matrix
| Scenario | Return condition | Delivery fee reimbursed | | --- | --- | --- | | Sale creating a customer deposit | Deposit creation picking fully returned | Yes, per carrier config | | Delivery fully from customer deposit | Returned | No fee existed | | Mixed delivery: deposit + regular stock | Only deposit products returned | No | | Mixed delivery: deposit + regular stock | All regular-stock products returned | Yes, per carrier config | | Delivery fully from pre-existing customer deposit | Returned | No fee existed |
For mixed deliveries, the fee belongs to the regular-stock shipment. Returning only the customer-deposit products must not reimburse it; returning all regular products does.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.