Landed costs

# Landed costs

In Odoo, the Landed Costs feature is used to take additional costs into account when calculating
the valuation of a product. This includes the cost of shipment, insurance, customs duties, taxes,
and other fees.

## Configuration

To add landed costs to products, the Landed Costs feature must first be enabled. To enable this
feature, navigate to Inventory app â£ Configuration â£ Settings , and scroll to
the Valuation section.
Select the checkbox next to the Landed Costs option, and click Save to save
changes.
Once the page refreshes, a new Default Journal field appears below the Landed
Costs feature in the Valuation section.
Click the Default Journal drop-down menu to reveal a list of accounting journals. Select
a journal for which all accounting entries related to landed costs should be recorded.

## Create landed cost product

For charges that are consistently added as landed costs, a landed cost product can be created in
Odoo. This way, a landed cost product can be quickly added to a vendor bill as an invoice line,
instead of having to be manually entered every time a new vendor bill is created.
To do this, create a new product by going to Inventory app â£ Products â£
Products , and clicking New .
Assign a name to the landed cost product in the Product Name field (i.e. International Shipping ). In the Product Type field, click the drop-down menu, and select Service as the Product Type .
`InternationalShipping`
Landed cost products must have their Product Type set to Service .
Click the Purchase tab, and select the checkbox next to Is a Landed Cost in the Vendor Bills section. Once selected, a new Default Split Method field appears below
it, prompting a selection. Clicking that drop-down menu reveals the following options:
- Equal : splits the cost equally across each product included in the receipt, regardless
of the quantity of each.
Equal : splits the cost equally across each product included in the receipt, regardless
of the quantity of each.
- By Quantity : splits the cost across each unit of all products in the receipt.
By Quantity : splits the cost across each unit of all products in the receipt.
- By Current Cost : splits the cost according to the cost of each product unit, so a
product with a higher cost receives a greater share of the landed cost.
By Current Cost : splits the cost according to the cost of each product unit, so a
product with a higher cost receives a greater share of the landed cost.
- By Weight : splits the cost according to the weight of the products in the receipt.
By Weight : splits the cost according to the weight of the products in the receipt.
- By Volume : splits the cost according to the volume of the products in the receipt.
By Volume : splits the cost according to the volume of the products in the receipt.
When creating new vendor bills, this product can be added as an invoice line as a landed cost.
To apply a landed cost on a vendor bill, products in the original PO must belong to a Product Category with a Costing Method of either AVCO or FIFO , and the valuation method
can be manual or automatic .

## Create purchase order

Navigate to Purchase app â£ New to create a new request for quotation (RfQ). In
the Vendor field, add a vendor to order products from. Then, click Add a
product , under the Products tab, to add products to the RfQ .
Once ready, click Confirm Order to confirm the order. Then, click Receive
Products once the products have been received, followed by Validate .

### Create vendor bill

Once the vendor fulfills the PO and sends a bill, a vendor bill can be created from the PO in
Odoo.
Navigate to the Purchase app , and click into the PO for which a vendor bill
should be created. Then, click Create Bill . This opens a new Vendor Bill in
the Draft stage.
In the Bill Date field, click the line to open a calendar popover menu, and select the
date on which this draft bill should be billed.
Then, under the Invoice Lines tab, click Add a line , and click the drop-down menu in
the Product column to select the previously-created landed cost product. Click the (Save manually) icon to manually save and update the draft bill.
In the Landed Costs column, the product ordered from the vendor does not have its
checkbox selected, while the landed cost productâs checkbox is selected. This differentiates
landed costs from all other costs displayed on the bill.
Additionally, at the top of the form, a Create Landed Costs button appears.

## Add landed cost

Once a landed cost is added to the vendor bill, click Create Landed Costs at the top of
the vendor bill.
Doing so automatically creates a landed cost record, with a set landed cost pre-filled in the
product line in the Additional Costs tab.
From the Landed Cost form, click the Transfers drop-down menu, and select
which transfer the landed cost belongs to.
In addition to creating landed costs directly from a vendor bill, landed cost records can also be created by navigating to Inventory app â£ Operations â£ Landed Costs , and
clicking New .
After setting the picking from the Transfers drop-down menu, click Compute (at the bottom of the form, under the Total: cost).
Click the Valuation Adjustments tab to see the impact of the landed costs. The Original
Value column lists the original price of the PO , the Additional Landed Cost column
displays the landed cost, and the New Value displays the sum of the two, for the total
cost of the PO .
Once ready, click Validate to post the landed cost entry to the accounting journal.
This causes a Valuation smart button to appear at the top of the form. Click the Valuation smart button to open a Stock Valuation page, with the productâs
updated valuation listed.
For a Valuation smart button to appear upon validation, the productâs Product Type must be set to Storable .
To view the valuation of every product, including landed costs, navigate to Inventory app â£ Reporting â£ Valuation .
Each journal entry created for a landed cost on a vendor bill can be viewed in the Accounting app.
To locate these journal entries, navigate to Accounting app â£ Accounting â£
Journal Entries , and locate the correct entry, by number (i.e. PBNK1/2024/XXXXX ).
`PBNK1/2024/XXXXX`
Click into the journal entry to view the Journal Items , and other information about
the entry.

Configuration
Create landed cost product
Create purchase order
Create vendor bill
Add landed cost


Using inventory valuation

# Using inventory valuation

Inventory valuation is a quintessential accounting procedure that calculates the value of on-hand
stock. Once determined, the inventory valuation amount is then incorporated into a companyâs overall
value.
In Odoo, this process can be conducted manuallyâ by warehouse employees physically counting the
productsâ or automatically through the database.

## Automatic inventory valuation

To use Odoo to automatically generate a trail of inventory valuation entries, first navigate to the Product Categories list by going to Inventory app â£ Configuration
â£ Product Categories and select the desired product category. On the form, set the Inventory Valuation as Automated and the Costing Method to any
of the three options.
Set up inventory valuation
In order to understand how moving products in and out of stock affects the companyâs overall value,
consider the following product and stock moves scenario below.

### Receive a product

To track the value of incoming products, such as a simple table , configure the product category on
the the product itself. To get there, navigate to Inventory app â£ Products â£
Products and click the desired product. On the product form, click the â¡ï¸ (right arrow) icon beside the Product Category field, which opens an internal link to edit the product
category. Next, set the Costing Method as First In First Out (FIFO) and Inventory Valuation as Automated .
Alternatively access the Product Categories dashboard by navigating to Inventory app â£ Configuration â£ Product Categories and select the desired
product category.
Next, assume 10 tables are purchased at a price of $10.00, each. The PO for
those tables will show the subtotal of the purchase as $100, plus any additional costs or taxes.
After selecting Validate on the PO , the Valuation smart button is enabled. Clicking on this button displays a report showing how the inventory
valuation for the table was affected by this purchase.
Developer mode must be turned on to see the Valuation smart button.
The consignment feature allows
ownership to items in stock. Thus, products owned by other companies are not accounted for in the
host companyâs inventory valuation.
For a comprehensive dashboard that includes the inventory valuation of all product shipments,
inventory adjustments, and warehouse operations, refer to the stock valuation report .

### Deliver a product

In the same logic, when a table is shipped to a customer and leaves the warehouse, the stock
valuation decreases. The Valuation smart button on the DO ,
likewise, displays the stock valuation record as it does on a PO .

## Inventory valuation report

To view the current value of all products in the warehouse, first turn on Developer mode and navigate to Inventory app â£ Reporting â£ Valuation . The Stock Valuation dashboard displays detailed records of products with the Date , Quantity , Unit Value , and Total Value of the
inventory.
Developer mode must be enabled to see the Valuation option under Reporting .
The Valuation At Date button, located in the top-left corner of the Stock
Valuation page, reveals a pop-up window. In this pop-up, the inventory valuation of products
available during a prior specified date can be seen and selected.
View a detailed record of a productâs inventory value, stock move, and on-hand stock by selecting
the teal â¡ï¸ (right arrow) button to the right of the Reference column
value.

### Update product unit price

For any company: lead times, supply chain failures, and other risk factors can contribute to
invisible costs. Although Odoo attempts to accurately represent the stock value, manual valuation serves as an additional tool to update the unit price of products.
Manual valuation is intended for products that can be purchased and received for a cost greater
than 0, or have product categories set with Costing Method set as either Average Cost (AVCO) or First In First Out (FIFO) .
Create manual valuation entries on the Stock Valuation dashboard by first navigating to Inventory app â£ Reporting â£ Valuation . Next, to enable the product
revaluation feature, select Group by â£ Product to organize all the records by
product. Click on the gray âï¸ (drop-down triangle) icon to reveal stock valuation line
items below, as well as a teal â (plus) button on the right.
Click the teal + (plus) button to open up the Product Revaluation form.
Here, the inventory valuation for a product can be recalculated, by increasing or decreasing the
unit price of each product.
The âï¸ (drop-down triangle) and â (plus) buttons are only visible after
grouping entries by product.

### Inventory valuation journal entries

In Odoo, automatic inventory valuation records are also recorded in the Accounting
app â£ Accounting â£ Journal Entries dashboard. On this comprehensive list of accounting entries,
inventory valuation records are identified by checking values in the Journal column, or
looking for the Reference column value which matches the warehouse operation reference
(e.g. WH/IN/00014 for receipts).
`WH/IN/00014`
Clicking on an inventory valuation journal entry opens a double-entry accounting record. These
records are generated by Odoo to track the change of value in inventory valuation as products are
moved in and out of the warehouse.
To view the inventory valuation of 10 tables , costing $10.00 each, upon reception from the
vendor, go to the Journal Entries page found in Accounting app
â£ Accounting â£ Journal Entries . Here, click the journal line where the Reference column value matches the reference on the receipt, WH/IN/00014 .
`WH/IN/00014`
Stock interim is a holding account for money intended to pay vendors for the product. The stock valuation account stores the value of all on-hand stock.
`Stockinterim`
`stockvaluation`
Odoo Tutorial: Inventory Valuation

