Skip to content

Commit

Permalink
[15.0][ADD] website_sale_partner_restrict_payment_acquirer: New modul…
Browse files Browse the repository at this point in the history
…e website_sale_partner_restrict_payment_acquirer
  • Loading branch information
ppyczko committed Feb 19, 2025
1 parent 2b352b5 commit 53cc55b
Show file tree
Hide file tree
Showing 20 changed files with 722 additions and 0 deletions.
6 changes: 6 additions & 0 deletions setup/website_sale_partner_restrict_payment_acquirer/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
102 changes: 102 additions & 0 deletions website_sale_partner_restrict_payment_acquirer/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
==============================================
Website Sale Partner Restrict Payment Acquirer
==============================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:cbb26db9d767bb456ca0a66b7c079062cba22baa86c8aa19778022853f820434
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github
:target: https://github.com/OCA/e-commerce/tree/15.0/website_sale_partner_restrict_payment_acquirer
:alt: OCA/e-commerce
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/e-commerce-15-0/e-commerce-15-0-website_sale_partner_restrict_payment_acquirer
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/e-commerce&target_branch=15.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends the functionality of `partner_restrict_payment_acquirer` to restrict payment acquirers for a partner during the checkout process in e-commerce. Only the selected acquirers will be available for online payments.

**Table of contents**

.. contents::
:local:

Usage
=====

Open the partner form and go to the `Sales & Purchases` tab. Add payment acquirers in the `Allowed Acquirers` field.

Note: Leaving this field empty will remove restrictions and allow the selection of any acquirer.

![Partner Form Allowed Acquirers](static/description/partner_form_allowed_acquirers.png)

When the partner proceeds to checkout in the portal, only the allowed acquirers will be available for payment.

![Checkout Acquirers](static/description/checkout_acquirers.png)

For not logged-in users, if you want to restrict their allowed acquirers, you need to edit the `Allowed Acquirers` field for the `Public user` partner (`base.public_user`).

![Public User](static/description/public_user.png)

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/e-commerce/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/e-commerce/issues/new?body=module:%20website_sale_partner_restrict_payment_acquirer%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* APSL-Nagarro

Contributors
~~~~~~~~~~~~

* `APSL-Nagarro <https://www.apsl.tech>`_:
* Patryk Pyczko <[email protected]>

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-ppyczko| image:: https://github.com/ppyczko.png?size=40px
:target: https://github.com/ppyczko
:alt: ppyczko

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-ppyczko|

This module is part of the `OCA/e-commerce <https://github.com/OCA/e-commerce/tree/15.0/website_sale_partner_restrict_payment_acquirer>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions website_sale_partner_restrict_payment_acquirer/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
17 changes: 17 additions & 0 deletions website_sale_partner_restrict_payment_acquirer/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright 2025 Patryk Pyczko (APSL-Nagarro)<[email protected]>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Website Sale Partner Restrict Payment Acquirer",
"version": "15.0.1.0.0",
"summary": "Restrict payment acquirers for partners during the "
"checkout process on eCommerce.",
"category": "Website",
"website": "https://github.com/OCA/e-commerce",
"author": "APSL-Nagarro, Odoo Community Association (OCA)",
"maintainers": ["ppyczko"],
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["partner_restrict_payment_acquirer", "website_sale"],
}
21 changes: 21 additions & 0 deletions website_sale_partner_restrict_payment_acquirer/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_partner_restrict_payment_acquirer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-06 16:51+0000\n"
"PO-Revision-Date: 2025-02-06 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: website_sale_partner_restrict_payment_acquirer
#: model:ir.model,name:website_sale_partner_restrict_payment_acquirer.model_payment_acquirer
msgid "Payment Acquirer"
msgstr "Mètode de pagament"
21 changes: 21 additions & 0 deletions website_sale_partner_restrict_payment_acquirer/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_partner_restrict_payment_acquirer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-06 16:51+0000\n"
"PO-Revision-Date: 2025-02-06 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: website_sale_partner_restrict_payment_acquirer
#: model:ir.model,name:website_sale_partner_restrict_payment_acquirer.model_payment_acquirer
msgid "Payment Acquirer"
msgstr "Método de Pago"
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_partner_restrict_payment_acquirer
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-06 16:51+0000\n"
"PO-Revision-Date: 2025-02-06 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: website_sale_partner_restrict_payment_acquirer
#: model:ir.model,name:website_sale_partner_restrict_payment_acquirer.model_payment_acquirer
msgid "Payment Acquirer"
msgstr ""
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import payment_acquirer
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Copyright 2025 Patryk Pyczko (APSL-Nagarro)<[email protected]>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import api, models


class PaymentAcquirer(models.Model):
_inherit = "payment.acquirer"

@api.model
def _get_compatible_acquirers(self, *args, website_id=None, **kwargs):
"""
Override to filter acquirers based on the partner's allowed acquirers.
This method first fetches acquirers based on general criteria, then
filters them by the partner's allowed acquirers list.
:param int website_id: The provided website, as a `website` id
:return: The filtered list of compatible acquirers.
:rtype: recordset of `payment.acquirer`
"""
acquirers = super()._get_compatible_acquirers(
*args, website_id=website_id, **kwargs
)

allowed_acquirers = self.env.user.partner_id.allowed_acquirer_ids
return (
acquirers.filtered(lambda acq: acq in allowed_acquirers)
if allowed_acquirers
else acquirers
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* `APSL-Nagarro <https://www.apsl.tech>`_:
* Patryk Pyczko <[email protected]>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This module extends the functionality of `partner_restrict_payment_acquirer` to restrict payment acquirers for a partner during the checkout process in e-commerce. Only the selected acquirers will be available for online payments.
13 changes: 13 additions & 0 deletions website_sale_partner_restrict_payment_acquirer/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Open the partner form and go to the `Sales & Purchases` tab. Add payment acquirers in the `Allowed Acquirers` field.

Note: Leaving this field empty will remove restrictions and allow the selection of any acquirer.

![Partner Form Allowed Acquirers](static/description/partner_form_allowed_acquirers.png)

When the partner proceeds to checkout in the portal, only the allowed acquirers will be available for payment.

![Checkout Acquirers](static/description/checkout_acquirers.png)

For not logged-in users, if you want to restrict their allowed acquirers, you need to edit the `Allowed Acquirers` field for the `Public user` partner (`base.public_user`).

![Public User](static/description/public_user.png)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 53cc55b

Please sign in to comment.