SAP Business One und SAP S/4HANA mit Magento 2 verbinden
AI generated
M2
di.xml
Magento 2 · ERP · SAP
SAP Business One und SAP S/4HANA mit Magento 2 verbinden
Wie sich Bestellungen aus Magento 2 zuverlässig automatisch als Aufträge in SAP Business One oder SAP S/4HANA anlegen lassen, inklusive Stammdaten-Sync und Fehlerbehandlung

Wer im Mittelstand SAP Business One oder im größeren Umfeld SAP S/4HANA als ERP betreibt und zusätzlich einen Magento-Shop führt, kennt das Problem manueller Auftragserfassung: Bestellungen aus dem Shop müssen händisch ins ERP übertragen werden, was Zeit kostet und Übertragungsfehler begünstigt. Eine automatisierte Anbindung überträgt Bestellungen, Stammdaten und Lagerbestände zwischen beiden Systemen, muss dafür aber die jeweilige SAP-API korrekt ansprechen und robust auf Ablehnungen wie Kreditlimit-Sperren reagieren. Dieser Artikel zeigt, wie diese Integration aufgebaut wird.

12 Min. Lesezeit SAP Business One SAP S/4HANA Service Layer API Order-Sync

1. Warum manuelle Auftragsübertragung zwischen Magento und SAP nicht skaliert

Solange ein Shop nur wenige Bestellungen am Tag verarbeitet, lässt sich eine manuelle Übertragung ins ERP noch mit vertretbarem Aufwand stemmen. Sobald das Bestellvolumen wächst oder mehrere Vertriebskanäle gleichzeitig bedient werden, wird die manuelle Erfassung zum Flaschenhals: Mitarbeiter übertragen Positionen, Mengen und Adressen von Hand, was bei wachsendem Volumen unweigerlich zu Tippfehlern, doppelt erfassten Aufträgen und verzögerter Lieferung führt.

Eine automatisierte SAP-Anbindung beseitigt genau diesen Engpass, verlangt aber eine saubere technische Grundlage: Die Integration muss Bestellungen zuverlässig genau einmal übertragen, auch bei Netzwerkfehlern oder kurzzeitigen Ausfällen der SAP-Schnittstelle, und dabei alle für die Buchhaltung relevanten Felder korrekt und vollständig mitgeben. Wird diese Grundlage sauber gelegt, sinkt nicht nur die Fehlerquote spürbar, sondern auch die Zeit zwischen Zahlungseingang im Shop und Verfügbarkeit des Auftrags im ERP für Versand und Fakturierung.

2. SAP Business One und SAP S/4HANA technisch einordnen

SAP Business One richtet sich an kleine und mittlere Unternehmen und bietet mit der Service Layer API eine moderne, REST-basierte Schnittstelle, die Standardobjekte wie Aufträge, Artikel und Geschäftspartner direkt über HTTP-Aufrufe mit JSON-Payloads bereitstellt. Die Service Layer API ist vergleichsweise einfach zu integrieren, weil sie den Datenmodellen der SAP-Business-One-Oberfläche sehr nahekommt und gut dokumentiert ist.

SAP S/4HANA adressiert dagegen größere Organisationen und bietet OData-Services sowie, je nach Ausbaustufe, eine Anbindung über SAP Cloud Integration oder die SAP Integration Suite als Middleware-Schicht. Die Datenmodelle in S/4HANA sind deutlich komplexer als bei SAP Business One, weshalb eine direkte Punkt-zu-Punkt-Anbindung ohne Middleware bei S/4HANA seltener sinnvoll ist als bei Business One.

3. Die Service Layer API von SAP Business One anbinden

Die Service Layer API von SAP Business One authentifiziert sich über einen Login-Endpunkt, der eine Session-ID zurückliefert, die anschließend als Cookie bei jedem weiteren Aufruf mitgeschickt werden muss. Diese Session hat eine begrenzte Gültigkeit, weshalb die Integration ein automatisches Re-Login bei abgelaufener Session einbauen muss, statt bei jedem fehlgeschlagenen Aufruf sofort einen Fehler an den Magento-Checkout zurückzugeben.