Automatic inventory valuation
Receive a product
Deliver a product
Inventory valuation report
Update product unit price
Inventory valuation journal entries


Valuation by lots/serial numbers

# Valuation by lots/serial numbers

Track inventory valuation by lots or serial numbers to:
- Compare and differentiate purchasing cost ,
based on lot or serial numbers.
Compare and differentiate purchasing cost ,
based on lot or serial numbers.
- Track the actual cost of manufactured products, based on the real cost of each tracked component
used.
Track the actual cost of manufactured products, based on the real cost of each tracked component
used.
- Depreciate specific lot or serial numbers when they sit in stock for too long .
Depreciate specific lot or serial numbers when they sit in stock for too long .
Please read this introduction to inventory valuation before
setting up valuation by lot/serial numbers.

## Configuration

To enable valuation by lots or serial numbers, begin by enabling the Lots and Serial Numbers
feature . After that, go to Inventory app â£ Products â£
Products , and select the desired product, or create a new product, by clicking New .
On the product form, in the Category field, choose a product category. Ensure the
product categoryâs Costing Method is set to First In First Out (FIFO) or Average Cost (AVCO) .
To check the costing method set on the product category, hover over the Category field, and click the (Internal Link) icon.
Next, activate the product to be tracked by lots or serial numbers by ticking the Track
Inventory checkbox. Then, click the adjacent field that appears, and choose either By
Lots or By Unique Serial Number from the resulting drop-down menu.
Doing so makes the Valuation by Lot/Serial number checkbox appear below it. Tick that
checkbox, and the configuration to track valuation by lot or serial numbers is complete.
Product form showing the Valuation by Lot or Serial Number feature

## Valuation layers

To understand how valuation by lots and serial numbers works, consider these scenarios:
- Purchase and sell products : cost is
calculated based on the product categoryâs costing method.
Purchase and sell products : cost is
calculated based on the product categoryâs costing method.
- Create new lot/serial numbers using an
inventory adjustment: value of the new lot/serial number is assigned to the cost from the product
form.
Create new lot/serial numbers using an
inventory adjustment: value of the new lot/serial number is assigned to the cost from the product
form.
- Inventory adjustment to update quantities for an existing lot/serial number : value is assigned based on the most
recent cost for that lot/serial number.
Inventory adjustment to update quantities for an existing lot/serial number : value is assigned based on the most
recent cost for that lot/serial number.
For both AVCO and FIFO methods, the Cost field
on the product form is calculated using this formula:
\(Avg~Cost = \frac{Total~Value}{Total~Qty}\)

### Purchase products

Consider how purchasing products affect the inventory valuation, in the table below.
Average cost on product form
Day 1: Receive one product at $10/unit
Day 2: Receive another product at $20/unit
As a result, the product form displays an average cost of $15 in the Cost field.

### Create new lot/serial number

Creating a new lot/serial number through an inventory adjustment assigns the same value as the cost
on the product form.
To make an inventory adjustment, and assign a lot number, go to Inventory app â£
Operations â£ Physical Inventory . Then, click New .
In the new inventory adjustment line that appears, set the Product , create the Lot/Serial Number , set the Counted Quantity , and click Apply .
To view the valuation layer, go to Inventory app â£ Reporting â£ Valuation . The Total Value per unit matches the Cost on the product form.
Continuing the example in the table above, when the product cost is $15 , the valuation for a
newly-created LOT3 is also be $15 .
`$15`
`LOT3`
`$15`

### Existing lot/serial number

When adjusting the quantity of an existing lot/serial number, the value is based on the most recent
valuation layer for that specific lot/serial number.
Continuing the example in the table above, the value for LOT 1 is $10 .
`LOT1`
`$10`
So, when the quantity is updated from 1.00 to 2.00 , the additional quantity is also valued at $10 , reflecting the latest valuation layer for LOT 1 .
`1.00`
`2.00`
`$10`
`LOT1`
The inventory adjustment (top line) is valued the same as LOT 1 (bottom line).

## View valuation

To find the average cost of a specific lot/serial number, go to Inventory app â£
Products â£ Lots/Serial Numbers , and select the desired record.
Both the Cost and Average Cost fields show a unitâs average cost. The Total Value reflects the total on-hand value for that lot/serial number.
Ensure the costing method is set to First In First Out (FIFO) or Average Cost (AVCO) to
display the cost on this page.
Lot form, displaying Cost field. The Valuation smart button is in the top-right.
Valuation layers of a lot/serial number can be viewed through the valuation report , or by clicking the lot/serial numberâs Valuation smart button. These detailed, line-by-line records can help determine how each
inventory move of the specific lot/serial number affects its valuation.

### Valuation report

Display the valuation of lots and serial numbers in the database by going to Inventory app â£ Reporting â£ Valuation .
On the resulting Stock Valuation report, click the search bar, and in the Group By section of the resulting drop-down menu, select Lot/Serial number .
Click the (plus) icon to the right of a collapsed lot number line to manually modify the cost .
This is useful for adjusting individual lot prices when a purchase order or bill includes
multiple lots/serial numbers, as initial prices are identical upon reception.

### Valuation smart button

To access a filtered part of the Stock Valuation report, specific to a lot or serial number, go to Inventory app â£ Products â£ Lots/Serial Numbers , and select the desired item.
On the Lot/Serial Numbers page, click the Valuation smart button.
All stock moves that affect the valuation of LOT 1 .
`LOT1`

Configuration
Valuation layers
Purchase products
Create new lot/serial number
Existing lot/serial number
View valuation
Valuation report
Valuation smart button


Product tracking

# Product tracking

Lots and serial numbers are the two ways to identify and track products in Odoo. While there are
similarities between the two traceability methods, there are also notable differences that affect
receipts, deliveries, and inventory reports.
A lot usually indicates a specific batch of an item that was received, is currently stored, or was
shipped from a warehouse. However, it can also pertain to a batch of products manufactured in-house,
as well.
A serial number is a unique identifier assigned incrementally (or sequentially) to an item or
product, used to distinguish it from other items or products.
- Lot numbers
- Serial numbers

## Enable lots & serial numbers

To track products using lots and serial numbers, the Lots & Serial Numbers feature must be
enabled.
To do that, go to the Inventory app â£ Configuration â£ Settings , scroll down to
the Traceability section, and click the box next to Lots & Serial Numbers .
Then, click the Save button to save changes.

## When to use lots

Lots are useful for products that are manufactured or received in large quantities, such as clothes
or food. Lots and can be used to trace a product back to a group, which is especially useful when
managing product recalls or expiration dates.
Manufacturers assign lot numbers to groups of products that have common properties; this can lead to
multiple goods sharing the same lot number. This helps identify a number of products in a single
group, and allows for end-to-end traceability of these products through each step in their life
cycles.

## When to use serial numbers

The goal of assigning serial numbers to individual products is to make sure every itemâs history is
identifiable when it travels through the supply chain. This can be especially useful for
manufacturers that provide after-sales services related to products they sell and deliver.
Serial numbers can contain many different types of characters: numbers, letters, typographical
symbols, or a mixture of all three types.

## Traceability

Manufacturers and companies can refer to traceability reports to see the entire life cycle of a
product. These reports include vital information, like where it came from (and when), where it was
stored, and to whom it was sent.
To see the full traceability of a product, or group products by lots and/or serial numbers, go to Inventory app â£ Products â£ Lots/Serial Numbers . Doing so reveals the Lots/Serial Numbers dashboard.
From here, products with lots or serial numbers assigned to them are listed by default. They can
also be expanded to show what lots or serial numbers have been specifically assigned to them.
To group by lots or serial numbers, first remove any default filters from the search bar in the
upper-right corner. Then, click Group By , and select Add Custom Group , which
reveals a mini drop-down menu. From this mini drop-down menu, select Lot/Serial Number ,
and click Apply .
Doing so reveals all existing lots and serial numbers, and each can be expanded to show all product
quantities with that assigned number. For unique serial numbers that are not reused, there should only be one product per serial number.
For additional information regarding an individual lot number or serial number, click the line
item for the lot or serial number to reveal that specific numberâs Lot or Serial Number form. From this form, click the Location and Traceability smart buttons to see all stock on-hand using that serial number. Any
operations made using that lot or serial number can be found here, as well.

Enable lots & serial numbers
When to use lots
When to use serial numbers
Traceability


Expiration dates

# Expiration dates

In Odoo, expiration dates can be used to manage and track the lifecycles of perishable products,
from purchase to sale. Using expiration dates reduces product loss due to unexpected expiry, and
helps to avoid sending expired products to customers.
In Odoo, only products that are tracked using lots and serial numbers can be assigned expiration
information. Once a lot or serial number has been assigned, an expiration date can be set. This is
especially helpful for companies (such as food manufacturers) that consistently, or exclusively, buy
and sell perishable products.
- Lot numbers
- Serial numbers

## Enable expiration dates

To enable the use of expiration dates , go to Inventory app â£ Configuration â£
Settings , and scroll down to the Traceability section. Then, click the checkbox to
enable the Lots & Serial Numbers feature.
Once that feature is activated, a new option will appear to enable Expiration Dates .
Click that checkbox to enable the feature, and be sure to Save changes.
Once the Lots & Serial Numbers feature is activated, an additional feature appears to Display Lots & Serial Numbers on Delivery Slips . Activating these features helps with
end-to-end traceability, making it easier to manage product recalls, identify batches of faulty
products, and more.

## Configure expiration dates on products

