From c78938f015415400bf455e7325d81d05694e4887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?meval1006=E2=80=8B?= Date: Tue, 4 Nov 2025 15:10:50 -0800 Subject: [PATCH] [IMP] sales: added customer signature tab shown in developer mode --- .../get_signature_to_validate.rst | 23 ++++++++++++------ .../customer-signature-tab.png | Bin 0 -> 14419 bytes 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 content/applications/sales/sales/send_quotations/get_signature_to_validate/customer-signature-tab.png diff --git a/content/applications/sales/sales/send_quotations/get_signature_to_validate.rst b/content/applications/sales/sales/send_quotations/get_signature_to_validate.rst index aa97879250..6948a00899 100644 --- a/content/applications/sales/sales/send_quotations/get_signature_to_validate.rst +++ b/content/applications/sales/sales/send_quotations/get_signature_to_validate.rst @@ -2,7 +2,7 @@ Online signatures for order confirmations ========================================= -The Odoo *Sales* application provides customers with the ability to confirm orders, via an online +The Odoo **Sales** application provides customers with the ability to confirm orders, via an online signature, directly on the sales order. Once the sales order is electronically signed by the customer, the salesperson attached to the sales order is instantly notified that the order is confirmed. @@ -18,7 +18,6 @@ Settings`, scroll to the :guilabel:`Quotations \& Orders` heading, and activate :guilabel:`Online Signature` feature by checking the box beside it. .. image:: get_signature_to_validate/signature-setting.png - :align: center :alt: The Online Signature feature option in the Settings of the Odoo Sales application. Then, click the :guilabel:`Save` button in the top-left corner. @@ -28,14 +27,12 @@ Then, click the :guilabel:`Save` button in the top-left corner. option, located in the :guilabel:`Online confirmation` field of the quotation template form. .. image:: get_signature_to_validate/signature-feature-quotation-template.png - :align: center :alt: The Online confirmation signature option found on every quotation template in Odoo. On standard quotations, the online signature feature is the :guilabel:`Signature` option, located under the :guilabel:`Other Info` tab of the quotation form. .. image:: get_signature_to_validate/signature-other-info-tab.png - :align: center :alt: The online signature feature option in the Other Info tab of a quotation form in Odoo. Order confirmations with online signatures @@ -45,14 +42,12 @@ When clients access quotations online through their customer portal, there's a : Pay` button directly on the quotation. .. image:: get_signature_to_validate/sign-and-pay-button.png - :align: center :alt: The Sign and Pay button present on online quotations in Odoo Sales. When clicked, a :guilabel:`Validate Order` pop-up window appears. In this pop-up window, the :guilabel:`Full Name` field is auto-populated, based on the contact information in the database. .. image:: get_signature_to_validate/validate-order-popup.png - :align: center :alt: The Validate Order pop-up window for online signatures in Odoo Sales. Then, customers have the option to enter an online signature with any of the following options: @@ -71,8 +66,22 @@ When :guilabel:`Accept \& Sign` is clicked, the various payment method options b them to choose from (if the *online payment* option applies to this quotation). Then, when the quotation is paid and confirmed, a delivery order is automatically created (if the -Odoo *Inventory* app is installed). +Odoo **Inventory** app is installed). + +View online signatures in Developer Mode +---------------------------------------- + +Clients can view the online signature in :ref:`developer mode `. + +To view a online signature from a paid invoice, go to :menuselection:`Sales app --> Orders --> +Orders` and select the desired sales order. A new tab, :guilabel:`Customer Signature`, is available. +Click the tab to view the electronic signature as well as the :guilabel:`Signed By` and +:guilabel:`Signed On` information. + +.. image:: get_signature_to_validate/customer-signature-tab.png + :alt: The Customer Signature tab on a sales order when in Developer Mode. .. seealso:: - :doc:`quote_template` - :doc:`get_paid_to_validate` + diff --git a/content/applications/sales/sales/send_quotations/get_signature_to_validate/customer-signature-tab.png b/content/applications/sales/sales/send_quotations/get_signature_to_validate/customer-signature-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e56b7eecb44240148a43ab506813968fa98bdb GIT binary patch literal 14419 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 A#Q*>R literal 0 HcmV?d00001