Skip to main content
TechUltra Solutions Pvt. Ltd. — AI-Enabled ERP Transformation
Book a free call
Menu

Business process

Warehouse inbound-to-outbound in Odoo 20, step by step

From goods arriving from a supplier to a customer's parcel leaving the dock: the eight steps, the Odoo app that runs each one, and the gaps we usually close in 3PL work, containers, cross-docking, routing and barcode rules.

Last reviewed:

How does inbound-to-outbound run in Odoo 20?

8 steps, each run by the Odoo app named on it. The screenshots are from our Odoo 20 feature guide.

  1. 1 Set up warehouses, locations and labels
  2. 2 Receive against the purchase order
  3. 3 Put away by rule, product and package
  4. 4 Give incoming stock to waiting orders
  5. 5 Replenish before stock runs out
  6. 6 Pick in batches and waves
  7. 7 Pack, label and ship
  8. 8 Count, trace and take returns
  1. 1

    Set up warehouses, locations and labels

    Odoo 20 · Inventory

    Each warehouse gets its own locations, from the dock to every shelf and bin. Storage categories set a maximum weight per location and whether it takes mixed products. Location labels print from Odoo, and in Odoo 20 they can print on thermal printers in ZPL.

    Who: Warehouse manager

    ZPL location barcodes: how it works in Odoo 20
    Odoo 20 Inventory: Locations list Print menu with new Location Barcode (ZPL) option
    Step 1, Odoo 20 Inventory: Locations list Print menu with new Location Barcode (ZPL) option
  2. 2

    Receive against the purchase order

    Odoo 20 · Purchase · Inventory · Barcode

    A confirmed purchase order creates the receipt. Each warehouse receives in one, two or three steps: receive and store, receive then store, or receive, check quality, then store. In the Barcode app, workers scan what arrived, and Odoo 20 shows managers the scan steps as they change the settings.

    Who: Receiving team

    Preview Barcode instructions in operation type: how it works in Odoo 20
    Odoo 20 Inventory: Receipts operation type Barcode App tab with numbered Instructions Preview
    Step 2, Odoo 20 Inventory: Receipts operation type Barcode App tab with numbered Instructions Preview
  3. 3

    Put away by rule, product and package

    Odoo 20 · Inventory

    Putaway rules send each product, product category or package type to a set location, within the limits of its storage category. Packaging barcodes let a worker scan a whole box or pallet as its packaged quantity instead of unit by unit.

    Who: Warehouse operator

    Product packaging barcodes: how it works in Odoo 20
    Odoo 20 Inventory: Product Sales tab with new Barcodes link under Packagings
    Step 3, Odoo 20 Inventory: Product Sales tab with new Barcodes link under Packagings
  4. 4

    Give incoming stock to waiting orders

    Odoo 20 · Inventory · Sales

    The product's forecast shows which deliveries are waiting for stock. The allocation report assigns an incoming receipt to a specific waiting delivery, so the goods go to that order when they land.

    Who: Planner, warehouse manager

    Allocation report: how it works in Odoo 20
    Odoo 20 Inventory: Receipt form with new Allocation smart button opening the allocation report
    Step 4, Odoo 20 Inventory: Receipt form with new Allocation smart button opening the allocation report
  5. 5

    Replenish before stock runs out

    Odoo 20 · Inventory · Purchase

    Reordering rules hold a minimum and maximum per product and location, and the replenishment report proposes purchase orders or transfers between warehouses. In Odoo 20, the report also suggests the minimum and maximum from past demand.

    Who: Buyer, planner

    Suggested stock levels for reordering rules: how it works in Odoo 20
    Odoo 20 Inventory: Suggest Min-Max dialog
    Step 5, Odoo 20 Inventory: Suggest Min-Max dialog
  6. 6

    Pick in batches and waves

    Odoo 20 · Inventory · Barcode

    Deliveries run in one, two or three steps: deliver, pick then deliver, or pick, pack, then deliver. Pickings can be grouped into batches or waves, automatically per operation type, and picked in the Barcode app. In Odoo 20, workers decide on backorders there when stock is short.

    Who: Picker

    Backorders: how it works in Odoo 20
    Odoo 20 Barcode: Barcode Incomplete Transfer dialog offering Create Backorder or No Backorder
    Step 6, Odoo 20 Barcode: Barcode Incomplete Transfer dialog offering Create Backorder or No Backorder
  7. 7

    Pack, label and ship

    Odoo 20 · Inventory · Delivery

    Packages are weighed and labelled on the delivery, and the carrier label prints from Odoo. Carrier connectors get rates, print labels and return tracking numbers, and Odoo 20 Enterprise adds a ShipStation connector. Delivery methods can be limited to countries, states or zip prefixes.

    Who: Packer, shipping desk

    ShipStation shipping connector: how it works in Odoo 20
    Odoo 20 Inventory: Delivery method form using the new ShipStation provider
    Step 7, Odoo 20 Inventory: Delivery method form using the new ShipStation provider
  8. 8

    Count, trace and take returns

    Odoo 20 · Inventory · Barcode

    Locations carry a count frequency for cycle counts, and in Odoo 20 counters can type a product's total in the Barcode app instead of scanning each unit. The traceability report follows a lot from receipt to customer, and a return comes back against the original delivery.

    Who: Stock controller

    Inventory count: how it works in Odoo 20
    Odoo 20 Barcode: Barcode count line opened via pen icon to type total counted quantity
    Step 8, Odoo 20 Barcode: Barcode count line opened via pen icon to type total counted quantity

