DE · AT · CHAnleitung

Cross-Docking in Odoo 20: Einrichtung und Ablauf

Aktualisiert:

Gilt für: Odoo 20.0 Community, On-Premise; Apps Lager, Verkauf und Einkauf; der eigene Routenaufbau ist ein redaktioneller Konfigurationsvorschlag

Kurz gesagt

Cross-Docking bilden Sie in Odoo 20.0 Community (On-Premise) mit einer eigenen Route ab, weil die frühere Route Cross-Dock fehlt: Sie fiel mit der Linie 19.0 aus dem Lager-Modul, und die Dokumentation führt sie nur bis Version 18.0. Nötig sind ein Lagerhaus mit zwei Schritten im Ein- und Ausgang, eine Route mit Einkaufsregel und Push-Regel Eingang → Ausgang sowie die Zuweisung an der Verkaufsauftragszeile; dieser Routenaufbau ist ein redaktioneller Konfigurationsvorschlag, keine dokumentierte Odoo-Funktion.

Das Wichtigste

  • Im öffentlichen Community-Zweig 20.0 gibt es keine Route Cross-Dock mehr: Das Feld crossdock_route_id fehlt, und die Nutzerdokumentation beschreibt die Route nur bis Version 18.0.
  • Die Vorgangsart Kreuzverkupplung (Cross Dock) bleibt je Lagerhaus erhalten: Quelle WH/Eingang, Ziel WH/Ausgang.
  • Zwei Schritte im Wareneingang und im Warenausgang sind Voraussetzung; sie erzeugen die Lagerorte Eingang und Ausgang (Standard WH/Eingang, WH/Ausgang).
  • Der hier vorgeschlagene Routenaufbau braucht Sequenz 20, eine Einkaufsregel mit Ziel Partner/Kunden und eine Push-Regel WH/Eingang → WH/Ausgang.
  • In diesem Aufbau gehört die Route an die Verkaufsauftragszeile; am Produkt hinterlegt greift sie auch bei jedem normalen Wareneingang.

Beim Cross-Docking verlässt die Ware den Wareneingang in Richtung Versand, ohne im Lagerbestand zu landen. Odoo hält für diesen Ablauf zwei Lagerorte bereit — Eingang und Ausgang — und eine Vorgangsart zum Umladen; es fehlt die Route, die beide verbindet. Diese Anleitung legt sie an und führt den Belegfluss von der Bestellung bis zur Lieferung durch. Beschrieben ist Odoo 20.0 Community als On-Premise-Installation; eine Route gibt Odoo nicht dokumentiert vor, der Aufbau unten ist ein redaktioneller Konfigurationsvorschlag. Wie Routen und Regeln grundsätzlich zusammenspielen, steht unter Lagerrouten und Regeln in Odoo.

Was Sie vorab brauchen

  • Schreibrechte auf Lager ‣ Konfiguration; die Lagerhaus-Einstellungen liegen bei den Lagerverwaltern.
  • Die Apps Lager, Verkauf und Einkauf; für die Route selbst genügt die App Lager.
  • Ein Lagerhaus, dessen Wareneingänge und Warenausgänge Sie umstellen dürfen, ein Produkt mit hinterlegtem Lieferanten und Preis und einen Kundenkontakt.
  • Eine Entscheidung über den Anwendungsfall: ein Produkt, das immer cross-docked wird, oder einzelne Aufträge eines sonst eingelagerten Produkts. Sie bestimmt, wo die Route hängt.
  • Eine Testkopie der Datenbank: Odoo dokumentiert diesen Aufbau seit 19.0 nicht mehr, prüfen Sie ihn vor dem Einsatz.

Warum Odoo 20.0 keine Cross-Docking-Route mehr mitbringt

Bis Version 18.0 entstand die Route von selbst. Wer Mehrstufige Routen aktivierte und Wareneingänge und Warenausgänge auf je zwei Schritte stellte, bekam die Route Cross-Docking automatisch; am Produkt wurden die Routen Einkaufen und Cross-Dock gesetzt, und der Empfang lief vom Lagerort Eingang zum Lagerort Ausgang. So steht es auf der Seite “Organize a cross-dock in a warehouse”, die für Version 18.0 noch abrufbar ist.

