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
108 changes: 108 additions & 0 deletions pos_sequence/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
====================
POS Product Sequence
====================

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

.. |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/pos_sequence
: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-pos_sequence
: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 adds a POS sequence on products and sorts products in the
Point of Sale grid using this order:

1. POS sequence
2. Internal Reference (default code)
3. Product name

**Table of contents**

.. contents::
:local:

Configuration
=============

To configure this module, you need to:

- Go to *Point of Sale > Products > Products*.
- Set *POS sequence* on products.
- Use lower values to make products appear earlier in the POS grid.

Usage
=====

When products are loaded in Point of Sale, they are displayed ordered
by:

1. POS sequence
2. Internal Reference (default code)
3. Product name

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:%20pos_sequence%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
-------

* Miguel Machado

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

- Miguel Machado

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-MiguelMachadoM| image:: https://github.com/MiguelMachadoM.png?size=40px
:target: https://github.com/MiguelMachadoM
:alt: MiguelMachadoM

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

|maintainer-MiguelMachadoM|

This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/18.0/pos_sequence>`_ 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 pos_sequence/__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
25 changes: 25 additions & 0 deletions pos_sequence/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2026 Miguel Machado
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "POS Product Sequence",
"summary": "Sort POS products by custom sequence, reference and name",
"version": "18.0.1.0.0",
"development_status": "Beta",
"category": "Point Of Sale",
"website": "https://github.com/OCA/pos",
"author": "Miguel Machado, Odoo Community Association (OCA)",
"maintainers": ["MiguelMachadoM"],
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["point_of_sale"],
"data": [
"views/product_template_views.xml",
"views/product_product_views.xml",
],
"assets": {
"point_of_sale._assets_pos": [
"pos_sequence/static/src/js/product_screen_pos_sequence.esm.js",
],
},
}
4 changes: 4 additions & 0 deletions pos_sequence/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import product_product
from . import product_template
21 changes: 21 additions & 0 deletions pos_sequence/models/product_product.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import api, fields, models


class ProductProduct(models.Model):
_inherit = "product.product"

pos_sequence = fields.Integer(
string="POS sequence",
related="product_tmpl_id.pos_sequence",
readonly=False,
store=True,
)

@api.model
def _load_pos_data_fields(self, config_id):
fields_list = super()._load_pos_data_fields(config_id)
if "pos_sequence" not in fields_list:
fields_list = list(fields_list) + ["pos_sequence"]
return fields_list
13 changes: 13 additions & 0 deletions pos_sequence/models/product_template.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import fields, models


class ProductTemplate(models.Model):
_inherit = "product.template"

pos_sequence = fields.Integer(
string="POS sequence",
default=100,
help="Lower values are displayed first in the Point of Sale product grid.",
)
3 changes: 3 additions & 0 deletions pos_sequence/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
5 changes: 5 additions & 0 deletions pos_sequence/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
To configure this module, you need to:

- Go to *Point of Sale > Products > Products*.
- Set *POS sequence* on products.
- Use lower values to make products appear earlier in the POS grid.
1 change: 1 addition & 0 deletions pos_sequence/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Miguel Machado
6 changes: 6 additions & 0 deletions pos_sequence/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
This module adds a POS sequence on products and sorts products in the Point of Sale
grid using this order:

1. POS sequence
2. Internal Reference (default code)
3. Product name
5 changes: 5 additions & 0 deletions pos_sequence/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
When products are loaded in Point of Sale, they are displayed ordered by:

1. POS sequence
2. Internal Reference (default code)
3. Product name
Binary file added pos_sequence/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading