/wms

Warehouse Management System for advance logistic with Odoo

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

Runbot Status Build Status codecov

WMS - Warehouse Management System

Warehouse Management System for advanced logistics processes with Odoo. Work in progress, tracked in this issue OCA#29

References

  • The WMS presentation made during Odoo XP 2020 here or watch the video here
  • The Barcode App presentation made during the OCA days 2020 here

General module architecture

Dynamic routing of operation

Classify operation depending on where they are reserved, manage handover places, creates different goods flow by carriers. Route explains the steps you want to produce whereas the “picking routing operation” defines how operations are grouped according to their final source and destination location.

Packaging management

To better manage the product packaging we need to have them properly defined for each product and classify them by type. Most common type are usually:

  • Retail box
  • Transport box
  • Pallet

It is a basic requirement for improved reservation rules, efficient barcode operation and usage of measurement machines such as Cubiscan for example.

Put away based on storage type, ABC class and constraints (height, weight,..)

Define storage type on location and attribute storage type on PACK. Storage type can also be define on product packaging to help filling up the info while receiving products. The idea is that anything getting in the warehouse is given a unique PACK ID with proper storage type and attributes (height, weight, etc..). Product are classified in A,B,C Class as well as location depending on their accessibility for optimized chaotic storage. Put away will then compute the proper location based on those information.

Reservation rules by packaging and location

Provide configurable reservation rule by location and packaging type with sequence. Thus allows to drive reservation differently depending on the packaging type to retrieve. For example, pick first pallets from Location A and then boxes from location B.

It supports several removal strategies: default FIFO/FEFO prefer packaging or empty bin to favor emptying spaces over anything else.

Virtual reservation and release of operations

Make the final stock reservation when needed, decoupled from the order confirmation while respecting the order of arrival through virtual reservation. Thus also helps to create internal operations such as pick or ship when required only.

When operation release occurs, only create moves for the goods we have in stocks. This will avoid having backorder in internal warehouse operations (only the delivery order will have one).

Delivery windows, weekly delivery and cut-off time

Define delivery windows for your customers where they can receive your goods. Setup weekly day of delivery if required. Handle cut-off time by customer depending on where they are.

Group and consolidate your shipment for several orders

Group several orders into one consolidated shipment by carrier during packing operations.

Manage replenishment zone

Re-allocate your needs for stocks to drive your replenishment operations within your location (from a pallet storage to a shelving one for example). This allows you to re-allocate a missing stock quantity to a given location to wait for stock there while performing replenishment (technically, it allows to change the source of a stock move to make it hit a stock rule).

Advanced barcode scanner

Decouple transactional Odoo documents and flows toward an efficient shop-floor process. Do not rely on finding the proper operation to process, but scan location and package to deduce what to do with it. Proceed with operation by machine type or zone rather than Odoo document. Get optimized path computed properly.

Configure your barcode menu, chose which scanning process to apply to each operation, allow to process several operation type within a same barcode menu.

Provide state of the art logistics features to handle zero checks, inventory errors and stock out, etc..

Warehouse map

Allow to represent the warehouse map precisely by defining relevant attributes and naming convention. Thus will also constitute a per-requisit for having a proper path computed while making an optimized picking tour.

Interface with measurement machine

Here with Cubiscan, but interface might serve as a base for other brand.

Interface with vertical automated storage

Provide the proper interface and link to connect vertical lift machines such as Kardex.

Minimum shelf-life

Ensure a minimum shelf life to your customers.

Manage dangerous goods

Handle proper attributes and report for dangerous goods handling in respect to EU legislation.

Reference document


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.