Mit der Linie 19.0 fiel die Route weg. Die Dokumentation löschte die Seite am 9. April 2025 (Commit “[REM] Inventory: remove cross dock saas-18.2”), im öffentlichen Community-Quellcode der Zweige 19.0 und 20.0 kommen das Feld crossdock_route_id und seine Regeln nicht mehr vor, und die Nutzerdokumentation führt für 19.0 und 20.0 keine Cross-Docking-Seite. Erhalten geblieben ist die Vorgangsart Kreuzverkupplung (Cross Dock): Odoo legt sie je Lagerhaus an, mit WH/Eingang als Quelllagerort und WH/Ausgang als Ziellagerort.

Den Grund nennt die Änderung “[FIX] {sale_purchase_,}stock: remove the cross-dock route” vom 17. Januar 2025. Die Regeln der alten Route übersteuerten die regulären Regeln des Wareneingangs, sobald sie am Produkt hingen — ein normaler Einkauf wurde dann nicht mehr eingelagert. Hing die Route nur am Verkaufsauftrag, blieb sie wirkungslos, weil die daraus erzeugte Bestellung keine Route mitführte. Odoo entfernte die Route und ließ stattdessen die Routen der Verkaufsauftragszeile an die Vorgänge der Bestellzeile weiterlaufen. Genau dieser Weg trägt den Aufbau unten.

Mit den Standardrouten allein erreichen Sie Cross-Docking nicht: Der zweistufige Wareneingang führt die Ware über WH/Eingang nach WH/Bestand, und die zweistufige Lieferung kommissioniert aus WH/Bestand und gibt sie über WH/Ausgang frei (Dokumentation 20.0, Seite “Two-step receipt and delivery”).

Schritt für Schritt: eigene Route für Cross-Docking

Die folgenden Schritte sind ein redaktioneller Konfigurationsvorschlag für Odoo 20.0 Community (On-Premise); sie stehen in dieser Form in keiner Odoo-Dokumentation.

Schritt 1: Mehrstufige Routen aktivieren

Öffnen Sie Lager ‣ Konfiguration ‣ Einstellungen und setzen Sie im Abschnitt Lagerhaus das Kontrollkästchen Mehrstufige Routen. Speichern Sie. Laut Dokumentation 20.0 schaltet diese Funktion die Lagerorte mit ein.

Ergebnis: Unter Lager ‣ Konfiguration stehen die Menüpunkte Routen und Lagerhäuser zur Verfügung.

Schritt 2: Lagerhaus auf zwei Schritte stellen

Öffnen Sie Lager ‣ Konfiguration ‣ Lagerhäuser und wählen Sie Ihr Lagerhaus. Setzen Sie im Reiter Lagerhaus-Konfiguration das Feld Wareneingänge auf “In 2 Schritten erhalten (Eingang + Bestand)” und das Feld Warenausgänge auf “In 2 Schritten liefern (Kommissionierung + Versand)”.

Ergebnis: Odoo legt die Lagerorte WH/Eingang und WH/Ausgang an (WH ist der Kurzname des Standardlagerhauses; bei einem anderen Kürzel heißen sie entsprechend) und führt je Lagerhaus die Vorgangsart Kreuzverkupplung mit Quelle WH/Eingang und Ziel WH/Ausgang.

Schritt 3: Route anlegen

Öffnen Sie Lager ‣ Konfiguration ‣ Routen und klicken Sie auf Neu. Tragen Sie den Namen Cross-Docking ein und setzen Sie die Sequenz auf 20. Odoo ordnet Regeln mit kleinerer Route-Sequenz zuerst ein und zieht damit die Regeln dieser Route vor die des Lagerhauses heran (addons/stock/models/stock_rule.py, Zweig 20.0). Setzen Sie das Kontrollkästchen Auswählbar in Verkaufsauftragszeilen; Bei Produkt auswählbar nur dann, wenn jedes Exemplar des Produkts cross-docked wird.

Ergebnis: Die Route erscheint an der Verkaufsauftragszeile im Feld Routen.

Schritt 4: Einkaufsregel für den Bedarf eintragen

Öffnen Sie im Reiter Regeln eine neue Zeile und wählen Sie: Aktion Einkaufen, Vorgangsart Eingänge, Quelllagerort leer, Ziellagerort Partner/Kunden.

