diff --git a/inventory/routes/concepts.rst b/inventory/routes/concepts.rst index 3de662b61..d94963adb 100644 --- a/inventory/routes/concepts.rst +++ b/inventory/routes/concepts.rst @@ -6,9 +6,7 @@ Concepts :titlesonly: :glob: - concepts/use_routes - concepts/procurement_rule - concepts/push_rule + concepts/use-routes concepts/inter_warehouse concepts/cross_dock concepts/stock_warehouses \ No newline at end of file diff --git a/inventory/routes/concepts/media/add-new-rules.png b/inventory/routes/concepts/media/add-new-rules.png new file mode 100644 index 000000000..37f4affe7 Binary files /dev/null and b/inventory/routes/concepts/media/add-new-rules.png differ diff --git a/inventory/routes/concepts/media/add-routes-to-sales-lines.png b/inventory/routes/concepts/media/add-routes-to-sales-lines.png new file mode 100644 index 000000000..2eae5d7e2 Binary files /dev/null and b/inventory/routes/concepts/media/add-routes-to-sales-lines.png differ diff --git a/inventory/routes/concepts/media/advanced-custom-route.png b/inventory/routes/concepts/media/advanced-custom-route.png new file mode 100644 index 000000000..418f68372 Binary files /dev/null and b/inventory/routes/concepts/media/advanced-custom-route.png differ diff --git a/inventory/routes/concepts/media/applicable-on-products.png b/inventory/routes/concepts/media/applicable-on-products.png new file mode 100644 index 000000000..fe724d4f3 Binary files /dev/null and b/inventory/routes/concepts/media/applicable-on-products.png differ diff --git a/inventory/routes/concepts/media/applicable-on-sales-order-lines.png b/inventory/routes/concepts/media/applicable-on-sales-order-lines.png new file mode 100644 index 000000000..e61e8a650 Binary files /dev/null and b/inventory/routes/concepts/media/applicable-on-sales-order-lines.png differ diff --git a/inventory/routes/concepts/media/applicable-on-warehouse.png b/inventory/routes/concepts/media/applicable-on-warehouse.png new file mode 100644 index 000000000..82a8d81da Binary files /dev/null and b/inventory/routes/concepts/media/applicable-on-warehouse.png differ diff --git a/inventory/routes/concepts/media/detailed-operations-2.png b/inventory/routes/concepts/media/detailed-operations-2.png new file mode 100644 index 000000000..68861ce54 Binary files /dev/null and b/inventory/routes/concepts/media/detailed-operations-2.png differ diff --git a/inventory/routes/concepts/media/detailed-operations-transfer.png b/inventory/routes/concepts/media/detailed-operations-transfer.png new file mode 100644 index 000000000..e0635cb1a Binary files /dev/null and b/inventory/routes/concepts/media/detailed-operations-transfer.png differ diff --git a/inventory/routes/concepts/media/example-preconfigured-warehouse.png b/inventory/routes/concepts/media/example-preconfigured-warehouse.png new file mode 100644 index 000000000..e0e9485d6 Binary files /dev/null and b/inventory/routes/concepts/media/example-preconfigured-warehouse.png differ diff --git a/inventory/routes/concepts/media/multi-steps-routes-feature.png b/inventory/routes/concepts/media/multi-steps-routes-feature.png new file mode 100644 index 000000000..860e1f969 Binary files /dev/null and b/inventory/routes/concepts/media/multi-steps-routes-feature.png differ diff --git a/inventory/routes/concepts/media/on-product-route.png b/inventory/routes/concepts/media/on-product-route.png new file mode 100644 index 000000000..a5ab31c6f Binary files /dev/null and b/inventory/routes/concepts/media/on-product-route.png differ diff --git a/inventory/routes/concepts/media/operations-on-transfers.png b/inventory/routes/concepts/media/operations-on-transfers.png new file mode 100644 index 000000000..c66f4007b Binary files /dev/null and b/inventory/routes/concepts/media/operations-on-transfers.png differ diff --git a/inventory/routes/concepts/media/preconfigured-routes.png b/inventory/routes/concepts/media/preconfigured-routes.png new file mode 100644 index 000000000..28bb9dc79 Binary files /dev/null and b/inventory/routes/concepts/media/preconfigured-routes.png differ diff --git a/inventory/routes/concepts/media/procurement_rule01.png b/inventory/routes/concepts/media/procurement_rule01.png deleted file mode 100644 index 5e47542ec..000000000 Binary files a/inventory/routes/concepts/media/procurement_rule01.png and /dev/null differ diff --git a/inventory/routes/concepts/media/procurement_rule02.png b/inventory/routes/concepts/media/procurement_rule02.png deleted file mode 100644 index 8a582a563..000000000 Binary files a/inventory/routes/concepts/media/procurement_rule02.png and /dev/null differ diff --git a/inventory/routes/concepts/media/procurement_rule03.png b/inventory/routes/concepts/media/procurement_rule03.png deleted file mode 100644 index 870fa4fa4..000000000 Binary files a/inventory/routes/concepts/media/procurement_rule03.png and /dev/null differ diff --git a/inventory/routes/concepts/media/pull-from-rule-example.png b/inventory/routes/concepts/media/pull-from-rule-example.png new file mode 100644 index 000000000..6de2bebeb Binary files /dev/null and b/inventory/routes/concepts/media/pull-from-rule-example.png differ diff --git a/inventory/routes/concepts/media/pull-from-rule-stock-to-packing.png b/inventory/routes/concepts/media/pull-from-rule-stock-to-packing.png new file mode 100644 index 000000000..71ca15d79 Binary files /dev/null and b/inventory/routes/concepts/media/pull-from-rule-stock-to-packing.png differ diff --git a/inventory/routes/concepts/media/push-to-rule-example.png b/inventory/routes/concepts/media/push-to-rule-example.png new file mode 100644 index 000000000..19fbc8e1d Binary files /dev/null and b/inventory/routes/concepts/media/push-to-rule-example.png differ diff --git a/inventory/routes/concepts/media/push_rule01.png b/inventory/routes/concepts/media/push_rule01.png deleted file mode 100644 index 5e47542ec..000000000 Binary files a/inventory/routes/concepts/media/push_rule01.png and /dev/null differ diff --git a/inventory/routes/concepts/media/push_rule02.png b/inventory/routes/concepts/media/push_rule02.png deleted file mode 100644 index 6efc961ea..000000000 Binary files a/inventory/routes/concepts/media/push_rule02.png and /dev/null differ diff --git a/inventory/routes/concepts/media/push_rule03.png b/inventory/routes/concepts/media/push_rule03.png deleted file mode 100644 index 3b012066f..000000000 Binary files a/inventory/routes/concepts/media/push_rule03.png and /dev/null differ diff --git a/inventory/routes/concepts/media/push_rule04.png b/inventory/routes/concepts/media/push_rule04.png deleted file mode 100644 index d458da311..000000000 Binary files a/inventory/routes/concepts/media/push_rule04.png and /dev/null differ diff --git a/inventory/routes/concepts/media/routes-example.png b/inventory/routes/concepts/media/routes-example.png new file mode 100644 index 000000000..c4e3cbb5d Binary files /dev/null and b/inventory/routes/concepts/media/routes-example.png differ diff --git a/inventory/routes/concepts/media/routes-logistic-tab.png b/inventory/routes/concepts/media/routes-logistic-tab.png new file mode 100644 index 000000000..300a56f2f Binary files /dev/null and b/inventory/routes/concepts/media/routes-logistic-tab.png differ diff --git a/inventory/routes/concepts/media/rules-example.png b/inventory/routes/concepts/media/rules-example.png new file mode 100644 index 000000000..f49ba6475 Binary files /dev/null and b/inventory/routes/concepts/media/rules-example.png differ diff --git a/inventory/routes/concepts/media/sales-order-lines-routes-application.png b/inventory/routes/concepts/media/sales-order-lines-routes-application.png new file mode 100644 index 000000000..4fe294b75 Binary files /dev/null and b/inventory/routes/concepts/media/sales-order-lines-routes-application.png differ diff --git a/inventory/routes/concepts/media/stock-example.png b/inventory/routes/concepts/media/stock-example.png new file mode 100644 index 000000000..3aeff653a Binary files /dev/null and b/inventory/routes/concepts/media/stock-example.png differ diff --git a/inventory/routes/concepts/media/transfers-overview.png b/inventory/routes/concepts/media/transfers-overview.png new file mode 100644 index 000000000..48c0936b1 Binary files /dev/null and b/inventory/routes/concepts/media/transfers-overview.png differ diff --git a/inventory/routes/concepts/media/transfers-status.png b/inventory/routes/concepts/media/transfers-status.png new file mode 100644 index 000000000..934eaf41d Binary files /dev/null and b/inventory/routes/concepts/media/transfers-status.png differ diff --git a/inventory/routes/concepts/media/use_routes01.png b/inventory/routes/concepts/media/use_routes01.png deleted file mode 100644 index 5e47542ec..000000000 Binary files a/inventory/routes/concepts/media/use_routes01.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes02.png b/inventory/routes/concepts/media/use_routes02.png deleted file mode 100644 index ed1accd99..000000000 Binary files a/inventory/routes/concepts/media/use_routes02.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes03.png b/inventory/routes/concepts/media/use_routes03.png deleted file mode 100644 index 72b5a58b8..000000000 Binary files a/inventory/routes/concepts/media/use_routes03.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes04.png b/inventory/routes/concepts/media/use_routes04.png deleted file mode 100644 index 133921442..000000000 Binary files a/inventory/routes/concepts/media/use_routes04.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes05.png b/inventory/routes/concepts/media/use_routes05.png deleted file mode 100644 index 21f61f025..000000000 Binary files a/inventory/routes/concepts/media/use_routes05.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes06.png b/inventory/routes/concepts/media/use_routes06.png deleted file mode 100644 index 154f00ffd..000000000 Binary files a/inventory/routes/concepts/media/use_routes06.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes07.png b/inventory/routes/concepts/media/use_routes07.png deleted file mode 100644 index f0e854332..000000000 Binary files a/inventory/routes/concepts/media/use_routes07.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes08.png b/inventory/routes/concepts/media/use_routes08.png deleted file mode 100644 index e23bf5a5a..000000000 Binary files a/inventory/routes/concepts/media/use_routes08.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes09.png b/inventory/routes/concepts/media/use_routes09.png deleted file mode 100644 index 5a2fbe967..000000000 Binary files a/inventory/routes/concepts/media/use_routes09.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes10.png b/inventory/routes/concepts/media/use_routes10.png deleted file mode 100644 index f1d72e1b1..000000000 Binary files a/inventory/routes/concepts/media/use_routes10.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes11.png b/inventory/routes/concepts/media/use_routes11.png deleted file mode 100644 index e0aa5b949..000000000 Binary files a/inventory/routes/concepts/media/use_routes11.png and /dev/null differ diff --git a/inventory/routes/concepts/media/use_routes12.png b/inventory/routes/concepts/media/use_routes12.png deleted file mode 100644 index 92b64ff9f..000000000 Binary files a/inventory/routes/concepts/media/use_routes12.png and /dev/null differ diff --git a/inventory/routes/concepts/media/waiting-status.png b/inventory/routes/concepts/media/waiting-status.png new file mode 100644 index 000000000..87ef1db67 Binary files /dev/null and b/inventory/routes/concepts/media/waiting-status.png differ diff --git a/inventory/routes/concepts/procurement_rule.rst b/inventory/routes/concepts/procurement_rule.rst deleted file mode 100644 index 1e4dad793..000000000 --- a/inventory/routes/concepts/procurement_rule.rst +++ /dev/null @@ -1,73 +0,0 @@ -=========================== -What is a procurement rule? -=========================== - -Overview -======== - -The procurement inventory control system begins with a customer's order. -With this strategy, companies only make enough product to fulfill -customer's orders. One advantage to the system is that there will be no -excess of inventory that needs to be stored, thus reducing inventory -levels and the cost of carrying and storing goods. However, one major -disadvantage to the pull system is that it is highly possible to run -into ordering dilemmas, such as a supplier not being able to get a -shipment out on time. This leaves the company unable to fulfill the -order and contributes to customer dissatisfaction. - -An example of a pull inventory control system is the make-to-order. The -goal is to keep inventory levels to a minimum by only having enough -inventory, not more or less, to meet customer demand. The MTO system -eliminates waste by reducing the amount of storage space needed for -inventory and the costs of storing goods. - -Configuration -============= - -Procurement rules are part of the routes. Go to the Inventory -application>Configuration>Settings and tick "Advance routing of products -using rules". - -.. image:: media/procurement_rule01.png - :align: center - -Procurement rules settings -========================== - -The procurement rules are set on the routes. In the inventory -application, go to :menuselection:`Configuration --> Routes`. - -In the Procurement rules section, click on Add an item. - -.. image:: media/procurement_rule02.png - :align: center - -Here you can set the conditions of your rule. There are 3 types of -action possible : - -- Move from another location rules - -- Manufacturing rules that will trigger the creation of manufacturing - orders - -- Buy rules that will trigger the creation of purchase orders - -.. note:: - The Manufacturing application has to be installed in order to - trigger manufacturing rules. - -.. note:: - The Purchase application has to be installed in order to trigger - **buy** rules. - -.. image:: media/procurement_rule03.png - :align: center - -.. note:: - Some Warehouse Configuration creates routes with procurement - rules already defined. - -.. seealso:: - * :doc:`push_rule` - * :doc:`inter_warehouse` - * :doc:`cross_dock` diff --git a/inventory/routes/concepts/push_rule.rst b/inventory/routes/concepts/push_rule.rst deleted file mode 100644 index 3eb3b6b11..000000000 --- a/inventory/routes/concepts/push_rule.rst +++ /dev/null @@ -1,81 +0,0 @@ -==================== -What is a push rule? -==================== - -Overview -========= - -The push system of inventory control involves forecasting inventory -needs to meet customer demand. Companies must predict which products -customers will purchase along with determining what quantity of goods -will be purchased. The company will in turn produce enough product to -meet the forecast demand and sell, or push, the goods to the consumer. -Disadvantages of the push inventory control system are that forecasts -are often inaccurate as sales can be unpredictable and vary from one -year to the next. Another problem with push inventory control systems is -that if too much product is left in inventory, this increases the -company's costs for storing these goods. An advantage to the push system -is that the company is fairly assured it will have enough product on -hand to complete customer orders, preventing the inability to meet -customer demand for the product. - -A push flow indicates how locations are chained with the other ones. As -soon as a given quantity of products is moved in the source location, a -chained move is automatically foreseen according to the parameters set -on the flow specification (destination location, delay, type of move, -journal). It can be triggered automatically or manually. - -Configuration -============= - -Push rules are part of the routes. Go to the menu -:menuselection:`Inventory --> Configuration --> Settings` -and tick **Advance routing of products using rules**. - -.. image:: media/push_rule01.png - :align: center - -Push rules settings -=================== - -The push rules are set on the routes. -Go to :menuselection:`Configuration --> Routes`. - -In the push rule section, click on **Add an item**. - -.. image:: media/push_rule02.png - :align: center - -Here you can set the conditions of your rule. In this example, when a -good is in **Input location**, it needs to be moved to the quality control. -In the 3 steps receipts, another push rule will make the goods that are -in the quality control location move to the stock. - -.. image:: media/push_rule03.png - :align: center - -.. note:: - Some warehouse configuration creates routes with push rules - already defined. - -Stock transfers -=============== - -The push rule will trigger stock transfer. According to the rule set on -your route, you will see that some transfers might be ready and other -are waiting. - -The push rule that was set above will create moves from **WH/Input** -location to the **WH/Quality Control** location. - -.. image:: media/push_rule04.png - :align: center - -In this example, another move is waiting according to the second push -rule, it defines that when the quality control is done, the goods will -be moved to the main stock. - -.. seealso:: - * :doc:`procurement_rule` - * :doc:`inter_warehouse` - * :doc:`cross_dock` diff --git a/inventory/routes/concepts/use-routes.rst b/inventory/routes/concepts/use-routes.rst new file mode 100644 index 000000000..57335beaf --- /dev/null +++ b/inventory/routes/concepts/use-routes.rst @@ -0,0 +1,375 @@ +================================ +Using Routes and Pull/Push Rules +================================ + +In inventory management, the supply chain strategy determines when +products should be fabricated, delivered to distribution centers, and +made available in the retail channel. + +This kind of strategic process can be configured using *Routes*, +featuring *Pull and Push Rules*. Once everything is properly +configured, the inventory app can automatically generate transfers +following the instructions given by the rules. Yes, Odoo simplifies your +life. + +Inside the warehouse +==================== + +Let’s imagine a generic warehouse plan, where you can find receiving +docks, a quality control area, storage locations, picking and +packing areas, and shipping docks. All products go +through all these locations, which also trigger all the route's rules. + +.. image:: media/stock-example.png + :align: center + :alt: view of a generic warehouse with stock and quality control area + +In this example, vendor trucks unload pallets of ordered goods at receiving docks. +Operators then scan the products in the receiving area. Some of these products are sent to a +quality control area (those devoted to being used during the manufacturing process, for +example), while others are directly stored in their respective locations. + +.. image:: media/push-to-rule-example.png + :align: center + :alt: view of a generic push to rule when receiving products + +Here is an example of a fulfillment route. In the morning, items are picked +for all the orders that need to be prepared during the day. These items +are picked from storage locations and moved to the picking area, close +to where the orders are packed. Then, the orders are packed in their +respective boxes and conveyors bring them close to the shipping docks, +ready to be delivered to customers. + +.. image:: media/pull-from-rule-example.png + :align: center + :alt: view of a generic pull from rule when preparing deliveries + +How does it work? +================= + +Pull Rules +---------- + +With *Pull Rules*, a demand for some products triggers procurements, +while *Push Rules* are triggered by products arriving in a specific +location. + +We can say that *Pull Rules* are used to fulfill a customer +order, a sale order. So, Odoo generates a need at the *Customer +Location* for each product in the order. Because *Pull Rules* +are triggered by a need, Odoo looks for a *Pull Rule* defined on the +*Customer Location*. In our case, a delivery order pull rule that +transfers products from the *Shipping Area* to the *Customer +Location* is found, and a transfer between the two locations is created. + +Then, Odoo finds another pull rule that tries to fulfill the need for +the *Shipping Area*: the *Packing Rule* that transfers products from +the *Packing Area* to the *Shipping Area*. And, finally, other rules +are triggered until a transfer between the *Stock* and the *Picking +Area* is created. + +.. note:: + All theses transfers are pre-generated by Odoo, starting from the end and going backwards. + While working, the operator process these transfers in the opposite order: first the picking, + then the packing, then the delivery order. + +Push Rules +---------- + +On the other hand, *Push Rules* are much easier to understand. Instead +of pre-generating documents based on needs, they are live-triggered when +products arrive in a specific location. *Push Rules* basically say: "when a +product arrives at a specific location, move it to another location." + +A simple example would be: when a product arrives in the *Receipt +Area*, move them to the *Storage Location*. As different rules can be +applied to different products, you can assign different storage +locations for different products. + +Another rule could be: when products arrive at a location, move them to the +*Quality Control Area*. Then, once the quality check is done, move +them to their *Storage Location*. + +.. note:: + *Push Rules* can be triggered only if no *Pull Rule* pre-generated + the upstream transfers. + +.. important:: + Sets of rules like those are called routes. The grouping on the rule + defines how products are grouped in the same transfer or not. For + example, during the picking operation, all orders are grouped in one + transfer, whereas the packing operation respects the grouping per + customer order. + +Use Routes and Rules +==================== + +Since *Routes* are a collection of *Push and Pull Rules*, Odoo +helps you manage advanced routes configuration such as: + +- Manage product manufacturing chains; +- Manage default locations per product; +- Define routes within your warehouse according to business needs, such + as quality control, after-sales services, or supplier returns; +- Help rental management by generating automated return moves for + rented products. + +To configure a route such as one of those above, open the **Inventory +Application** and go to :menuselection:`Configuration --> Settings`. +Then, enable the *Multi-Step Routes* feature. + +.. image:: media/multi-steps-routes-feature.png + :align: center + :alt: activation of the multi-steps feature in Odoo Inventory + +.. note:: + The *Storage Locations* feature is automatically activated with the + *Multi-Step Routes*. + +Once this first step is completed, you have the choice between +pre-configured routes or custom ones. Both are explained below. + +Pre-configured Routes +--------------------- + +Odoo’s pre-configured routes are available in the warehouses’ menu. To +find it, go to :menuselection:`Inventory --> Configuration --> +Warehouses`. There, open your warehouse and edit it to see the +pre-configured routes for incoming and outgoing shipments. + +.. image:: media/example-preconfigured-warehouse.png + :align: center + :alt: preconfigured warehouse in Odoo Inventory + +Some more advanced routes, such as pick-pack-ship, are already +configured to make your life easier. Those are based on your choice for +shipments. Once you made your choice, head to :menuselection:`Inventory --> +Configuration --> Routes` to see the routes Odoo generated for you. + +.. image:: media/preconfigured-routes.png + :align: center + :alt: view of all the preconfigured routes Odoo offers + +Opening one of those routes allows you to see on what you can apply the route. +Here, all the selected product categories in the +*YourCompany* warehouse are set up to follow the 3-steps route. + +.. image:: media/routes-example.png + :align: center + :alt: view of a route example applicable on category and warehouse + +Easier for many businesses, this process might not fit yours. Thus, +you can configure custom routes in which you can define your own +rules, but also the source and destination location of each action. As +an example, here are the rules for the pre-configured route. + +.. image:: media/rules-example.png + :align: center + :alt: rules example with push & pull actions in Odoo Inventory + +Custom Routes +------------- + +To create a custom route, go to :menuselection:`Inventory --> +Configuration --> Routes`, click on create, and choose the +places where this route can be selected. Of course, combinations are +available. + +.. image:: media/advanced-custom-route.png + :align: center + :alt: view of a pick - pack - ship route as an example + +Each place has a different behavior, so it is important to tick only the +useful ones and adapt each route accordingly. + +When applying the route on a product category +(:menuselection:`Inventory --> Configuration --> Product Categories`), +all the rules configured in the route are applied to **every** +product of the category. For example, this can be useful if you use the +dropshipping process for all the products from the same category. + +.. image:: media/routes-logistic-tab.png + :align: center + :alt: view of a route applied to the "all" product category + +The same behavior applies to the warehouses. If you tick *Warehouses*, +all the transfers occurring inside the chosen warehouse, and meeting the +conditions of the linked rules, then follow that route. + +.. image:: media/applicable-on-warehouse.png + :align: center + :alt: view of the route menu when selecting applicable on warehouse + +For the *Sales Order Lines*, it is more or less the opposite. You have +to choose the route yourself when creating a quotation. This is pretty useful if +some products go through different routes. + +.. image:: media/applicable-on-sales-order-lines.png + :align: center + :alt: view of the route menu when selecting applicable on sales order lines + +If you work with this kind of route, it is important to keep in mind +that it must be selected on the sales order, such as below. + +.. image:: media/add-routes-to-sales-lines.png + :align: center + :alt: view of the menu allowing to add new lines to sales orders + +Then, the route can be chosen on each line of the document. + +.. image:: media/sales-order-lines-routes-application.png + :align: center + :alt: view of the routes added to the sales orders + +Finally, there are routes that can be applied to products. Those work more or less +like the product categories: once selected, you have to +manually set on which product it must be applied. + +.. image:: media/applicable-on-products.png + :align: center + :alt: view of the menu when selecting applicable on products + +To do so, go to :menuselection:`Inventory --> Master Data --> +Products` and open the one on which you want to apply the route. Then +go to the *Inventory tab* and select the route you’ve created. + +.. image:: media/on-product-route.png + :align: center + :alt: view of a product form, where the route must be selected + +If, prima facie, the routes’ configuration can appear quite easy, don’t +forget that we haven’t set up any rule yet. If not harder to set up, those +are vital to have working routings. + +Rules +~~~~~ + +The rules are to be defined on the routes. To do so, go to +:menuselection:`Inventory --> Configuration --> Routes`, then to the *Rules* section, +and click on *Add a line* button. + +.. image:: media/add-new-rules.png + :align: center + :alt: view of the rules menu, where it is possible to add new rules + +The available rules trigger various actions. If Odoo offers *Push* and +*Pull* rules, others are also available. Here are some explanations for +all of them: + +- **Pull From**: this rule is triggered by a need for the product + in a specific stock location. The need can come from a sale order + which has been validated or for a manufacturing order which + requires a specific component. When the need appears in the + source location, Odoo generates a picking to fulfill this need. +- **Push To**: this rule is triggered by the arrival of some + products in the defined source location. In case you move + products to the source location, Odoo generates a picking to move + those products to the destination location. +- **Push & Pull**: it allows to generate pickings in the two + different situations explained above. It means that when products are + required at a specific location, a transfer is created from the previous location to fulfill + that need. Then, a need is created in the previous location and a rule is triggered to fulfill + it. Once the second need fulfilled, the products are pushed to the first location and all the + needs are fulfilled. +- **Buy**: when products are needed at the source location, a + request for quotation is created to fulfill the need. +- **Manufacture**: when products are needed in the source location, + a manufacturing order is created to fulfill the need. + +.. image:: media/pull-from-rule-stock-to-packing.png + :align: center + :alt: overview of a transfer requested between the stock and the packing zone + +You must also define the *Operation Type*. This +operation allows defining which kind of picking is created from the +rule. With our above screenshot, the created picking is, for example, an +internal transfer. + +On the other hand, the *Supply Method*, allows defining what happens at +the source location: + +- **Take From Stock**: the products are taken from the available + stock of the source location; +- **Trigger Another Rule**: the system tries to find a stock rule + to bring the products to the source location. The available stock + is ignored. +- **Take From Stock, if Unavailable, Trigger Another Rule**: the + products are taken from the available stock of the source + location. If there is no stock available, the system tries to + find a rule to bring the products to the source location. + +In the *Scheduling* section, you can determine how Odoo behaves when +one of the chain's pickings is rescheduled. In case you decide to +**Propagate Rescheduling**, the next move is also to be rescheduled. +If you prefer having the choice to reschedule the next move, +you can decide to receive an alert in the form of a +*next activity*. + +What about a full flow? +======================= + +Do you remember our Pick - Pack - Ship custom route? Let’s use it to +try a full flow with an advanced custom route. + +First, a quick look at our rules and their supply methods: we have three +rules, all **Pull From** rules. The supply methods are the +following: + +- **Take From Stock**: When products are needed in WH/Packing Zone, + *Picks* (internal transfers from WH/Stock to WH/Packing Zone) + are created from WH/Stock to fulfill the need. +- **Trigger Another Rule**: When products are needed in WH/Output, + *Packs* (internal transfers from WH/Packing Zone to WH/Output) + are created from WH/Packing Zone to fulfill the need. +- **Trigger Another Rule**: When products are needed in Partner + Locations/Customers, Delivery Orders are created from WH/Output + to fulfill the need. + +.. image:: media/transfers-overview.png + :align: center + :alt: overview of all the transfers created by the pick - pack - ship route + +This means that, when a customer orders products, a delivery order is +created to fulfill the order. + +.. image:: media/operations-on-transfers.png + :align: center + :alt: view of the operations created by a pull from transfer + +.. note:: + If the source document is the same sale order, the status is not the + same. In fact, the status is **Waiting Another Operation** if the + previous transfer in the list is not done yet. + +.. image:: media/waiting-status.png + :align: center + :alt: view of the transfers various status at the beginning of the process + +To prepare the order, conveyors need products packed at the output area, +so an internal transfer is requested from the packing zone. + +.. image:: media/detailed-operations-2.png + :align: center + :alt: view of the detailed operations for a transfer between the packing and output zones + +Obviously, the packing zone needs products ready to be packed. So, an +internal transfer is requested to the stock and employees can gather the +required products from the warehouse. + +.. image:: media/detailed-operations-transfer.png + :align: center + :alt: view of the detailed operations for a transfer between the stock and packing zones + +As explained in this documentation introduction, the last step in the +process (here the delivery order) is the first to be triggered, which +then triggers other rules until we reach the first step in the process +(here, the internal transfer from to stock to the packing area). Now, +everything is ready to be processed so the customer can get the ordered +items. + +In our case, the product is delivered to the customer when all the rules +have been triggered and the transfers done. + +.. image:: media/transfers-status.png + :align: center + :alt: view of the transfers' status when all the process is done \ No newline at end of file diff --git a/inventory/routes/concepts/use_routes.rst b/inventory/routes/concepts/use_routes.rst deleted file mode 100644 index e695b561a..000000000 --- a/inventory/routes/concepts/use_routes.rst +++ /dev/null @@ -1,154 +0,0 @@ -================== -How to use routes? -================== - -Overview -======== - -A route is a collection of procurement rules and push rules. Odoo can -manage advanced push/pull routes configuration, for example: - -- Manage product manufacturing chains - -- Manage default locations per product - -- Define routes within your warehouse according to business needs, such - as quality control, after sales services or supplier returns - -- Help rental management, by generating automated return moves for - rented products - -Configuration -============= - -Procurement rules are part of the routes. Go to the **Inventory** -application, :menuselection:`Configuration --> Settings` and tick -**Advance routing of products using rules**. - -.. image:: media/use_routes01.png - :align: center - -Pre-configured routes -===================== - -Odoo has some pre-configured routes for your warehouses. - -In the Inventory application, go to -:menuselection:`Configuration --> Warehouses`. - -In the **Warehouse Configuration** tab, **Incoming Shipments** and **Outgoing -Shippings** options set some routes according to your choices. - -.. image:: media/use_routes02.png - :align: center - -Custom Routes -============= - -In the **Inventory** application, go to -:menuselection:`Configuration --> Routes`. - -.. image:: media/use_routes03.png - :align: center - -First, you have to select the places where this route can be selected. -You can combine several choices. - -Routes applied on warehouses ----------------------------- - -If you tick **Warehouses**, you have to choose on which warehouse it will -be applied. The route will be set for all transfer in that warehouse -that would meet the conditions of the procurement and push rules. - -.. image:: media/use_routes04.png - :align: center - -Routes applied on products ---------------------------- - -If you tick **Products**, you have to manually set on which product it -will be applied. - -.. image:: media/use_routes05.png - :align: center - -Open the product on which you want to apply the routes -(:menuselection:`Inventory --> Control --> Products`). -In the Inventory Tab, select the route(s): - -.. image:: media/use_routes06.png - :align: center - -Routes applied on Product Category ----------------------------------- - -If you tick **Product Categories**, you have to manually set on which -categories it will be applied. - -.. image:: media/use_routes07.png - :align: center - -Open the product on which you want to apply the routes -(:menuselection:`Configuration --> Product Categories`). -Select the route(s) under the **Logistics** section : - -.. image:: media/use_routes08.png - :align: center - -Routes applied on Sales Order lines ------------------------------------ - -If you tick **Sales order lines**, you have to manually set the route -every time you make a sale order. - -.. image:: media/use_routes09.png - :align: center - -In order to make it work, you also have to activate the use of the -routes on the sales order. - -In the Sales application, go to -:menuselection:`Configuration --> Settings` and tick -**Choose specific routes on sales order lines (advanced)**. - -.. image:: media/use_routes10.png - :align: center - -You can now choose the routes for each lines of your sales orders: - -.. image:: media/use_routes11.png - :align: center - -Procurement and push rules -========================== - -Please refer to the documents: - -- :doc:`procurement_rule` - -- :doc:`push_rule` - -Procurement configuration -========================= - -When doing a procurement request, you can force the route you want to -use. On the product (:menuselection:`Inventory Control --> Products`), -click on **Procurement Request**. Choose the route you want to use next to -**Preferred Routes**: - -.. image:: media/use_routes12.png - :align: center - -Make-to-Order Route -=================== - -If you work with no stock, or with minimum stock rules, it is better to -use the **Make To Order** route. Combine it with the route **Buy** or -**Manufacture** and it will trigger automatically the purchase order or -the Manufacturing Order when your products are out-of-stock. - -.. seealso:: - * :doc:`push_rule` - * :doc:`inter_warehouse` - * :doc:`cross_dock` \ No newline at end of file diff --git a/redirects.txt b/redirects.txt index 866a3c8b8..60c4acfff 100644 --- a/redirects.txt +++ b/redirects.txt @@ -138,7 +138,10 @@ inventory/settings/warehouses.rst inventory/management/warehouses.rst inventory/settings/warehouses/difference_warehouse_location.rst inventory/management/warehouses/difference_warehouse_location.rst # settings/* --> management/* (#424) inventory/settings/warehouses/location_creation.rst inventory/management/warehouses/location_creation.rst # settings/* --> management/* (#424) inventory/management/delivery/scheduled_dates.rst inventory/management/planning/scheduled_dates.rst # delivery/scheduled_dates --> planning/scheduled_dates (#660) -inventory/management/planning/scheduled_date.rst inventory/manamgent/planning/scheduled_dates.rst # scheduled_date --> scheduled_dates (#660) +inventory/management/planning/scheduled_date.rst inventory/management/planning/scheduled_dates.rst # scheduled_date --> scheduled_dates (#660) +inventory/routes/concept/procurement_rule.rst inventory/routes/concepts/use-routes.rst # procurement_rule --> use-routes (#693) +inventory/routes/concept/push_rule.rst inventory/routes/concepts/use-routes.rst # push_rule --> use-routes (#693) +inventory/routes/concept/use_routes.rst inventory/routes/concepts/use-routes.rst # use_routes --> use-routes (#693) helpdesk/getting_started.rst helpdesk/overview/getting_started.rst # (#565) helpdesk/after_sales.rst helpdesk/advanced/after_sales.rst # (#565)