Beispiel Fiktiver Fall: Firma und Zahlen sind erfunden, um den Ablauf zu zeigen.
Was passiert ist
Casa Lumen verkauft Lampen über ChannelEngine auf mehreren Kanälen und führt sein Lager in Odoo. An einem Montag kommen über verschiedene Kanäle zwei Bestellungen für dasselbe Modell herein. Es war nur noch eine Einheit da. Die zweite Bestellung muss storniert werden, mit dem schlechten Eintrag, den das auf dem Kanal nach sich zieht.
Der erste Verdacht ist der übliche: „Der Connector hat den Bestand nicht gesendet.“ Die Prüfung zeigt etwas anderes.
Wie es gefunden wurde
Der Connector hat eine tägliche Aufgabe, die den Bestand in ChannelEngine liest und mit dem vergleicht, was Odoo in diesem Moment senden würde. Was Odoo senden würde, ist die verfügbare Menge im Lagerhaus des Kontos abzüglich offener Lieferungen und noch als Angebot geführter Bestellungen. Jede SKU mit einer Differenz landet in Stock Divergences, mit drei Zahlen: was ChannelEngine hat, was Odoo hat und die Differenz.
Bei Casa Lumen zeigte die Lampe in ChannelEngine eine Einheit mehr. Der Grund war ein Angebot für einen Verkauf im Laden, das niemand bestätigt hatte: Odoo zog es bereits ab, und ChannelEngine bot diese Einheit weiter an.

Was ChannelEngine auf seiner Seite tut
ChannelEngine hat eine Bestandsreservierung, die laut eigenem Hilfe-Center das Risiko des Überverkaufs beseitigen soll. Die Reservierung gilt, bis die Bestellung in den Status „In progress“ wechselt, und wird im Schnitt innerhalb von 1,5 Stunden wieder für die Kanäle freigegeben, je nachdem, wie schnell Bestellungen bestätigt und Bestände gesendet werden. Das funktioniert gut, wenn Ihr System den Bestand regelmäßig sendet. Kommt der Bestand spät, hilft die Reservierung nicht.
Die Einstellungen, die sich geändert haben
- Die Liste Stock Divergences jeden Morgen prüfen und die Angebote mit Differenz mit einem Klick neu einreihen.
- Die Kontooption einschalten, Bestellungen ohne ausreichenden Bestand zurückzuhalten, damit eine importierte Bestellung nicht automatisch bestätigt wird, wenn das Lager sie nicht decken kann.
- Sicherstellen, dass das Konto die ID des Lagerorts von ChannelEngine verwendet, denn Casa Lumen hat zwei Lagerorte.
- Die Standardintervalle beibehalten: Bestellungen kommen alle 15 Minuten herein, Preis- und Bestandsänderungen werden stündlich eingereiht und alle 30 Minuten gesendet.

Eine weitere Einstellung hat Casa Lumen geprüft: woher die Preise kommen. Das Konto kann die Angebotspreise aus einer Odoo-Preisliste übernehmen statt aus dem Verkaufspreis des Produkts. So wird der Preis für ChannelEngine an einer einzigen Stelle geändert.
Was das Team gelernt hat
Die Differenz lag an einem vergessenen Angebot, nicht am Connector. Ohne den täglichen Abgleich hätte die nächste Abweichung wieder wie ein technischer Fehler ausgesehen. Mit der Liste vor Augen hat jede Differenz eine SKU, Zahlen und ein Prüfdatum und ist in Minuten gelöst.

Casa Lumen hat weder Kanäle noch Anbieter gewechselt. Es hat sich nur angewöhnt, jeden Morgen die Liste zu prüfen, und muss seitdem keine Bestellungen mehr mangels Bestand stornieren.
Wenn Sie dasselbe Produkt auch außerhalb von ChannelEngine verkaufen, ist Odoo der einzige Ort, an dem jede ausgehende Einheit auf einmal sichtbar ist. Deshalb wird der Abgleich von Odoo aus gemacht.
Weiterlesen
Geprüft im Quellcode des Connectors (Version 20.0) und in den verlinkten Quellen
Quellen
- Quellcode des Moduls: flexigobe_channelengine_connector (6032191c): models/channelengine_stock_reconcile.py
- support.channelengine.com/hc/en-us/articles/34273588476317-ChannelEngine-stock-reservation
- Quellcode des Moduls: flexigobe_channelengine_connector 20.0 (6032191c): data/channelengine_cron.xml
- Quellcode des Moduls: flexigobe_channelengine_connector 20.0 (6032191c): views/channelengine_stock_divergence_views.xml
- Quellcode des Moduls: flexigobe_channelengine_connector 20.0 (6032191c): views/menu.xml
- Quellcode des Moduls: flexigobe_channelengine_connector 20.0 (6032191c): models/channelengine_account.py
- apps.odoo.com/apps/modules/20.0/flexigobe_channelengine_connector
