Wareneingang
Wareneingänge im Hauptlager: regulärer Eingang und Eingang zu einer UK-Einkaufsbestellung.
Wareneingänge im Hauptlager
Regulärer Eingang
DACHSER meldet eingetroffene Ware. tbs.erp verarbeitet die Meldung und bucht den Wareneingang in weclapp.
UK-Einkaufsbestellung
Gleicher Wareneingang im Hauptlager; zusätzlich wird der zugehörige weclapp-Auftrag anhand der Referenznummer abgeschlossen und als empfangen markiert.
Regulärer Eingang im Hauptlager
XML von DACHSER empfangen
DACHSER stellt eine XML-Datei über SFTP im Unterordner /wareneingang/ bereit.
Neue Datei einlesen
tbs.erp prüft den Ordner alle zehn Minuten. Eine neue XML-Datei wird eingelesen und nach SKU → Batchnummer → Anzahl aufbereitet.
Intern speichern und weclapp buchen
tbs.erp legt den Wareneingang in der eigenen Datenbank an. Danach wird er über die weclapp-Aktion incomingGoods in den Bestand des Hauptlagers eingebucht.
Wareneingang zu einer UK-Einkaufsbestellung
The Body Shop bestellt als Franchise-Unternehmen Ware bei UK. Zu einer solchen Bestellung gibt es in weclapp eine Sales Order. Wenn die Ware bei DACHSER im Hauptlager eintrifft, enthält die XML-Meldung eine Referenznummer. Anhand dieser Referenznummer erkennt tbs.erp, dass der Eingang zu einer UK-Einkaufsbestellung gehört, und ordnet ihn dem weclapp-Vorgang zu.
weclapp: Wareneingang buchen
tbs.erp speichert die aus der XML-Datei gelesenen Positionen zunächst intern. Der bekannte Payload für incomingGoods enthält die aufbereiteten Positionen und die konfigurierte Absender-ID für TBS UK. Beim UK-Vorgang ist zusätzlich der unten dokumentierte Purchase-Order-Endpunkt relevant; die genaue Abfolge der beiden Aufrufe wird noch ergänzt.
incomingGoodsType: STANDARD
incomingGoodsItems: $items
senderPartyId: $this->lieferant_sender_id_tbs_uk
UK-Purchase-Order: createIncomingGoods
Bei einer zugeordneten UK-Bestellung erstellt tbs.erp zusätzlich über die weclapp API einen Wareneingang zur Purchase Order mit der ID $id. Der Endpunkt createIncomingGoods ist die Wareneingangsbuchung; er beschreibt für sich allein noch keinen Abschluss der Sales Order.
$response = $this->request(
'POST',
'/purchaseOrder/id/'.$id.'/createIncomingGoods?ignoreMissingProperties=true',
new stdClass()
);