Ergebnis: Meldet ein Auftrag mit dieser Route Bedarf am Kundenlagerort, erzeugt Odoo eine Angebotsanfrage an den Lieferanten des Produkts.

Diese Regel folgt einem Muster aus Odoo selbst: Die Route Streckengeschäft, die Odoo 20.0 ausliefert, besteht aus einer Regel der Aktion Einkaufen von Partner/Lieferanten zu Partner/Kunden. Auch die alte Cross-Dock-Route trug bis Version 18.0 eine Einkaufsregel mit dem Kundenlagerort als Ziel.

Schritt 5: Umladeregel eintragen

Legen Sie im Reiter Regeln eine zweite Zeile an: Aktion Schieben nach, Quelllagerort WH/Eingang, Ziellagerort WH/Ausgang, Vorgangsart Kreuzverkupplung.

Ergebnis: Validieren Sie später einen Wareneingang dieser Route, legt Odoo den Umladevorgang Eingang → Ausgang an, statt die Ware einzulagern. Odoo nutzte bis Version 18.0 selbst eine Push-Regel von Eingang zu Ausgang.

Schritt 6: Auftrag mit der Route versehen

Legen Sie in Verkauf ‣ Aufträge ‣ Angebote einen Auftrag an, öffnen Sie in der Auftragszeile die Detailansicht und wählen Sie im Feld Routen die Route Cross-Docking. Bestätigen Sie den Auftrag. Das Feld erscheint mit Mehrstufigen Routen und führt nur Routen, die für Verkaufsauftragszeilen auswählbar sind.

Ergebnis: Odoo erzeugt eine Bestellung und verknüpft sie mit dem Auftrag; die Route der Auftragszeile läuft an die Vorgänge der Bestellzeile mit.

Konfigurationsbeispiel: vom Wareneingang bis zum Versand

Beispiel mit erfundenen Angaben: Ein Händler führt das Produkt Ersatzteil A im Lagerhaus WH, Bestand 0. Lieferant ist die Teile AG, Kundin die Handel GmbH. Der Verkaufsauftrag S00045 über 40 Stück trägt an der Auftragszeile die Route Cross-Docking.

Auslöser Beleg in Odoo Lagerorte Menge Was Sie kontrollieren
Auftrag S00045 bestätigen Bestellung P00032 an die Teile AG – 40 der Auftrag zeigt die verknüpfte Bestellung
Bestellung bestätigen Wareneingang WH/IN/00031, Vorgangsart Eingänge Partner/Lieferanten → WH/Eingang 40 Feld Erledigte Menge vor dem Validieren auf 40 setzen
Wareneingang validieren Umladevorgang WH/XD/00007, Vorgangsart Kreuzverkupplung WH/Eingang → WH/Ausgang 40 der Umladevorgang entsteht beim Validieren des Eingangs
Umladevorgang validieren Lieferung WH/OUT/00042, Vorgangsart Lieferaufträge WH/Ausgang → Partner/Kunden 40 die Lieferung entsteht beim Validieren des Umladevorgangs
Lieferung validieren Lieferung (erledigt) – 40 die gelieferte Menge am Auftrag steigt auf 40
Lager kein Vorgang über WH/Bestand – – der Bestand von Ersatzteil A bleibt 0
Abrechnung Kundenrechnung aus S00045, Lieferantenrechnung aus P00032 – 40 Mengen und Beträge prüfen

Die Belegnummern folgen den Sequenzen der Vorgangsarten (WH/IN, WH/XD, WH/OUT); Nummern, Namen und Mengen sind erfunden. Mit der validierten Lieferung ist der zweistufige Ausgang abgeschlossen: Die Push-Regel Ausgang → Kunde gehört zur Standard-Lieferroute des Lagerhauses und gilt damit für alle Produkte. Wie die Vorgänge eines zweistufigen Eingangs und Ausgangs im Einzelnen ablaufen, steht unter Wareneingang und Lieferung in Odoo.

