v 8.0 v 12.0 Third Party 323
Download for v 8.0
Required Apps Point of Sale (point_of_sale)
Sales Management (sale)
Online Billing (account_voucher)
Warehouse Management (stock)
Technical Name pos_order_to_sale_order
Also available in version v 13.0 v 12.0
You bought this module and need support? Click here!

PoS Order To Sale Order

Production/Stable License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runbot

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.
  • Create a Confirmed Order A new sale order will be created and confirmed.
  • Create Delivered Picking (by default) A new sale order will be created and confirmed. the associated picking will be marked as delivered.

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: https://github.com/OCA/pos/pull/35

Table of contents


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

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.


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

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



  • GRAP


  • Sylvain LE GAL (https://www.twitter.com/legalsylvain)


This module is maintained by the OCA.

Odoo Community Association

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.

Current maintainer:


This module is part of the OCA/pos project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.