Shopify + lexoffice Integration
Shopify-Bestellungen erzeugen in lexoffice Kontakte, Rechnungen und Gutschriften. Übertragen werden Positionen, die Steuersätze aus den tax_lines, Rechnungs- und Lieferadresse, Zahlungsstatus sowie Retouren und Teilerstattungen. Diese Seite beschreibt die Referenzarchitektur: welche Datenobjekte wandern, welche Sonderfälle in der Praxis brechen und welche Entscheidungen vor dem Bau getroffen werden müssen.
Ergebnisse & Vorteile
So funktioniert es
Ereignis aus Shopify entgegennehmen
Der Webhook auf den bezahlten Bestellstatus liefert die Bestellung mit Positionen, tax_lines, Adressen und Transaktionen. Die Webhook-Kennung wird gespeichert, bevor irgendetwas anderes passiert. Shopify stellt Ereignisse mehrfach zu, und ohne diese Sperre erzeugt jede Wiederholung eine zweite Rechnung in lexoffice.
Bestellung neu laden statt der Nutzlast vertrauen
Zwischen Auslösung und Verarbeitung kann die Bestellung storniert, erstattet oder bearbeitet worden sein. Die Verarbeitung liest den aktuellen Stand über die Shopify-API und arbeitet mit diesem. Damit spielt die Reihenfolge der eingehenden Ereignisse keine Rolle mehr, was eine ganze Klasse sporadischer Fehler beseitigt.
Steuer- und Kontenzuordnung anwenden
Jede Position wird über Steuersatz, Lieferland und Kundenart auf eine Steuerregel in lexoffice abgebildet, ebenso Versandkosten und Rabatte. Für jede Kombination, die in der Zuordnungstabelle fehlt, bricht die Verarbeitung ab. Ein geratener Steuerschlüssel kostet später deutlich mehr als ein liegengebliebener Vorgang.
Kontakt suchen oder anlegen
Der Kontakt wird über die gespeicherte Shopify-Referenz gesucht, ersatzweise über die normalisierte E-Mail-Adresse. Abweichende Rechnungs- und Lieferadressen werden getrennt übernommen. Bei einem Treffer wird die Adresse nur dann überschrieben, wenn Shopify vorher als führendes System für Stammdaten festgelegt wurde.
Beleg in lexoffice erzeugen
Rechnung oder Gutschrift wird angelegt, die Belegnummer vergibt lexoffice. Die Shopify-Bestellnummer wird als externe Referenz mitgeschrieben, damit jeder Beleg in beide Richtungen auffindbar bleibt. Anschließend prüft ein Vergleich von Netto-, Steuer- und Bruttosumme, ob Shop und Buchhaltung denselben Betrag zeigen.
Abgleich, Alarmierung und Nachlauf
Ein nächtlicher Lauf vergleicht die an diesem Tag bezahlten Bestellungen mit den erzeugten Belegen und meldet jede Lücke per Slack oder E-Mail an eine benannte Person. Ratenbegrenzungen der lexoffice-API werden mit Wartezeit und Wiederholung abgefangen, nicht mit Überspringen.
Anwendungsfälle
Rechnung aus der bezahlten Bestellung
Auslöser ist nicht die Bestellung selbst, sondern der Wechsel des financial_status auf paid. Aus Positionen, Versandkosten, Rabatten und den tax_lines entsteht eine lexoffice-Rechnung mit denselben Netto-, Steuer- und Bruttobeträgen wie im Shop. Weicht die Summe um Rundungscent ab, wird der Vorgang angehalten statt gebucht.
Kontakte ohne Dubletten
Gastbestellungen liefern keine Kundennummer, nur eine E-Mail-Adresse. Als Schlüssel dient deshalb die normalisierte Adresse plus die am lexoffice-Kontakt hinterlegte Shopify-Referenz. Ohne diese Referenz entstehen bei jedem Gastkauf neue Kontakte, und der Bericht über offene Posten zerfällt in Dutzende Karteileichen desselben Kunden.
Teilerstattungen und Gutschriften
Eine festgeschriebene Rechnung lässt sich in lexoffice nicht mehr ändern. Jede Retoure, jede Teilerstattung und jede nachträgliche Rabattkorrektur wird deshalb als eigene Gutschrift mit der Steueraufteilung der ursprünglichen Positionen abgebildet. Erstattet Shopify nur die Versandkosten, darf die Gutschrift nicht den Steuersatz der Ware verwenden.
Umsatzsteuer über Landesgrenzen
B2C-Lieferungen in andere EU-Staaten laufen über den One-Stop-Shop mit dem Steuersatz des Bestimmungslands, B2B-Lieferungen mit geprüfter USt-IdNr. steuerfrei als innergemeinschaftliche Lieferung. Die Integration übernimmt die Behandlung, die Shopify tatsächlich angewandt hat, und meldet jede Kombination, für die keine Zuordnung hinterlegt ist.
Zahlungsabgleich und Sammelauszahlung
Auf dem Bankkonto erscheint nicht die einzelne Bestellung, sondern eine Sammelauszahlung abzüglich Gebühren. Deshalb wird der Shopify-Payments-Saldo als Verrechnungskonto geführt: Rechnungen gleichen gegen den Saldo aus, die Auszahlung gegen die Bank, die Gebühr als eigener Aufwand.
Fehlerqueue statt stiller Fehlbuchung
Nicht zuordenbare Vorgänge, etwa eine Bestellung mit unbekannter Steuerkombination oder ein wegen Ratenbegrenzung abgewiesener lexoffice-Aufruf, landen mit Klartextgrund in einer Wiedervorlage und werden nach der Korrektur erneut ausgeführt. Nichts wird geraten, und nichts verschwindet unbemerkt zwischen zwei Systemen.
Häufig gestellte Fragen
Was löst die Rechnung aus: die Bestellung oder die Zahlung?
Wie werden Teilerstattungen und Retouren abgebildet?
Was passiert bei doppelt zugestellten Webhooks?
Wie geht die Integration mit OSS und Reverse Charge um?
Wie werden Geschenkgutscheine behandelt?
Was passiert mit den Gebühren von Shopify Payments?
Können bestehende Bestellungen nachträglich importiert werden?
Wie lange dauert die Einrichtung und was kostet sie?
Was passiert, wenn Shopify oder lexoffice nicht erreichbar ist?
Wer führt die Kundenstammdaten?
Wie wird getestet, ohne echte Belege zu erzeugen?
Was leistet die Integration ausdrücklich nicht?
Shopify + lexoffice verbinden?
Wir richten Ihre Integration ein — zugeschnitten auf Ihre Prozesse. Zuerst klären wir in 5 Minuten, ob sich der Prozess überhaupt lohnt.