Skip to content

Commit 71ff962

Browse files
edescalonaarielbarreiros96
authored andcommitted
[ADD] sale_product_identification_pos
Verify the product ID when confirming an order at the point of sale
1 parent ae2cccc commit 71ff962

33 files changed

+1690
-0
lines changed
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
=======================================
2+
Sale Product Identification Numbers Pos
3+
=======================================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:22a84d56fc0e509a813579268838fa0972e835f96492926b76512ea151a8bdf7
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18+
:alt: License: AGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github
20+
:target: https://github.com/OCA/pos/tree/18.0/sale_product_identification_pos
21+
:alt: OCA/pos
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/pos-18-0/pos-18-0-sale_product_identification_pos
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/pos&target_branch=18.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
This module allows you to validate IDs when confirming an order at the
32+
point of sale.
33+
34+
This module is based on sale_product_identification, so the contexts and
35+
validations apply equally at the point of sale.
36+
37+
**Table of contents**
38+
39+
.. contents::
40+
:local:
41+
42+
Usage
43+
=====
44+
45+
Identification required at the point of sale
46+
--------------------------------------------
47+
48+
1. Go to Point of Sale
49+
50+
2. Open a session
51+
52+
3. Add products that require identification; these are recognized by a
53+
hazard symbol that appears next to the name.
54+
55+
|PRODUCT_IDENTIFICATION_TITLE|
56+
57+
4. If you do not select a partner and there are products in the order
58+
with a required identification, the behavior depends on the
59+
identification enforcement flag configured in General Settings / POS
60+
configuration:
61+
62+
- When enforcement is enabled, the POS blocks the sale and shows an
63+
error that forces the cashier to select a customer before
64+
continuing.
65+
- When enforcement is disabled, the POS warns the cashier so the
66+
order may proceedor may not continue after ID verification.
67+
68+
|WITHOUT_PARTNER|
69+
70+
5. If you select a partner and they do not meet the required
71+
identification requirements, a message will be displayed with the
72+
missing information.
73+
74+
|IDENTIFICATION_MANDATORY| |DIALOG_IDENTIFICATION_MANDATORY|
75+
76+
6. If the required IDs are validated correctly and optional IDs exist, a
77+
window will be displayed for the user to validate if everything is
78+
correct and if affirmative, the process continues normally.
79+
80+
Offline behavior
81+
~~~~~~~~~~~~~~~~
82+
83+
- If the browser detects that it is offline, the POS blocks sales for
84+
products requiring identification whenever enforcement is enabled,
85+
because validations cannot be confirmed against the server.
86+
87+
- When enforcement is disabled and the POS temporarily loses connection
88+
during validation, a warning dialog lists the affected products and
89+
lets the cashier decide whether to continue without verification or
90+
cancel.
91+
92+
|IDENTIFICATION_NOT_MANDATORY| |DIALOG_IDENTIFICATION_NOT_MANDATORY|
93+
94+
.. |PRODUCT_IDENTIFICATION_TITLE| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/PRODUCT_IDENTIFICATION_TITLE.png
95+
.. |WITHOUT_PARTNER| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/WITHOUT_PARTNER.png
96+
.. |IDENTIFICATION_MANDATORY| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/IDENTIFICATION_MANDATORY.png
97+
.. |DIALOG_IDENTIFICATION_MANDATORY| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/DIALOG_IDENTIFICATION_MANDATORY.png
98+
.. |IDENTIFICATION_NOT_MANDATORY| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/IDENTIFICATION_NOT_MANDATORY.png
99+
.. |DIALOG_IDENTIFICATION_NOT_MANDATORY| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/DIALOG_IDENTIFICATION_NOT_MANDATORY.png
100+
101+
Bug Tracker
102+
===========
103+
104+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/issues>`_.
105+
In case of trouble, please check there if your issue has already been reported.
106+
If you spotted it first, help us to smash it by providing a detailed and welcomed
107+
`feedback <https://github.com/OCA/pos/issues/new?body=module:%20sale_product_identification_pos%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
108+
109+
Do not contact contributors directly about support or help with technical issues.
110+
111+
Credits
112+
=======
113+
114+
Authors
115+
-------
116+
117+
* Binhex
118+
119+
Contributors
120+
------------
121+
122+
- `Binhex <https://www.binhex.cloud/>`__:
123+
124+
- Edilio Escalona Almira e.escalona@binhex.cloud
125+
126+
Maintainers
127+
-----------
128+
129+
This module is maintained by the OCA.
130+
131+
.. image:: https://odoo-community.org/logo.png
132+
:alt: Odoo Community Association
133+
:target: https://odoo-community.org
134+
135+
OCA, or the Odoo Community Association, is a nonprofit organization whose
136+
mission is to support the collaborative development of Odoo features and
137+
promote its widespread use.
138+
139+
This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/18.0/sale_product_identification_pos>`_ project on GitHub.
140+
141+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Copyright 2025 Binhex <https://www.binhex.cloud>
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from . import models
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright 2025 Binhex <https://www.binhex.cloud>
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
{
4+
"name": "Sale Product Identification Numbers Pos",
5+
"author": "Binhex,Odoo Community Association (OCA)",
6+
"category": "Point Of Sale",
7+
"website": "https://github.com/OCA/pos",
8+
"version": "18.0.1.0.0",
9+
"license": "AGPL-3",
10+
"depends": ["point_of_sale", "sale_product_identification"],
11+
"data": [
12+
"views/res_config_settings_views.xml",
13+
],
14+
"assets": {
15+
"point_of_sale._assets_pos": [
16+
"sale_product_identification_pos/static/src/**/*.esm.js",
17+
"sale_product_identification_pos/static/src/**/*.xml",
18+
],
19+
"web.assets_unit_tests": [
20+
"sale_product_identification_pos/static/tests/unit/**/*.js",
21+
],
22+
},
23+
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * sale_product_identification_pos
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 18.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2025-09-16 23:05+0000\n"
10+
"PO-Revision-Date: 2025-09-16 23:05+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: sale_product_identification_pos
19+
#. odoo-python
20+
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
21+
msgid ""
22+
"%(message_head)s\n"
23+
" %(identifications)s"
24+
msgstr ""
25+
26+
#. module: sale_product_identification_pos
27+
#. odoo-javascript
28+
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
29+
msgid "Cancel"
30+
msgstr "Cancelar"
31+
32+
#. module: sale_product_identification_pos
33+
#. odoo-javascript
34+
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
35+
msgid "Confirm"
36+
msgstr "Confirmar"
37+
38+
#. module: sale_product_identification_pos
39+
#. odoo-javascript
40+
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
41+
msgid "Identifications"
42+
msgstr "Identificaciones"
43+
44+
#. module: sale_product_identification_pos
45+
#. odoo-javascript
46+
#: code:addons/sale_product_identification_pos/static/src/app/models/pos_order_line.esm.js:0
47+
msgid ""
48+
"Identifications:\n"
49+
"%(categories)s"
50+
msgstr ""
51+
"Identificaciones:\n"
52+
"%(categories)s"
53+
54+
#. module: sale_product_identification_pos
55+
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_category
56+
msgid "Partner ID Category"
57+
msgstr "Categoría Empresa"
58+
59+
#. module: sale_product_identification_pos
60+
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_number
61+
msgid "Partner ID Number"
62+
msgstr "Número empresa"
63+
64+
#. module: sale_product_identification_pos
65+
#: model:ir.model,name:sale_product_identification_pos.model_pos_session
66+
msgid "Point of Sale Session"
67+
msgstr "Sesión TPV"
68+
69+
#. module: sale_product_identification_pos
70+
#: model:ir.model,name:sale_product_identification_pos.model_product_template_id_category
71+
msgid "Product Template Identification Category"
72+
msgstr ""
73+
74+
#. module: sale_product_identification_pos
75+
#: model:ir.model,name:sale_product_identification_pos.model_product_product
76+
msgid "Product Variant"
77+
msgstr "Variante de producto"
78+
79+
#. module: sale_product_identification_pos
80+
#. odoo-python
81+
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
82+
msgid ""
83+
"The following identifications are required to validate the order, please "
84+
"verify."
85+
msgstr ""
86+
"Se requieren las siguientes identificaciones para validar el pedido. Por favor, verifique."
87+
88+
#. module: sale_product_identification_pos
89+
#. odoo-python
90+
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
91+
msgid ""
92+
"The following identifications require verification, please validate before "
93+
"continuing:"
94+
msgstr ""
95+
"Las siguientes identificaciones requieren verificación. Por favor, valide antes de continuar."
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * sale_product_identification_pos
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 18.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2025-10-31 23:18+0000\n"
10+
"PO-Revision-Date: 2025-10-31 23:18+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: sale_product_identification_pos
19+
#. odoo-python
20+
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
21+
msgid ""
22+
"%(message_head)s\n"
23+
" %(identifications)s"
24+
msgstr ""
25+
26+
#. module: sale_product_identification_pos
27+
#. odoo-javascript
28+
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
29+
msgid "Cancel"
30+
msgstr "Cancelar"
31+
32+
#. module: sale_product_identification_pos
33+
#. odoo-javascript
34+
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
35+
msgid "Confirm"
36+
msgstr "Confirmar"
37+
38+
#. module: sale_product_identification_pos
39+
#. odoo-javascript
40+
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
41+
msgid "Identifications"
42+
msgstr "Identificaciones"
43+
44+
#. module: sale_product_identification_pos
45+
#. odoo-javascript
46+
#: code:addons/sale_product_identification_pos/static/src/app/models/pos_order_line.esm.js:0
47+
msgid ""
48+
"Identifications:\n"
49+
"%(categories)s"
50+
msgstr ""
51+
"Identificaciones:\n"
52+
"%(categories)s"
53+
54+
#. module: sale_product_identification_pos
55+
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_category
56+
msgid "Partner ID Category"
57+
msgstr "Categoría Empresa"
58+
59+
#. module: sale_product_identification_pos
60+
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_number
61+
msgid "Partner ID Number"
62+
msgstr "Número empresa"
63+
64+
#. module: sale_product_identification_pos
65+
#: model:ir.model,name:sale_product_identification_pos.model_pos_session
66+
msgid "Point of Sale Session"
67+
msgstr "Sesión TPV"
68+
69+
#. module: sale_product_identification_pos
70+
#: model:ir.model,name:sale_product_identification_pos.model_product_template_id_category
71+
msgid "Product Template Identification Category"
72+
msgstr ""
73+
74+
#. module: sale_product_identification_pos
75+
#: model:ir.model,name:sale_product_identification_pos.model_product_product
76+
msgid "Product Variant"
77+
msgstr "Variante de producto"
78+
79+
#. module: sale_product_identification_pos
80+
#. odoo-python
81+
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
82+
msgid ""
83+
"The following identifications are required to validate the order, please "
84+
"verify."
85+
msgstr ""
86+
"Se requieren las siguientes identificaciones para validar el pedido. Por favor, verifique."
87+
88+
#. module: sale_product_identification_pos
89+
#. odoo-python
90+
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
91+
msgid ""
92+
"The following identifications require verification, please validate before "
93+
"continuing:"
94+
msgstr ""
95+
"Las siguientes identificaciones requieren verificación. Por favor, valide antes de continuar."
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright 2025 Binhex <https://www.binhex.cloud>
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from . import product_product
5+
from . import pos_session
6+
from . import product_template_id_category
7+
from . import res_partner_id_category
8+
from . import res_partner_id_number
9+
from . import res_config_settings

0 commit comments

Comments
 (0)