@@ -12,7 +12,7 @@ Reordering rules
12
12
.. |MOs | replace :: :abbr: `MOs ( Manufacturing Orders ) `
13
13
.. |BoM | replace :: :abbr: `BoM ( Bill of Materials ) `
14
14
.. |BoMs | replace :: :abbr: `BoMs ( Bills of Materials ) `
15
- .. |adjust | replace :: :icon: `oi-settings-adjust ` :guilabel: `(adjust) ` icon
15
+ .. |adjust | replace :: :icon: `oi-settings-adjust ` :guilabel: `(adjust settings ) ` icon
16
16
17
17
*Reordering rules * are used to keep forecasted stock levels above a certain threshold without
18
18
exceeding a specified upper limit. This is accomplished by specifying a minimum quantity that stock
@@ -30,13 +30,14 @@ created instead. This is the case regardless of the selected replenishment route
30
30
To set up reordering rules for the first time, refer to:
31
31
32
32
- :ref: `Reordering rules setup <inventory/warehouses_storage/configure-rr >`
33
- - :ref: `Trigger <inventory/product_management /trigger >`
33
+ - :ref: `Trigger <inventory/warehouses_storage /trigger >`
34
34
- :ref: `Preferred route <inventory/warehouses_storage/route >`
35
35
36
36
To understand and optimize replenishment using advanced features, see:
37
37
38
38
- :ref: `Just-in-time logic <inventory/warehouses_storage/just-in-time >`
39
- - :ref: `Visibility days <inventory/product_management/visibility-days >`
39
+ - :ref: `Visibility days <inventory/warehouses_storage/visibility-days >`
40
+ - :ref: `Horizon days <inventory/warehouses_storage/horizon-days >`
40
41
41
42
.. _inventory/warehouses_storage/configure-rr :
42
43
@@ -70,8 +71,7 @@ necessary for Odoo to track the product's stock levels and trigger reordering ru
70
71
Replenishment method
71
72
--------------------
72
73
73
- Next, configure the replenishment method (e.g., buy or manufacture) by going to the
74
- :guilabel: `Inventory ` tab and select one or more routes from the :guilabel: `Routes ` section.
74
+ Next, configure the replenishment method (e.g. buy or manufacture).
75
75
76
76
If the product is purchased, :ref: `install <general/install >` the **Purchase ** app, and confirm that
77
77
the :guilabel: `Purchase ` checkbox is enabled under the product name. In the :guilabel: `Purchase `
@@ -81,22 +81,21 @@ Odoo uses the vendor at the top of the list to generate |RFQs| when reordering r
81
81
In the :guilabel: `Inventory ` tab's :guilabel: `Routes ` field, tick the :guilabel: `Buy ` checkbox.
82
82
83
83
.. seealso ::
84
- - :doc: `Buy route <../../../purchase/manage_deals/rfq >`
85
- - :doc: `Vendor pricelist <../../../purchase/products/pricelist >`
84
+ :doc: `Vendor pricelist <../../../purchase/products/pricelist >`
86
85
87
86
If the product is manufactured, :ref: `install <general/install >` the **Manufacturing ** app, and in
88
87
the :guilabel: `Inventory ` tab's :guilabel: `Routes ` field, tick the :guilabel: `Manufacture ` checkbox.
89
88
90
89
Next, ensure at least one :doc: `bill of materials
91
90
<../../../manufacturing/basic_setup/bill_configuration>` (BoM) is displayed in the :guilabel: `Bill
92
91
of Materials ` smart button at the top of the product form. This is necessary because Odoo only
93
- creates manufacturing orders for products with a |BoM |.
92
+ creates manufacturing orders (MOs) for products with a |BoM |.
94
93
95
94
If a |BoM | does not already exist for the product, click the :guilabel: `Bill of Materials ` smart
96
95
button, then click :guilabel: `New ` to configure a new |BoM |.
97
96
98
97
.. seealso ::
99
- - :doc: `Manufacture route <../../../manufacturing/basic_setup/bill_configuration >`
98
+ :doc: `Configure BoM <../../../manufacturing/basic_setup/bill_configuration >`
100
99
101
100
.. _inventory/warehouses_storage/rr-fields :
102
101
@@ -131,14 +130,14 @@ rule line item:
131
130
calculated using on-hand quantities and future demand, see the :ref: `Just-in-time logic
132
131
<inventory/warehouses_storage/just-in-time>` section.
133
132
134
- For advanced usage of reordering rules , learn about the following reordering rule fields:
133
+ For advanced usage, learn about the following reordering rule fields:
135
134
136
- - :ref: `Trigger <inventory/product_management /trigger >`
135
+ - :ref: `Trigger <inventory/warehouses_storage /trigger >`
137
136
- :ref: `Preferred route <inventory/warehouses_storage/route >`
138
137
- :ref: `Vendor <inventory/warehouses_storage/set-vendor >`
139
138
- :ref: `Bill of materials <inventory/warehouses_storage/set-bom-field >`
140
139
- :ref: `Procurement group <inventory/warehouses_storage/procurement-grp >`
141
- - :ref: `Visibility days <inventory/product_management /visibility-days >`
140
+ - :ref: `Visibility days <inventory/warehouses_storage /visibility-days >`
142
141
143
142
.. note ::
144
143
The fields above are not available by default, and must be enabled by selecting the |adjust | in
@@ -182,31 +181,28 @@ replenished products should be stored. By default, this location is set to :guil
182
181
In the :guilabel: `Route ` field, select the route the rule should use to replenish the item. For
183
182
example, if the product should be purchased from a vendor, select the :guilabel: `Buy ` route.
184
183
185
- In the :guilabel: `Min Quantity ` field and :guilabel: `Max Quantity ` field, leave the values set to
186
- ` 0.00 `. In the :guilabel: `To Order ` field, enter a value of `1.00 `.
184
+ In the :guilabel: `Min ` field and :guilabel: `Max ` field, leave the values set to ` 0.00 `. In the
185
+ :guilabel: `To Order ` field, enter a value of `1.00 `.
187
186
188
187
.. image :: reordering_rules/001-rule.png
189
188
:alt: A 0/0/1 reordering rule.
190
189
191
190
With the reordering rule configured using these values, each time an |SO | causes the forecasted
192
- quantity of the product to fall below the :guilabel: `Min Quantity ` of `0.00 `, the selected
193
- :guilabel: `Route ` is used to replenish the product in one-unit increments, back up to the
194
- :guilabel: `Max Quantity ` of `0.00 `.
191
+ quantity of the product to fall below the :guilabel: `Min ` of `0.00 `, the selected :guilabel: `Route `
192
+ is used to replenish the product in one-unit increments, back up to the :guilabel: `Max ` of `0.00 `.
195
193
196
194
.. example ::
197
- A picture frame is configured with a 0/0/1 reordering rule that uses the *Buy * route. Zero units
198
- of the picture frame are kept on-hand at any given time.
195
+ An item is configured with a 0/0/1 reordering rule that uses the *Buy * route. Zero units are kept
196
+ on-hand at any given time.
199
197
200
- An |SO | is confirmed for one unit of the picture frame, which causes the forecasted quantity to
201
- drop to `-1.00 `. This triggers the reordering rule, which automatically creates a |PO | for one
202
- unit of the picture frame.
198
+ A |SO | is confirmed for one unit, which causes the forecasted quantity to drop to `-1.00 `. This
199
+ triggers the reordering rule, which automatically creates a |PO | for one unit.
203
200
204
- Once the product is received from the vendor, the forecasted quantity of the picture frame
205
- returns to `0.00 `. There is now one picture frame on-hand, but it is not reserved for the |SO |
206
- which triggered its purchase. It can be used to fulfill that |SO |, or reserved for a different
207
- order.
201
+ Once the product is received from the vendor, the forecasted quantity returns to `0.00 `. There is
202
+ now one unit on-hand, but it is not reserved for the |SO | which triggered its purchase. It can be
203
+ used to fulfill that |SO |, or reserved for a different order.
208
204
209
- .. _inventory/product_management /trigger :
205
+ .. _inventory/warehouses_storage /trigger :
210
206
211
207
Trigger
212
208
=======
237
233
:guilabel: `Auto `, generate purchase or manufacturing orders when either:
238
234
239
235
#. The scheduler runs, and the *Forecasted * quantity is below the minimum, or
240
- #. A sales order is confirmed, and lowers the *Forecasted * quantity of the product below the
241
- minimum.
236
+ #. A |SO | is confirmed, and lowers the *Forecasted * quantity of the product below the minimum.
242
237
243
238
If the :guilabel: `Buy ` route is selected, then an |RFQ | is generated. To view and manage |RFQs |,
244
239
navigate to :menuselection: `Purchase app --> Orders --> Requests for Quotation `.
@@ -275,13 +270,12 @@ Manual
275
270
*Manual reordering rules *, configured by setting the reordering rule's :guilabel: `Trigger ` field to
276
271
:guilabel: `Manual `, list a product on the :doc: `replenishment dashboard <report >` when the
277
272
forecasted quantity falls below a specified minimum. Products on this dashboard are called *needs *,
278
- because they are needed to fulfill upcoming sales orders, for which the forecasted quantity is not
279
- enough.
273
+ because they are needed to fulfill upcoming |SOs |, for which the forecasted quantity is not enough.
280
274
281
275
The replenishment dashboard, accessible by navigating to :menuselection: `Inventory app -->
282
- Operations --> Replenishment `, considers sales order deadlines, forecasted stock levels, and vendor
283
- lead times. It displays needs **only ** when it is time to reorder items, thanks to the :guilabel: `To
284
- Reorder ` filter.
276
+ Operations --> Replenishment `, considers order deadlines, forecasted stock levels, and lead times.
277
+ It displays needs **only ** when it is time to reorder items, thanks to the :guilabel: `To Reorder `
278
+ filter.
285
279
286
280
When a product appears on the replenishment dashboard, clicking the :guilabel: `Order ` button
287
281
generates the purchase or manufacturing order with the specified amounts :guilabel: `To Order `.
@@ -299,6 +293,9 @@ Odoo allows for multiple routes to be selected as replenishment methods under th
299
293
:guilabel: `Buy ` and :guilabel: `Manufacture `, indicating to Odoo that the product can be bought or
300
294
manufactured.
301
295
296
+ .. seealso ::
297
+ :ref: `Set route on product form <inventory/warehouses_storage/set-method >`
298
+
302
299
Odoo also enables users to set a preferred route for a product's reordering rule. This is the
303
300
replenishment method (e.g., buying or manufacturing) that the rule defaults to, if multiple are
304
301
available.
@@ -345,13 +342,14 @@ advanced configurations of reordering rules. Consider the following:
345
342
are linked to a particular demand.
346
343
347
344
.. note ::
348
- Procurement groups link replenishment methods to demand, enabling smart buttons to appear when
349
- using the :doc: `MTO route <mto >`.
345
+ Procurement groups link replenishment methods to demand, making smart buttons to appear —
346
+ similar to how smart buttons appear when using the :doc: `MTO route <mto >`.
350
347
351
348
.. figure :: reordering_rules/po-smartbutton.png
352
349
:alt: Showing smart button to PO.
353
350
354
- Sales order (demand) with a linked purchase order (replenishment method).
351
+ Sales order (demand) with a smart button linking to the related purchase order
352
+ (replenishment method).
355
353
356
354
In the context of reordering rules:
357
355
@@ -421,19 +419,14 @@ Important considerations:
421
419
Forecasted date and To Order quantity
422
420
-------------------------------------
423
421
424
- To view the *forecasted date *, go to the replenishment report and click the :icon: `fa-info-circle `
422
+ The *forecasted date * is the earliest receipt date for a product, if it is ordered right now. It is
423
+ calculated by summing the lead times linked to the product's replenishment process. The total of
424
+ these lead times, added to the current date, determines when Odoo checks for demanded stock.
425
+
426
+ To view the forecasted date go to the replenishment report and click the :icon: `fa-info-circle `
425
427
:guilabel: `(info) ` icon for the desired reordering rule. The :guilabel: `Replenishment Information `
426
428
pop-up window displays the :guilabel: `Forecasted Date ` and various lead times.
427
429
428
- The *forecasted date * is the total time needed to procure a product in Odoo. It is calculated by
429
- summing the lead times linked to the product's replenishment process. The total of these lead times,
430
- added to the current date, determines when Odoo checks for demanded stock.
431
-
432
- .. important ::
433
- The forecasted date is the **earliest possible date ** the customer can receive the product if the
434
- replenishment process began right **now **. It is calculated by adding all lead times related to
435
- the product to the current date.
436
-
437
430
.. example ::
438
431
A manual reordering rule is set up with no minimum or maximum quantities.
439
432
@@ -490,7 +483,7 @@ the **long-term forecasted quantity**.
490
483
491
484
Opening the :guilabel: `Forecasted Report` shows the :guilabel:`Forecasted` units is `5.00`.
492
485
493
- .. _inventory/product_management /visibility-days :
486
+ .. _inventory/warehouses_storage /visibility-days :
494
487
495
488
Visibility days
496
489
===============
@@ -539,9 +532,6 @@ Setting :guilabel:`Visibility Days` to `20.0` allows Odoo to "look ahead" 20 day
539
532
- It groups |SO | 2's order with |SO | 1, reducing shipping costs by consolidating orders.
540
533
- |SO | 3, which is due on Dec 25, is one day late and is not grouped with the other two orders.
541
534
542
- .. image :: reordering_rules/visibility-days.png
543
- :alt: Visibility days visualization.
544
-
545
535
Counterexample where visibility days is not triggered
546
536
-----------------------------------------------------
547
537
@@ -557,3 +547,19 @@ replenishment costs more effectively.
557
547
558
548
.. image :: reordering_rules/counterexample.png
559
549
:alt: Example where the visibility days does not trigger.
550
+
551
+ Horizon days
552
+ ============
553
+
554
+ *Horizon days * determine how many days ahead Odoo checks if the forecasted quantity will drop below
555
+ reordering rule's minimum. The feature is meant to help users plan replenishment in advance, by
556
+ increasing the :ref: `forecasted date <inventory/warehouses_storage/forecasted-date >`.
557
+
558
+ .. math ::
559
+ :class: overflow-scroll
560
+
561
+ \text {Forecasted date} = \text {Current date} + \text {Vendor Lead Time} + \text {Horizon Days}
562
+
563
+
564
+ Since horizon days are only meant to be used with manual reordering rules, find details about the
565
+ feature in the :doc: `Replenishment report article <report >`.
0 commit comments