Once the Lots & Serial Numbers and Expiration Dates features have been
enabled in the Inventory app settings, expiration information can be configured on individual
products.
To do so, go to Inventory app â£ Products â£ Products , and select a product to
edit. Selecting a product reveals the product form for that particular item.
To be tracked using lots or serial numbers, or to configure expiration information, products must have their Product Type set as Goods under the General
Information tab. Then, in the Track Inventory field, select either By
Unique Serial Number or By Lots .
Then, click the Inventory tab, and scroll down to the Traceability section.
Tick the Expiration Date checkbox.
If a product has stock on-hand prior to activating tracking by lots or serial numbers, an
inventory adjustment might need to be performed in order to assign lot numbers to the existing
stock.
For processing large quantities of products on receipts or deliveries, it is recommended to track
using lots, so multiple products can be traced back to the same lot, if any issues arise.
Under the Dates section, there are four categories of expiration information to
configure for the product:
- Expiration Time : the number of days after receiving products (either from a vendor or
in stock after production) in which goods may become dangerous and should not be used or consumed.
Expiration Time : the number of days after receiving products (either from a vendor or
in stock after production) in which goods may become dangerous and should not be used or consumed.
- Best Before Time : the number of days before the expiration date in which the goods
start deteriorating, without being dangerous yet.
Best Before Time : the number of days before the expiration date in which the goods
start deteriorating, without being dangerous yet.
- Removal Time : the number of days before the expiration date in which the goods should
be removed from stock.
Removal Time : the number of days before the expiration date in which the goods should
be removed from stock.
- Alert Time : the number of days before the expiration date in which an alert should be
raised on goods in a particular lot or containing a particular serial number.
Alert Time : the number of days before the expiration date in which an alert should be
raised on goods in a particular lot or containing a particular serial number.
The values entered into these fields automatically compute the expiration date for goods entered
into stock, whether purchased from a vendor or manufactured in-house.
If the Dates field is not populated with any values for expiration information, dates
(and lots) can be manually assigned upon receipts and deliveries in and out of the warehouse.
Even when assigned, they can still be overwritten and changed manually if needed, as well.

## Set expiration dates on receipts with lots & serial numbers

Generating expiration dates for incoming goods can be done directly on the Receipt .
Navigate to Inventory app â£ Operations â£ Receipts , then click on a line to
open the Receipt record.
Clicking Validate before assigning a serial number to the ordered product quantities
causes a User Error popup to appear. The popup requires entry of a lot or serial
number for the ordered products. The receipt cannot be validated without an assigned lot or
serial number.
From here, click the (Details) icon located on the of the product line.
When clicked, a Detailed Operations pop-up will appear.
In the pop-up, the Expiration Date automatically populates, based on the configuration
on the product form. Click the Lot/Serial Number field on the appropriate line, then
enter the lot or serial number.
If the Dates field on the product form has not been configured, the Expiration Date can be manually entered.
Click Save when finished to close the pop-up. Finally, click Validate .
A Traceability smart button will appear upon validating the receipt. Click the Traceability smart button to see the updated Traceability Report , which
includes: a Reference document; the Product being traced; the Lot/Serial # ; and more.

## Set expiration dates on manufactured products

Expiration dates can also be generated for products manufactured in-house. To assign expiration
dates to manufactured products, a manufacturing order (MO) needs to be completed.
To create a MO , go to Manufacturing app â£ Operations
â£ Manufacturing Orders , and click New . Choose a product to manufacture from the Product field drop-down menu, then select the Quantity to produce.
To manufacture a product, there must be materials to consume in the lines in the Product column. This can be achieved either by creating a Bill of
Material for the Product , or manually adding materials to consume by clicking Add a line .
Once ready, click Confirm .
The appropriate number of Lots/Serial Numbers automatically populated in the field.
Click the (Details) icon to reveal additional information for those
specific numbers. On that pop-up, all expiration information that was previously configured for the
product is displayed.

## Sell products with expiration dates

Selling perishable products with expiration dates is done the same as any other type of product. The
first step in selling perishable products is to create a sales order.
To do that, go to Sales app â£ New to create a new quotation, and fill out the
information on the sales order form.
Add a Customer , then click Add a product to add the desired products to the Product lines, and set a Quantity for the products.
Then, click the Other Info tab. Under the Delivery section, change the Delivery Date to a date after the expected date, and click Apply to confirm
the date. Finally, click Confirm to confirm the sales order.
If the products are delivered before the Alert Date set on the product form, then no
alerts are created.
Next, click the Delivery smart button at the top of the sales order to see the warehouse
receipt form.
On the warehouse receipt form, click Validate , and then Apply in the
accompanying pop-up window, to automatically process all Done quantities, and deliver
the products to the customer.
To sell perishable products with expiration dates, the Removal Strategy for the Location the products are stored in must be set to FEFO . If there is not enough stock of perishable products in one lot, Odoo will automatically
take the remaining quantity required from a second lot with the next-soonest expiration date.
Removal strategies can also be set on Product Categories .

## View expiration dates for lots & serial numbers

To view (and/or group) all products with expiration dates by lot number, go to Inventory app â£ Products â£ Lots/Serial Numbers .
Once there, remove any default search filters from the search bar. Then, click Group By ,
choose Add Custom Group , and select the Expiration Date parameter from the
drop-down menu. Doing so breaks down all perishable products, their expiration dates, and the
assigned lot number.
Customers can also view the expiration date alert in their customer portal.

### Expiration alerts

To see expiration alerts, go to Inventory app â£ Products â£ Lots/Serial Numbers .
Then, click into a Lot/Serial Number with perishable products. Doing so reveals the
serial number detail form.
To view expiration date information in the list view, click the (adjust settings) icon at the top of the list of records, then tick the Expiration Date checkbox.
On the Lot/Serial Number detail form, the Dates lists all expiration
information related to the products.
If the expiration date for a lot/serial number has passed, the form displays a red Expiration Alert at the top of the page to indicate that the products in this lot are
either expired or expiring soon.
From here, click back to the Lots/Serial Numbers page (via the breadcrumbs).
To see the new expiration alert, or any expiration alerts for products that are expired (or will
expire soon), click back to the Lots/Serial Numbers page via the breadcrumbs. Remove
all of the search filters from the search bar on the Lots/Serial Numbers dashboard.
Then, click Filters , and choose Expiration Alerts .

### Expiration notifications

Users can be notified when the expiration date for a product has passed. This can help keep specific
employees up to date on the status of items under their purview.
To configure a notification, navigate to Inventory app â£ Products â£ Products .
Select a product configured with lot/serial numbers and expiration date tracking. Navigate to the Inventory tab. Under the Logistics section, select a user in the Responsible field.
When the expiation date passes for a lot/serial number for this product, a notification is sent to
the user in this field.
Once the expiration date is due, expiration alerts are created on the form view of the lot/serial
number of the product.
To customize these alerts, turn on developer mode , go to Settings app â£ Technical â£ Activity Types , and select the Alert
Date Reached alert.
The Default User assigned will be notified once the expiration date is reached. If no
default user is configured, the activity will be assigned to the Responsible user
selected on the productâs Inventory tab.


Lot numbers

# Lot numbers

Lots are one of the two ways to identify and track products in Odoo. They typically represent a
specific batch of products that were received, stored, shipped, or manufactured in-house.
Manufacturers assign lot numbers to groups of products sharing common properties, facilitating
end-to-end traceability through their lifecycles.
Lots are useful for managing large quantities of manufactured or received products, aiding in
tracing items back to their group, particularly for product recalls or expiration dates .

## Enable lots & serial numbers

To track products using lots, enable the Lots & Serial Numbers feature. Go to the Inventory app â£ Configuration â£ Settings , scroll down to the Traceability section, and tick the checkbox next to Lots & Serial Numbers .
Then, click Save .
- Tracking expiration dates
Tracking expiration dates
- Print GS1 barcodes for lots and serial numbers
Print GS1 barcodes for lots and serial numbers

## Track by lots

Once the Lots & Serial Numbers feature is activated, configure individual products to be
tracked using lots. To do this, go to Inventory app â£ Products â£ Products , and
choose a product to configure.
On the product form, click into the General Information tab. In the Track
Inventory field, tick the checkbox, then select By Lots from the drop-down menu. Now,
new or existing lot numbers can be assigned to newly-received or manufactured batches of this
product.
If a product has stock on-hand prior to activating tracking by lots or serial numbers, a warning
message appears. Use an inventory adjustment to assign lot numbers to existing
products in stock.

## Assign lots for shipping and receiving

Assign new lot numbers to incoming goods on the
receipt form. When shipping outgoing goods , select products with specific lot numbers on
the delivery order form.

### On receipts

Assigning new or existing lot numbers to incoming goods can be done directly on receipts.
To begin, go to the Purchase app to create and confirm a PO for products tracked by lot numbers. Then,
click the Receipt smart button that appears at the top of the page to navigate to the
warehouse receipt form.
Alternatively, navigate to an existing receipt by going to the Inventory app,
clicking the Receipts Kanban card, and choosing the desired receipt.
Clicking Validate before assigning a lot number triggers an error, indicating that a
lot number must be assigned before validating the receipt.
On the receipt form, on the product line in the Operations tab, select the (list) icon
to the right of the product that is tracked by lot numbers.
Doing so opens the Open: Stock move pop-up window, where the Lot/Serial
Number and Quantity are assigned.
The two ways to assign lot numbers: manually and importing .

#### Manual assignment

To manually assign lot numbers, click Add a line . Input the Lot/Serial
Number , Store To location for the lot, Quantity , and Destination
Package , if any.
To assign multiple lot numbers, or store to multiple locations, click Add a line , and
type a new Lot/Serial Number for additional quantities. Repeat until the total in the Quantity column matches the Demand at the top.

#### Import lots

In the Open: Stock move pop-up window, click Import Serials/Lots , then paste
the bulk lot numbers, in the Lots/Serial numbers field.
Lot numbers pasted to the âLots/Serial numbersâ field, in the Import Lots pop-up window.
Tick the Keep current lines checkbox to generate additional lot numbers in the Open: Stock move pop-up window. To replace the lot numbers in the list, leave the Keep current lines option unticked.
Finally, click Generate .
Once all product quantities have been assigned a lot number, click Save to close the
pop-up window. Then, click Validate on the receipt form.
Traceability report for lot numbers

