eCommerce: charge payment fee

website_sale_charge_payment_fee
REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/19.0/website_sale_charge_payment_fee
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, miguel-S73
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - payment
    - onboarding
    - web
    - base
    - portal
    - html_editor
    - bus
    - http_routing
    - mail
    - base_setup
    - web_tour
    - auth_signup
    - website_sale
    - website
    - digest
    - resource
    - social_media
    - google_recaptcha
    - utm
    - html_builder
    - sale
    - sales_team
    - account_payment
    - account
    - product
    - uom
    - analytic
    - website_payment
    - website_mail
    - portal_rating
    - rating
    - delivery
    - payment_custom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geoip2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to associate generic payment fee to online payment
methods. Thus, when website user select a payment method with additional
fee, an additional sale order line will be added to online order

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
form_fee form_fee ir.ui.view qweb Inherits payment.form
method_form_fee Payment Method Fee ir.ui.view qweb Inherits payment.method_form
payment_fee Payment Fee ir.ui.view qweb Inherits website_sale.total
provider_form_fee_inherit payment_provider.form.fee.inherit payment.provider xpath Inherits payment.payment_provider_form
Models touched (3)

New fields (7)
  • charge_fee Boolean
    help='An extra fee line will be added to online order when using this payment method' args: 'Fee charged to customer'
  • charge_fee_currency_id Many2one → res.currency
    string='Fee Currency' args: 'res.currency'
  • charge_fee_description Text
    compute='_compute_charge_fee_description' args: 'Fee Description'
  • charge_fee_fixed_price Float
    min_display_digits='Product Price' args: 'Fixed Price'
  • charge_fee_percentage Float
    help='Percentage applied to order total' args: 'Percentage'
  • charge_fee_product_id Many2one → product.product
    domain="[('type', '=', 'service')]" string='Fee Product' args: 'product.product'
  • charge_fee_type Selection
    default='fixed' string='Computation type' args: [('fixed', 'Fixed'), ('percentage', 'Percentage')]
Public methods (0)

No public methods.

New fields (1)
  • amount_payment_fee Monetary
    compute='_compute_amount_payment_fee' store=True string='Payment Fee Amount' tracking=True
Public methods (1)
  • update_fee_line(self, provider)

New fields (1)
  • payment_fee_line Boolean
    readonly=True args: 'Payment fee line'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/18.0/website_sale_charge_payment_fee
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, eduezerouali-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - payment
    - onboarding
    - web
    - base
    - portal
    - web_editor
    - bus
    - html_editor
    - http_routing
    - mail
    - base_setup
    - web_tour
    - auth_signup
    - website_sale
    - website
    - digest
    - resource
    - social_media
    - google_recaptcha
    - utm
    - sale
    - sales_team
    - account_payment
    - account
    - product
    - uom
    - analytic
    - website_payment
    - website_mail
    - portal_rating
    - rating
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geoip2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to associate generic payment fee to online payment
methods. Thus, when website user select a payment method with additional
fee, an additional sale order line will be added to online order

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
form_fee form_fee ir.ui.view qweb Inherits payment.form
method_form_fee Payment Method Fee ir.ui.view qweb Inherits payment.method_form
payment_fee Payment Fee ir.ui.view qweb Inherits website_sale.total
provider_form_fee_inherit payment_provider.form.fee.inherit payment.provider xpath Inherits payment.payment_provider_form
Models touched (3)

New fields (7)
  • charge_fee Boolean
    help='An extra fee line will be added to online order when using this payment method' args: 'Fee charged to customer'
  • charge_fee_currency_id Many2one → res.currency
    string='Fee Currency' args: 'res.currency'
  • charge_fee_description Text
    compute='_compute_charge_fee_description' args: 'Fee Description'
  • charge_fee_fixed_price Float
    digits='Product Price' args: 'Fixed Price'
  • charge_fee_percentage Float
    help='Percentage applied to order total' args: 'Percentage'
  • charge_fee_product_id Many2one → product.product
    domain="[('type', '=', 'service')]" string='Fee Product' args: 'product.product'
  • charge_fee_type Selection
    default='fixed' string='Computation type' args: [('fixed', 'Fixed'), ('percentage', 'Percentage')]
Public methods (0)

No public methods.

New fields (1)
  • amount_payment_fee Monetary
    compute='_compute_amount_payment_fee' store=True string='Payment Fee Amount' tracking=True
