Skip to Content
Odoo & ERP

Inventory and Warehouse in Odoo for Distributors and Wholesalers

Warehouses, locations, picking, replenishment, lots, costing and counts: what to turn on based on the size of your operation.

By the NIQERA TeamPublished 1 Nov 20269 min read

In short

According to its own documentation, Odoo Inventory is both an inventory application and a warehouse management system. For a distributor, it lets you know how much you have in each warehouse and each location, receive and pick in one, two or three steps, batch orders to pick faster, replenish with minimum and maximum rules, track lots and expiration dates, add freight and duties to cost, and count by zone without closing the warehouse. You do not need to turn everything on: it is configured to the size of your operation.

What does Odoo inventory solve for a distributor or wholesaler?

That the stock the salesperson sees is the stock on the shelf. In a distributor, inventory moves all day: purchases arrive, orders leave, products are transferred between branches. If each movement is recorded somewhere else (a spreadsheet, the accounting system, the warehouse clerk's notebook), the numbers drift apart and the usual problems appear: selling something that is no longer there, overbuying, costs nobody can trace.

In Odoo, sales, purchasing, the warehouse and invoicing live in the same system, so everyone sees the same stock. If you are still evaluating whether you need a system like this, start with the signs your company already needs an ERP.

What it costs you: orders confirmed without real stock, customers left waiting and rush purchases at a worse price.

How are warehouses and locations organized in Odoo?

Each physical warehouse is a warehouse in Odoo, and inside it you define locations: aisles, racks, quarantine zones. That way you know not only how much you have, but where it is.

  • Putaway rules. Odoo can direct each product to its location on receipt. The documentation's example: everything that arrives of a given product is sent to its section, without the warehouse clerk having to decide.
  • Resupply between warehouses. A branch can be supplied from a central warehouse. Odoo generates the transfers between them. For that, each branch is configured as its own warehouse.

In how many steps should you receive and pick goods?

It depends on how much control you need between the dock and the shelf. Odoo lets you receive and deliver in one, two or three steps; to use more than one, you turn on the multi-step routes option.

SetupHow it worksWhen it fits
One stepGoods go straight into stock, or straight out to the customer. This is the default setupSmall warehouse, few people, few orders a day
Two stepsReceipt into an input area and then to stock; or picking and then to an output area before shippingYou have special storage zones (cold, secure area, specific aisles) or you pick by FIFO or by expiration date
Three stepsReceipt, quality control and stock; or picking, packing and shippingYou check the quality of what arrives before selling it, or you dispatch many deliveries a day with several products or special packing

In a three-step receipt, the goods are not available until they pass inspection and enter stock. Receipts and deliveries do not have to use the same number of steps. More steps give more control, but also more clicks: do not turn on three if your warehouse works fine with one.

How do you pick more orders in fewer trips?

By grouping them. Odoo has batch, wave and cluster picking, which are turned on together in the inventory settings.

  • Batch: you combine several complete orders and the warehouse clerk picks them in a single trip.
  • Wave: instead of complete orders, you group parts of different orders; for example, all the lines in the same aisle. Odoo splits the transfers before grouping them.

Wave picking needs locations and multi-step routes turned on. It makes sense when you pick many orders with few lines or when your warehouse is large and the walking weighs more than the time to pick the product.

Does your system inventory not match the warehouse?In a 60-minute diagnostic session we review how you receive, pick and count today, and which Odoo configuration fits your operation. $1,800 MXN + VAT, creditable toward your project.Book a diagnostic →

How do you avoid running out of stock?

With minimum and maximum replenishment rules. You define, per product and warehouse, the minimum and maximum quantity. When forecasted stock falls below the minimum, Odoo generates a request for quotation to the supplier you have listed first on the product record, without exceeding the maximum. Rules can fire on their own or be reviewed by hand before buying.

What matters is that it works with forecasted stock, not just what is on hand today: Odoo projects it using confirmed purchases on their way and what is already reserved for sales orders. For it to work, each product needs its supplier and the Purchase app installed.

For products it does not make sense to keep in stock, such as special orders, there is the make-to-order route, and for what the supplier ships directly to your customer, dropshipping, which according to Odoo reduces the cost of holding inventory and operating warehouses.

How do you track lots, serial numbers and expiration dates?

By turning on lot or serial number tracking on the products that need it. A lot identifies a group of pieces received or manufactured together; Odoo uses it to follow each product from end to end and, above all, to trace the whole group if it has to be pulled from the market.

If you handle perishable products, Odoo can pick with the FEFO strategy: what expires first goes out first. For that you need lots or serial numbers and expiration dates turned on. If you already have stock when you turn on lot tracking, they are assigned with an inventory adjustment.

How is inventory cost calculated in Odoo?

With one of three methods, which you choose per product category: standard cost (a fixed cost you update by hand), average cost (weighted average of all units) or FIFO (first in, first out). You decide the method with your accountant, because it moves your cost of sales and your profit.

If you import, there is a key feature: landed costs. They let you add freight, insurance, duties, taxes and other import charges to the product's value. They only work with average cost or FIFO. In Mexico, Odoo can also link the customs entry number (pedimento) to imported product lines so it appears on your invoices; we explain it in CFDI 4.0 in Odoo and what changes at the SAT.

What not doing it costs you: if freight and duties do not enter cost, your margins per product look better than they are and you set prices with a false number.

How do you keep inventory balanced without closing the warehouse?

With cycle counts. Instead of counting everything once a year, you count each location on its own frequency: the highest-turnover aisles every few weeks, the rest less often. In Odoo, each location has a frequency field in days; when you apply a count adjustment, the system schedules the next one by itself. If you do not configure it, the annual count is scheduled for December 31.

What is counted is compared against what the system says, and Odoo calculates the difference. Those differences are information: if the same thing is always missing, the problem is in a process, not in the count.

What about customer shipments and the Carta Porte?

Odoo has connectors with carriers and shipping platforms. One of them is Envia.com, which we work with as a partner: according to the Odoo 20 documentation, it lets you compare rates from several carriers and generate the label when you confirm the order. Its limits, per the same documentation: you need an Envia account with the carriers turned on and its access key, insurance is calculated until the label is generated, and billing is in the currency of your billing address's country.

If you deliver with your own fleet, Odoo's Mexican localization generates the Carta Porte (shipping waybill) from the delivery. It does not cover air, rail or maritime transport, and a product with zero weight causes an error, so the weights in your catalog must be complete. If you also sell online, see how online stores connected to Odoo.

When do you not need all of this?

If you have a single warehouse, few products and one or two people, start with one-step receipt and delivery, with no locations or lots, and with replenishment rules only for what you sell most. The rest is turned on when the operation calls for it. What is non-negotiable from day one: every receipt and shipment gets recorded in the system. Over-configuring is as expensive as under-configuring, because nobody uses what gets in the way. If you already have Odoo and the warehouse has gone around the system, look at Odoo rescue.

Frequently asked questions

Does Odoo handle multiple warehouses or branches?

Yes. Each warehouse is configured separately and one can replenish others. Stock is seen by warehouse and by location.

Can I use barcode scanners?

Yes. Odoo's Barcode app assigns codes to products and packages and lets you record inventory movements by scanning them.

Which costing method suits me?

Odoo offers standard, average and FIFO cost. The choice affects your cost of sales and your profit: decide it with your accountant.

Does Odoo tell me when to buy?

With minimum and maximum rules, Odoo generates requests for quotation when forecasted stock falls below the minimum, either automatically or for you to review.

How do I move my current inventory to Odoo?

With an initial inventory adjustment per warehouse and its cost, as of a cutoff date. We explain it in how to migrate from Excel or CONTPAQi to Odoo.

Sources: Odoo, «Inventory», documentación de Odoo 20.0 · Odoo, «Putaway rules» · Odoo, «Resupply from another warehouse» · Odoo, «Two-step receipts and deliveries» · Odoo, «Three-step receipt» · Odoo, «Three-step delivery» · Odoo, «Wave transfers» · Odoo, «Reordering rules» · Odoo, «Forecasted inventory» · Odoo, «Dropshipping» · Odoo, «Lot numbers» · Odoo, «FEFO removal strategy» · Odoo, «Inventory valuation cheat sheet» · Odoo, «Landed costs» · Odoo, «Cycle counts» · Odoo, «Count products» · Odoo, «Envia.com shipping» · Odoo, «Barcode» · Odoo, «Mexico», localización fiscal (all: Odoo 20.0 documentation, accessed November 2026)

Ready to get started?

Start with a 60-minute assessment session.

$1,800 MXN + VAT, by video call, credited toward your project.