Odoo Inventory has a predefined set of routing rules to help users define outgoing shipment routes according to business requirements. It is mainly used to streamline the shipment process and help users:
- Manage manufacturing chains effectively.
- Manage locations for different products.
- Generate automated return moves for rented products.
- Define quality control, after-sales services, or supplier returns.
The Outgoing Shipment routing rule in Odoo Inventory Application can be managed as – Pick + Pack + Ship (Manage Push and Pull inventory flows group)
As soon as the new route is enabled, one can see that as per the Odoo procurement rules, the delivery and transfer will be managed in three steps (pick + pack + ship). Create a Sale order – with the storable product as the outgoing shipment rule is applicable for storable products.
As you can see in the below screenshot, three different routes are generated automatically from Odoo Inventory Application and reflected in the Sales quotation.
Currently, the Pack Transfer is dependent on the Pick Transfer, and the OUT Transfer is dependent on the Pack. As the series of events is accomplished, one can see those records in their Odoo inventory, sales, and invoice modules.
Limitation of Default Odoo Outgoing Shipping Routes
The only drawback of the default Odoo shipment route was that if one didn’t achieve the picking step and directly validate Packing, Odoo won’t restrict the user.
But restricting users from validating shipment routes abruptly is necessary as it could break the manufacturing, inventory, and delivery chain. The vendor or company would not have any accurate data on products- when it was in which stage or was the delivery accomplished on time.
So, at Aktiv, we have customized the Odoo Inventory Application shipment routes.
Customized Odoo procurement rules for outgoing shipment
If a user tries to validate the packing step before the picking step is confirmed, which applies to all the dependent steps as configured in the shipment rules, the system will restrict them.
Let’s understand the various shipment stages:
Note: One can customize shipment routes as per their requirement.
stock. move in Odoo Inventory Application has two fields – move_orig_ids, dest_orig_ids (m2m)
<field name=”move_orig_ids” widget=”many2many_tags”/>
<field name=”move_dest_ids” widget=”many2many_tags”/>
Definition:
move_orig_ids – field stores the previous move ids (multiple moves) if and only if the move_orig_ids move is done then you can process another move.
if all move_orig_ids – moves state is achieved then-current move and picking state will be shown in a ready state.
move_dest_ids – field stores the future or next move ids (multiple moves).
Here’s how the workflow works:
def _action_confirm(self, merge=True, merge_into=False):
def _merge_moves(self, merge_into=False):
def _merge_moves_fields(self):
All these functionalities are also managed when the picking stage is cancelled for any reason. So, in that case, as the picking is cancelled, then associated moves – move_orig_ids and move_dest_ids will also be cancelled.
Contact us for more information or a live demo on custom Odoo procurement rules for outgoing shipment