Eine maßgeschneiderte Integrationsschicht aus zwei Plugins, die nopCommerce mit Powerall verbindet, der niederländischen All-in-one-Businessplattform, die Werkstatt, Lager, Planung, Verwaltung und Vertrieb für mehr als 6.000 Nutzer in einem System zusammenführt. Entwickelt für On-Site BV, einen nopCommerce-Lösungspartner aus Rotterdam mit Spezialisierung auf komplexen B2B-Handel, erlaubt die Integration dessen Kunden, einen nopCommerce-Shop auf Powerall als einziger Datenquelle zu betreiben – ohne dass jemand den Katalog doppelt pflegt.
Die Herausforderung
Powerall hält die Produktdaten, und zwar in ERP-Form: Gruppeneigenschaftsdateien, technische Eigenschaften, Varianten und Länderdatensätze, die nie für einen Webshop modelliert wurden. Ein generischer Import würde all das entweder in unbrauchbare Textfelder pressen oder einen Entwickler zwingen, für jede neue Produktgruppe ein Mapping von Hand zu programmieren. On-Site brauchte etwas, das die eigenen Berater pro Kunde konfigurieren können, kein einmaliges Skript.
Eine Architektur aus zwei Plugins
Wir haben die Arbeit an einer klaren Trennlinie aufgeteilt, sodass sich jede Seite eigenständig weiterentwickeln und ausrollen lässt:
- Nop.Plugin.Misc.Powerall.Import – die Mapping- und Datenaufbereitungsschicht, die Powerall-Exporte in einen ordentlichen nopCommerce-Katalog überführt
- Nop.Plugin.Misc.Powerall.Integration – die Live-Verbindung, die beide Systeme im Gleichlauf hält und Bestellungen zurückspielt
Beide folgen der Standard-Plugin-Architektur von nopCommerce – Domänenentitäten mit eigener Datenschicht und Migrationen, Services, Model-Factories, View-Komponenten und Admin-Views –, sodass nichts in den Kern durchsickert und Updates Routine bleiben.
Powerall.Import: verhaltensgesteuertes Mapping
Statt einer festen Feldzuordnung ist das Import-Plugin um konfigurierbare Import Behaviours herum gebaut: wiederverwendbare Regeln, die beschreiben, wie ein Stück Powerall-Daten in nopCommerce landen soll.
- Product Property Behaviours entscheiden je Eigenschaft, ob ein Powerall-Wert zu einem Spezifikationsattribut, zu einem Produktattribut mit Variantensteuerung oder zu einfachem Produktinhalt wird
- Die Kategorie-Metadaten werden aus der Gruppeneigenschaftsdatei abgeleitet, sodass Kategoriestruktur und SEO-Metadaten aus den ERP-Daten stammen, statt von Hand neu erfasst zu werden
- Spezifikationen und Varianten werden gemeinsam gemappt, sodass technische Daten auf der Katalogseite filterbar bleiben und kaufbare Kombinationen auf der Produktseite korrekt sind
- Ein eigenes Behaviours-Menü im Admin stellt die Regeln als Karten dar, sodass ein Berater – nicht ein Entwickler – das Mapping konfiguriert
- Die Daten werden vor dem Import validiert, und jede Einstellung wird mit lokalisierten Sprachressourcen und Beschreibungen direkt im Formular ausgeliefert
Powerall.Integration: beide Systeme im Gleichlauf halten
- Erstsynchronisation, um einen neuen Shop in einem Durchgang vollständig mit Powerall abzugleichen
- Geplanter Synchronisationstask mit Filterlogik, sodass wiederkehrende Läufe nur die tatsächlich infrage kommenden Produkte anfassen, statt den gesamten Katalog zu durchlaufen
- Ereignisgesteuerte Synchronisation, eingeklinkt in nopCommerce-Events, für Änderungen, die nicht bis zum nächsten geplanten Lauf warten können
- Rücksynchronisation der Bestellungen an Powerall, inklusive einer manuellen Sync-Schaltfläche im Admin für einzelne Bestellungen, die einen Anstoß brauchen
- Ländermapping zwischen den Länderdatensätzen aus Powerall und den nopCommerce-Ländern, mit defensivem Umgang mit unvollständigen ERP-Daten
- Ein vollständiger Deinstallationspfad, der Einstellungen, Schema und Tasks sauber entfernt – wichtig für eine Integration, die über mehrere Kundenshops ausgerollt wird
Admin-Erlebnis & Nachvollziehbarkeit
Beide Plugins ergänzen den nopCommerce-Admin um eigene Menüeinträge und Konfigurationsseiten. Die Integration schreibt ein detailliertes Sync-Log mit eigenen Log-Ansichten, sodass die Antwort einen Klick entfernt ist statt ein Support-Ticket und eine Server-Sitzung, wenn eine Bestellung oder ein Produkt nicht dort auftaucht, wo es soll.
Technische Basis
Entwickelt für nopCommerce 4.80 auf ASP.NET Core, ausgeliefert als zwei unabhängige Plugins mit eigenen Einstellungen, Standardwerten, Migrationen und Lokalisierung. Das Ergebnis ist wiederverwendbar: On-Site kann dieselbe Integration bei jedem Kunden einsetzen, der Powerall nutzt, und sie pro Shop über den Admin konfigurieren, statt den Code zu forken.
Das Ergebnis
Eine produktive Integration, die On-Site BV eine wiederholbare Antwort auf die Frage „Können Sie unseren Webshop an Powerall anbinden?“ gibt – ERP-eigene Produktdaten kommen als sauber strukturierter, filterbarer nopCommerce-Katalog an, Bestellungen fließen automatisch zurück, und das gesamte Mapping ist von einem Berater konfigurierbar, statt für jeden Rollout im Code neu gebaut zu werden.