Für das Anlegen eines Auftrags sendet die Integration einen POST-Aufruf an den Orders-Endpunkt mit Geschäftspartner-Code, Positionen samt Artikelnummer und Menge sowie der gewünschten Lieferadresse. Die Service Layer API validiert dabei serverseitig unter anderem Kreditlimits und Lagerverfügbarkeit, sodass ein abgelehnter Auftrag mit einer aussagekräftigen Fehlermeldung zurückkommt, die die Integration auswerten und dem Shop-Team verständlich zurückmelden muss.


<?php
declare(strict_types=1);

namespace Mironsoft\SapSync\Model\Client;

/**
 * Legt einen Auftrag in SAP Business One ueber die Service Layer API an.
 */
final class ServiceLayerOrderClient
{
    public function __construct(
        private readonly ServiceLayerSession $session,
        private readonly \GuzzleHttp\ClientInterface $httpClient,
    ) {
    }

    /**
     * Erstellt einen Auftrag fuer eine abgeschlossene Magento-Bestellung.
     *
     * @param array $orderPayload
     * @return array
     */
    public function createOrder(array $orderPayload): array
    {
        $response = $this->httpClient->request('POST', 'Orders', [
            'headers' => ['Cookie' => 'B1SESSION=' . $this->session->getSessionId()],
            'json' => $orderPayload,
        ]);

        return json_decode((string) $response->getBody(), true);
    }
}

4. Bestellungen und Aufträge automatisch aus Magento importieren

Der Auftrags-Import sollte immer erst dann ausgelöst werden, wenn eine Magento-Bestellung tatsächlich vollständig bezahlt oder zumindest verbindlich autorisiert ist, statt bereits bei einem noch abbrechbaren Warenkorb einen SAP-Auftrag anzulegen. Ein Beobachter-Muster auf dem Order-Status-Wechsel eignet sich dafür besser als ein reiner Cron-Job, weil die Übertragung dann nahezu in Echtzeit erfolgt.

Wichtig ist außerdem eine eindeutige Referenz zwischen der Magento-Bestellnummer und dem angelegten SAP-Auftrag, die in beiden Systemen sichtbar gespeichert wird. Diese Referenz erleichtert nicht nur den Kundenservice bei Rückfragen erheblich, sondern verhindert auch, dass bei einem Wiederholungsversuch nach einem fehlgeschlagenen Aufruf versehentlich ein doppelter Auftrag in SAP entsteht.

5. Stammdaten-Synchronisation: Artikel, Preislisten und Lagerorte

Artikelstammdaten wie Artikelnummer, Bezeichnung, Gewicht und Steuercode sollten aus SAP als führendem System nach Magento übertragen werden, da diese Daten für Buchhaltung und Lagerwirtschaft ohnehin dort gepflegt werden müssen. Preislisten in SAP Business One lassen sich über eigene Preislisten-Objekte abbilden, die sich auf Magento-Kundengruppen mappen lassen, sofern die Preisdifferenzierung in beiden Systemen nach vergleichbarer Logik erfolgt.

Bei mehreren Lagerorten muss die Integration zusätzlich festlegen, welcher SAP-Lagerort für die im Shop angezeigte Verfügbarkeit maßgeblich ist, insbesondere wenn ein Unternehmen über mehrere Standorte unterschiedliche Warenbestände führt. Eine aggregierte Verfügbarkeitslogik über mehrere Lagerorte hinweg ist technisch möglich, sollte aber bewusst und nicht als Nebeneffekt einer zu einfachen Abfrage entstehen.

6. SAP S/4HANA anbinden: OData-Services und SAP Cloud Integration