### On delivery orders

Odoo makes it possible to specify which lot numbers for a product are chosen for outgoing shipment
on a delivery order form.
To begin, create or select an existing quotation from the Sales app. After
confirming the SO , the Delivery smart button becomes available. Click the Delivery smart button to view the warehouse receipt form for that specific SO .
Alternatively, navigate to delivery orders by going to the Inventory app, and
clicking the Delivery Orders kanban card.
Clicking the Delivery smart button opens the the delivery order form, where lot numbers
are picked for delivery. In the Operations tab, click the (list) icon to the right of
the product that is tracked by lot numbers. Clicking that icon reveals a Open: Stock
move pop-up window.
In the pop-up window, the chosen lot number and its storage location is displayed in the Pick From column, with the with the full Quantity taken from that specific
lot (if there is enough stock in that particular lot).
If there is insufficient stock in that lot, or if partial quantities of the Demand should be taken from multiple lots, change the Quantity directly.
The lot automatically chosen for delivery orders varies, depending on the selected removal
strategy ( FIFO , LIFO , or FEFO ). It also depends on the ordered quantity, and whether the lotâs
on-hand quantity is enough to fulfill the order.
Repeat the above steps to select enough lots to fulfill the Demand , and click Save to close the pop-up window. Lastly, click the Validate button on the DO to deliver the products.
Traceability report for lot numbers

## Lot management

Manage and view existing lot numbers for products in the Lot/Serial Numbers dashboard by
going to Inventory app â£ Products â£ Lots/Serial Numbers .
By default, lot numbers are grouped by product, and selecting the drop-down menu for each product
displays the existing lot numbers. Select a lot number to modify or add details linked to the lot. Lot numbers can also be created from this page, by clicking the New button.
Display lot numbers, grouped by products, on the Lot/Serial Number dashboard.

### Modify lot

Clicking a lot from the Lot/Serial Number dashboard reveals a separate page where
additional information can be provided about the lot.
Odoo automatically generates a new Lot/Serial Number to follow the most recent
number. However, it can be edited, by clicking the line under the Lot/Serial Number field, and changing the generated number to any desired one.
On the lot number form, the following fields can be modified:
- Lot/Serial Number : change the lot number linked to the Product
Lot/Serial Number : change the lot number linked to the Product
- Internal Reference : records an alternative lot/serial number used within the warehouse
that differs from the one used by the supplier manufacturer.
Internal Reference : records an alternative lot/serial number used within the warehouse
that differs from the one used by the supplier manufacturer.
- Company : specify the company where the lot number is available.
Company : specify the company where the lot number is available.
- Description : add extra details about the lot or serial number in this text field.
Description : add extra details about the lot or serial number in this text field.
On existing lots, the Product and On Hand Quantity fields cannot be
modified, as the lot numbers are linked with existing stock moves.
Set expiration dates for lots

#### Add property

To add custom fields to lots for enhanced traceability, there are two methods of adding properties
on a lot number form:
- Click the (cog) icon at the top-left of the page, then select Add Properties from the drop-down menu.
Click the (cog) icon at the top-left of the page, then select Add Properties from the drop-down menu.
- Click the Add a Property button, located below the existing fields.
Click the Add a Property button, located below the existing fields.
Name and configure the new field . Once finished,
enter the property value in the new field.
The new property, Wood type , is added. The value is recorded as Cherry wood .
`Woodtype`
`Cherrywood`
Configuring custom properties

### Reserve lot number for a product

To create a lot number for a product, begin by going to Inventory app â£ Products
â£ Lot/Serial Numbers , and click New .
Creating a lot number reserves it for a product but does not assign it. To assign lot
numbers, refer to the section on assigning lot numbers on receipts .
While Odoo automatically generates a new Lot/Serial Number to follow the most recent
number, it can be edited and changed to any desired number, by clicking the line under the Lot/Serial Number field on the lot form, and changing the generated number.
Once the new Lot/Serial Number is generated, click the blank field next to Product to reveal a drop-down menu. From this menu, select the product to which this new
number will be assigned.
The lot number, 000001 , is created for the product, Drawer Black .
`000001`
`DrawerBlack`
After a new lot number has been created, saved, and assigned to the desired product, the lot number
is saved as an existing lot number linked to the product, and can be selected when assigning
lot numbers to products on a receipt .

## Manage lots for different operations types

By default, new lots can only be created when receiving products, and existing lot numbers cannot
be used. For sales orders, only existing lot numbers can be utilized, and new ones cannot be created
on the delivery order.
To change the ability to use new (or existing) lot numbers on any operation type, go to the Inventory app â£ Configuration â£ Operations Types , and select the desired
operation type.
On the operation type form, under the Lots/Serial Numbers section, tick the Create New checkbox to enable new lot numbers to be created during this operation type.
Choose Use Existing ones if only existing lot numbers can be selected.
For inter-warehouse transfers involving products tracked by lots, it can be useful to enable the Use Existing Lots/Serial Numbers option for warehouse receipts.

## Display lots on delivery slips

When selling products tracked with lots, it is possible to include the lot numbers on the delivery
slips sent to customers. This can be helpful to customers in cases where lot numbers are needed,
such as filing an RMA or repair request, or registering the product.
To include lot numbers on delivery slips, open the Inventory app, and navigate to Configuration â£ Settings . Scroll down to the Traceability section,
tick the Display Lots & Serial Numbers on Delivery Slips checkbox, and click Save .
After enabling the Display Lots & Serial Numbers on Delivery Slips setting, lot numbers
are listed on delivery slips for products tracked by lots, once the delivery order is validated.
To view lot numbers on delivery orders and delivery slips, navigate to the Inventory app, click on Delivery Orders , and select an order containing
a product tracked using lots.
To view the lot numbers of products included in the order, make sure the Operations tab
is selected, then click the (adjust) button to the right of
the tab. Ensure that the Serial Numbers checkbox is ticked, which causes a Serial Numbers column to appear. The lot number(s) for each product included in the
order are displayed in this column.
When the order is ready to be processed, click Validate to confirm the delivery and add
product information to the delivery slip.
At the top of the orderâs form, click the (Actions) button, and select Print â> Delivery Slip . The delivery slip is then downloaded. Open the delivery slip
using the deviceâs browser or file manager. Lot numbers are listed next to their respective products
in the Lot/Serial Number column.

## Traceability

Manufacturers and companies can refer to traceability reports to see the entire lifecycle of a
product: where it came from, when it arrived, where it was stored, who it went to (and when).
To see the full traceability of a product, or group by lots, go to the Inventory app
â£ Products â£ Lots/Serial Numbers . Doing so reveals the Lots/Serial Numbers dashboard.
From here, products with lot numbers assigned to them will be listed by default, and can be expanded
to show the lot numbers those products have assigned to them.
To group by lots, begin by removing any filters in the Searchâ¦ bar. Then, click the (caret down) icon to open a drop-down menu of Filters , Group By options, and Favorites . Under the Group By section,
click the Add Custom Group option, and select Lot/Serial Number from the
drop-down menu.
Doing so reorganizes all the records on the page to display all existing lots and serial numbers,
and can be expanded to show all quantities of products with that assigned number.

### Traceability report

To view a full stock moves report for a lot number, select the lot number line from the Lots/Serial Number dashboard. On the lot number form, click the Traceability smart button.


Reassign lot/serial numbers

# Reassign lot/serial numbers

Changing a productâs tracking settings to use lots or serial numbers, after storing products in
Odoo without them, can lead to inconsistent records. Follow this documentation to learn how to use
an inventory adjustment to assign lot or serial numbers to products that were not originally
assigned lots.
This document outlines the process of using two inventory adjustments: one to remove incorrect
records without lot numbers, and another to save the quantities with the lot numbers.
- Set up and use lot numbers
Set up and use lot numbers
- Use serial numbers

## Change on-hand quantity to zero

To change the productâs settings to track by lots or serial numbers, begin by navigating to Inventory app â£ Products â£ Products , and select the intended product.
Next, click the productâs On Hand smart button to open the Update Quantity page. In the On Hand Quantity column, change the value to zero.
If the product is stored in multiple locations, make sure the total on hand quantity at all locations is zero.

## Change traceability setting

Return to the product form ( Inventory app â£ Products â£ Products ), and switch to
the Inventory tab. In the Traceability section, change the Tracking option from No Tracking to By Lots or By
Unique Serial Number .

## Restore on-hand quantity

After manually changing the on-hand quantity to zero and changing the Tracking setting
to lots or serial numbers, restore the quantities by clicking the On Hand smart button
from the desired product form.
On the Update Quantity page, because the on-hand quantity had been previously changed to
zero, a No Stock On Hand warning appears on the page. From here, click the New button in the top-left corner. Doing so reveals a new, modifiable line on the Update Quantity page. Then, input a desired lot number in the Lot/Serial
Number field, and adjust the On Hand Quantity to its original value.
Inventory adjustments
To find the original quantity, and adjust the On Hand Quantity accordingly, after
assigning a new lot or serial number, click the (pencil) icon in
the On Hand Quantity column. Then, click the History button on the far-right.
The inventory adjustment that changed the on-hand quantity to zero is displayed in the Quantity field.

Change on-hand quantity to zero
Change traceability setting
Restore on-hand quantity


Serial numbers

# Serial numbers

Serial numbers are one of the two ways to identify and track products in Odoo, along with lots . A serial number is a unique identifier assigned to a product to distinguish it
from other products in a series. Serial numbers can consist of several character types: they can
contain numbers, letters, other typographical characters, or any mix of these character types.
The goal of assigning serial numbers allows for the tracking of individual products and their expiration dates and location throughout the supply chain. For instance,
serial numbers can help manufacturers locate products to provide after-sales services or in the
event of a recall.
Odoo Tutorials: Serial Numbers

## Enable lots & serial numbers

