diff --git a/website_sale_checkout_skip_payment/README.rst b/website_sale_checkout_skip_payment/README.rst index 4422f7b854..bab47ec79b 100644 --- a/website_sale_checkout_skip_payment/README.rst +++ b/website_sale_checkout_skip_payment/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - ================================== Website Sale Checkout Skip Payment ================================== @@ -17,7 +13,7 @@ Website Sale Checkout Skip Payment .. |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/license-LGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github diff --git a/website_sale_checkout_skip_payment/__manifest__.py b/website_sale_checkout_skip_payment/__manifest__.py index add577f1c5..3dd4711fbd 100644 --- a/website_sale_checkout_skip_payment/__manifest__.py +++ b/website_sale_checkout_skip_payment/__manifest__.py @@ -18,6 +18,7 @@ "views/website_sale_template.xml", "views/partner_view.xml", "views/res_config_settings_views.xml", + "views/sale_order.xml", ], "assets": { "web.assets_tests": [ diff --git a/website_sale_checkout_skip_payment/controllers/main.py b/website_sale_checkout_skip_payment/controllers/main.py index f4d6181324..82ab331aa8 100644 --- a/website_sale_checkout_skip_payment/controllers/main.py +++ b/website_sale_checkout_skip_payment/controllers/main.py @@ -24,14 +24,18 @@ def shop_payment_confirmation(self, **post): if not request.website.checkout_skip_payment or not order_id: return super().shop_payment_confirmation(**post) order = request.env["sale.order"].sudo().browse(order_id) + confirm = request.website.website_sale_skip_payment_confirm try: - order.with_context(mark_so_as_sent=True)._send_order_confirmation_mail() + order.website_payment_skipped = True + # This could not finish (e.g.: sale_financial_risk exceeded) + if confirm: + order.with_context(send_email=True).action_confirm() + else: + order.with_context(mark_so_as_sent=True)._send_order_confirmation_mail() except Exception: return request.render( "website_sale_checkout_skip_payment.confirmation_order_error" ) - # This could not finish (e.g.: sale_financial_risk exceeded) - order.action_confirm() request.website.sale_reset() values = self._prepare_shop_payment_confirmation_values(order) return request.render("website_sale.confirmation", values) diff --git a/website_sale_checkout_skip_payment/models/__init__.py b/website_sale_checkout_skip_payment/models/__init__.py index 61e4795980..99faa535ca 100644 --- a/website_sale_checkout_skip_payment/models/__init__.py +++ b/website_sale_checkout_skip_payment/models/__init__.py @@ -1,3 +1,4 @@ from . import res_config_settings from . import res_partner +from . import sale_order from . import website diff --git a/website_sale_checkout_skip_payment/models/res_config_settings.py b/website_sale_checkout_skip_payment/models/res_config_settings.py index a4e22abc46..684f1e2654 100644 --- a/website_sale_checkout_skip_payment/models/res_config_settings.py +++ b/website_sale_checkout_skip_payment/models/res_config_settings.py @@ -6,6 +6,10 @@ class ResConfigSettings(models.TransientModel): _inherit = "res.config.settings" + website_sale_skip_payment_confirm = fields.Boolean( + related="website_id.website_sale_skip_payment_confirm", + readonly=False, + ) website_sale_checkout_skip_message = fields.Text( "Website Sale Checkout Skip Message", related="website_id.website_sale_checkout_skip_message", diff --git a/website_sale_checkout_skip_payment/models/sale_order.py b/website_sale_checkout_skip_payment/models/sale_order.py new file mode 100644 index 0000000000..57979585d9 --- /dev/null +++ b/website_sale_checkout_skip_payment/models/sale_order.py @@ -0,0 +1,14 @@ +# Copyright 2025 ACSONE SA/NV +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). +from odoo import fields, models + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + website_payment_skipped = fields.Boolean( + readonly=True, + index=True, + help="This is checked if the sale order has been confirmed with a partner " + "that can skip payment", + ) diff --git a/website_sale_checkout_skip_payment/models/website.py b/website_sale_checkout_skip_payment/models/website.py index 7cfcae4c75..f1b83de601 100644 --- a/website_sale_checkout_skip_payment/models/website.py +++ b/website_sale_checkout_skip_payment/models/website.py @@ -13,6 +13,12 @@ def _get_default_skip_message(self): "Our team will check your order and send you payment information soon." ) + website_sale_skip_payment_confirm = fields.Boolean( + string="Confirm the Sale Order when skipping payment", + help="Check this if you want to confirm the sale order when" + "the 'skip payment' option is activated on partner level.", + ) + website_sale_checkout_skip_message = fields.Text( string="Website Sale SKip Message", required=True, diff --git a/website_sale_checkout_skip_payment/static/description/index.html b/website_sale_checkout_skip_payment/static/description/index.html index ccd1d667c9..6f0bfa879e 100644 --- a/website_sale_checkout_skip_payment/static/description/index.html +++ b/website_sale_checkout_skip_payment/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +Website Sale Checkout Skip Payment -
+
+

Website Sale Checkout Skip Payment

- - -Odoo Community Association - -
-

Website Sale Checkout Skip Payment

-

Beta License: LGPL-3 OCA/e-commerce Translate me on Weblate Try me on Runboat

+

Beta License: LGPL-3 OCA/e-commerce Translate me on Weblate Try me on Runboat

This module allows to logged users to checkout with no payment step. At the end of the checkout proccess the quotation is sent to the user email address and set to Qoutation Sent state.

@@ -393,7 +388,7 @@

Website Sale Checkout Skip Payment

-

Configuration

+

Configuration

To configure this module, you need to:

  1. Go to Sales > Customers > Sales and Purchases > Sale
  2. @@ -402,14 +397,14 @@

    Configuration

-

Usage

+

Usage

To use this module, you need to:

  1. Go to Website > shop and perform a checkout.
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub 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 @@ -417,15 +412,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Tecnativa
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -456,6 +451,5 @@

Maintainers

-
diff --git a/website_sale_checkout_skip_payment/views/res_config_settings_views.xml b/website_sale_checkout_skip_payment/views/res_config_settings_views.xml index 386e837afc..8432ab077f 100644 --- a/website_sale_checkout_skip_payment/views/res_config_settings_views.xml +++ b/website_sale_checkout_skip_payment/views/res_config_settings_views.xml @@ -5,6 +5,18 @@ + +
+
+ +
+
+
+ + + sale.order.form + sale.order + + + + Payment + skipped + + + + + + sale.order.list.select + sale.order + + + + + + + + diff --git a/website_sale_checkout_skip_payment/views/website_sale_template.xml b/website_sale_checkout_skip_payment/views/website_sale_template.xml index bdc1c422e2..a815a4a0bb 100644 --- a/website_sale_checkout_skip_payment/views/website_sale_template.xml +++ b/website_sale_checkout_skip_payment/views/website_sale_template.xml @@ -12,22 +12,6 @@