POS Picking Load

Load and confirm stock pickings via Point Of Sale

Technical Name:
pos_picking_load
License:
Author:
GRAP
  • Odoo Version

Point Of Sale - Picking Load

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

This module extends the functionality of point of sale to allow you to load your pickings in the Point of Sale, in order to add / remove products and so create a PoS Order and mark it as paid.

Detailled Use Case

This module is usefull for the following use case

  • You have many Sale Orders that have generated pickings. Typically if you have connected your Odoo instance to an online store like Shop Invader, Prestashop, Magento, or if you use light Odoo shop (website_sale module).
  • Once the order validated, you prepare your pickings
  • The customer come in your shop to recover his order
  • the customer add (or remove) some products
  • the customer pay his order, based on the real delivered products list

Table of contents

Configuration

To configure this module, you need to:

  1. Go to Warehouse / Configuration / Types of Operation
  2. Select the picking type(s) you want to see in the point of sale
  3. Check the box 'Available in Point of Sale'
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/stock_picking_type_form.png

Note: This box is NOT enabled by default except in demo data for the type 'Delivery Orders' of the demo company 'YourCompany'.

  1. Go to Point of Sale / Configuration / Point of Sales
  2. Select the Point(s) of Sales witch those you want to enable the feature
  3. Check the box 'Load Pickings'
  4. Set the max quantity of pickings you want to load
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/pos_config_form.png

Note: This box is enabled by default

Technical Notes

  • By default, the Point of Sale will display only the pickings if the state is in 'Waiting Availability', 'Partially Available' or 'Ready to Transfer'.

You can change this filter by overloading the _prepare_filter_for_pos function of the model stock.picking.

  • By default, the search of pickings will be done on the fields name, origin and partner_id of the picking.

You can change this feature by overloading the _prepare_filter_query_for_pos function of the model stock.picking.

  • By default, when the PoS order is confirmed, the original picking is cancelled and the sale order is set to the state 'Done'.

You can change this behaviour by overloading _handle_orders_with_original_picking function of the model pos.order.

Usage

To use this module, you need to:

  • Launch the point of sale
  • On a new order (without lines), click on the 'Load Picking' button.
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_01_load_button.png
  • Point of sale will load available pickings. (About displayed pickings, see 'Technical Notes' section).
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_02_picking_list.png
  • Click on a picking will check if the picking is loadable and if yes, will display a 'Select' button. (See 'Possible Warnings' Section)
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_03_confirm.png
  • Confirm the selection, by clicking on 'Select' button. It will display the content of the moves (as PoS Order Lines)
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_04_pos_order.png

The price and the discount will be the sale price and the discount set in the according Sale Order Line, if it was found. Otherwise, discount will be set to 0, and unit price will be the unit price of the product when it has been loaded in the Point of Sale.

Related Sale Order:

https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_sale_order.png

Related Picking:

https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_stock_picking.png
  • Finally, you can add / remove products or change quantity and collect the payment.

When, the order is marked as paid, the original picking will be cancelled, because Point Of Sale generates a new picking related to the real delivered products and the original Sale Order will pass to the state 'Done'. (Delivery exception is ignored). (See 'Technical Notes' section).

Possible Warnings

Some warning messages can appear:

  • if some products are not available in the Point of Sale
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_product.png
  • if the partner is not available in the Point of Sale
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_partner.png
  • if the picking has been still loaded in another PoS order
https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_picking_still_loaded.png

Known issues / Roadmap

  • This module will try to get original unit price from the sale order and not use the Current unit price of the product. (The price at which you pledged to sell the product). Some VAT troubles will occure if a product is set with VAT marked as 'VAT included' and if in the sale order line, there are some VAT marked as 'VAT excluded' for exemple.

The VAT settings should be consistent.

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.

Credits

Authors

  • GRAP

Maintainers

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:

legalsylvain

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.