To track products using serial numbers, two settings need to be enabled: the Lots & Serial
Numbers traceability setting , and serial
number usage by operation type .

### Traceability setting

The Lots & Serial Numbers traceability feature must be enabled first to track
products. To do so, go to Inventory app â£ Configuration â£ Settings , scroll down
to the Traceability section, and tick the Lots & Serial Numbers checkbox.
Remember to click the Save button to save changes.

### By operation type

Next, specify whether the ability to create new or use existing serial numbers should be turned on
for particular operation types (such as shipping or receiving goods). In other words, this setting
allows for serial number tracking on warehouse receipts and delivery orders.
Enabling the Create New option for receipts allows new serial numbers to be assigned
as items are received. However, for delivery orders, it is often disabled to prevent workers from
accidentally assigning serial numbers that do not exist in inventory.
To enable the creation of new serial numbers on an operation, navigate to Inventory
app â£ Configuration â£ Operations Types .
From the Operations Types page, select the desired operation type (e.g. Receipts , Delivery Orders , or Manufacturing ), and select the Create New option in the Lots/Serial Numbers section of the operation typeâs
configuration page.

## Configure serial number tracking on individual products

Once the Lots & Serial Numbers setting has been activated, individual products can now be tracked using serial numbers. To track a product,
go to Inventory app â£ Products â£ Products , and select the desired product.
In the General Information tab on the product form, make sure the box next to Track Inventory is checked. Then, select By Unique Serial Number , and click Save to save the changes. Now, existing or new serial numbers can now be selected and
assigned to newly-received or manufactured batches of this product.

## Assign serial numbers

In Odoo, serial numbers can be assigned at several times and places:
- When a product is already in stock
When a product is already in stock
- Via the Moves smart button on a receipt
Via the Moves smart button on a receipt
- Via the Open: Stock move window on a receipt
Via the Open: Stock move window on a receipt
- During a manufacturing order for a product tracked by
lots/serial numbers
During a manufacturing order for a product tracked by
lots/serial numbers
- When making an inventory adjustment
When making an inventory adjustment

### Create new serial numbers for products already in stock

New serial numbers can be created for products already in stock with no assigned serial number. To
do so, go to Inventory â£ Products â£ Lots/Serial Numbers , and click New . Doing so reveals a blank lot/serial number form. On this form, a new Lot/Serial Number is generated automatically.
While Odoo automatically generates a new lot/serial number to follow the most recent number, it
can be edited and changed to any desired number, by clicking the line under the Lot/Serial Number field, and changing the generated number.
Once the Lot/Serial Number is generated, click the blank field next to Product to reveal a drop-down menu. From this menu, select the product to which this new
number will be assigned.
This form also provides the option to adjust the On Hand Quantity , to assign a unique Internal Reference number (for additional traceability), and to assign this specific
lot/serial number configuration to a specific company in the Company field. A detailed
description of this specific lot/serial number can also be added in the Description tab
below.
The Internal Reference number field is a space for manufacturers to input an
additional unique number to allow for easier tracking. For instance, SKU values may be used
here.
When all desired configurations are complete, click the Save button to save all changes.
After a new serial number has been created, assigned to the desired product, and saved, navigate
back to the product form, by going to Inventory app â£ Products â£ Products , and
selecting the product that this newly-created serial number was just assigned to.
On that productâs detail form, click the Lot/Serial Numbers smart button to view the new
serial number.

### Create serial numbers for incoming or outgoing products

Serial numbers can be assigned to both incoming and outgoing goods. The receipt and delivery order
forms mirror one another; the instructions below can be followed to assign serial numbers in either
form.
- Incoming goods: Assign serial numbers directly on the receipt . Receipts can be accessed by
navigating to Inventory app â£ Operations â£ Receipts .
Incoming goods: Assign serial numbers directly on the receipt . Receipts can be accessed by
navigating to Inventory app â£ Operations â£ Receipts .
- Outgoing goods: Assign serial numbers directly on the delivery order . Receipts can be
accessed by navigating to Inventory app â£ Operations â£ Deliveries .
Outgoing goods: Assign serial numbers directly on the delivery order . Receipts can be
accessed by navigating to Inventory app â£ Operations â£ Deliveries .
Before assigning serial numbers on receipts or delivery orders, be sure that the ability to create new serial numbers by operations type is enabled.

#### Lots/serial number field

Serial numbers can be entered directly into the Serial Numbers field on a receipt or
delivery order.
To make the Serial Numbers field visible on a receipt or delivery order, click the (Adjust Settings) icon, and in the drop-down menu, tick
the Serial Numbers checkbox.
Example Serial Numbers field on a delivery order.

#### Stock move pop-up window

For various methods of assigning serial numbers individually or in bulk, click the (list) icon in the product line of a receipt.
In the Open: Stock move pop-up window, manually enter serial numbers in the Lot/Serial Number column. This method is best reserved for adding only one or a few
serial numbers.
Assign multiple serial numbers at once by clicking the Generate Serials/Lots button in
the Open: Stock move pop-up window.
Doing so opens a new popup, Generate Serial numbers , which contains a few fields:
- First SN : Input the first serial number that should start the sequence. From there,
Odoo automatically detects what pattern should be followed to generate more serial numbers.
First SN : Input the first serial number that should start the sequence. From there,
Odoo automatically detects what pattern should be followed to generate more serial numbers.
- Number of SN : Specify the desired number of serial numbers to generate. Note The number of serials generated will be reflected in the Quantity field on a
receipt or delivery order. Even if the number of serial numbers generated exceeds the Demand value, Odoo still allows the quantity (based on the serial numbers) to be
delivered or received.
Number of SN : Specify the desired number of serial numbers to generate.
The number of serials generated will be reflected in the Quantity field on a
receipt or delivery order. Even if the number of serial numbers generated exceeds the Demand value, Odoo still allows the quantity (based on the serial numbers) to be
delivered or received.
- Keep current lines checkbox: Check this box to keep existing serial numbers that may
have been previously added. To replace existing serial numbers in the list, leave the box
unchecked.
Keep current lines checkbox: Check this box to keep existing serial numbers that may
have been previously added. To replace existing serial numbers in the list, leave the box
unchecked.
After filling out these fields, click the Generate button. The newly generated serials
now appear in the Open: Stock move window. By clicking (Save) , the Quantity and the Serial Numbers fields on the
delivery order or receipt update automatically.
Another option for assigning multiple serial numbers at once is to click the Import
Serials/Lots button in the Open: Stock move pop-up window.
If the import button is not visible, ensure the Create New box is checked in the receiptâs configuration page .
Doing so opens the Import Serials pop-up window. Enter each serial number on a separate
line in the Lots/Serial numbers text field.
As when generating serials , check the Keep current lines box to keep existing serial numbers, or leave it unchecked to
overwrite them.
To expedite this process, copy/paste serial numbers from an existing spreadsheet and add them to
the Lots/Serial numbers text field.
Finally, click Generate .
For a receipt with a Demand of 3.00 products, one product has already been assigned
a serial number in the Open: Stock move pop-up window.
`3.00`
So, in the Import Lots pop-up window, two serial numbers, 124 and 125 are
assigned to the remaining products by entering the following in the Lots/Serial
numbers input field:
`124`
`125`
The Keep current lines option is selected to add these two serial numbers in
addition to the serial number, 123 , that has already been assigned.
`123`

#### Detailed operations

Accessible from both receipt and delivery order forms, the Detailed Operations page shows a
detailed view of product movements, including information about serial numbers, exact locations,
expiration dates, etc. This level of detail permits more precise tracking, for example, when
handling perishable or regulated goods.
To access this page, first select a warehouse receipt or delivery order . Then, click on the Moves smart button at the top of the page.
In the Lot/Serial Number column, manually type (or select from the drop-down menu)
the desired serial numbers for each individual product.
When finished, click the receipt/delivery orderâs breadcrumbs, and the assigned serial numbers are
automatically saved.

## Display serial numbers on delivery slips

When selling products tracked using serial numbers, it is possible to include the serial numbers on
the delivery slips sent to customers. This can be helpful to customers in cases where serial numbers
are needed, such as filing an RMA or repair request, or registering the product.
To include serial numbers on delivery slips, open the Inventory app, and navigate
to Configuration â£ Settings . Scroll down to the Traceability section,
tick the Display Lots & Serial Numbers on Delivery Slips checkbox, and click Save .
After enabling the Display Lots & Serial Numbers on Delivery Slips setting, serial
numbers are listed on delivery slips for products tracked by serial numbers, once the delivery order
is validated.
To view serial numbers on delivery orders and delivery slips, navigate to the Inventory app, click on Delivery Orders , and select an order containing
a product tracked using serial numbers.
To view the serial numbers of products included in the order, make sure the Operations tab is selected, then click the (adjust) icon to the right of
the tab. Ensure that the Serial Numbers checkbox is ticked, which causes a Serial Numbers column to appear. The serial number(s) for each product included in the
order are displayed in this column.
When the order is ready to be processed, click Validate to confirm the delivery and add
product information to the delivery slip.
At the top of the orderâs form, click the (Actions) button, and select Print â£ Delivery Slip . The delivery slip is then downloaded. Open the delivery
slip using the deviceâs browser or file manager. Serial numbers are listed next to their respective
products in the Lot/Serial Number column.

## Traceability & reporting

Manufacturers and companies can refer to the Lots/Serial Numbers dashboard and traceability
reports to see the entire lifecycle of a product: when and where it originated, where it was stored,
and who it was shipped to.

### Lots/Serial Numbers dashboard

To see the full traceability of a product, or group by serial numbers, go to Inventory app â£ Products â£ Lots/Serial Numbers . Doing so reveals the Lots/Serial Numbers dashboard.

#### Reporting

