Skip to main content

PoS Order To Sale Order

Project description

.. image::
:alt: License: AGPL-3

POS Order To Sale Order

This module extends the functionality of point of sale to allow sale orders
creation from the Point of Sale.

In the POS UI, buttons has been added to create a sale order and discard
the current POS order.

This module is usefull in many cases, for exemple :

* take orders with a very simple interface

* if you have some customers that come every day in your shop, but want to
have a unique invoice at the end of the month. With that module, you can
create a sale order and deliver products every time to keep your stock value
correct, and to create a unique invoice, when you want.

Three options are available:

#. '**Create a draft Order**'
A new sale order in a draft mode will be created that can be changed later.

.. figure:: static/description/pos_create_picking_option_1.png
:width: 800 px

#. '**Create a Confirmed Order**'
A new sale order will be created and confirmed.

.. figure:: static/description/pos_create_picking_option_2.png
:width: 800 px

#. '**Create Delivered Picking**' (by default)
A new sale order will be created and confirmed. the associated picking
will be marked as delivered.

.. figure:: static/description/pos_create_picking_option_3.png
:width: 800 px


To configure this module, you need to:

#. Go to Point Of Sale / Configuration / Point of Sale
#. Check the box 'Create Sale Orders'
#. Select the desired default behaviour

.. figure:: static/description/pos_config_form.png
:width: 800 px


.. image::
:alt: Try me on Runbot

Technical Notes

* Some hooks are defined in the JS file, to define custom behaviour after
having created the sale order (and the stock picking).

* Some prepare functions are available in the sale.order model, to overload
the creation of the sale order.

* You could be interested by another module, pos_sale_order, that completely
alter Point of Sale module, avoiding creating Pos Orders, and creating
allways Sale Orders.
This module is a WIP state, and is available here:

Known issues / Roadmap

* Because of the poor design of the Odoo Point of Sale, some basic features
are not available by default, like pricelist, fiscal position, etc ...
For that reason, unit price will be recomputed by default, when creating the
sale order, and the unit price of the current bill will not be used.

Note that this problem is fixed if ``pos_pricelist`` is installed.
(same repository) In that cases, the pricelist, the unit prices and the taxes
will be the same in the order, as in the displayed bill.

.. figure:: static/description/pos_create_picking_confirm.png
:width: 800 px

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 smash it by providing detailed and welcomed feedback.



* Sylvain Le Gal (


The development of this module has been financially supported by:

* GRAP, Groupement Régional Alimentaire de Proximité (


.. image::
:alt: Odoo Community Association

This module is maintained by the OCA.

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.

To contribute to this module, please visit

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page