In Odoo ERPOnline, you have the choice between three ways to receive goods from suppliers.
The first method is to manually enter the information in the incoming shipment. To receive the products through this method, you have to go to Incoming Shipments section (
Warehouse > Operations > All Operations > YourCompany: Receipts), click Create and then you enter the information about the receipt.
Manual Data Entry for Product Receipt
The second method is to receive products from a generated incoming shipment. To achieve the reception using this method, you have to go to Incoming Shipments section. You will find the list of waiting incoming shipments.
The third method is to receive products by waiting products without looking at the shipment document.You can validate the reception by products in
Warehouse > Operations > All Operations > YourCompany: Receipt. With this method, you will be able to receive one product, regardless of the document which is attached to this product.
Receipt of a Supplier Order by Purchase Order
If you use Purchase Orders in Odoo ERPOnline, product receipts are automatically generated by the system when the purchase order is confirmed. You do not have to enter any date, just confirm that the quantities ordered match the quantities received.
Incoming Shipments forms are automatically prepared by Odoo ERPOnline from the purchase management process. You will find a list of all the awaited receipts in the menu
Warehouse > Operations > All Operations > YourCompany: Receipt. Use the order number or the supplier name to find the right goods receipt form for confirmation of a goods-in. This approach enables you to control quantities received by referring to the quantities ordered.
Incoming Shipments from Purchase management
You can also do goods-in data entry manually if there is no order, in Incoming Shipments menu by clicking the Create button.
A new goods-in data entry form opens. Enter the supplier in the Supplier field and type the reference number from your supplier in the field Source Document.
Now in Product tab, click on Add an item and select Product & quantity. In that form the source location is already completed by default because of your supplier selection. You should then give the destination location where you will place the products. For example, enter Stock. At this stage, you can set a Serial number for traceability (this function will be described later in this chapter, so leave this field empty for the moment).
Once the form has been completed, you can click on save button & close that wizard.
Now in Additional info tab, You can select the Delivery method either partial or All at once. Confirm this incoming shipment.
Next go to Incoming Products, in list view you will find your created incoming shipment, open that order, you can find buttons on that form, Process Partially and Process Entirely. (Process Partially button available only if you have select delivery method partially in Additional info tab of Incoming shipment)
If you click , the wizard open and seems like following figure, for example 18 quantity of Datacard product,
Confirm partial reception
After doing of partial process (example 9), another object will be generated with a back order reference equal to the
Reference number of the incoming shipment already confirmed. Now you can find in list view of Incoming product seems like following figure,
Process a Partial Incoming Shipment
Once the rest of the order has arrived and has been processed, both orders will be merged.
Form for Entering Goods received from a Supplier Order
The products then arrive in stock and should reflect the quantities shown on the product form.
In the Incoming Shipments form, the field
Invoice Control lets you influence the way you send invoices to suppliers. If this is set to
To be invoiced, a supplier invoice will now be generated automatically in the draft state, based on the goods received. Your accountant then has to confirm this pre-invoicing once the supplier's invoice is received. This enables you to verify that the invoiced quantities correspond to the quantities received.
In order to print the picking Slip of an incoming shipment, select the incoming shipment of which you need the details and click Receipt Slip from the Print button at the top center of the screen.
This Delivery Slip is available in the Internal Moves and Delivery Orders sections.
In case you received damaged or wrong products, you can return them to the supplier. In the Incoming shipment form, click the Return Products button. A window will open that lets you choose the invoicing process to follow. Once you click Process, a stock move is generated with the same reference number and return to specify that this is a return move.
Stock Move for Returned Products
Receipt of a Supplier Order by Product
The approach shown above is very useful if goods receipts correspond to the original orders. If your suppliers deliver items that do not necessarily coincide with the orders, however, it is easier to work by products received rather than by orders.
From this version on, you can also handle receptions by product, even from List view. Go to
Warehouse > Operations > All Operations > YourCompany: Receipt.
Filters allow you to easily select receipts to be done, and so on. One way to quickly receive products is to Group by Product,`Picking`,etc and select To Do.
This is very useful functionality when your supplier sends the goods for several purchase orders at a time. You can now just receive the products, regardless of the purchase order they come from, simply by clicking the green arrow at the right side of the screen.
The List view offers great flexibility and allows you to rapidly incoming products by keeping full functionality! Of course, you can handle both partial and complete receptions, and you can add information about the
Serial Numbers and packs.
Incoming Products Group By Product
You should install the
stock_location module (from the list of modules) if routing products to customers, from suppliers or in your warehouse is determined by the identity of the product itself.
Managing the Paths from one Location to Another in a Product Form (In Inventory tab)
This will let you configure logistics rules individually for each product. For example, when a specific product arrives in stores, it can automatically be sent to quality control. In this case, it has to be configured as a Push Flow with rules in the Product form. The fields that make up those rules are:
Source Location: the rule only applies if a product comes from this location,
Destination Location:: the rule only applies if a product ends up in this location,
Automatic Move:: Automatic Move, Manual Operation, Automatic No Step Added,
Operation:: a free text field which will be included in the automatic stock move proposed by Odoo ERPOnline.
There are two main logistic flows:
- Push Flow
- Pull Flow
Push flows are useful when the arrival of certain products in a given location should always be followed by a corresponding move to another location, optionally after a certain delay. The original Warehouse application already supports such Push flow specifications on the Locations themselves, but these cannot be refined per product.
Pull flows are a bit different from Push flows, in the sense that they are not related to the processing of product moves, but rather to the processing of procurement orders. What is being pulled is a need, not directly products. You will now see some examples of using these locations and logistics by product through Pushed Flows for:
- A rentable product,
- A product bought in China, following its freight by ship from port to port,
- A product that you want to send to quality control before putting it in stocks.
We will develop the third scenario: the quality control.
You can configure the system to put a given product in the Quality Control bay automatically when it arrives in your company. To do that, you just configure a rule for the product to be placed in the Quality Control location rather than the Input location when the product is received from the supplier.
Once this product has been received, Odoo ERPOnline will automatically manage the request for an internal movement to send it to the Quality Control location. If you want to do this automatically without having to confirm it, in the
Automatic Move field, select
Automatic Move or
Automatic No Step Added.
With the configuration described in the table above, you will have to confirm the stock move manually once you have received the goods.
Manual Stock Move to Quality Control
If you do not want to confirm the stock move manually, but you want to see the move
Suppliers --> Stock then
Stock --> Quality Control, change the
Automatic Move field and select
Automatic Move. With this configuration, you will see the two stock moves.
Automatic Stock Move to Quality Control
If you select
Automatic Move No Step Added, you will only see one stock move:
Suppliers --> Quality Control
Automatic Stock Move to Quality Control (No Step Added)
In the same way as delivering goods, you can ship goods in three different ways:
- manually enter data,
- deliver goods according to a sales order,
- deliver goods by product.
Everything about goods receipt can also be done manually in the same way for a customer delivery. This time, use the automated product delivery processes based on customer orders. Install the
sale module , so that you can proceed further in this section of the chapter.
Now create a new sales order from the menu
Sales > Sales > Sales Orders. Enter the following data in this order:
Shop: Your Company
Product: [DC] Data Card,
Quantity (UoM): 3,
Product UoM: Unit(s),
Procurement Method: from stock.
You have already seen that Odoo ERPOnline shows the available product stock in list view. The real stock is equal to the virtual stock because you have nothing to deliver to customers and you are not waiting for any of these products to be received into stock. The salesperson then has all the information needed to take orders efficiently.
Entering an Order for Three Data Card
Then confirm the quotation to convert it to an order. If you return to the product form, you will see the virtual stock is now smaller than the real stock.
Start the scheduler through the menu
Warehouse > Schedulers > Run Schedulers. This manages the reservation of products and places orders based on the dates promised to customers, and the various internal lead times and priorities. Three products will be reserved in the order that you created, so they cannot be sold to another customer.
Install the module
mrp_jit to schedule each order in real time after it has been confirmed. This means that you do not have to start the scheduler or wait for its periodical start time.
Now have a look at the list of deliveries waiting to be carried out using the menu
Warehouse > Operations > All Operations > YourCompany: Delivery Orders. You find a line there for your order representing the items to be sent. Double-click the line to see the detail of the items proposed by Odoo ERPOnline.
Items on a Customer Order
You can also confirm a customer delivery from a confirmed Sales Order. When you click the Process button of Outgoing Deliveries, a window opens where you can enter the quantities actually delivered. If you enter a value less than the forecasted one, Odoo ERPOnline automatically generates a partial delivery note and a new order for the remaining items. For this exercise, just confirm all the products.
However, if you want to look at a partial shipping, an example will be developed at the end of this section.
If you return to the list of current orders, you will see that your order has now been marked as
List of Orders with their State
Stock Management is very flexible to be more effective. For example, if you forget to enter products at goods-in, this will not prevent you from sending them to customers. In Odoo ERPOnline, you can force all operations manually using the button Force Availability. In this case, your stocks risk to become negative. You should monitor all stocks for negative levels and carry out an inventory correction when that happens.
Should you have to process a partial delivery, you can go to
Warehouse > Operations > All Operations > YourCompany: Delivery Orders, then select the order to process it. In the new window, change the quantity to ship and then confirm it.
If you go back to the list view, you will now see a new delivery order with a back order number equal to the just confirmed order. This is illustrated in the following figure.
In the stock moves, you will see that there are two moves. The first move is for the remaining quantities to ship and the second one is for the shipped goods. There will be more stock moves if you process partial shipping in more than two times.
Stock Moves in Partial Shipping
Return Products from Customers
If a customer returns damaged or wrongly delivered products, you can enter this information in Odoo ERPOnline via Warehouse > Operations > All Operations > YourCompany: Delivery Orders.
You have to select the order related to the returned products and click the
Return Products. A new window will open and will let you choose the invoicing method.
Return Products from Customers
When the product is returned, it will go back to your stock and you will see a stock move.
Stock Move for a Returned Product
Just In Time
By default, scheduling starts automatically once a day. You should make this scheduling execute overnight to ensure that the system does not slow down under a heavy load of scheduling when you are also trying to use it interactively.
To set the start time for the scheduler, go to the menu
Setting > Technical > Automation > Scheduled Actions. Select the rule called 'Run mrp scheduler' and modify the date and time of the next execution.
Some companies want to plan orders progressively as they are entered, so they do not wait until procurement orders are planned the next day. Install the module
mrp_jit to handle this. Once the module is installed, each requirement (that could result in a Production or Purchase Order) will be planned in real time as soon as it has been confirmed.
Then if you make a sales order with a product that is
Make To Order, the quotation request to a supplier will immediately be generated.
This mode does not always makes sense. Each order is processed immediately when confirmed. So if an order is to be delivered in three months, the scheduler will reserve goods in stock for each order once it has been confirmed. It would have been more sensible to leave these products available for other orders.
If a Purchase Order's Invoicing Control is configured From Order, the scheduler will immediately create the corresponding supplier quotation request. It might have been better to delay it for several weeks, if you could have used the lead time to group the purchase with other future orders.
So the negative effects of working with the
Just in Time module are:
- Poor priority management between orders,
- Additionally stocked products.
To configure your logistics for advanced push and pull, you need to install
stock_location module as explained before. A complete scenario will be developed at the end of this chapter.
This module supplements the
Warehouse application by adding support for location paths per product, effectively implementing Push and Pull inventory flows.
Typically this could be used to:
- 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
- Supplier Returns
- Help rental management, by generating automated return moves for rented products.
Once this module is installed, an additional Logistics Flows tab appears in the Product form, allowing you to add Push and Pull flow specifications.
Push flows are useful when the arrival of certain products in a given location should always be followed by a corresponding move to another location, optionally after a certain delay.
Warehouse Management application already supports such Push Flow specifications on the Locations, but these cannot be refined per product.
A push flow specification indicates which location is chained with another location, as well as the parameters used. As soon as a given quantity of products is moved to 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, etc.) The new move may be processed automatically, or may require a manual confirmation, according to what you have defined.
Suppose whenever the demo data product CPUi5 enters the Stock location, it first has to be moved to the Quality Control location in order to check the quality.
Look up the product CPUi5 using the menu
Warehouse > Products > Products.
To have Odoo ERPOnline accomplish this move automatically, you have to configure the Push flow as follows:
Operation: Receptions to Quality Control
Source Location: Stock
Destination Location: Quality Control
Automatic Move: Automatic No Step Added
Delay (days): 1
Shipping Type: Getting Goods
Invoice Status: Not Applicable
Push Flow Specification for Product CPUi5
A push flow is related to how stock moves should be generated in order to increase or decrease inventory.
Pull flows are a bit different from Push flows, in the sense that they are not related to the processing of product moves, but rather to the processing of procurement orders. What is being pulled is a need, not directly products.
A classical example of a Pull flow is when you have an Outlet company, with a parent Company that is responsible for the supplies of the Outlet.
[ Customer ] <- A - [ Outlet ] <- B - [ Holding ] <- C - [ Supplier ]
When a new procurement order A (resulting from the confirmation of a Sales Order, for example) is created in the Outlet (Your Company, Chicago shop), it is converted into another procurement B (through a Pull flow of the 'move' type) requested from the Holding. When procurement order B is processed by the Holding company (Your Company), and if the product is out of stock, it may be converted into a Purchase Order (C) from the Supplier (Push flow of the 'Buy' type). The result is that the procurement order, the need, is pushed all the way between the Customer and Supplier.
Technically, Pull flows allow to process procurement orders differently, not only depending on the product being considered, but also depending on which location holds the "need" for that product (i.e. the destination location of that procurement order).
To explain a pull flow for the product CPUa8, we first have to configure the Reordering rules of CPUa8 for the company Your Company and Your Company, Chicago shop using the menu
Warehouse > Configuration > Reordering Rules.
For the company
Min Quantity: 10
Max Quantity: 50
For the company Your Company Chicago shop;
Min Quantity: 10
Max Quantity: 20
Look up the product CPUa8 using menu Warehouse > Products > Products in order to define the configuration of the pulled flow.
Pull Flow Specification for Product CPUa8
There are two specifications of a pull flow for product CPUa8.
Name: Receive from Warehouse
Destination Location: Shop 1
Type of Procurement: Move
Source Location: Internal Shippings
Partner Address: OpenERP S.A., Belgium Gerompont Chaussee de Namur 40
Shipping Type: Getting Goods
Procure Method: Make to Order
Invoice Status: Not Applicable
Name: Deliver Shop
Destination Location: Internal Shippings
Type of Procurement: Move
Source Location: Stock
Partner Address: Fabien
Shipping Type: Sending Goods
Procure Method: Make to Stock
Invoice Status: Not Applicable
Now sell 1 unit of product CPUa8 from the Your Company Chicago shop (do not forget to confirm your sales order) and run the scheduler using the menu
Warehouse > Schedulers > Run Schedulers. Then check the stock moves for product CPUa8 from the menu
Warehouse > Traceability > Stock Moves.
Stock Move of CPUa8 related to Pull Flow Specification
These moves can be explained like this:
[ Customer ] <-- [
Your Company Chicago shop ] <-- Internal Shippings <-- Stock <-- [
Your Company ]
When the company
Your Company Chicago shop sells one unit of CPUa8 to a customer, its stock decreases to 10 units. According to the minimum stock rule of the product CPUa8, Odoo ERPOnline generates a procurement order of 21 units of CPUa8 for the company
Your Company Chicago shop (OUT/00020, or another number if you have added extra data). So 21 units of CPUa8 move from
Your Company Stock to
Your Company Chicago shop according to their internal configuration of Source and Destination Locations.
A pull flow is related to how the procurement process runs in order to find products to increase or decrease inventory.
The procurement method determines how the product will be replenished:
Make to Stock: your customers are supplied from available stock. If the quantities in stock are too low to fulfil the order, a Purchase Order (according the minimum stock rules) will be generated in order to get the products required. Example: a classic distributor.
Make to Order: when a customer order is confirmed, you procure or manufacture the products for this order. A customer order 'Make to Order' will not modify stock in the medium term because you restock with the exact amount that was ordered. Example: computers from a large supplier assembled on demand.
You find a mix of these two modes used for the different final and intermediate products in most industries. The procurement method shown on the product form is a default value for the order, enabling the salesperson to choose the best mode for fulfilling a particular order by varying the sales order parameters as needed.
Change in Stock for a Make to Stock Product and
Change in Stock for a Make to Order Product show the change of stock levels for one product managed as
Make to Order and another managed as
Make to Stock.
These figures are taken from, product view (In product go to More -> Future Stock Moves)
Change in Stock for a Make to Stock Product
Change in Stock for a Make to Order Product
Make to Stock logistical approach is usually used for high volumes and when the demand is seasonal or otherwise easy to forecast. The
Make to Order approach is used for products that are measured, or very expensive to stock or have a short restocking time.
Odoo ERPOnline supports two supply methods:
Manufacture: when the product is manufactured or the service is supplied from internal resources.
Buy: when the product is bought from a supplier.
These are just the default settings used by the system during automated replenishment. The same product can be either manufactured internally or bought from a supplier.
These three fields (Supply Method, Procurement Method, Product Type) determine the system's behaviour when a product is required. The system will generate different documents depending on the configuration of these three fields when satisfying an order, a price quotation to a supplier or a manufacturing order.
Odoo ERPOnline manages both stockable products and services. A service bought from a supplier in
Make to Order mode, will generate a subcontract order from the supplier in question.
The table below shows all possible cases for Procurement.
Wait for availability
Wait for availability
Units of Measure
Odoo ERPOnline supports several units of measure. Quantities of the same product can be expressed in several units of measure at once. For example, you can buy grain by the tonne and resell it by kg. You just have to make sure that all the units of measure used for a product are in the same units of measure category.
All units of measure in the same category are convertible from one unit to another.
The table below shows some examples of units of measure and their category. The factor is used to convert from one unit of measure to another as long as they are in the same category.
Depending on the table above, you have
1Kg = 1000g = 0.001 Tonnes. A product in the Weight category could be expressed in Kg, Tonnes or Grammes. You cannot express it in hours or pieces, for example.
Use the menu
Warehouse > Configuration > Units of Measure to define a new unit of measure.
In the definition of a Unit of Measure, you have a Rounding precision factor which shows how amounts are rounded after the conversion. A value of 1 gives rounding to the level of one unit. 0.01 gives rounding to one hundredth.
Odoo ERPOnline supports double units of measure. Notice however that the default unit of measure and the purchase unit of measure have to be in the same category. Only the sales unit of measure may be in a different category.
This is very useful in the agro-food industry, for example: you sell ham by the piece, but invoice by the Kg. A weighing operation is needed before invoicing the customer.
To activate the management options for double units of measure, you have to change configuration from
Settings > Configuration > Warehouse.
In this case, the same product can be expressed in two units of measure belonging to different categories for sales and stock/purchase. You can then distinguish between the unit of stock management (the piece) and the unit of invoicing or sales (kg) in the
Sales tab of Product form.
Secondary Unit of Measure
In the product form you can set one unit of measure for sales and stock management, and one unit of measure for purchases (in Procrument tab of Product form).
For each operation on a product, you can use another unit of measure, as long as it can be found in the same category as the two units already defined. If you use another unit of measure, Odoo ERPOnline automatically handles the conversion of prices and quantities.
So if you have 430 Kg of carrots at 5.30 EUR/Kg, Odoo ERPOnline will automatically make the conversion if you want to sell in tonnes – 0.43 tonnes at 5300 EUR / tonne. If you had set a rounding factor of 0.1 for the
tonne unit of measure, Odoo ERPOnline will tell you that you have only 0.4 tonnes available.
The packaging allows you to ship products in several ways. For example, you can ship goods by boxes or by pallets.
At first, you have to define possible packaging. To define the packaging, go to
Warehouse > Configuration > Products > Packaging and click Create.
To complete the creation of a new packaging, you have to give it a name and a type. Different types are available in Odoo ERPOnline:
Once all packaging is defined, you can attach the packaging to your products through the following menu:
Warehouse > Products > Products. (Open Product Form view and go to Sales Tab in the last you will find line of packing)
Defining the Packaging for the Product