Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 141 additions & 0 deletions sale_product_identification_pos/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
=======================================
Sale Product Identification Numbers Pos
=======================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:22a84d56fc0e509a813579268838fa0972e835f96492926b76512ea151a8bdf7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/18.0/sale_product_identification_pos
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-18-0/pos-18-0-sale_product_identification_pos
: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/pos&target_branch=18.0
:alt: Try me on Runboat

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

This module allows you to validate IDs when confirming an order at the
point of sale.

This module is based on sale_product_identification, so the contexts and
validations apply equally at the point of sale.

**Table of contents**

.. contents::
:local:

Usage
=====

Identification required at the point of sale
--------------------------------------------

1. Go to Point of Sale

2. Open a session

3. Add products that require identification; these are recognized by a
hazard symbol that appears next to the name.

|PRODUCT_IDENTIFICATION_TITLE|

4. If you do not select a partner and there are products in the order
with a required identification, the behavior depends on the
identification enforcement flag configured in General Settings / POS
configuration:

- When enforcement is enabled, the POS blocks the sale and shows an
error that forces the cashier to select a customer before
continuing.
- When enforcement is disabled, the POS warns the cashier so the
order may proceedor may not continue after ID verification.

|WITHOUT_PARTNER|

5. If you select a partner and they do not meet the required
identification requirements, a message will be displayed with the
missing information.

|IDENTIFICATION_MANDATORY| |DIALOG_IDENTIFICATION_MANDATORY|

6. If the required IDs are validated correctly and optional IDs exist, a
window will be displayed for the user to validate if everything is
correct and if affirmative, the process continues normally.

Offline behavior
~~~~~~~~~~~~~~~~

- If the browser detects that it is offline, the POS blocks sales for
products requiring identification whenever enforcement is enabled,
because validations cannot be confirmed against the server.

- When enforcement is disabled and the POS temporarily loses connection
during validation, a warning dialog lists the affected products and
lets the cashier decide whether to continue without verification or
cancel.

|IDENTIFICATION_NOT_MANDATORY| |DIALOG_IDENTIFICATION_NOT_MANDATORY|

.. |PRODUCT_IDENTIFICATION_TITLE| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/PRODUCT_IDENTIFICATION_TITLE.png
.. |WITHOUT_PARTNER| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/WITHOUT_PARTNER.png
.. |IDENTIFICATION_MANDATORY| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/IDENTIFICATION_MANDATORY.png
.. |DIALOG_IDENTIFICATION_MANDATORY| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/DIALOG_IDENTIFICATION_MANDATORY.png
.. |IDENTIFICATION_NOT_MANDATORY| image:: https://raw.githubusercontent.com/OCA/pos/18.0/sale_product_identification_pos/static/img/readme/IDENTIFICATION_NOT_MANDATORY.png
.. |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

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/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/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**>`_.

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

Credits
=======

Authors
-------

* Binhex

Contributors
------------

- `Binhex <https://www.binhex.cloud/>`__:

- Edilio Escalona Almira [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.

This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/18.0/sale_product_identification_pos>`_ project on GitHub.

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

from . import models
23 changes: 23 additions & 0 deletions sale_product_identification_pos/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2025 Binhex <https://www.binhex.cloud>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Sale Product Identification Numbers Pos",
"author": "Binhex,Odoo Community Association (OCA)",
"category": "Point Of Sale",
"website": "https://github.com/OCA/pos",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"depends": ["point_of_sale", "sale_product_identification"],
"data": [
"views/res_config_settings_views.xml",
],
"assets": {
"point_of_sale._assets_pos": [
"sale_product_identification_pos/static/src/**/*.esm.js",
"sale_product_identification_pos/static/src/**/*.xml",
],
"web.assets_unit_tests": [
"sale_product_identification_pos/static/tests/unit/**/*.js",
],
},
}
95 changes: 95 additions & 0 deletions sale_product_identification_pos/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_product_identification_pos
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-16 23:05+0000\n"
"PO-Revision-Date: 2025-09-16 23:05+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: sale_product_identification_pos
#. odoo-python
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
msgid ""
"%(message_head)s\n"
" %(identifications)s"
msgstr ""

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
msgid "Cancel"
msgstr "Cancelar"

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
msgid "Confirm"
msgstr "Confirmar"

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
msgid "Identifications"
msgstr "Identificaciones"

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/models/pos_order_line.esm.js:0
msgid ""
"Identifications:\n"
"%(categories)s"
msgstr ""
"Identificaciones:\n"
"%(categories)s"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_category
msgid "Partner ID Category"
msgstr "Categoría Empresa"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_number
msgid "Partner ID Number"
msgstr "Número empresa"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesión TPV"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_product_template_id_category
msgid "Product Template Identification Category"
msgstr ""

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_product_product
msgid "Product Variant"
msgstr "Variante de producto"

#. module: sale_product_identification_pos
#. odoo-python
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
msgid ""
"The following identifications are required to validate the order, please "
"verify."
msgstr ""
"Se requieren las siguientes identificaciones para validar el pedido. Por favor, verifique."

#. module: sale_product_identification_pos
#. odoo-python
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
msgid ""
"The following identifications require verification, please validate before "
"continuing:"
msgstr ""
"Las siguientes identificaciones requieren verificación. Por favor, valide antes de continuar."
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_product_identification_pos
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-31 23:18+0000\n"
"PO-Revision-Date: 2025-10-31 23:18+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: sale_product_identification_pos
#. odoo-python
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
msgid ""
"%(message_head)s\n"
" %(identifications)s"
msgstr ""

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
msgid "Cancel"
msgstr "Cancelar"

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
msgid "Confirm"
msgstr "Confirmar"

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/store/pos_store.esm.js:0
msgid "Identifications"
msgstr "Identificaciones"

#. module: sale_product_identification_pos
#. odoo-javascript
#: code:addons/sale_product_identification_pos/static/src/app/models/pos_order_line.esm.js:0
msgid ""
"Identifications:\n"
"%(categories)s"
msgstr ""
"Identificaciones:\n"
"%(categories)s"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_category
msgid "Partner ID Category"
msgstr "Categoría Empresa"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_res_partner_id_number
msgid "Partner ID Number"
msgstr "Número empresa"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesión TPV"

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_product_template_id_category
msgid "Product Template Identification Category"
msgstr ""

#. module: sale_product_identification_pos
#: model:ir.model,name:sale_product_identification_pos.model_product_product
msgid "Product Variant"
msgstr "Variante de producto"

#. module: sale_product_identification_pos
#. odoo-python
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
msgid ""
"The following identifications are required to validate the order, please "
"verify."
msgstr ""
"Se requieren las siguientes identificaciones para validar el pedido. Por favor, verifique."

#. module: sale_product_identification_pos
#. odoo-python
#: code:addons/sale_product_identification_pos/models/res_partner_id_number.py:0
msgid ""
"The following identifications require verification, please validate before "
"continuing:"
msgstr ""
"Las siguientes identificaciones requieren verificación. Por favor, valide antes de continuar."
9 changes: 9 additions & 0 deletions sale_product_identification_pos/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copyright 2025 Binhex <https://www.binhex.cloud>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import product_product
from . import pos_session
from . import product_template_id_category
from . import res_partner_id_category
from . import res_partner_id_number
from . import res_config_settings
Loading
Loading