TIP: You can type at any time to perform a new search.
Stock Checkout Synchronization
stock_checkout_sync · OCA/stock-logistics-workflow
Security findings
- Repository
- OCA/stock-logistics-workflow · module folder · Try on Runboat
- Module version
- 1.0.1
- Category
- Warehouse Management
- Folder size
- 0.16 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-workflow
- Last tracking update
- 2026-10-03 23:56:57
- Authors
- Camptocamp, Odoo Community Association (OCA)
- Maintainers
- Camptocamp, Odoo Community Association (OCA)
- Committers
- Jacques-Etienne Baudoux, Sébastien Alix, OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- shopfloor_checkout_sync, stock_dynamic_routing_checkout_sync
- Description
Regroup moves at the same location when they reach an operation type. Example of use case: - We use several operation types for Picking Transfers (Pick Shelves, Pick Reserve) - We use several operation types for Packing (Pack, Pack Post) - The "Checkout Synchronization" flag is activated on the 2 Packing operation types - The Packing can occur in several areas (Packing/PACK1, Packing/PACK2, Packing/PACK3) Based on these assumptions, we have these pickings, all for the same order: - SHELF001, pick 2 goods in the shelves - RESER001, pick 2 goods in the reserve - PACK001, pack 3 of the goods (2 from SHELF001, 1 from RESER001) - PPOST001, pack the remaining good of the reserve The operator uses the button "Checkout Sync" on a pick transfer, for instance SHELF001, and select Packing/PACK2 as destination. We want all the lines that reach PACK001 to be updated with: - The move lines (except the one that goes to PPOST001) must now reach Packing/PACK2 - The same moves' destination must reach Packing/PACK2 as well: we constrain the user to move the goods there as we want to move all the goods at the same place for the packing. - As the moves' destinations are updated to the same packing location, new move lines will have the correct destination as well  Notes: Works best when used with `stock_available_to_promise_release`: - When using the mentioned module, we assume that we release moves (which creates the whole chain of moves) only when we know that we have the quantities in stock (otherwise the module splits the delivery). Any exception (which is now rare when you release this ways) that would lead to a backorder is handled by canceling the remaining line. - When the module is not used, then the destination of the backorders may be changed at the same time Compatible with `stock_dynamic_routing`.
Code Analysis
Views touched (3)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_picking_form |
stock.picking.form | stock.picking | form | Inherits stock.view_picking_form |
view_picking_type_form_inherit |
Operation Types Inherit | stock.picking.type | form | Inherits stock.view_picking_type_form |
view_stock_move_checkout_sync |
stock.move.checkout.sync.form | stock.move.checkout.sync | form | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (0)
No new fields.
Public methods (1)-
sync_checkout_destination(self, location)
New fields (8)
-
dest_picking_idMany2one → stock.pickingcomodel_name='stock.picking'help='Destination operation for these moves.'readonly=Truerequired=True -
done_dest_picking_idsMany2many → stock.pickingcomodel_name='stock.picking'relation='stock_move_checkout_sync_stock_picking_done_dest_rel' -
location_idMany2one → stock.locationcomodel_name='stock.location'help='Destination location where all the moves will be sent.' -
move_idsMany2many → stock.movecomodel_name='stock.move'readonly=True -
picking_idsMany2many → stock.pickingcomodel_name='stock.picking'required=True -
picking_type_location_idMany2onereadonly=Truerelated='dest_picking_id.picking_type_id.default_location_src_id' -
remaining_helpHtmlreadonly=True -
show_skip_buttonBoolean
-
skip_to_next(self) -
sync(self)
New fields (1)
-
can_sync_to_checkoutBooleancompute='_compute_can_sync_to_checkout'help='Technical field. Indicates if the button to synchronize the destination towards a checkout location is visible.'
-
open_checkout_sync_wizard(self, done_picking_types=None)
New fields (1)
-
checkout_syncBooleanhelp='When checked, a button on transfers allow users to select a single location for all moves reaching this operation type. On selection, all the move lines are updated with the same destination.'string='Checkout Synchronization'
No public methods.
Loading…
Loading…