On the Lots/Serial Numbers dashboard, products with serial numbers assigned to them are
listed by default. Click the (expand) icon to show which serial
numbers are assigned to the chosen product.
To group by serial numbers (or lots), first remove any default filters from the search bar in the
upper-right corner. Then, click the (down arrow) icon and select Add Custom Group , which reveals a mini drop-down menu. From this mini drop-down menu,
select Lot/Serial Number , and click Apply .
Doing so reveals all existing serial numbers and lots. Each row can be expanded to show all
quantities of product assigned to that serial/lot number. For unique serial numbers that are not
reused, there should be just one product per serial number.
For additional information regarding an individual serial (or lot) number, click the line
item for the serial number to reveal that specific Serial Number form. From this
form, click the Location and Traceability smart buttons to see all stock
on-hand using that serial number, and any operations made using that serial number.
In addition to using the Lots/Serial Numbers dashboard, there are several other
reporting templates that display the Lot/Serial Number field or the ability to filter
by serial number. Go to Inventory app â£ Reporting to access:
- Locations report
- Moves History report
- Moves Analysis report
Moves Analysis report


Inbound and outbound flows

# Inbound and outbound flows

Configuring inbound and outbound flows in Odoo is key to optimizing efficiency, traceability, and
cost. Warehouse managers must balance speed and control, choosing between a streamlined process or
added checkpoints.
Odoo offers one-step, two-step, and three-step flows, with more steps providing greater control but
increasing operations. The best setup depends on quality checks, packaging, and warehouse size.
This guide helps businesses determine the most suitable configuration.

## One-step flow

The one-step inventory flow is the simplest option, with minimal handling steps and the least
traceability. In this setup, products move directly from vendors to stock or from stock to
customers, with Odoo only tracking when items enter or leave the warehouse. This makes it ideal for
businesses with high-volume, low-risk products or fast-moving operations where additional validation
steps arenât necessary.
- Receiving : Products go directly into stock.
Receiving : Products go directly into stock.
- Shipping : Products ship directly from stock.
Shipping : Products ship directly from stock.
- Best for : Small warehouses, low stock levels, and non-perishable items, where minimal
processing is needed before products are stored or shipped.
Best for : Small warehouses, low stock levels, and non-perishable items, where minimal
processing is needed before products are stored or shipped.
One-step receipt and delivery

## Two-step flow

A two-step flow adds an input or output area for processing products before storage or shipment.
Incoming goods can be unboxed and inspected before shelving, while outgoing shipments are sorted and
consolidated before dispatch. This setup improves efficiency by assigning storage teams to picking
and stocking, while dedicated teams handle unboxing, (possibly) packing, and final verification to
reduce order fulfillment errors.
- Receiving : Products move to an input area before being transferred into stock. Until transferred, received products are not automatically reserved for manufacturing, shipping,
or other operations.
Receiving : Products move to an input area before being transferred into stock.
- Until transferred, received products are not automatically reserved for manufacturing, shipping,
or other operations.
Until transferred, received products are not automatically reserved for manufacturing, shipping,
or other operations.
- Shipping : Products move to an output before shipping to allow for sorting or
consolidation .
Shipping : Products move to an output before shipping to allow for sorting or
consolidation .
- Best for : Large warehouses, high stock levels, bulky items, and workflows that separate
receiving from storage to improve organization and efficiency.
Best for : Large warehouses, high stock levels, bulky items, and workflows that separate
receiving from storage to improve organization and efficiency.
Two-step receipt and delivery

## Three-step flow

A three-step flow builds on the two-step process by adding a quality check and packing area,
enforcing stricter processes and improving oversight.
While this setup enhances process control, separating picking and packing requires validation at
each step. If the same person handles both, it may cause redundancy and slow operations.
Quality checks and packing do not require a three-step flow. Enable quality control points separately or activate the Packages feature in Odoo to incorporate
these processes without adding extra transfer steps.
- Receiving : Products follow a structured process: input area â quality control â stock .
Receiving : Products follow a structured process: input area â quality control â stock .
- Shipping : Products are picked , packed , and then shipped , ensuring proper handling and
organization.
Shipping : Products are picked , packed , and then shipped , ensuring proper handling and
organization.
- Best for : Very large warehouses with strict quality control requirements, dedicated picking
and packing workflows, and a need for clear traceability across multiple handling stages. Suitable
when multiple teams manage different steps before products are stocked or shipped.
Best for : Very large warehouses with strict quality control requirements, dedicated picking
and packing workflows, and a need for clear traceability across multiple handling stages. Suitable
when multiple teams manage different steps before products are stocked or shipped.
- Three-step receipt
- Three-step delivery

## Add-ons

To optimize each flow, Odoo provides additional features that can enhance the process.

### Storage

To organize and store products efficiently, use:

#### Putaway rules

Guide products to specific storage locations based on predefined rules

#### Storage categories

Set item or weight limits to prevent overstocking at the location and ensure proper
organization

#### Consignment

Keep track of products owned by third parties

### Delivery

Tailor the outgoing shipment process to fit the business needs. Picking methods and removal
strategies control how products are reserved for orders, while cross-docking and dropshipping
determine how they move. Configuring these options in Odoo ensures visibility into product movement
and confirms that items reach customers efficiently.

#### Cross dock

Receive products and immediately transfer them to another warehouse without storing them

#### Dropshipping

Coordinate with vendors to deliver orders directly to customers, bypassing internal stock

#### Picking methods

Optimize picking operations using piece, batch, cluster, or wave picking techniques

#### Removal strategies

Use FIFO, LIFO, or FEFO strategies to automate the selection of products for delivery

### Customization

Odooâs flexible framework enables businesses to tailor workflows to match specific operational
needs.

#### Custom routes

Define tailored receiving or delivery workflows to meet specific business needs

One-step flow
Two-step flow
Three-step flow
Add-ons
Storage
Delivery
Customization


Organize a cross-dock in a warehouse

# Organize a cross-dock in a warehouse

Cross-docking is the process of sending products that are received directly to the customers,
without making them enter the stock. The trucks are simply unloaded in a Cross-Dock area in order
to reorganize products and load another truck.
For more information on how to organize your warehouse, read our blog: What is cross-docking and
is it for me?

## Configuration

In the Inventory app, open Configuration â£ Settings and activate the Multi-Step Routes .
Doing so will also enable the Storage Locations feature.
Now, both Incoming and Outgoing shipments should be configured to work with 2 steps. To adapt
the configuration, go to Inventory â£ Configuration â£ Warehouses and edit your
warehouse.
This modification will lead to the creation of a Cross-Docking route that can be found in Inventory â£ Configuration â£ Routes .

## Configure products with Cross-Dock Route

Create the product that uses the Cross-Dock Route and then, in the inventory tab, select the
routes Buy and Cross-Dock . Now, in the purchase tab, specify the vendor to who you buy the
product and set a price for it.
Once done, create a sale order for the product and confirm it. Odoo will automatically create two
transfers which will be linked to the sale order. The first one is the transfer from the Input
Location to the Output Location , corresponding to the move of the product in the Cross-Dock area. The second one is the delivery order from the Output Location to your Customer Location.
Both are in state *Waiting Another Operation because we still need to order the product to our
supplier.
Now, go to the Purchase app. There, you will find the purchase order that has been automatically
triggered by the system. Validate it and receive the products in the Input Location .
When the products have been received from the supplier, you can go back to your initial sale order
and validate the internal transfer from Input to Output .
The delivery order is now ready to be processed and can be validated too.


Three-step delivery

# Three-step delivery

Some companies process large amounts of deliveries every day, many of which include multiple
products or require special packaging. To make this efficient, a packing step is needed before
shipping out products. For this, Odoo has a three step process for delivering goods.
In the default three-step delivery process, products that are part of a delivery order are picked in
the warehouse according to their removal strategy, and brought to a packing zone. After the items
have been packed into the different shipments in the packing zone, they are brought to an output
location before being shipped. These steps can be modified if they do not fit the needs of the
business.

## Configuration

To change delivery settings from one step to three steps, make
sure the Multi-Step Routes option is enabled in Inventory app â£ Configuration
â£ Settings â£ Warehouse . Note that activating Multi-Step Routes will also activate Storage Locations .
Next, the warehouse needs to be configured for three step deliveries. To do this, go to Inventory app â£ Configuration â£ Warehouses , and click on the warehouse to edit. Then, select Pack goods, send goods in output and then
deliver (3 steps) for Outgoing Shipments .
Activating three-step receipts and deliveries creates two new internal locations: a Packing Zone (WH/Packing Zone), and Output (WH/Output). To rename these locations, go to Inventory app â£ Configuration â£ Locations , click on the Location to
change, and update the name.

## Deliver in three steps (pick + pack + ship)

### Create a sales order

To create a new quote, go to Sales app â£ Create , which reveals a blank quotation
form. On the blank quotation form, select a Customer , add a storable Product , and click Confirm .
A Delivery smart button appears in the top right of the quotation form. Clicking it
opens the picking order to move the ordered product from WH/Stock to WH/Packing Zone .
`WH/Stock`
`WH/PackingZone`

### Process a picking

The picking order will be created once the sales order is confirmed. To view the picking, navigate
to the Inventory app , and locate the Pick task card on the Inventory Overview dashboard.
Click the # To Process button, which reveals the picking order generated from the
previously confirmed sales order.
Click on the picking to process. If the product is in stock, Odoo will automatically reserve the
product. Click Validate to mark the picking as done, and complete the transfer to the Packing Zone .

### Process a packing

After validating the picking, the packing order is ready to process. Click back to the Inventory Overview , and locate the Pack task card on the dashboard.
Click the # To Process button (in this case, 1 To Process ). This reveals the
packing order generated from the previously confirmed sales order.
Click on the packing order associated with the sales order, then click on Validate to
complete the packing.
Once the packing order is validated, the product leaves the WH/Packing Zone location and
moves to the WH/Output location. Then, the status of the document will change to Done .

### Process a delivery