SAP S/4HANA stellt seine Geschäftsobjekte über standardisierte OData-Services bereit, etwa für Verkaufsaufträge oder Geschäftspartner, die sich grundsätzlich direkt aus Magento aufrufen lassen. In der Praxis läuft die Anbindung bei S/4HANA aber häufiger über die SAP Integration Suite oder eine vergleichbare Middleware, weil Unternehmen mit S/4HANA meist bereits weitere Umsysteme integriert haben und eine zentrale Integrationsschicht Transformationsregeln wiederverwendbar macht.

Diese Middleware übernimmt dann die Umwandlung des Magento-Bestellformats in die von S/4HANA erwartete OData-Struktur, inklusive komplexerer Feldzuordnungen für Kostenstellen, Vertriebsorganisationen und Werke, die in SAP Business One in dieser Form meist nicht existieren. Wer bereits eine Middleware für andere Systeme betreibt, sollte die S/4HANA-Anbindung dort ergänzen, statt eine isolierte Punkt-zu-Punkt-Verbindung ausschließlich für Magento aufzubauen.

7. Fehlerbehandlung bei abgelehnten Aufträgen und Kreditlimit-Sperren

Lehnt SAP einen Auftrag wegen eines überschrittenen Kreditlimits des Kunden ab, darf die Magento-Bestellung nicht einfach als erfolgreich abgeschlossen im Shop stehen bleiben, sondern muss klar als in Prüfung markiert werden. Die Integration sollte dem Kunden eine verständliche Statusmeldung anzeigen und dem Vertriebsinnendienst eine Benachrichtigung zukommen lassen, damit die Kreditlimit-Situation manuell geklärt werden kann, statt dass der Auftrag stillschweigend in einer Fehlerwarteschlange verschwindet.

Ähnliches gilt für Lagerverfügbarkeitskonflikte, etwa wenn ein Artikel zwischen Bestelleingang im Shop und Verarbeitung in SAP anderweitig reserviert wurde. Ein klar definierter, für das Vertriebsteam nachvollziehbarer Eskalationsprozess ist hier wichtiger als der Versuch, jeden denkbaren Konfliktfall vollautomatisch aufzulösen, zumal viele dieser Randfälle eine fachliche Entscheidung erfordern, die sich in Code kaum vollständig und dauerhaft korrekt abbilden lässt.

8. Sicherheits- und Berechtigungskonzept für die Schnittstelle

Der für die Integration verwendete SAP-Servicebenutzer sollte ausschließlich die tatsächlich benötigten Berechtigungen erhalten, etwa Lese- und Schreibrechte auf Aufträge und Lesezugriff auf Stammdaten, statt mit einem vollständigen Administrator-Zugang zu arbeiten. Diese Einschränkung begrenzt den möglichen Schaden erheblich, falls die Zugangsdaten der Integration jemals kompromittiert werden sollten.

Zusätzlich empfiehlt sich ein Rate-Limiting auf Seiten der Magento-Integration, das verhindert, dass ein fehlerhafter Wiederholungsmechanismus die SAP-Schnittstelle mit übermäßig vielen Anfragen belastet und dadurch andere, ebenfalls auf SAP angewiesene Systeme im Unternehmen beeinträchtigt.

9. SAP-Integrationsansätze im Überblick

Die folgende Tabelle vergleicht die wichtigsten Integrationsansätze für SAP Business One und SAP S/4HANA mit dem jeweils typischen Aufwand und der empfohlenen Vorgehensweise.

SAP-System Typische Schnittstelle Integrationsaufwand Empfohlener Ansatz
SAP Business One Service Layer API (REST/JSON) Mittel, gut dokumentiert Direktanbindung aus Magento
SAP S/4HANA, einfaches Szenario OData-Services Mittel bis hoch Direktanbindung möglich, Middleware empfehlenswert
SAP S/4HANA, mehrere Umsysteme SAP Integration Suite / Cloud Integration Hoch Zentrale Middleware zwingend
Kreditlimit- und Lagerkonflikte Systemabhängige Statusrückgabe Mittel Klarer Eskalationsprozess statt Vollautomatisierung