Public methods (1)
  • update_fee_line(self, provider)

New fields (1)
  • payment_fee_line Boolean
    readonly=True args: 'Payment fee line'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/15.0/website_sale_charge_payment_fee
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Antoni Marroig Campomar
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - website_sale
    - website
    - digest
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - google_recaptcha
    - utm
    - sale
    - sales_team
    - payment
    - account
    - product
    - uom
    - analytic
    - website_payment
    - website_mail
    - portal_rating
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
acquirer_form_fee_inherit acquirer.form.fee.inherit payment.acquirer xpath Inherits payment.payment_acquirer_form
payment_fee Payment Fee ir.ui.view qweb Inherits website_sale.total
payment_tokens_list_fee payment_tokens_list_fee ir.ui.view qweb Inherits payment.checkout
Models touched (3)

New fields (7)
  • charge_fee Boolean
    help='An extra fee line will be added to online order when using this payment method' args: 'Fee charged to customer'
  • charge_fee_currency_id Many2one → res.currency
    string='Fee Currency' args: 'res.currency'
  • charge_fee_description Text
    args: 'Fee Description'
  • charge_fee_fixed_price Float
    digits=dp.get_precision('Product Price') args: 'Fixed Price'
  • charge_fee_percentage Float
    help='Percentage applied to order total' args: 'Percentage'
  • charge_fee_product_id Many2one → product.product
    string='Fee Product' args: 'product.product'
  • charge_fee_type Selection
    default='fixed' string='Computation type' args: [('fixed', 'Fixed'), ('percentage', 'Percentage')]
Public methods (1)
  • onchange_charge_fee_product_id(self)
    @api.onchange('charge_fee_product_id')

New fields (1)
  • amount_payment_fee Monetary
    compute='_compute_amount_payment_fee' digits=0 store=True string='Payment Fee Amount' tracking=True
Public methods (1)
  • update_fee_line(self, acquirer)

New fields (1)
  • payment_fee_line Boolean
    readonly=True args: 'Payment fee line'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/14.0/website_sale_charge_payment_fee
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Studio73, Agile Business Group, AITIC S.A.S, Quartile Limited
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, miguels73
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:52
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - website_sale
    - website
    - digest
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - social_media
    - sale
    - sales_team
    - payment
    - account
    - product
    - uom
    - analytic
    - utm
    - website_payment
    - website_mail
    - website_form
    - google_recaptcha
    - portal_rating
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
acquirer_form_fee_inherit acquirer.form.fee.inherit payment.acquirer xpath Inherits payment.acquirer_form
assets_frontend assets_frontend ir.ui.view qweb Inherits website.assets_frontend
assets_tests Website Sale Assets Tests ir.ui.view qweb Inherits web.assets_tests
payment_fee Payment Fee ir.ui.view qweb Inherits website_sale.total
payment_tokens_list_fee payment_tokens_list_fee ir.ui.view qweb Inherits payment.payment_tokens_list
Models touched (3)

New fields (7)
  • charge_fee Boolean
    help='An extra fee line will be added to online order when using this payment method' args: 'Fee charged to customer'
  • charge_fee_currency_id Many2one → res.currency
    string='Fee Currency' args: 'res.currency'
  • charge_fee_description Text
    args: 'Fee Description'
  • charge_fee_fixed_price Float
    digits=dp.get_precision('Product Price') args: 'Fixed Price'
  • charge_fee_percentage Float
    help='Percentage applied to order total' args: 'Percentage'
  • charge_fee_product_id Many2one → product.product
    string='Fee Product' args: 'product.product'
  • charge_fee_type Selection
    default='fixed' string='Computation type' args: [('fixed', 'Fixed'), ('percentage', 'Percentage')]
Public methods (1)
  • onchange_charge_fee_product_id(self)
    @api.onchange('charge_fee_product_id')

New fields (1)
  • amount_payment_fee Monetary
    compute='_compute_amount_payment_fee' digits=0 store=True string='Payment Fee Amount' track_visibility='always'
Public methods (1)
  • update_fee_line(self, acquirer)