Once the packing order has been validated, the delivery order is ready to process. Navigate back to
the original sales order to process the delivery by going to Sales app , and
selecting the sales order created previously.
Delivery orders can also be accessed by going to Inventory app â£ Operations
â£ Deliveries .
The Delivery smart button now indicates there are 3 transfers, instead of one. Clicking
the Delivery smart button shows the three operations for this sales order: the picking,
the packing, and the delivery.
Click the delivery (WH/OUT) transfer to open the delivery order. Then, click Validate .
Once the delivery order is validated, the product leaves the WH/Output location and
moves to the Partners/Customers location. Then, the status of the document will change
to Done .


Dropshipping

# Dropshipping

Dropshipping is an order fulfillment strategy that allows sellers to have items shipped directly
from suppliers to customers. Normally, a seller purchases a product from a supplier, stores it in
their inventory, and ships it to the end customer once an order is placed. With dropshipping, the
supplier is responsible for storing and shipping the item. This benefits the seller by reducing
inventory costs, including the price of operating warehouses.

## Configure products to be dropshipped

To use dropshipping as a fulfillment strategy, navigate to the Purchase app and
select Configuration â£ Settings . Under the Logistics heading, click
the Dropshipping checkbox, and Save to finish.
Next, go to the Sales app, click Products â£ Products and choose
an existing product or select Create to configure a new one. On the Product page, make sure that the Can be Sold and Can be Purchased checkboxes are
enabled.
Click on the Purchase tab and specify a vendor and the price that they sell the product
for. Multiple vendors can be added, but the vendor at the top of the list will be the one
automatically selected for purchase orders.
Finally, select the Inventory tab and enable the Dropship checkbox in the Routes section.
While it is not necessary to enable the Buy route in addition to the Dropship route, enabling both provides the option of dropshipping the product or
purchasing it directly.

## Fulfill orders using dropshipping

When a sales order is created for a dropshipped product, an associated request for quotation (RfQ)
is automatically generated to purchase the product from the vendor. Sales orders can be viewed in
the Sales app by selecting Orders â£ Orders . Click the Purchase smart button at the top right of a sales order to view the associated RFQ .
Once the RFQ is confirmed, it becomes a purchase order, and a
dropship receipt is created and linked to it. The receipt can be viewed by clicking the Dropship smart button in the top-right corner of the purchase order form.
The dropship receipt displays Partners/Vendors in the Source Location field,
and Partners/Customers in the Destination Location field. Upon delivery of
the product to the customer, click on the Validate button at the top-left of the
dropship receipt to confirm the delivered quantity.
To view all dropship orders, simply navigate to the Inventory Overview dashboard and click the teal # TO PROCESS button on the Dropship card.

Configure products to be dropshipped
Fulfill orders using dropshipping


# Consignment: buy and sell stock without owning it

Most of the time, products stored in a companyâs warehouse are either purchased from suppliers, or
are manufactured in-house. However, suppliers will sometimes let companies store and sell products
in the companyâs warehouse, without having to buy those items up-front. This is called consignment .
Consignment is a useful method for suppliers to launch new products, and easily deliver to their
customers. Itâs also a great way for the company storing the products (the consignee) to earn
something back for their efforts. Consignees can even charge a fee for the convenience of storing
products they donât actually own.

## Enable the consignment setting

To receive, store, and sell consignment stock, the feature needs to be enabled in the settings. To
do this, go to Inventory â£ Configuration â£ Settings , and under the Traceability section, check the box next to Consignment , and then click Save to finish.

## Receive (and store) consignment stock

With the feature enabled in Odoo, consignment stock can now be received into a warehouse. From the
main Inventory dashboard, click into the Receipts section. Then, click Create .
Consignment stock is not actually purchased from the vendor; it is simply received and stored.
Because of this, there are no quotations or purchase orders involved in receiving consignment
stock. So, every receipt of consignment stock will start by creating manual receipts.
Choose a vendor to enter in the Receive From field, and then choose the same vendor to
enter in the Assign Owner field.
Since the products received from the vendor will be owned by the same vendor, the Receive From and Assign Owner fields must match.
Once the vendor-related fields are set, enter products into the Product lines, and set
the quantities to be received into the warehouse under the Done column. If the Units of Measure feature is enabled, the UoM can be changed,
as well. Once all the consignment stock has been received, Validate the receipt.

## Sell and deliver consignment stock

Once consignment stock has been received into the warehouse, it can be sold the same as any other
in-stock product that has the Can Be Sold option enabled on the product form.
To create a sales order, navigate to the Sales app, and from the Quotations overview, click Create . Next, choose a customer to enter into the Customer field.
The Customer must be different from the Vendor that supplied the
consignment stock received (and stored) in the warehouse.
Add the consignment product under the Product column in the order lines, set the Quantity , and fill out any other pertinent product details on the form. Once the
quotation is complete, click Confirm .
Once the quotation has been confirmed, it becomes a sales order. From here, the products can be
delivered by clicking on the Delivery smart button, and selecting Validate to validate the delivery.

## Traceability and reporting of consignment stock

Although consignment stock is owned by the vendor who supplied it, and not by the company storing it
in their warehouse, consignment products will still appear in certain inventory reports.
To find inventory reports, go to Inventory â£ Reporting , and choose a report to
view.
Since the consignee does not actually own consignment stock, these products are not reflected
in the Stock Valuation report, and have no impact on the consigneeâs inventory
valuation.

### Product moves report

To view all information about on-hand stock moves, navigate to the Product Moves dashboard by going to Inventory â£ Reporting â£ Product Moves . For consignment
products, the information in this report is the same as any other product: the history of its
product moves can be reviewed; the Quantity Done and Reference document are
available; and its Locations are available, as well. The consignment stock will
originate from Partner Location/Vendors .
To view a consignment productâs moves by ownership, select the Group By filter,
choose the Add Custom Group parameter, and then select From Owner , and Apply to finish.
To see forecasted units of consignment stock, go to Inventory â£ Reporting â£
Forecasted Inventory .

### Stock on hand report

View the Stock On Hand dashboard by navigating to Inventory â£
Reporting â£ Inventory Report . From this report, the Locations of all stock on-hand
are displayed, in addition to the quantities per location. For consignment products, the Owner column will be populated with the owner of those products, or the original vendor
who supplied the products in the first place.


Putaway rules

# Putaway rules

Putaway is the process of routing products to appropriate storage locations upon shipment arrival.
Odoo can accomplish this seamlessly using putaway rules , which dictate how products move through
specified warehouse locations.
Upon shipment arrival, operations are generated based on putaway rules to efficiently move products
to specified locations, and ensure easy retrieval for future delivery orders.
In warehouses that process specific kinds of products, putaway rules can also prevent volatile
substances from being stored in close proximity, by directing them to different locations determined
by the warehouse manager.
Odoo Tutorials: Putaway Rules

## Configuration

To use putaway rules, navigate to Inventory app â£ Configuration â£ Settings , and
activate the Multi-Step Routes feature under the Warehouse section. By doing
so, the Storage Locations feature is also automatically activated.
Finally, click Save .

### Define putaway rule

To manage where specific products are routed for storage, navigate to Inventory app
â£ Configuration â£ Putaway Rules . Use the New button to configure a new putaway
rule on a Product or Product Category that the rule affects.
Putaway rules can be defined either per product/product category, and/or package type (the Packages setting must be enabled in Inventory app â£ Configuration â£
Settings for that). Additionally, a storage category can be defined to limit capacities of a storage location and route products accordingly.
In the same line, the When product arrives in location is where the putaway rule is
triggered to create an operation to move the product to the Store to location.
For this to work, the Store to location must be a sub-location of the first (e.g., WH/Stock/Fruits is a specific, named location inside WH/Stock to make the products stored here
easier to find).
`WH/Stock/Fruits`
`WH/Stock`
In a warehouse location, WH/Stock , there are the following sub-locations:
- WH/Stock/Fruits
- WH/Stock/Vegetables
Ensure all apples are stored in the fruits section by filling the field Store to with
the location WH/Stock/Fruits when the Product , Apple arrives in WH/Stock .
`WH/Stock/Fruits`
`Apple`
`WH/Stock`
Repeat this for all products and hit Save .
Use the Sublocation field to specify whether to use a sublocation or specify a
storage category:
- No : no sublocation is used. Products are directed to whatever is specified in the Store to field.
No : no sublocation is used. Products are directed to whatever is specified in the Store to field.
- Last Used : the last location that had a move associated with it for that product or
product category is used. If there is no last location used, the destination is whatever is
specified in the Store to field.
Last Used : the last location that had a move associated with it for that product or
product category is used. If there is no last location used, the destination is whatever is
specified in the Store to field.
- Closest Location : the locations specified as part of a storage category are used. A
storage category is mandatory in the Having Category field.
Closest Location : the locations specified as part of a storage category are used. A
storage category is mandatory in the Having Category field.
To apply a putaway rule to all products, create an empty putaway rule with no specified Product or Product Category . All products are stored in the location
specified in the Store to field.
A best practice for an empty putaway rule is to specify the Last used Sublocation . Specifying Last used ensures that Odoo suggests the last
location used to store a product.

### Putaway rule priority

Odoo selects a putaway rule based on the following priority list (from highest to lowest) until a
match is found:
- Package type and product
Package type and product
- Package type and product category
Package type and product category
- Package type
- Product
- Product category
The product Lemonade can has the following putaway rules configured:
`Lemonadecan`
- When receiving a Pallet ( Package Type ) of Lemonade cans , it is redirected to WH/Stock/Pallets/PAL1 .
When receiving a Pallet ( Package Type ) of Lemonade cans , it is redirected to WH/Stock/Pallets/PAL1 .
`Pallet`
`Lemonadecans`
`WH/Stock/Pallets/PAL1`
- Lemonade can âs Product Category is All/drinks , and when receiving a Box of
any item in this product category, items are redirected to WH/Stock/Shelf 1 .
Lemonade can âs Product Category is All/drinks , and when receiving a Box of
any item in this product category, items are redirected to WH/Stock/Shelf 1 .
`Lemonadecan`
`All/drinks`
`Box`
`WH/Stock/Shelf1`
- Any product on a Pallet is redirected to WH/Stock/Pallets
Any product on a Pallet is redirected to WH/Stock/Pallets
`Pallet`
`WH/Stock/Pallets`
- The product Lemonade can is redirected to WH/Stock/Shelf 2
The product Lemonade can is redirected to WH/Stock/Shelf 2
`Lemonadecan`
`WH/Stock/Shelf2`
- Items in the All/drinks product category are redirected to WH/Stock/Small Refrigerator .
Items in the All/drinks product category are redirected to WH/Stock/Small Refrigerator .
`All/drinks`
`WH/Stock/SmallRefrigerator`

