Skip to Content

The Odoo Just-in-Time (JIT) inventory system

Being able to deliver goods on time is the major challenge for every company. The timely delivery of goods largely determines customer satisfaction and therefore directly the success of a company. The better a company has control and influence over the supply chain, the better the company's overall performance.

Odoo uses the Just in Time stock system to ensure that there is always sufficient stock to meet demand at the right time. In this blog, we take you through the setup of the Odoo Just in Time inventory system.

What is the Just in Time (JIT) inventory system?

The Just in Time (JIT) inventory system is a strategy that aligns component purchases from suppliers directly with production and/or customer orders. Companies use this inventory strategy to increase efficiency and reduce waste by receiving products only when they need them for the production process or customer order, which reduces inventory costs. This method requires precise coordination of the entire replenishment process.

How do you replenish stock in Odoo?

Odoo offers several options for replenishing stock. These are:

Replenish based on a minimum stock level (Make to Stock)

Replenishment order lines can be entered on the product card. As soon as the number of units falls below the minimum level, a purchase order is created. The suggested quantity is the number needed to reach the maximum level. For example, with a minimum of 5 units and a maximum of 20 units, if 4 units are still available, 16 units are therefore proposed in the purchase order.

This method is mainly used if a buffer must always be present, so stock is always available. When adjusting the minimum stock, delivery time and other circumstances must be taken into account so that the stock never reaches zero.

​Replenish based on direct demand (Make to Order)

When using the Make to Order method, little to no stock is held. Orders are only placed on demand, which ensures optimal use of the warehouse.

Waste is prevented in various areas, with less unnecessary management of items and fewer (internal) movements. If fast delivery or stock buffers are necessary, then this method is less suitable or only partially suitable.

Replenishment based on a forecast (Master Production Schedule)

Another option is to work with a 'Master Production Schedule' (MPS). Odoo looks at the expected sales, the required stock and the stock that is already available. Odoo displays a schedule of the required stock over a selected period. A purchase proposal is made per period to always have sufficient stock at the specific time.

​How do you set up Odoo to replenish your inventory?

As mentioned, Odoo has different methods for replenishing stock. This requires settings specific to each method, but also settings that are shared. 

Using safety margins

Safety margins are used to deal with disruptions in the supply chain,

Then choose the relevant safety margins in the configuration, go to Inventory and enter the data under advanced planning:

  • Safety lead time for sales (bringing deliveries forward to avoid any delays)

  • Safety lead time for purchasing (automatically generated orders, e.g. through MTO, are brought forward to avoid any delay).

  • Days to purchase (refers to the number of days it takes to process/confirm a purchase order).

Odoo Advanced Planning Screen

How do you use direct demand replenishment?

With the make to order functionality, products are automatically purchased as soon as a quotation is converted into a sales order. With an MTO product, there is normally no stock. If there is stock (for example due to a returned product), Odoo will use that stock first. A product is therefore only purchased if there is demand for it. By default, the MTO function is archived (activate the multistep routes in the settings). After this, the option will be displayed on the product card under Inventory. 

What does the follow-up of the data fields look like?

The delivery of a product depends on several variables. Odoo calculates from the order date to the desired delivery date. To realize this delivery, various actions take place. In addition to the safety margins, there are also a number of other variables that Odoo takes into account, which can be indicated on the product card:

  • Purchasing: delivery time from the supplier.

  • Inventory: delivery time to customer; the promised number of days between order confirmation and delivery.

  • Inventory: production time; average production time to make the product.

See a complete example below, including the follow-up of the data fields:

Variables on product formDays
Delivery time to customer2
Purchase lead time5
Production time2
Variables in configurationDays
Safety lead time for sales2
Safety lead time for purchasing2
Days to purchase7

The following example includes the above variables. The customer wishes to have the product delivered on March 1, 2022. The order date is a few months earlier, on December 20, 2021.

1. Sales order

Order date
20-12-2021
Expected22-12-2021
Delivery date
01-03-2022
2. Delivery

Planned date
27-02-2022
Deadline
01-03-2022
- Safety lead time for sales delivery = 2 days.

3. Purchase quotation request

Days to order
13-02-2022
Purchase order deadline
20-02-2022

- Days to purchase = 7 days.

4. Purchase order

Planned receipt date
25-02-2022
Purchase order deadline
20-02-2022

- Safety lead time for purchasing = 2 days (compared to 27-02-2022).
- Purchase lead time = 5 days.

5. Receipt

Planned receipt date
25-02-2022
6. Sales order

Planned date
27-02-2022
Purchase order deadline
01-03-2022
- Safety margins for sales delivery time = 2 days.

In the case of a production part, a margin of 2 days is included between receipt of the purchase order and delivery to the customer.

Just in Time in practice.

In addition to the MTO method, it is also possible to work with a minimum stock at product level.

Product A has a minimum stock of 10 units. Supplier delivery time is 10 days. Since this is a new product, the stock is currently 0 units.

The planner will check daily whether a purchase order needs to be created. This planner can also be activated manually (stock -> operations -> execute planner). The purchase order is ready in the purchase module, and the planned date is now + 10 days. The order can be confirmed.

However, it is possible that the supplier will contact you and report a delay. As a result, the receipt date (WH-IN) will have to be adjusted. Suppose this is 40 days in the future and the planner is reactivated; a purchase order is then created again. In fact, there are then two orders, which is not desirable. Odoo looks 10 days ahead, given that the delivery time is normally 10 days and the stock is still 0, while the order will only be delivered in 40 days.

To prevent this scenario, the safety margin 'safety delivery time for purchasing' can be adjusted. As a result, expected purchase orders are postponed further, for example by entering a large number: 50 days. There will be no duplicate orders in the system. However, consider the following scenario:

Many seasonal items are ordered for the summer in November. The order is confirmed on November 1 and the receipt date is set to July 1. However, it turns out that another customer has placed a small order for delivery in December.

Odoo will not make a purchase proposal in time due to the safety margin of 50 days, so manual action is then required. A safety margin of 10 days may therefore be more practical.

Testing and fine-tuning.

To test the different variables, it is advisable to try out the functionalities in a test environment. Create a dummy stock product and complete the data as fully as possible, including supplier and delivery time.

When creating a test order, you can specify the delivery time under the heading 'other info'. This is the agreed delivery time with the customer; of course, this can be in a few weeks or in six months, entirely according to the customer's wishes. The expected delivery date is also displayed; this is the earliest possible time to deliver. This is calculated based on available stock, supplier delivery time and time to deliver. Subsequently, the deadline for each process step was calculated and displayed, adapted to the specific wishes as indicated earlier.

Update variables.

Based on the chosen methods and safety margins, it is advisable to evaluate the margins over time, e.g. after two or three months, and possibly build in more or less 'safety'. In this way, products can be prevented from being on the shelf for an unnecessarily long time or from creating rush situations.

Finally, it is important to transfer this knowledge to colleagues who deal with purchasing/sales and stock and to ensure that the operation is clear. This then results in a supporting tool within Odoo to work efficiently, without unexpected actions taking place.


The Odoo Just-in-Time (JIT) inventory system
Odoo Experts December 15, 2021
Share this post
Tags