Which Odoo 20 apps does inbound-to-outbound use?

The Odoo 20 apps behind inbound-to-outbound, with module name, edition and role.
Odoo app Module (edition) What it does here
Inventory stock (Community)Warehouses, locations, routes, receipts, putaway, batches and waves, deliveries and reordering
Purchase purchase (Community)Purchase orders that create the receipt
Landed costs stock_landed_costs (Community)Freight, duty and insurance added to the value of received stock
Expiry dates product_expiry (Community)Expiry and removal dates on lots, with the earliest-expiring stock picked first
Delivery stock_delivery (Community)Delivery methods, package weights and shipping rules by country, state or zip prefix
Dispatch stock_fleet (Community)Docks, drivers and vehicles on batch transfers, and the CMR consignment note
Barcode stock_barcode (Enterprise)Scanning for receipts, picking, packing and counts on a phone or scanner
Quality quality_control (Enterprise)Quality checks on receipts and other operations
Carrier connectors delivery_shipstation and other carrier connectors (Enterprise)Live rates, labels, return labels and tracking from the delivery

Where is standard Odoo enough, and where is it not?

Standard Odoo runs every step above. These are the gaps we close most often. Each is scoped and priced in discovery, not from a list.

  • A 3PL status the warehouse floor recognises

    Standard Odoo: Odoo transfers move through a fixed set of states, from draft and waiting to ready and done. There is no state for the stages an outside 3PL works through, such as picked, printed or pulled, so its progress stays in its own tool.

    What we add: For CABA Design, a 3PL status path from ready through pick, receive, print, pull, ship and done on top of the standard transfer, with pick lists for the US and China floors, merged batch lists and barcode pick sessions.

  • Containers tracked before they land

    Standard Odoo: Landed costs add freight and duty to stock once it is received. Before that, goods on a ship or a plane show only as an expected receipt, with no container, transport mode or arrival dates.

    What we add: For CABA Design, a container record for sea, air and ground shipments with load, ship and arrival dates, in-transit updates to the related 3PL work, and landed cost applied on the 3PL receipt.

  • Cross-docking to the orders that are waiting

    Standard Odoo: In Odoo 20, the allocation report assigns an incoming receipt to a waiting delivery from each product's forecast. Choosing which open orders a whole inbound shipment should cover, and printing their labels, is still done by hand.

    What we add: For CABA Design, a cross-dock document that lists potential orders, the orders selected and the inbound lines that cover them, and prints the outbound labels when it is posted, so stock ships without a full putaway.

  • The warehouse and carrier picked from the address

    Standard Odoo: The warehouse is set on each sales order, and delivery methods can be limited to countries, states or zip prefixes. Odoo does not choose the shipping warehouse or the carrier from the destination and the service level.

    What we add: For CABA Design, region, 3PL and carrier assigned on the order from the destination zip code, parcel or white-glove service set on the product, and actions to expedite or reroute an order after it is placed.

  • Barcode rules by order type

    Standard Odoo: Odoo tracks stock by product, and by lot or serial number when tracking is on. Validating a transfer checks quantities and tracking, not business rules such as which barcodes may go on a B2B, store or advance-sale order.

    What we add: For Koskii, a central register per garment barcode with cost, QC status, vendor and sale, and picking validation that enforces barcode rules for B2B, B2C and advance-sale orders.

