Eine Shopify-ERP-Integration hält Ihren Shop und Ihr Backoffice auf demselben Stand: Das ERP kennt jede Bestellung, und der Shop zeigt die Bestände und Preise, die im ERP hinterlegt sind. Dieser Leitfaden erklärt, was synchronisiert werden muss, welches System welchen Datensatz führen sollte, auf welchen drei Wegen sich die beiden Systeme verbinden lassen, wo Integrationen üblicherweise scheitern und was Sie vor dem Go-live prüfen sollten. Er gilt für jedes ERP. Für NetSuite und Microsoft Dynamics 365 Business Central haben wir eigene Leitfäden.
Die Kurzfassung
- Wenn Ihr ERP-Hersteller einen Shopify-Konnektor anbietet und Ihr Prozess dem Standard entspricht, beginnen Sie mit dem Konnektor.
- Wenn Sie mehrere Systeme verbinden müssen oder Zuordnungen brauchen, die der Konnektor nicht bietet, nutzen Sie eine Integrationsplattform (Middleware).
- Wenn Ihr Bestellablauf, Ihre Preisgestaltung oder Ihr Fulfillment ungewöhnlich ist oder die Volumina hoch sind, entwickeln Sie eine individuelle Integration auf Basis von Shopifys GraphQL Admin API und Webhooks.
Welchen Weg Sie auch wählen, das Projekt steht und fällt mit einer Entscheidung, die vor der Wahl des Werkzeugs getroffen wird: Welches System führt welche Daten?
Was eine Shopify-ERP-Integration synchronisiert
Sechs Datenflüsse decken fast jedes Projekt ab.
| Datenfluss | Übliche Richtung | Typischer Auslöser |
|---|---|---|
| Produkte und Varianten | ERP → Shopify | Zeitgesteuert oder wenn sich ein Artikel ändert |
| Bestand pro Standort | ERP → Shopify | Nahezu in Echtzeit für Schnelldreher, zeitgesteuert für den Rest |
| Preise und B2B-Preislisten | ERP → Shopify | Zeitgesteuert oder bei Preisänderung |
| Bestellungen und Kunden | Shopify → ERP | Webhook, wenn eine Bestellung angelegt oder bezahlt wird |
| Fulfillments und Sendungsverfolgung | ERP oder Lager → Shopify | Wenn eine Sendung bestätigt wird |
| Erstattungen, Retouren und Auszahlungen | Shopify → ERP | Webhook für Erstattungen, zeitgesteuert für Auszahlungen |
Nicht jeder Shop braucht vom ersten Tag an alle sechs. Bestellungen ins ERP und Bestände zurück in den Shop sind die beiden Flüsse, die am meisten manuelle Arbeit ersparen.
Zuerst klären, wer die Daten führt
Die meisten Integrationsfehler entstehen, weil zwei Systeme dasselbe Feld bearbeiten. Stimmen Sie mit Finanzen und Operations ab, welches System welchen Datensatz führt, und halten Sie das schriftlich fest.
| Daten | Führendes System | Darauf achten |
|---|---|---|
| SKU, Einstandspreis, Steuerklasse, Gewicht | ERP | Leere oder doppelte SKUs in Shopify |
| Titel, Beschreibungen, Bilder, SEO-Felder | Shopify | Die ERP-Synchronisierung überschreibt Shop-Inhalte |
| Bestände | ERP oder Lagerverwaltungssystem | Zuordnung der Standorte und für andere Kanäle reservierter Bestand |
| Preise | ERP | Vergleichspreise, Marktpreise und B2B-Kataloge |
| Bestellungen | Shopify | Rabatte, Steuern und Versandpositionen auf die richtigen Konten gebucht |
| Fulfillment-Status | Wer versendet | Geteilte Sendungen und Teillieferungen |
| Erstattungen | Ein Ursprung pro Fall | Erstattungsschleifen zwischen den beiden Systemen |
Die SKU ist in der Regel der Schlüssel, der eine Shopify-Variante mit einem ERP-Artikel verknüpft. Prüfen Sie die SKUs, bevor Sie beginnen: Leere Felder, Dubletten, Leerzeichen am Ende und unterschiedliche Groß- und Kleinschreibung verursachen die meisten fehlgeschlagenen Bestellimporte.
Drei Wege, Shopify an ein ERP anzubinden
| Hersteller-Konnektor | Integrationsplattform | Individuelle Integration | |
|---|---|---|---|
| Was es ist | Eine App vom ERP-Hersteller oder einem Partner | Ein gehostetes Tool mit vorgefertigten Shopify- und ERP-Schritten, die Sie konfigurieren | Ihr eigener Dienst, der Shopifys APIs und die API des ERP nutzt |
| Am besten für | Standard-Order-to-Cash mit einem Shop | Mehrere Systeme oder Zuordnungen, die einem Konnektor fehlen | Ungewöhnliche Prozesse, hohes Volumen, strikte Kontrolle |
| Einrichtungsaufwand | Am geringsten | Mittel | Am höchsten |
| Flexibilität | Auf die Einstellungen des Konnektors begrenzt | Gut, innerhalb der Bausteine der Plattform | Vollständig |
| Wer es pflegt | Der Hersteller | Sie oder ein Partner, auf der Plattform | Sie oder ein Partner |
| Hauptrisiko | Sie wachsen darüber hinaus | Die Abokosten steigen mit Volumen und Datenflüssen | Sie braucht Monitoring und einen Verantwortlichen |
Beispiele für Hersteller-Konnektoren sind Microsofts Shopify Connector für Business Central und der NetSuite Connector von Oracle. Prüfen Sie bei anderen ERPs, ob der Hersteller oder ein zertifizierter Partner einen Konnektor anbietet, und lesen Sie nach, was er nicht synchronisiert, bevor Sie sich festlegen.
Wann ein Konnektor ausreicht
Ein Shop, eine Währung oder ein einfaches Markets-Setup, Standardprodukte und ein Bestellablauf, der dem entspricht, was der Konnektor erwartet. Testen Sie ihn mit Ihren echten Sonderfällen: Bundles, Geschenkkarten, Teilerstattungen, B2B-Bestellungen und Vorbestellungen.
Wann Middleware passt
Sie müssen zusätzlich ein Lagerverwaltungssystem, einen Marktplatz oder ein CRM anbinden, oder Sie brauchen Regeln wie „Bestellungen aus diesem Markt an jene Tochtergesellschaft leiten“. Die Plattform übernimmt Wiederholungsversuche und Protokollierung, und Ihr Team kann Zuordnungen ohne Entwickler ändern.
Wann eine individuelle Lösung sinnvoll ist
- Der Bestellablauf enthält Schritte, die kein Konnektor abbildet, etwa Auftragsfertigung, Anzahlungen oder ein auf mehrere Lieferanten verteiltes Fulfillment.
- Sie verkaufen B2B über Shopify mit unternehmensspezifischen Preislisten und Zahlungsbedingungen, die im ERP liegen.
- Das Volumen ist so hoch, dass zeitgesteuerte Batch-Synchronisierungen zu Überverkäufen führen.
- Sie betreiben mehrere Shops an einem ERP und brauchen eine Stelle, die entscheidet, was wohin geht.
- Sie wollen die Integration in Ihrem eigenen Repository, mit eigenen Tests und eigenem Monitoring.
So funktioniert eine individuelle Integration
Eine zuverlässige individuelle Integration folgt unabhängig vom ERP demselben Muster.
- Empfangen. Shopify sendet einen Webhook, wenn eine Bestellung angelegt wird. Der Empfänger prüft die Signatur, speichert das Ereignis und antwortet schnell.
- Einreihen. Ein Hintergrund-Worker holt das gespeicherte Ereignis ab. Die Verarbeitung findet nie innerhalb der Webhook-Anfrage statt.
- Zuordnen. Der Worker überführt die Shopify-Bestellung in das Verkaufsauftragsformat des ERP: Artikel per SKU, Steuern, Rabatte, Versand, Kunde und Zahlung.
- Einmal senden. Der Worker legt den Auftrag im ERP mit einer externen ID an, sodass ein Wiederholungsversuch kein Duplikat erzeugen kann.
- Abgleichen. Ein zeitgesteuerter Job fragt bei Shopify die letzten Bestellungen ab und vergleicht sie mit dem Stand im ERP, weil die Zustellung von Webhooks nicht garantiert ist.
- Zurückschreiben. Bestände, Preise, Fulfillments und Sendungsverfolgung fließen über die GraphQL Admin API vom ERP zu Shopify.
In Schritt 4 werden Duplikate verhindert. So sieht das in Node.js aus, wobei db und erp für Ihre eigene Datenbank und Ihren ERP-Client stehen:
```js
// Überträgt eine Shopify-Bestellung an das ERP, gefahrlos wiederholbar.
export async function syncOrder(order, { db, erp }) {
const key = shopify-order-${order.id};
const log = await db.syncLog.find(key);
if (log?.status === "done") return log.erpId; // bereits synchronisiert
// Das ERP speichert den Schlüssel, ein zweiter Versuch liefert also denselben Datensatz.
const erpId = log?.erpId ?? (await erp.createSalesOrder(mapOrder(order), { externalId: key }));
await db.syncLog.upsert(key, { status: "done", erpId, syncedAt: new Date() });
return erpId;
}
function mapOrder(order) {
return {
customerEmail: order.email,
currency: order.currency,
lines: order.line_items.map((line) => ({
sku: line.sku,
quantity: line.quantity,
unitPrice: line.price,
})),
};
}
```
Drei Eigenschaften von Shopify prägen das Design:
- Webhooks brauchen ein Sicherheitsnetz. Laut Shopifys Dokumentation sind Zustellung und Reihenfolge nicht garantiert, und Duplikate können vorkommen. Unser Leitfaden zu zuverlässigen Shopify-Webhooks enthält den vollständigen Handler.
- Nutzen Sie GraphQL. Die REST Admin API ist eine Legacy-API, und neue Arbeit gehört auf die GraphQL Admin API. Wenn Sie eine ältere Integration haben, lesen Sie unseren Leitfaden zur Migration von REST zu GraphQL.
- Planen Sie Limits ein. Die GraphQL Admin API begrenzt Anfragen anhand der berechneten Abfragekosten. Nutzen Sie Bulk Operations für große Exporte wie einen vollständigen Katalog oder einen Bestandsabgleich.
Wo Shopify-ERP-Integrationen scheitern
- Abweichende SKUs. Bestellungen lassen sich nicht importieren oder werden auf den falschen Artikel gebucht.
- Überverkäufe. Der Bestand wird nach Zeitplan synchronisiert, während Bestellungen laufend eingehen. Verkürzen Sie das Intervall für Schnelldreher, oder reservieren Sie den Bestand im ERP, sobald die Bestellung eingeht.
- Zuordnung von Steuern und Rabatten. Die Bestellsummen weichen zwischen den Systemen um kleine Beträge ab. Legen Sie fest, wie Rabatte, Versand und Bruttopreise pro Position aufgeteilt werden.
- Erstattungen und Umtausch. Jedes System stößt eine Erstattung an, und beide verbuchen sie. Legen Sie pro Fall einen Ursprung fest.
- Bundles und Sets. Ein Bundle, das in Shopify als eine Position verkauft wird, muss im ERP in seine Komponenten aufgelöst werden.
- Mehrere Standorte und Währungen. Shopify-Standorte und -Märkte brauchen eine ausdrückliche Zuordnung zu Lagern, Tochtergesellschaften und Währungen im ERP.
- Stille Fehler. Eine fehlgeschlagene Synchronisierung, die niemand sieht, ist schlimmer als ein sichtbarer Fehler. Jeder Fehler muss eine Person erreichen.
Go-live-Checkliste
- Die Tabelle zur Datenhoheit ist von Finanzen und Operations freigegeben.
- Die SKUs sind geprüft: keine leer, keine doppelt.
- Jeder Bestelltyp wurde durchgängig getestet: Standard, rabattiert, Geschenkkarte, Teilerstattung, Umtausch, B2B und Vorbestellung.
- Der Bestand stimmt pro Standort nach einer vollständigen Synchronisierung sowie nach einer Bestellung und einer Retoure.
- Ein wiederholter Webhook oder ein erneut ausgeführter Job erzeugt keinen zweiten Auftrag im ERP.
- Ein Abgleichsjob läuft nach Zeitplan und meldet Abweichungen.
- Fehlgeschlagene Synchronisierungen lösen eine Benachrichtigung mit Bestellnummer und Grund aus.
- API-Zugangsdaten sind auf das beschränkt, was die Integration braucht, und liegen außerhalb des Codes.
- Eine einzelne Bestellung lässt sich von Hand erneut senden.
- Historische Bestellungen sind entweder importiert oder bewusst ausgelassen, und die Finanzabteilung weiß, was gilt.
- Nach dem Launch ist jemand für die Integration verantwortlich.
Wann Sie keine Eigenentwicklung brauchen
Wenn ein Hersteller-Konnektor Ihren Bestellablauf abdeckt und Sie über einen Shop verkaufen, nutzen Sie ihn. Eine individuelle Integration ist ihren Pflegeaufwand nur wert, wenn die Grenzen des Konnektors Sie echte Zeit kosten oder echte Bestandsfehler verursachen.
Brauchen Sie Unterstützung bei einer Shopify-ERP-Integration?
Wir entwickeln und reparieren Shopify-Integrationen mit ERP-, Lager- und Buchhaltungssystemen, und wir konfigurieren Hersteller-Konnektoren, wenn sie die bessere Wahl sind. Senden Sie uns Ihr ERP, Ihr Bestellvolumen und die benötigten Datenflüsse über unsere Seite zu Shopify-API-Integrationen. Wenn die Integration Teil eines Plattformwechsels ist, lesen Sie mehr zur Shopify-Migration.
Quellen
- Shopify: GraphQL Admin API reference
- Shopify: REST Admin API (legacy status)
- Shopify: About webhooks
- Shopify: API limits
- Shopify: Bulk query operations
- Shopify: API versioning
- Shopify Help Center: B2B on Shopify
- Microsoft Learn: Get started with the Shopify Connector
- Shopify App Store: NetSuite ERP Connector by Oracle NetSuite


