Case Study
IOI-TECH – POS- und ERP-Integration im Handel
IOI-TECH ist ein Anbieter von Technologiedienstleistungen mit Hauptsitz in Riad, Saudi-Arabien, und einem zweiten Büro in Dschidda. Seit der Gründung 2018 hat das Unternehmen Projekte zur digitalen Transformation in Saudi-Arabien und im weiteren Nahen Osten umgesetzt und betreut Start-ups, KMU und globale Konzerne in mehr als 20 Branchen – von Einzelhandel, Bankwesen und Telekommunikation bis zu Öl & Gas, Gesundheitswesen und öffentlicher Verwaltung.
Das Portfolio reicht von Enterprise Resource Planning (SAP S/4HANA, SAP Business One, Oracle Fusion, Odoo), Personalmanagement, Cloud-Hosting, Web- und Portalentwicklung, Datenanalyse und KI über Cybersicherheit bis zu Mobile-Entwicklung und Vertriebsautomatisierung – zusammen mit den zugehörigen Einführungs-, Schulungs- und Supportleistungen.
ERP ist die Kernkompetenz von IOI-TECH, und die Einzelhandelskunden des Unternehmens betreiben ihr Geschäft auf SAP. Was ihnen fehlte, war eine Commerce- und Point-of-Sale-Ebene, die dieselbe Sprache spricht wie das ERP. IOI-TECH entschied sich für nopCommerce als Grundlage und hat sie gemeinsam mit uns gebaut.
Das Projekt
Die Herausforderung
Die Einzelhandelskunden von IOI-TECH in Saudi-Arabien und im Nahen Osten führen Finanzen, Bestand und Stammdaten in SAP Business One und verkaufen sowohl über einen Onlineshop als auch über stationäre Geschäfte: mehrere Filialen, Kassen und Kassierer, Kassenschubladen, die gezählt und abgestimmt werden müssen, filialbezogene Bestände, verhandelte Preislisten je Kunde und Produkte, die zugleich in mehreren Mengeneinheiten verkauft werden – Stück, Karton, Palette.
Standard-nopCommerce deckt nichts davon ab, und ein separates POS-Produkt an den Webshop zu schrauben hätte das klassische Ergebnis erzeugt: drei Systeme, drei Versionen der Wahrheit und Mitarbeiter, die Produkte, Kunden und Bestellungen zwischen Verkaufsfläche, Website und ERP erneut eintippen.
Die Lösung
Wir haben eine Suite aus acht integrierten nopCommerce-4.50-Plugins auf .NET 6 entworfen und gebaut, die eine Standardinstallation von nopCommerce in eine vollständige Omnichannel-Handelsplattform verwandelt, die direkt an SAP Business One angebunden ist. Die gesamte Geschäftslogik liegt im Shop-Backend; die POS-Terminals sprechen über eine eigene REST-API-Schicht mit ihm, und der Shop spricht über die Service Layer mit SAP. Ein an der Kasse gebuchter Verkauf, eine auf der Website aufgegebene Bestellung und ein im ERP gebuchter Beleg beschreiben denselben Vorgang. Alles wird als Plugin ausgeliefert – der nopCommerce-Kern wird nie geforkt, sodass der Kunde auf dem Upgrade-Pfad bleibt.
Integration mit SAP Business One
Das Integrationsmodul verbindet nopCommerce über einen eigens entwickelten authentifizierten HTTP-Client mit der SAP Business One Service Layer und deckt Geschäftspartner und Partnergruppen, Artikel und Artikelgruppen, Bestellungen, Rechnungen, Lieferscheine, Gutschriften, Zahlungseingänge, Preislisten, Lager, Steuergruppen, Währungen, Kostenstellen, Dimensionen, Verkäufer und Belegnummernkreise ab.
- Bidirektional, je Entität steuerbar. Produkte, Kunden, Lieferanten, Bestellungen, Lieferungen und Steuergruppen haben jeweils einen eigenen Sync-Schalter und eine eigene Richtung – SAP zu nopCommerce, nopCommerce zu SAP oder beides –, sodass jeder Kunde entscheidet, welches System welche Daten besitzt.
- Echtzeit plus geplant. Ein Event-Consumer schiebt Änderungen in dem Moment zu SAP, in dem sie geschehen – Bestellung aufgegeben, bezahlt, storniert oder erstattet, Sendung zugestellt, Produkt, Kunde oder Lieferant angelegt, geändert oder gelöscht –, während eine geplante Aufgabe den periodischen vollständigen Abgleich ausführt.
- Zuordnung statt Hardcoding. Im Admin gepflegte Zuordnungen verbinden nopCommerce-Kategorien, Kundenrollen, Lieferantenrollen, Steuerkategorien und Lager mit ihren SAP-Gegenstücken, wobei Geschäftspartner-Kartencodes und Kundendimensionen je Datensatz gepflegt werden. Bestellungen können automatisch nach SAP gebucht oder manuell freigegeben werden, und die Belegnummerierung folgt den SAP-Nummernkreisen des Kunden.
- Im Betrieb bedienbar. Jeder Austausch wird protokolliert und ist über ein Admin-Grid durchsuchbar, mit automatischer Aufbewahrungsbereinigung, sodass ein fehlgeschlagener Beleg im Shop-Backend statt im ERP diagnostiziert wird.
Retail- und POS-Module
- Point Of Sale – das zentrale Retail-Modul. Filialen und Filial-Produktzuordnungen, POS-Geräte und Gerätetypen, Kassen mit Öffnungs-/Schließ- und Kassenzählungs-Workflow, Kassenschubladenbewegungen mit konfigurierbaren Gründen, Handhabung des Geschäftsdatums, Barcode-Suche, Abholpunkte im Geschäft, eine tokenbasierte Bondruck-Engine mit QR-Codes, Lizenzschlüsselaktivierung je Gerät und ein eigener POS-Berechtigungssatz mit geräte- und kassiererbezogener API-Sicherheit.
- Inventory – Bestandsumlagerungen zwischen Filialen und Lagern, damit der Filialbestand bei Warenbewegungen korrekt bleibt.
- Price List – mehrere Preislisten mit produktbezogenen Werten, einzelnen Kunden zugeordnet und über die API bereitgestellt, für Großhandels- und verhandelte B2B-Preise neben dem Einzelhandelspreis.
- Product Unit Conversion – Einheitendimensionen und produktbezogene Umrechnungsfaktoren, über die verbundenen Systeme synchronisiert, sodass dasselbe Produkt in unterschiedlichen Einheiten bestellt, kommissioniert und verkauft werden kann.
- Split Payment – eine einzelne Bestellung, die mit mehreren Zahlungsarten zugleich beglichen wird, wobei jede Transaktion für den Tagesabschluss separat erfasst wird.
- Pay In Cash – Barzahlung an der Kasse, eingebunden in den Kassen- und Schubladen-Workflow.
- Delivery Shipping – Versandkosten nach Gewicht und Bestellwert für Waren, die im Geschäft verkauft, aber an den Kunden geliefert werden.
Technisches Vorgehen
- Saubere Plugin-Architektur – Domänenentitäten, Services, Factories und DTOs je Modul getrennt; FluentMigrator-Migrationen für das Schema, sodass Installation und Upgrades wiederholbar sind.
- Admin-Oberfläche mit nativen nopCommerce-Razor-Views und View-Komponenten gebaut, sodass Shop-Manager in der Oberfläche arbeiten, die sie bereits kennen.
- Eine REST-API-Schicht für die POS-Terminal-App, abgesichert mit Token-Authentifizierung sowie eigenen Autorisierungsattributen, die jede Anfrage auf ein lizenziertes Gerät und einen authentifizierten Kassierer begrenzen.
- Modulare Auslieferung: Jedes Plugin installiert sich eigenständig, und die Suite fügt sich zu einer vollständigen Lösung zusammen, sodass ein Kunde mit Webshop und ERP-Anbindung starten und die POS-Ebene später ergänzen kann.
Das Ergebnis
IOI-TECH verfügt jetzt über eine wiederholbare Handelsplattform, die es je Kunde konfiguriert, statt sie jedes Mal maßgeschneidert zu bauen. Geschäft, Web und ERP teilen sich einen Katalog, einen Bestandswert und eine Kundenhistorie; Bestellungen und Zahlungen erreichen SAP, ohne dass sie jemand erneut eintippt; Kassierer öffnen und schließen Kassen mit einer lückenlosen Nachvollziehbarkeit jeder Schubladenbewegung; und B2B-Kunden werden mit eigenen Preislisten und Mengeneinheiten bedient – alles innerhalb einer nopCommerce-Installation, die sich weiterhin aktualisieren lässt.
Technologien
.NET
C#- ASP.NET Core MVC
- nopCommerce 4.50
Entity Framework Core- LinqToDB
SQL Server- FluentMigrator
- AutoMapper
- Razor Views
REST API- JWT
- FluentValidation
- QRCoder