Who approves what, and what is recorded?

  • With three-step reception, goods pass through a quality-control location before they reach stock.
  • Storage categories cap the weight a location can hold and whether it takes mixed products, and putaway rules respect them.
  • Lots and serial numbers trace each unit from receipt to customer, and the traceability report shows the whole chain.
  • Expiry dates on lots set the removal order, so the earliest-expiring stock leaves first.
  • Stock at a past date shows what was on hand at any moment, for audits and disputes.
  • Every transfer records who validated it and when, and followers are told when it is validated, cancelled or partly delivered.

What data moves when you migrate this process?

For the warehouse, these records move from the old system. Stock opens by location, lot and serial number with its value, so the first count in Odoo matches the shelf.

  • Warehouses and locations with their barcodes
  • Products with barcodes, packagings, weights and dimensions
  • Opening stock by location, lot and serial number, with its value
  • Reordering rules with their minimum and maximum
  • Open receipts and deliveries
  • Vendors, carriers and shipping accounts

Moving from another system? See SAP Business One to Odoo , NetSuite to Odoo , Tally to Odoo or Dynamics to Odoo .

What can AI take over in inbound-to-outbound?

The AI layer proposes and checks. A person still approves what gets bought, made or promised.

Who runs inbound-to-outbound on Odoo with TechUltra?

CABA Design

A US direct-to-consumer furniture brand that makes to order and ships through US and China 3PLs, on Odoo 18 Enterprise. Inbound containers carry landed cost onto the 3PL receipt, inbound stock can be cross-docked to waiting orders, the 3PL floor works to its own status path with pick lists and barcode sessions, and parcel, express and freight are rated and booked from the delivery.

Read the CABA Design case study

How long does it take, and what does it cost?

Implementation starts from about USD 4,000 and goes up with scope: the number of plants and products, the gaps above, integrations and how clean your data is. A one-week discovery maps your process and ends with a fixed timeline and a fixed price.

How does it differ by industry?

Only the industries where we have a reference for this process.

  • Furniture and home furnishings

    Made-to-order furniture shipped through US and China 3PLs, with containers, cross-docking, zip-based carrier choice and white-glove delivery rules.

    CABA Design case study
  • Apparel retail

    A garment-level barcode ledger with QC status, picking validation by order type, and transfers between company-owned and franchise stores.

    Koskii case study
  • Pharmacy retail

    Stock ownership by location, transfers between branches and warehouses, replenishment, and expiry alerts and expiry-date control on receipt, across three countries.

    Dawatech case study

Questions about inbound-to-outbound in Odoo

  • What is inbound-to-outbound in Odoo?

    It is the warehouse process from goods arriving from a supplier to a customer's parcel leaving: set up locations, receive, put away, allocate incoming stock, replenish, pick, pack and ship, then count and trace. In Odoo 20 it runs in Inventory, with Purchase, Delivery and, in Enterprise, Barcode and Quality.

  • Which Odoo apps do I need to run a warehouse?

    Inventory and Purchase at minimum, plus Sales for customer orders. Add Barcode (Enterprise) for scanning, Quality (Enterprise) for receipt checks, landed costs for freight and duty, expiry dates for lots with a shelf life, and a carrier connector for labels and tracking.

  • How many steps can receipts and deliveries have in Odoo?

    Up to three each. Receipts run as receive and store, receive then store, or receive, quality check, then store. Deliveries run as deliver, pick then deliver, or pick, pack, then deliver. Each warehouse picks its own setting.

  • Does Odoo support batch and wave picking?

    Yes. In Odoo 20, batch and wave transfers are part of Inventory, and batches can be built automatically per operation type. Workers then pick them in the Barcode app (Enterprise), where they can also decide on backorders when stock is short.

  • Can Odoo cross-dock inbound stock to customer orders?

    Partly. Odoo 20 can assign an incoming receipt to a waiting delivery from the product's allocation report. Choosing which open orders a whole shipment should cover, and printing their labels in one go, needs a customisation like the cross-dock document we built for CABA Design.

  • Can Odoo work with an outside 3PL warehouse?

    Yes, with work. Standard transfers do not track a 3PL's own stages, so we add a status path, pick lists and a 3PL application inside Odoo, as for CABA Design. If you run a 3PL business yourself, see Odoo for third-party logistics.

  • What does it cost to set up warehouse management in Odoo?

    Implementation starts from about USD 4,000 and goes up with scope: warehouses, routes, barcode hardware, carrier connectors, integrations and data clean-up. A one-week discovery ends with a fixed price. Odoo's own subscription is billed by Odoo; see Odoo pricing.

Want your inbound-to-outbound process mapped in Odoo?

A free 30-minute call with a senior consultant: we walk through your process, mark the gaps and size the discovery week.