All posts
Functional4 min read

Implementing Cross-Docking Operations in Odoo Warehouse

Configure Odoo cross-docking to route incoming goods directly to outbound shipments - bypassing storage for high-demand items and reducing handling costs in fast-moving fulfillment environments.

Cross-Docking in Odoo Warehouse#

Cross-docking routes incoming goods directly to outbound shipping without putting them away in storage. This reduces handling, eliminates pick time, and enables same-day fulfillment for high-demand items. Odoo supports cross-docking as a built-in route.

When to Use Cross-Docking#

Cross-docking works best for:

  • Products with high turnover (always in demand, no safety stock needed)
  • Just-in-time orders (vendor delivers exactly what the customer ordered)
  • Temperature-sensitive or time-critical goods (minimize warehouse dwell time)
  • Overflow goods when storage is full

Enabling Cross-Docking#

Inventory → Configuration → Settings → enable Multi-Step Routes.

Inventory → Configuration → Warehouses → [Warehouse]:

  • Incoming Shipments: 2 steps (Input + Store) - needed for cross-docking to work
  • Outgoing Shipments: 2 or 3 steps

Setting Up the Cross-Dock Route#

Inventory → Configuration → Routes → Cross-Dock:

  • Odoo has a built-in Cross-Dock route - enable it if not already active

Product → Inventory tab → Routes: enable Cross-Dock for the specific product(s).

The Cross-Docking Flow#

  1. Customer confirms a sale order → delivery order created (waiting for stock)
  2. Purchase order generated (or existing PO receipt arrives)
  3. When the PO receipt is validated:

- Odoo detects: delivery order is waiting for this product

- Instead of routing to WH/Stock: cross-dock transfer created

- Goods move: WH/Input → WH/Output (directly to the outbound staging area)

  1. The delivery order is now "Ready" - ship immediately

No put-away, no picking from stock - goods go straight through.

Cross-Docking vs. Standard Route Selection#

Odoo uses the route on the product to decide:

  • Cross-Dock route: bypass storage → send to outbound
  • Buy route: receive to input → put away to stock

A product can have multiple routes - Odoo prioritizes based on existing demand:

  • If a delivery order is waiting: use Cross-Dock
  • If no pending demand: use Buy (put away to stock)

Reporting on Cross-Docking#

Inventory → Reporting → Moves Analysis → filter by Route: Cross-Dock:

  • Volume of goods cross-docked vs. stored
  • Transit time: receipt to shipment (how quickly cross-docked goods ship)
  • Cross-docking success rate: goods that reached outbound without storage

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free