So prüfen Sie das Ergebnis

  1. Route: Unter Lager ‣ Konfiguration ‣ Routen steht die Route Cross-Docking auf Sequenz 20, ist in Verkaufsauftragszeilen auswählbar und trägt die beiden Regeln Einkaufen (Ziel Partner/Kunden) und Schieben nach (WH/Eingang → WH/Ausgang).
  2. Vorgangsart: Unter Lager ‣ Konfiguration ‣ Vorgangsarten zeigt Kreuzverkupplung Quelle WH/Eingang und Ziel WH/Ausgang.
  3. Wareneingang: Nach dem Validieren steht der Eingang auf Erledigt, die Ware liegt in WH/Eingang, und unter Lager ‣ Vorgänge ‣ Transfers erscheint ein Vorgang mit der Vorgangsart Kreuzverkupplung.
  4. Umladevorgang: Nach dem Validieren liegt die Ware in WH/Ausgang, und die Lieferung ist bereit.
  5. Bestand: Öffnen Sie das Produkt und sehen Sie über die Schaltfläche Vorrätig (On Hand) nach — die Menge im Lagerort WH/Bestand ist unverändert, weil kein Vorgang dieses Produkts diesen Lagerort berührt hat.
  6. Abrechnung: Erstellen Sie die Kundenrechnung am Auftrag und die Lieferantenrechnung an der Bestellung und vergleichen Sie Mengen und Beträge. Ob die Abrechnungspolitik des Produkts eine validierte Lieferung verlangt, hängt am einzelnen Produkt.

Wenn etwas nicht klappt

Symptom Ursache Abhilfe
Beim Bestätigen des Auftrags entsteht keine Bestellung Die Einkaufsregel der Route fehlt oder ihr Ziellagerort passt nicht zum Bedarf der Auftragszeile Ziellagerort der Regel auf Partner/Kunden setzen
Die Ware geht nach WH/Bestand statt nach WH/Ausgang Die Route steht nicht an der Auftragszeile, deshalb greifen die Regeln des Lagerhauses (Eingang → Bestand) Route an der Auftragszeile im Feld Routen setzen
Nach dem validierten Wareneingang fehlt der Umladevorgang Die Push-Regel fehlt, hat eine andere Vorgangsart oder eine höhere Sequenz als die Regel des Lagerhauses Regel Schieben nach mit Vorgangsart Kreuzverkupplung, Route-Sequenz 20 und den Lagerorten WH/Eingang und WH/Ausgang prüfen
Die Lieferung bleibt auf Wartend Die Ware ist noch nicht mit dem Umladevorgang nach WH/Ausgang gebucht Umladevorgang validieren
Die Route steht an der Auftragszeile nicht zur Auswahl Mehrstufige Routen fehlen, oder das Kontrollkästchen Auswählbar in Verkaufsauftragszeilen ist nicht gesetzt Lager ‣ Konfiguration ‣ Einstellungen und das Kontrollkästchen der Route prüfen

Wann Sie Hilfe holen sollten

Cross-Docking berührt Wareneingang, Lieferung und Beschaffung zugleich. Ziehen Sie Ihren Odoo-Partner hinzu, wenn mehrere Lagerhäuser, Qualitätskontrollschritte, Chargen oder Seriennummern beteiligt sind oder wenn dasselbe Produkt teils cross-docked und teils eingelagert wird. Änderungen an Routen und Regeln prüfen Sie in einer Kopie der Datenbank, nicht im laufenden Betrieb; Odoo dokumentiert diesen Aufbau seit 19.0 nicht mehr. Passend zum Thema sind auch die Artikel Retouren in Odoo abwickeln und Versandarten und Versandetiketten in Odoo.

Häufige Fragen

Kann ich Cross-Docking mit einstufigem Wareneingang abbilden?

Mit diesem Aufbau nicht. Der Lagerort WH/Eingang entsteht laut Dokumentation 20.0 nur bei zwei- oder dreistufigen Wareneingängen; bei einem Schritt geht die Ware direkt nach WH/Bestand, und der Umladeort fehlt. Stellen Sie die Wareneingänge auf zwei Schritte, wenn Sie Cross-Docking nutzen.

Was ist der Unterschied zum Streckengeschäft?

Beim Streckengeschäft versendet der Lieferant direkt an die Kundschaft, die Ware berührt keinen Ihrer Lagerorte. Beim Cross-Docking kommt sie an Ihrem Wareneingang an und wird dort auf den Versand umgeladen. Für das Streckengeschäft liefert Odoo eine eigene Route mit, für Cross-Docking nicht; siehe [Streckengeschäft in Odoo](/lager/odoo-streckengeschaeft/).