Mironsoft

Magento-Entwicklung, Modul-Beratung und Systemarchitektur

Magento-Projekt, das eine zweite Meinung oder erfahrene Umsetzung braucht?

Wir entwickeln individuelle Magento-Module, beraten bei Architekturentscheidungen und übernehmen komplexe Umsetzungen, von der Service-Contract-Planung bis zum produktionsreifen Deployment.

Architektur-Beratung

Modul- und Systemarchitektur vor der Umsetzung fundiert durchdenken lassen.

Custom-Modul-Entwicklung

Individuelle Magento-Module nach Best Practices sauber umsetzen.

Code-Review & Audit

Bestehende Module auf Performance, Sicherheit und Wartbarkeit prüfen lassen.

10. Zusammenfassung

SAP-Integration: Das Wichtigste auf einen Blick

Kernidee

Bestellungen sollten erst bei verbindlicher Zahlung oder Autorisierung automatisch als SAP-Auftrag angelegt werden.

Wichtigste Unterscheidung

SAP Business One eignet sich für eine direkte Service-Layer-Anbindung, S/4HANA meist besser über Middleware.

Größtes Risiko

Ein abgelehnter Auftrag, der im Shop trotzdem fälschlich als erfolgreich abgeschlossen angezeigt wird.

Erfolgskriterium

Jede Bestellung wird genau einmal übertragen, mit eindeutiger, in beiden Systemen sichtbarer Referenz zwischen Magento und SAP.

11. FAQ: SAP-Integration: Das Wichtigste auf einen Blick

1Was unterscheidet SAP Business One technisch von SAP S/4HANA?
SAP Business One bietet die REST-basierte Service Layer API, S/4HANA arbeitet meist über OData-Services und häufig eine zusätzliche Middleware.
2Ab wann lohnt sich eine automatisierte SAP-Anbindung?
Sobald manuelle Auftragserfassung durch wachsendes Bestellvolumen zum Flaschenhals wird und Übertragungsfehler zunehmen.
3Wie authentifiziert sich die Integration bei SAP Business One?
Über einen Login-Endpunkt, der eine zeitlich begrenzte Session-ID zurückgibt, die bei jedem weiteren Aufruf mitgeschickt werden muss.
4Wann sollte ein Magento-Auftrag an SAP übertragen werden?
Erst wenn die Bestellung verbindlich bezahlt oder autorisiert ist, nicht bereits bei einem noch abbrechbaren Warenkorb.
5Was passiert bei einer Kreditlimit-Sperre in SAP?
Der Auftrag muss im Shop klar als in Prüfung markiert werden, mit Benachrichtigung an den Vertriebsinnendienst statt stillem Fehlschlag.
6Warum ist eine eindeutige Referenz zwischen Magento und SAP wichtig?
Sie verhindert doppelte Aufträge bei Wiederholungsversuchen und erleichtert den Kundenservice bei Rückfragen.
7Braucht SAP S/4HANA immer eine Middleware?
Nicht zwingend, aber bei mehreren bereits integrierten Umsystemen ist eine zentrale Middleware fast immer die bessere Wahl.
8Welches System sollte bei Artikelstammdaten führend sein?
In der Regel SAP als ERP, da diese Daten für Buchhaltung und Lagerwirtschaft ohnehin dort gepflegt werden müssen.
9Welche Berechtigungen braucht der SAP-Servicebenutzer für die Integration?
Nur die tatsächlich benötigten Rechte auf Aufträge und Stammdaten, kein vollständiger Administrator-Zugang.
10Wie werden Lagerverfügbarkeitskonflikte gehandhabt?
Über einen klar definierten Eskalationsprozess für das Vertriebsteam statt eines Versuchs, jeden Konflikt vollautomatisch aufzulösen und dabei fachliche Sonderfälle zu übersehen.