Skip to content

Commit d87070e

Browse files
committed
[ADD] delivery_fee: new module
MT-13311
1 parent a2ef455 commit d87070e

23 files changed

+1140
-0
lines changed

delivery_fee/README.rst

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
============
2+
Delivery Fee
3+
============
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:4c253e6785c07c573bd715e0dc0f06ddeb3e4da298b98b0b91be2e180f50ff69
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Alpha
16+
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
18+
:alt: License: LGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdelivery--carrier-lightgray.png?logo=github
20+
:target: https://github.com/OCA/delivery-carrier/tree/16.0/delivery_fee
21+
:alt: OCA/delivery-carrier
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/delivery-carrier-16-0/delivery-carrier-16-0-delivery_fee
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/delivery-carrier&target_branch=16.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
This module enables you to add delivery fees independently of regular
32+
shipping charges. These fees are invoiced separately and may have
33+
different tax implications.
34+
35+
.. IMPORTANT::
36+
This is an alpha version, the data model and design can change at any time without warning.
37+
Only for development or testing purpose, do not use in production.
38+
`More details on development status <https://odoo-community.org/page/development-status>`_
39+
40+
**Table of contents**
41+
42+
.. contents::
43+
:local:
44+
45+
Configuration
46+
=============
47+
48+
The first thing we need to do is create a delivery fee product:
49+
50+
1. Go to *Sales > Configuration > Shipping Methods* and choose one.
51+
2. In the \*\ *Fee product* field start writing the name of the product
52+
that will be use to charge the fee and pick *Create and edit*.
53+
3. Set the name of the product, its price and its taxes.
54+
4. Set the **Sales description** if you want to show a message in the
55+
pickings and invoices footer. (you might need to set **Can be sold**
56+
checkbox temporarily to do so)
57+
5. Optionally you can set an image that will be printed along with the
58+
text.
59+
60+
If you want to do exemptions for a partner:
61+
62+
1. Go to that partner's form.
63+
2. In the *Sales & Purchase* tab, *Sales* section, you'll find the the
64+
**Delivery fee exemption** checkbox.
65+
66+
Usage
67+
=====
68+
69+
Once you configured you delivery fees setup, you can start applying
70+
them.
71+
72+
1. Place a new sales order.
73+
2. Choose a delivery method with delivery fees configures.
74+
3. Confirm the order.
75+
4. Deliver the products.
76+
5. Once the delivery picking is done, the delivey fees line will be
77+
added to the sale.
78+
6. In the delivery slip, a message will be printed advising about these
79+
extra charges.
80+
7. When the fees are invoiced, the same advicing message will be printed
81+
in the printed invoice as well.
82+
83+
Bug Tracker
84+
===========
85+
86+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/delivery-carrier/issues>`_.
87+
In case of trouble, please check there if your issue has already been reported.
88+
If you spotted it first, help us to smash it by providing a detailed and welcomed
89+
`feedback <https://github.com/OCA/delivery-carrier/issues/new?body=module:%20delivery_fee%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
90+
91+
Do not contact contributors directly about support or help with technical issues.
92+
93+
Credits
94+
=======
95+
96+
Authors
97+
-------
98+
99+
* Moduon
100+
101+
Contributors
102+
------------
103+
104+
- David Vidal (`Moduon <https://www.moduon.team/>`__)
105+
- Emilio Pascual (`Moduon <https://www.moduon.team/>`__)
106+
- Rafael Blasco (`Moduon <https://www.moduon.team/>`__)
107+
108+
Maintainers
109+
-----------
110+
111+
This module is maintained by the OCA.
112+
113+
.. image:: https://odoo-community.org/logo.png
114+
:alt: Odoo Community Association
115+
:target: https://odoo-community.org
116+
117+
OCA, or the Odoo Community Association, is a nonprofit organization whose
118+
mission is to support the collaborative development of Odoo features and
119+
promote its widespread use.
120+
121+
.. |maintainer-chienandalu| image:: https://github.com/chienandalu.png?size=40px
122+
:target: https://github.com/chienandalu
123+
:alt: chienandalu
124+
.. |maintainer-rafaelbn| image:: https://github.com/rafaelbn.png?size=40px
125+
:target: https://github.com/rafaelbn
126+
:alt: rafaelbn
127+
128+
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
129+
130+
|maintainer-chienandalu| |maintainer-rafaelbn|
131+
132+
This module is part of the `OCA/delivery-carrier <https://github.com/OCA/delivery-carrier/tree/16.0/delivery_fee>`_ project on GitHub.
133+
134+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