New fields (1)
  • payment_fee_line Boolean
    readonly=True args: 'Payment fee line'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/12.0/website_sale_charge_payment_fee
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYWebsite
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, AITIC S.A.S, Quartile Limited
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, AITIC S.A.S, Quartile Limited
COMMITTERS
COMMITTERSPedro M. Baeza, Weblate, OCA-git-bot, tslai
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - website_sale
    - website
    - web
    - base
    - web_editor
    - http_routing
    - portal
    - mail
    - base_setup
    - bus
    - web_tour
    - social_media
    - sale
    - sales_team
    - payment
    - account
    - product
    - decimal_precision
    - uom
    - analytic
    - digest
    - website_payment
    - website_mail
    - website_form
    - website_rating
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
acquirer_form_fee_inherit acquirer.form.fee.inherit payment.acquirer xpath Inherits payment.acquirer_form
assets_frontend assets_frontend ir.ui.view qweb Inherits website.assets_frontend
payment_fee Payment Fee ir.ui.view qweb Inherits website_sale.total
payment_tokens_list_fee payment_tokens_list_fee ir.ui.view qweb Inherits payment.payment_tokens_list
Models touched (3)

New fields (7)
  • charge_fee Boolean
    help='An extra fee line will be added to online order when using this payment method' args: 'Fee charged to customer'
  • charge_fee_currency_id Many2one → res.currency
    string='Fee Currency' args: 'res.currency'
  • charge_fee_description Text
    args: 'Fee Description'
  • charge_fee_fixed_price Float
    digits=dp.get_precision('Product Price') args: 'Fixed Price'
  • charge_fee_percentage Float
    help='Percentage applied to order total' args: 'Percentage'
  • charge_fee_product_id Many2one → product.product
    string='Fee Product' args: 'product.product'
  • charge_fee_type Selection
    default='fixed' string='Computation type' args: [('fixed', 'Fixed'), ('percentage', 'Percentage')]
Public methods (1)
  • onchange_charge_fee_product_id(self)
    @api.onchange('charge_fee_product_id')

New fields (1)
  • amount_payment_fee Monetary
    compute='_compute_amount_payment_fee' digits=0 store=True string='Payment Fee Amount' track_visibility='always'
Public methods (1)
  • update_fee_line(self, acquirer)

New fields (1)
  • payment_fee_line Boolean
    readonly=True args: 'Payment fee line'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/e-commerce
GIT
GIThttps://github.com/OCA/e-commerce.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/e-commerce/tree/10.0/website_sale_charge_payment_fee
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYWebsite
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group
COMMITTERS
COMMITTERSeLBati, GitHub, oca-travis, Weblate, OCA-git-bot, SimoRubi, OCA Git Bot
WEBSITE
WEBSITEhttps://github.com/OCA/e-commerce
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - website_sale
    - website
    - web
    - base
    - web_editor
    - web_planner
    - sale
    - sales_team
    - mail
    - base_setup
    - web_kanban
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - procurement
    - payment
    - website_payment
    - website_portal
    - website_portal_sale
    - portal_sale
    - portal
    - auth_signup
    - website_mail
    - website_form
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
acquirer_form_fee acquirer_form_fee payment.acquirer notebook Inherits payment.acquirer_form
assets_frontend assets_frontend ir.ui.view qweb Inherits website.assets_frontend
cart_lines_fee cart_lines_fee ir.ui.view qweb Inherits website_sale.cart_lines
confirmation_fee confirmation_fee ir.ui.view qweb Inherits website_sale.confirmation
payment_fee payment_fee ir.ui.view qweb Inherits website_sale.payment
Models touched (3)

New fields (7)
  • charge_fee Boolean
    help='An extra fee line will be added to online order when using this payment method' args: 'Fee charged to customer'
  • charge_fee_description Text
    args: 'Fee Description'
  • charge_fee_fixed_price Float
    digits=dp.get_precision('Product Price') args: 'Fixed Price'
  • charge_fee_percentage Float
    help='Percentage applied to order total' args: 'Percentage'
  • charge_fee_product_id Many2one → product.product
    string='Fee Product' args: 'product.product'
  • charge_fee_tax_ids Many2many → account.tax
    string='Taxes' args: 'account.tax'
  • charge_fee_type Selection
    default='fixed' string='Computation type' args: [('fixed', 'Fixed'), ('percentage', 'Percentage')]
Public methods (1)
  • onchange_charge_fee_product_id(self)
    @api.onchange('charge_fee_product_id')

New fields (0)

No new fields.

Public methods (1)
  • update_fee_line(self, acquirer)

New fields (1)
  • payment_fee_line Boolean
    readonly=True args: 'Payment fee line'
Public methods (0)

No public methods.