Meine Datenbank stammt aus Odoo 18. Ist die alte Route noch vorhanden?

Das lässt sich aus der Änderung nicht ableiten. Die Änderung vom 17. Januar 2025 entfernt Modulcode und verweist für bestehende Datenbanken auf ein Upgrade-Skript; ob ein Upgrade eine vorhandene Route Cross-Dock löscht oder archiviert, nennt sie nicht, und das Upgrade-Repository odoo/upgrade ist nicht öffentlich abrufbar (Abruf am 14. Oktober 2026). Prüfen Sie daher unter Lager ‣ Konfiguration ‣ Routen, ob dort eine Route Cross-Dock liegt, welche Regeln sie trägt und ob ihre Sequenz zu Ihren Lagerhaus-Einstellungen passt.

Kann ich die Route auch am Produkt hinterlegen?

Ja, in Odoo 20.0 Community (On-Premise) läuft dann jeder Wareneingang dieses Produkts über den Umladevorgang, auch ein normaler Einkauf ohne Cross-Docking. Genau diese Wirkung nennt die Änderung vom 17. Januar 2025 als Grund für die Entfernung der alten Route. Hinterlegen Sie die Route am Produkt nur, wenn das Produkt ausschließlich cross-docked wird.

Quellen

  1. Odoo Dokumentation, Wurzeladresse, Weiterleitung auf Version 20.0 (Stand der aktuellen Version)Odoo S.A., Dokumentation · abgerufen am
  2. Routes and push/pull rules (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  3. Two-step receipt and delivery (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  4. Organize a cross-dock in a warehouse (Odoo 18.0, letzte Fassung der Seite)Odoo S.A., Dokumentation · abgerufen am
  5. Änderung "[REM] Inventory: remove cross dock saas-18.2", Commit 0881986da2beb8c483271e01a7245eab583ac952 vom 9. April 2025 (Löschung der Dokumentationsseite cross_dock.rst)Odoo S.A., odoo/documentation (GitHub) · abgerufen am
  6. Änderung "[FIX] {sale_purchase_,}stock: remove the cross-dock route", Commit c2bf8b10d7652956503ac229b0107d26de3b54de vom 17. Januar 2025 (Entfernung der Route und ihrer Regeln)Odoo S.A., odoo/odoo (GitHub) · abgerufen am
  7. addons/stock/models/stock_warehouse.py, Zweig 19.0 (kein Feld crossdock_route_id, keine Route; Vorgangsart Cross Dock)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  8. addons/stock/models/stock_warehouse.py, Zweig 20.0 (kein Feld crossdock_route_id, keine Route; Vorgangsart Cross Dock mit Quelle WH/Input und Ziel WH/Output)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  9. addons/stock/models/stock_warehouse.py, Zweig 18.0 (damalige Route crossdock_route_id mit Regeln: Push Eingang → Ausgang)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  10. addons/purchase_stock/models/stock.py, Zweig 18.0 (damalige Einkaufsregel der Route Cross-Dock mit Ziel Kundenlagerort)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  11. addons/sale_purchase_stock/models/purchase_order.py, Zweig 20.0 (Routen der Verkaufsauftragszeile werden an die Vorgänge der Bestellzeile weitergegeben)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  12. addons/sale_stock/models/sale_order_line.py und views/sale_order_views.xml, Zweig 20.0 (Feld Routen an der Verkaufsauftragszeile, gefiltert auf für Auftragszeilen auswählbare Routen)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  13. addons/stock_dropshipping/models/res_company.py, Zweig 20.0 (Regel der Route Dropship: Aktion Einkaufen, Partner/Lieferanten → Partner/Kunden)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  14. addons/stock/models/stock_rule.py, Zweig 20.0 (Auswahl der Push-Regel, Sortierung nach Route-Sequenz und Regel-Sequenz)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  15. Deutsche Übersetzungen der Module stock und sale_stock, Zweig 20.0 (Quelle der Oberflächennamen: Kreuzverkupplung, Mehrstufige Routen, Schieben nach, Auswählbar in Verkaufsauftragszeilen)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am