delivery_fee/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models

delivery_fee/__manifest__.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2026 Moduon
2+
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
3+
{
4+
"name": "Delivery Fee",
5+
"summary": "Charge extra fees on deliveries",
6+
"version": "16.0.1.0.0",
7+
"development_status": "Alpha",
8+
"category": "Inventory/Delivery",
9+
"author": "Moduon, Odoo Community Association (OCA)",
10+
"website": "https://github.com/OCA/delivery-carrier",
11+
"maintainers": ["chienandalu", "rafaelbn"],
12+
"license": "LGPL-3",
13+
"depends": ["delivery"],
14+
"data": [
15+
"views/res_partner_views.xml",
16+
"views/delivery_carrier_views.xml",
17+
"reports/delivery_slip_report.xml",
18+
"reports/invoice_report.xml",
19+
],
20+
}

delivery_fee/i18n/delivery_fee.pot

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * delivery_fee
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0+e\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2026-01-26 10:26+0000\n"
10+
"PO-Revision-Date: 2026-01-26 10:26+0000\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: \n"
16+
"Plural-Forms: \n"
17+
18+
#. module: delivery_fee
19+
#: model_terms:ir.ui.view,arch_db:delivery_fee.report_invoice_document
20+
msgid "/ delivery"
21+
msgstr ""
22+
23+
#. module: delivery_fee
24+
#: model:ir.model,name:delivery_fee.model_res_partner
25+
msgid "Contact"
26+
msgstr ""
27+
28+
#. module: delivery_fee
29+
#: model:ir.model.fields,field_description:delivery_fee.field_res_partner__delivery_fee_exemption
30+
#: model:ir.model.fields,field_description:delivery_fee.field_res_users__delivery_fee_exemption
31+
msgid "Delivery Fee Exemption"
32+
msgstr ""
33+
34+
#. module: delivery_fee
35+
#: model:ir.model.fields,field_description:delivery_fee.field_sale_order_line__delivery_fee_picking_id
36+
msgid "Delivery Fee Picking"
37+
msgstr ""
38+
39+
#. module: delivery_fee
40+
#: model:ir.model.fields,field_description:delivery_fee.field_delivery_carrier__fee_product_id
41+
msgid "Fee Product"
42+
msgstr ""
43+
44+
#. module: delivery_fee
45+
#: model_terms:ir.ui.view,arch_db:delivery_fee.report_delivery_document2
46+
#: model_terms:ir.ui.view,arch_db:delivery_fee.report_invoice_document
47+
msgid "Fee info"
48+
msgstr ""
49+
50+
#. module: delivery_fee
51+
#: model:ir.model.fields,field_description:delivery_fee.field_sale_order_line__is_delivery_fee
52+
msgid "Is a Delivery Fee"
53+
msgstr ""
54+
55+
#. module: delivery_fee
56+
#: model:ir.model,name:delivery_fee.model_sale_order
57+
msgid "Sales Order"
58+
msgstr ""
59+
60+
#. module: delivery_fee
61+
#: model:ir.model,name:delivery_fee.model_sale_order_line
62+
msgid "Sales Order Line"
63+
msgstr ""
64+
65+
#. module: delivery_fee
66+
#: model:ir.model,name:delivery_fee.model_delivery_carrier
67+
msgid "Shipping Methods"
68+
msgstr ""
69+
70+
#. module: delivery_fee
71+
#: model:ir.model,name:delivery_fee.model_stock_picking
72+
msgid "Transfer"
73+
msgstr ""