Configuration
Define putaway rule
Putaway rule priority


One-step receipt and delivery

# One-step receipt and delivery

In Odoo Inventory , both incoming and outgoing shipments are configured to process in one step, by
default. This means purchases will be received directly into stock, and deliveries will be moved
directly from stock to customers.
Incoming and outgoing shipments do not need to be configured with the same amount of steps.
For example, a warehouseâs settings can be configured so products can be received directly in one
step, and delivered in three steps (pick + pack + ship).

## Configuration

To configure one-step receipts and deliveries for a warehouse, navigate to Inventory
app â£ Configuration â£ Warehouses , and select a warehouse to edit.
Under the Warehouse Configuration tab, set Incoming Shipments to Receive goods directly (1 step) , and set Outgoing Shipments to Deliver goods directly (1 step) .
Since one-step receipt and delivery is the default for incoming and outgoing shipments in Odoo,
the Multi-Step Routes feature is not required.
However, for the Shipments settings to appear on a warehouse form, the feature must be enabled.
To enable Multi-Step Routes , navigate to Inventory app â£ Configuration â£
Settings . Under the Warehouse section, tick the checkbox next to Multi-Step Routes , and click Save . Doing so also activates the Storage Locations feature.

## Receive goods directly (1 step)

When products are received in one step, they will move from the vendor location to warehouse stock
in the database immediately upon validation of a purchase order (PO).

### Create purchase order

To create a PO , navigate to the Purchase app , and click New . This
opens a blank Request for Quotation (RfQ) form.
Add a vendor in the Supplier field. Then, fill out the various fields on the RfQ , as
necessary.
Under the Products tab, click Add a product , and select a product to add to
the RfQ .
Once ready, click Confirm Order . This moves the RfQ to the Purchase Order stage.
Once the PO is confirmed, a Receipt smart button appears at the top of the form.
Clicking the smart button opens the warehouse receipt (WH/IN) form.

### Process receipt

From the warehouse receipt form, the products ordered can be received into the warehouse. To receive
the products, click Validate . Once validated, the receipt moves to the Done stage.
Click back to the PO (via the breadcrumbs, at the top of the form) to view the PO form. On the
product line, the quantity in the Received column now matches the ordered Quantity .

## Deliver goods directly (1 step)

When products are delivered in one step, they will move from warehouse stock to the customer
location in the database immediately upon validation of a sales order (SO).

### Create sales order

To create a SO , navigate to the Sales app , and click New . This
opens a blank sales quotation form.
Add a customer in the Customer field. Then, fill out the various fields on the sales
quotation form, as necessary.
Under the Product tab, click Add a product , and select a product to add to
the sales order quotation.
Once ready, click Confirm . This moves the quotation to the Sales Order stage.
Once the SO is confirmed, a Delivery smart button appears at the top of the form.
Clicking the smart button opens the warehouse delivery (WH/OUT) form.

### Process delivery

From the warehouse delivery form, the products ordered by the customer can be delivered from the
warehouse. To deliver the products, change the value in the Quantity field to match the
ordered quantity in the Demand field.
Once ready, click Validate . Once validated, the delivery order moves to the Done stage.
Click back to the SO (via the breadcrumbs, at the top of the form) to view the SO form. On the
product line, the quantity in the Delivered column now matches the ordered Quantity .
Inbound and outbound flows

Configuration
Receive goods directly (1 step)
Create purchase order
Process receipt
Deliver goods directly (1 step)
Create sales order
Process delivery


Two-step receipt and delivery

# Two-step receipt and delivery

Depending on a companyâs needs, receiving and shipping products in and out of the warehouse might
require multi-step operations. In Odoo Inventory , this can be done using Multi-Step Routes .
In the two-step receipt process, products are received in an input area, then transferred to stock.
This kind of process for incoming shipments might be beneficial for warehouses with specific storage
locations, such as freezers and refrigerators, secured locked areas, or special aisles and shelves.
Products can be sorted according to where they are going to be stored, and employees can stock all
the products going to a specific location. The products are not available for further processing,
until they are transferred into stock.
In the two-step delivery process, products are first picked from their respective location in the
warehouse, then transferred to an output location before being shipped to the customer.
This might be beneficial for companies using a First In, First Out (FIFO), Last In, First Out
(LIFO), or First Expired, First Out (FEFO) removal strategy.
Incoming and outgoing shipments do not need to be configured with the same amount of steps.
For example, a warehouseâs settings can be configured so products can be received in two steps
(input + stock), and delivered in three steps (pick + pack + ship).

## Configuration

In Odoo Inventory , both incoming and outgoing shipments are configured to process in one step, by
default. To change these settings, the Multi-Step Routes feature must be enabled.
To enable Multi-Step Routes , navigate to Inventory app â£ Configuration â£
Settings . Under the Warehouse section, tick the checkbox next to Multi-Step
Routes , and click Save . Doing so also activates the Storage Locations feature.
Next, configure a warehouse for two-step receipts and deliveries. Navigate to Inventory app â£ Configuration â£ Warehouses , and select a warehouse to edit.
Under the Warehouse Configuration tab, set Incoming Shipments to Receive goods in input and then stock (2 steps) , and set Outgoing Shipments to Send goods in output and then deliver (2 steps) .
Selecting two-step receipts and deliveries automatically creates new Input and Output warehouse locations in the database, named WH/Input and WH/Output , respectively.
`WH/Input`
`WH/Output`
To rename or edit these locations, navigate to Inventory app â£ Configuration
â£ Locations , and select the desired location.
On the locationâs form, change the Location Name , and make any other necessary
changes.

## Process receipt in two steps (input + stock)

When products are received in two steps, they first move from the vendor location to an input
location. Then, they move from the input location to warehouse stock in the database, upon
validation of a purchase order (PO), and a subsequent internal transfer.

### Create purchase order

To create a PO , navigate to the Purchase app , and click New . This
opens a blank Request for Quotation (RfQ) form.
Add a vendor in the Vendor field. Then, fill out the various fields on the RfQ , as
necessary.
Under the Products tab, click Add a product , and select a product to add to
the RfQ .
Once ready, click Confirm Order . This moves the RfQ to the Purchase Order stage.
Once the PO is confirmed, a Receipt smart button appears at the top of the form.
Clicking the smart button opens the warehouse receipt (WH/IN) form.
For businesses with multiple warehouses that have different step configurations, the Deliver To field on the PO form must be specified as the correct input
location connected to the two-step warehouse.
This can be done by selecting the warehouse from the drop-down menu that includes the Receipts label at the end of the name.
`Receipts`

### Process receipt

From the warehouse receipt form, the products ordered can be received into the warehouse. To receive
the products, click Validate . Once validated, the receipt moves to the Done stage, and the products move to the WH/Input location.
Click back to the PO (via the breadcrumbs, at the top of the form) to view the PO form. On the
product line, the quantity in the Received column now matches the ordered Quantity .

### Process internal transfer

Once the receipt is validated, an internal transfer is created and ready to process.
To view the internal transfer, navigate to the Inventory app , and locate the Internal Transfers task card.
Click the # To Process button on the task card to reveal a list of all internal
transfers to process, and select the transfer associated with the previously validated receipt.
Once ready, click Validate to complete the transfer, and move the product from WH/Input to WH/Stock .
Once the transfer is validated, the products enter inventory, and are available for customer
deliveries or manufacturing orders.

## Process delivery order in two steps (pick + ship)

When products are delivered in two steps, they move from warehouse stock to an output location.
Then, they move from the output location to a customer location in the database, upon validation of
a picking order, and a subsequent delivery order (DO).

### Create sales order

To create a SO , navigate to the Sales app , and click New . This
opens a blank sales quotation form.
Add a customer in the Customer field. Then, fill out the various fields on the sales
quotation form, as necessary.
Under the Order Lines tab, click Add a product , and select a product to add
to the sales order quotation.
Once ready, click Confirm . This moves the quotation to the Sales Order stage.
Once the SO is confirmed, a Delivery smart button appears at the top of the form.
Clicking the smart button opens the warehouse delivery (WH/OUT) form.

### Process picking

Once the sales order is confirmed, a picking order is generated and ready to process.
To complete the picking, navigate to the Inventory app , and locate the Pick task card on the Inventory Overview dashboard. Alternatively, the picking order can also
be accessed via the Delivery smart button at the top of the sales order form.
From the Inventory Overview page, click the # To Process button on the Pick task card. This reveals a list of all pickings to process.
Click on the picking (WH/PICK) operation associated with the sales order to reveal the picking
order.
Manually set the quantity by changing the value in the Quantity column, to match the
value in the Demand column.
Once ready, click Validate to complete the picking, and move the product from WH/Stock to WH/Output.

### Process delivery

Once the picking is validated, a delivery order is created, and ready to process. Clicking the Delivery smart button on the sales order form reveals the newly created delivery order.
Alternatively, to view the delivery order, navigate back to the Inventory Overview page,
via the breadcrumbs, and locate the Delivery Orders task card.
Click the # To Process button on the task card to reveal a list of all delivery orders
to process, and select the order associated with the previously validated picking.
To deliver the products, change the value in the Quantity field to match the ordered
quantity in the Demand field.
Once ready, click Validate . Once validated, the delivery order moves to the Done stage.
Inbound and outbound flows