Case study
Powerall – ERP-integratie met nopCommerce
On-Site BV is een in Rotterdam gevestigd digital agency en nopCommerce-solutionpartner, gespecialiseerd in complexe B2B-commerce en diepgaande ERP-integraties voor groothandels, fabrikanten en enterprises in heel Nederland.
Het project
Een custom integratielaag van twee plugins die nopCommerce koppelt aan Powerall, het Nederlandse alles-in-één bedrijfsplatform dat werkplaats, magazijn, planning, administratie en verkoop samenbrengt in één systeem voor meer dan 6.000 gebruikers. Gebouwd voor On-Site BV, een in Rotterdam gevestigde nopCommerce-solutionpartner die gespecialiseerd is in complexe B2B-commerce, stelt de integratie hun klanten in staat een nopCommerce-webwinkel te draaien bovenop Powerall als de single source of truth - zonder dat iemand de catalogus twee keer bijhoudt.
De uitdaging
Powerall is eigenaar van de productdata, en wel in ERP-vorm: groepseigenschapsbestanden, technische eigenschappen, varianten en landregistraties die nooit voor een webshop zijn gemodelleerd. Een generieke import zou dat alles ofwel platslaan tot onbruikbare tekstvelden, ofwel een ontwikkelaar dwingen voor elke nieuwe productgroep met de hand een mapping te schrijven. On-Site had iets nodig dat hun consultants per klant konden configureren, geen eenmalig script.
Een architectuur met twee plugins
We hebben het werk langs een duidelijke scheidslijn opgesplitst, zodat elke kant zich apart kan ontwikkelen en apart uitgerold kan worden:
- Nop.Plugin.Misc.Powerall.Import - de mapping- en datamodelleringslaag die Powerall-exports omzet in een volwaardige nopCommerce-catalogus
- Nop.Plugin.Misc.Powerall.Integration - de live verbinding die beide systemen gelijk houdt en orders terugstuurt
Beide volgen de standaard nopCommerce-pluginarchitectuur - domeinentiteiten met een eigen datalaag en migraties, services, model factories, view components en adminweergaven - zodat er niets in de core lekt en upgrades routine blijven.
Powerall.Import: gedragsgestuurde mapping
In plaats van een vaste veldmapping is de importplugin opgebouwd rond configureerbare Import Behaviours: herbruikbare regels die beschrijven hoe een stuk Powerall-data in nopCommerce moet landen.
- Product Property Behaviours bepalen per eigenschap of een Powerall-waarde een specificatie-attribuut wordt, een productattribuut dat varianten aanstuurt, of gewone productcontent
- Categoriemetadata worden afgeleid uit het groepseigenschapsbestand, zodat categoriestructuur en SEO-metadata uit de ERP-data komen in plaats van met de hand te worden overgetypt
- Specificaties en varianten worden samen gemapt, waardoor technische data filterbaar blijven op de cataloguspagina en koopbare combinaties correct blijven op de productpagina
- Een apart Behaviours-menu in de admin presenteert de regels als kaarten, zodat een consultant - en niet een ontwikkelaar - de mapping configureert
- Data worden gevalideerd voordat de import draait, en elke instelling wordt geleverd met gelokaliseerde stringresources en inline beschrijvingen
Powerall.Integration: beide systemen gelijk houden
- Initiële synchronisatie om een nieuwe winkel in één keer volledig in lijn te brengen met Powerall
- Geplande synchronisatietaak met filterlogica, zodat terugkerende runs alleen de producten raken die daadwerkelijk in aanmerking komen in plaats van de hele catalogus te doorlopen
- Event-gestuurde synchronisatie die inhaakt op nopCommerce-events, voor wijzigingen die niet op de volgende geplande run kunnen wachten
- Ordersynchronisatie terug naar Powerall, inclusief een handmatige synchronisatieknop in de admin voor losse orders die een zetje nodig hebben
- Landmapping tussen de landregistraties van Powerall en de landen in nopCommerce, met defensieve afhandeling van onvolledige ERP-data
- Een volledig deïnstallatiepad dat instellingen, schema en taken netjes verwijdert - belangrijk voor een integratie die over meerdere klantwinkels wordt uitgerold
Adminervaring & observability
Beide plugins voegen hun eigen menu-items en configuratieschermen toe aan de nopCommerce-admin. De integratie schrijft een gedetailleerd synchronisatielog met eigen logweergaven, zodat wanneer een order of product niet verschijnt waar het hoort, het antwoord één klik verderop ligt in plaats van een supportticket en een serversessie.
Technische basis
Gebouwd voor nopCommerce 4.80 op ASP.NET Core, verpakt als twee onafhankelijke plugins met eigen instellingen, standaardwaarden, migraties en lokalisatie. Het resultaat is herbruikbaar: On-Site kan dezelfde integratie uitrollen voor elke klant die Powerall draait, en die per winkel via de admin configureren in plaats van de code te forken.
Het resultaat
Een productie-integratie die On-Site BV een herhaalbaar antwoord geeft op “kunnen jullie onze webshop koppelen aan Powerall?” - ERP-eigen productdata die binnenkomen als een goed gestructureerde, filterbare nopCommerce-catalogus, orders die automatisch teruglopen, en een mapping die volledig door een consultant te configureren is in plaats van bij elke uitrol in code te worden herbouwd.
Technologieën
nopCommerce
ASP.NET Core- Powerall ERP
- Custom nopCommerce plugins
- Scheduled tasks
- Event consumers