delivery_fee/i18n/es.po

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * delivery_fee
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0+e\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2026-01-26 10:26+0000\n"
10+
"PO-Revision-Date: 2026-01-26 11:29+0100\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"Language: es\n"
14+
"MIME-Version: 1.0\n"
15+
"Content-Type: text/plain; charset=UTF-8\n"
16+
"Content-Transfer-Encoding: 8bit\n"
17+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
18+
"X-Generator: Poedit 3.6\n"
19+
20+
#. module: delivery_fee
21+
#: model_terms:ir.ui.view,arch_db:delivery_fee.report_invoice_document
22+
msgid "/ delivery"
23+
msgstr "/ entrega"
24+
25+
#. module: delivery_fee
26+
#: model:ir.model,name:delivery_fee.model_res_partner
27+
msgid "Contact"
28+
msgstr "Contacto"
29+
30+
#. module: delivery_fee
31+
#: model:ir.model.fields,field_description:delivery_fee.field_res_partner__delivery_fee_exemption
32+
#: model:ir.model.fields,field_description:delivery_fee.field_res_users__delivery_fee_exemption
33+
msgid "Delivery Fee Exemption"
34+
msgstr "Exención de tasa de envío"
35+
36+
#. module: delivery_fee
37+
#: model:ir.model.fields,field_description:delivery_fee.field_sale_order_line__delivery_fee_picking_id
38+
msgid "Delivery Fee Picking"
39+
msgstr "Albarán de la tasa de envío"
40+
41+
#. module: delivery_fee
42+
#: model:ir.model.fields,field_description:delivery_fee.field_delivery_carrier__fee_product_id
43+
msgid "Fee Product"
44+
msgstr "Producto de tasa de envío"
45+
46+
#. module: delivery_fee
47+
#: model_terms:ir.ui.view,arch_db:delivery_fee.report_delivery_document2
48+
#: model_terms:ir.ui.view,arch_db:delivery_fee.report_invoice_document
49+
msgid "Fee info"
50+
msgstr "Información sobre tasa"
51+
52+
#. module: delivery_fee
53+
#: model:ir.model.fields,field_description:delivery_fee.field_sale_order_line__is_delivery_fee
54+
msgid "Is a Delivery Fee"
55+
msgstr "Es una tasa de envío"
56+
57+
#. module: delivery_fee
58+
#: model:ir.model,name:delivery_fee.model_sale_order
59+
msgid "Sales Order"
60+
msgstr "Pedido de venta"
61+
62+
#. module: delivery_fee
63+
#: model:ir.model,name:delivery_fee.model_sale_order_line
64+
msgid "Sales Order Line"
65+
msgstr "Línea de pedido de venta"
66+
67+
#. module: delivery_fee
68+
#: model:ir.model,name:delivery_fee.model_delivery_carrier
69+
msgid "Shipping Methods"
70+
msgstr "Métodos de envío"
71+
72+
#. module: delivery_fee
73+
#: model:ir.model,name:delivery_fee.model_stock_picking
74+
msgid "Transfer"
75+
msgstr "Traslado"

delivery_fee/models/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from . import delivery_carrier
2+
from . import res_partner
3+
from . import sale_order
4+
from . import stock_picking
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright 2026 Moduon
2+
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
3+
from odoo import fields, models
4+
5+
6+
class DeliveryCarrier(models.Model):
7+
_inherit = "delivery.carrier"
8+
9+
fee_product_id = fields.Many2one(
10+
comodel_name="product.product",
11+
ondelete="restrict",
12+
domain="[('type', '=', 'service')]",
13+
)

delivery_fee/models/res_partner.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright 2026 Moduon
2+
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
3+
from odoo import fields, models
4+
5+
6+
class ResPartner(models.Model):
7+
_inherit = "res.partner"
8+
9+
delivery_fee_exemption = fields.Boolean()

0 commit comments

Comments
 (0)