Naar de inhoud
SyncMyShop

Maatwerk

Maatwerk koppeling laten maken: precies de regels die jouw bedrijf hanteert

Een order die over twee magazijnen wordt verdeeld, een prijs per debiteur, een toeslag die op de factuur moet komen. Wij bouwen de koppeling op jouw systemen en jouw regels, en draaien en bewaken hem daarna.

Waar standaardkoppelingen technisch ophouden

Een standaardkoppeling zet een vaste set velden in een vaste richting over tussen twee pakketten. Dat werkt zolang je bedrijf past op de aannames van de maker. Maatwerk begint bij de eerste aanname die niet klopt. Welke aannames dat zijn, staat in de documentatie van standaardkoppelingen en koppelplatformen zelf:

Onderdeel Wat een standaardkoppeling doet Wat jouw regel vraagt
Richting één richting per stroom, gekozen bij het instellen afleveradres leidend in de webshop, kredietlimiet leidend in het ERP
Prijzen één prijs per klantgroep een nettoprijs per debiteur, met een staffel vanaf 50 stuks
Voorraad één magazijn, of alle locaties opgeteld magazijn 100 plus winkel 10 is voor de webshop 100, geen 110
Eigen velden vrije velden worden niet uitgelezen de verwachte leverdatum staat in een vrij veld bij het artikel
Tempo een vaste ronde, bijvoorbeeld 10 producten per 5 minuten 1.000 producten zijn 100 rondes van 5 minuten: ruim 8 uur

Op vier punten komt een standaardkoppeling niet verder:

  • Er is geen handleiding. De leverancier van je pakket heeft geen documentatie van de API of van de export. Het werk begint dan met uitzoeken welke tabellen en velden er zijn en wat erin staat.
  • De artikelen komen eruit, de afspraken niet. Artikel, prijs en voorraad zitten in de API. De korting per klant, de betaalconditie en het assortiment per klant staan in schermen waar de API niet bij komt.
  • Er moet onderweg iets beslist worden. Een order verdelen over twee magazijnen op basis van wat er vandaag ligt. Een toeslag van de vervoerder op de factuur zetten.
  • Het volume groeit. Een koppelplatform rekent per stroom of per bericht. 120 orders per dag zijn 3.600 orders per maand. Gaat elke order door drie stromen, order, status en factuur, dan zijn het 10.800 berichten per maand.

Wat alle koppelingen gemeen hebben, van limieten tot de wachtrij, staat op het overzicht van koppelingen. Deze pagina gaat over het deel dat alleen voor jouw bedrijf geldt.

Een beslissing onderweg: één order, twee magazijnen

Order 20418 van Bakker Installatie B.V. bevat 40 stuks van artikel 10482. In magazijn Zwolle liggen 25 stuks vrij, in magazijn Venlo 30. Geen van de twee kan de order alleen leveren. Samen hebben ze 55 stuks.

De regel van dit bedrijf heeft drie delen:

  1. Lever eerst uit het magazijn dat bij de postcode van het afleveradres hoort. Postcode 8011 valt onder Zwolle.
  2. Vul het tekort aan uit het andere magazijn.
  3. Splits niet voor minder dan 5 stuks. Is het tekort kleiner, dan gaat de hele regel uit het magazijn dat hem alleen kan leveren.

De uitkomst: 25 stuks uit Zwolle en 40 min 25 is 15 stuks uit Venlo. Zwolle staat daarna op 0 vrij, Venlo op 30 min 15 is 15.

Order 20418 verdeeld over magazijn Zwolle en magazijn Venlo De webshop stuurt order 20418 met 40 stuks van artikel 10482 naar de koppeling. De verdeelregel stuurt 25 stuks naar magazijn Zwolle en 15 stuks naar magazijn Venlo. Het ERP krijgt een verkooporder met twee leveringen en een toeslagregel van 15 euro. Webshop order 20418 Koppeling verdeelregel Magazijn Zwolle 25 vrij, wordt 0 Magazijn Venlo 30 vrij, wordt 15 ERP factuur € 623,15 40 x 10482 25 stuks 15 stuks 2 leveringen, toeslag € 15,00 Regel: eerst het magazijn bij de postcode van het afleveradres (8011, Zwolle), het tekort uit het andere magazijn, niet splitsen voor minder dan 5 stuks.
Order 20418: 40 stuks, verdeeld als 25 uit Zwolle en 15 uit Venlo. De toeslag voor de tweede zending komt als eigen regel op de factuur.

Twee magazijnen zijn twee zendingen. De vervoerder rekent voor de tweede zending een toeslag van € 15,00. Die toeslag hoort op de factuur, als eigen regel met een eigen btw-code en grootboekrekening. De som: 40 keer € 12,50 is € 500,00, plus € 15,00 toeslag is € 515,00 exclusief btw. 21% btw is € 108,15. Het factuurtotaal is € 623,15.

Dit is wat de koppeling naar het ERP stuurt:

{
  "order": "20418",
  "debiteur": "10432",
  "leveringen": [
    { "magazijn": "ZWO", "artikel": "10482", "aantal": 25 },
    { "magazijn": "VEN", "artikel": "10482", "aantal": 15 }
  ],
  "extra_regels": [
    { "omschrijving": "Toeslag tweede zending", "bedrag": 15.00, "btw": 21 }
  ]
}

Een standaardkoppeling boekt deze order op één magazijn. Het ERP meldt dan een tekort van 15 stuks, of het boekt de voorraad in Zwolle naar min 15 en de webshop verkoopt door op een voorraad die er niet ligt. De toeslag komt niet op de factuur en gaat van de marge af.

Zo'n regel verandert met je bedrijf: een derde magazijn, een drempel van 10 in plaats van 5, een klant die altijd in één zending geleverd wil worden. Hoe voorraad per locatie telt staat bij meerdere magazijnen. Wat de klant van twee zendingen ziet staat bij deelleveringen en track-and-trace.

Als er een API is, waarom is het dan nog werk?

Een API geeft toegang tot gegevens. Wat de twee systemen met elkaar moeten afspreken, regelt hij niet. Zes dingen komen in bijna elke koppeling terug:

Wat je tegenkomt Voorbeeld Wat de koppeling doet
Een limiet Exact Online: 60 aanroepen per minuut en 5.000 per dag, per administratie alleen wijzigingen ophalen, in pagina's van 1.000 records, via een wachtrij
Geen signaal bij een wijziging een voorraadmutatie past de wijzigingsdatum van het artikel niet aan de vorige stand bewaren en zelf het verschil bepalen
Geen gedeelde sleutel de webshop kent een klant op e-mailadres, het ERP op debiteurnummer een vaste matchvolgorde en een vertaaltabel die iemand beheert
Een veld dat ontbreekt de staffelkorting per klant zit niet in de API de prijslijst als export ophalen en samenvoegen
Een piekdag tien keer zoveel orders als normaal de wachtrij spreidt de aanroepen over de minuut en over de dag
Een wijziging bij de leverancier een API-versie vervalt, gemeld in een nieuwsbrief changelogs volgen en de koppeling op tijd aanpassen

De piekdag in getallen. Op een gewone dag komen er 120 orders binnen. Elke order kost drie aanroepen: debiteur opzoeken, order aanmaken, status teruglezen. Dat zijn 360 aanroepen. De voorraadronde draait elk kwartier en kost 8 aanroepen: 96 rondes keer 8 is 768. Samen 1.128 van de 5.000.

Op Black Friday zijn het 1.200 orders: 3.600 aanroepen. Met de voorraadrondes erbij 4.368. Er blijven 632 aanroepen over voor alles wat opnieuw moet. Een koppeling die per order vijf aanroepen doet in plaats van drie, komt op 6.000 plus 768 is 6.768 aanroepen. Hij staat stil vanaf het moment dat het dagbudget op is, tot het de volgende dag opnieuw begint. De limieten zijn op 3 oktober 2026 nagelezen in de documentatie van Exact Online.

Twaalf stappen voor één order

Mapping is bijna altijd het grootste deel van het werk, omdat twee systemen zelden hetzelfde op dezelfde manier bewaren. Voor een order met één regel doet de koppeling dit:

  1. de order aannemen en de ontvangst bevestigen aan de webshop
  2. controleren of deze order al eerder is verwerkt
  3. de debiteur zoeken: eerst op debiteurnummer, dan op KvK-nummer, dan op e-mailadres
  4. geen treffer: een debiteur aanmaken, als bedrijf of als persoon
  5. het afleveradres splitsen in straat, huisnummer en toevoeging
  6. het land omzetten van Nederland naar NL
  7. het artikel opzoeken op artikelnummer
  8. het btw-tarief van 21% omzetten naar de btw-code van het ERP
  9. de betaalmethode omzetten naar een betaalconditie
  10. de verzendkosten toevoegen als orderregel
  11. de order aanmaken
  12. het ordernummer van het ERP terugschrijven naar de webshop

Bij elke stap ligt vast wat er gebeurt als hij mislukt. Een artikel dat het ERP niet kent, levert geen halve order op: de order gaat naar de controlelijst met de reden erbij. De stappen staan uitgewerkt in wat is veldmapping, adresvelden mappen en dubbele klanten en debiteuren.

Ook als je systeem geen API heeft

Zonder API lopen de gegevens via een databaseview, een geplande export of, als laatste, een gescripte route door de schermen van het pakket. Bij een export zit het werk in de controle van het bestand, voordat er één regel wordt verwerkt. Dit staat er op de SFTP-server van een groothandel met een ERP uit 2009:

/export/voorraad_20261001_0600.csv   412 kB   verwerkt, gearchiveerd
/export/voorraad_20261002_0600.csv   409 kB   verwerkt, gearchiveerd
/export/voorraad_20261003_0600.csv    38 kB   afgekeurd: 9% van de normale omvang

Het bestand van 3 oktober is 38 kB waar ruim 400 kB normaal is. De export is halverwege afgebroken. Een koppeling die dit bestand verwerkt en een ontbrekend artikel als nul behandelt, haalt ruim 90% van het assortiment uit de verkoop. De controle keurt het bestand af, laat de voorraad van gisteren staan en stuurt een melding.

Dezelfde controle vangt de andere drie fouten bij bestanden: een bestand dat nog geschreven wordt, een bestand dat twee keer wordt aangeboden, en een export die om 06:00 had moeten komen en er om 06:30 nog niet is. Komen je gegevens van een leverancier in plaats van uit je eigen pakket, dan geldt hetzelfde: zie voorraad van je leverancier koppelen.

Een bestaande koppeling vervangen

Een koppeling die al jaren draait, doet meer dan iemand heeft opgeschreven. Daarom draait de nieuwe koppeling eerst naast de oude, zonder te schrijven. Beide verwerken dezelfde gegevens. De nieuwe logt wat hij zou hebben weggeschreven, en dat wordt vergeleken met wat de oude heeft gedaan.

Een voorbeeld van zo'n vergelijking over 412 orders:

Uitkomst Orders Oorzaak
Gelijk 403
Totaal wijkt € 0,01 af 6 het oude script rondt af per regel, het ERP per order
Land Nederland in plaats van NL 2 adressen die met de hand zijn ingevoerd
Order ontbreekt bij de oude koppeling 1 een order zonder bedrijfsnaam werd overgeslagen, zonder melding

403 plus 6 plus 2 plus 1 is 412. De laatste regel is de reden om zo te werken: het oude script sloeg orders over en niemand wist het. Bij een script zonder documentatie is deze vergelijking de enige beschrijving van wat het deed.

Kloppen de uitkomsten, dan gaat de nieuwe koppeling per stroom live: eerst de voorraad, daarna de prijzen, als laatste de orders. De oude route blijft nog beschikbaar tot de stroom is overgezet. Het hele verloop staat in een bestaande koppeling vervangen.

Wat je erbij krijgt

Wij bouwen de koppeling voor een vaste prijs op jouw systemen en jouw regels. Daarna hosten, draaien en bewaken wij hem voor een vast bedrag per maand. Hoe die twee delen zijn opgebouwd staat op koppeling laten bouwen. In de dienst zit:

  • Een wachtrij met herhalingen. Is een systeem onbereikbaar, dan wacht het bericht en volgt er een nieuwe poging, met pauzes die steeds langer worden. Elke poging draagt dezelfde sleutel, zodat order 20418 één keer in het ERP komt.
  • Een foutenlijst. Wat na de laatste poging niet is aangekomen, blijft staan met de oorspronkelijke inhoud en de foutmelding. Er verdwijnt niets ongemerkt.
  • Een dashboard met eigen login. Per run zie je wat er is doorgezet: 412 orders, 409 verwerkt, 3 op de controlelijst, met de reden per order.
  • Dry run en goedkeuring. Een run kan alles berekenen en niets wegschrijven. Wijzigingen kunnen per stroom op jouw akkoord wachten.
  • Uitsluitingen en overrides. Artikelen of klanten met een handmatige afspraak slaat de koppeling over.
  • Aanpassing als een bron verandert. Een nieuwe API-versie of een hernoemde kolom is ons werk.

Zoek je de koppeling tussen webshop en één soort systeem, begin dan bij webshop koppeling laten maken of bij de ERP koppeling met je webshop. Bouw je als bureau de webshop en zoek je een partij voor het deel erachter, kijk dan bij voor bureaus.

Stuur de namen van je systemen en de regel waar het op vastloopt. Je hoort langs welke route de gegevens eruit en erin kunnen.

Veelgestelde vragen

Kunnen jullie ook koppelen met oude systemen?

Ja. De leeftijd van een pakket is geen grens, de vraag is langs welke weg de gegevens eruit en erin kunnen. Zonder API zijn dat een databaseview of alleen-lezen kopie, een geplande export als CSV of XML, en als laatste een gescripte route door de schermen van het pakket. De routes staan uitgewerkt in koppelen zonder API.

Wat als onze softwareleverancier niet wil meewerken?

Draait het pakket op je eigen server, dan staan de gegevens in een database waar je eigen beheerder een alleen-lezen view op kan maken. Kan het pakket een export maken, dan is een vaste export op vaste tijden genoeg. Bij een cloudpakket zonder API en zonder export blijft de gescripte route door het portaal over. Een concrete vraag aan de leverancier om één export of één endpoint levert er vaak een op.

Onderhouden jullie de koppeling ook?

Ja. Na de bouw hosten, draaien en bewaken wij de koppeling voor een vast bedrag per maand. Verandert een bron, bijvoorbeeld een API-versie die vervalt of een kolom die in een export een andere naam krijgt, dan passen wij de koppeling aan.

Kunnen we ons huidige ERP en onze huidige webshop houden?

Ja. De koppeling sluit aan op de systemen die je nu gebruikt en vraagt geen migratie. Wat vooraf wordt vastgelegd is welk systeem per veld leidend is: voorraad uit het WMS, prijs uit het ERP, afleveradres uit de webshop. De systemen zelf blijven zoals ze zijn.

Hoe lang duurt het bouwen van een maatwerk koppeling?

Vier dingen bepalen de doorlooptijd: het aantal stromen, of er een testomgeving is, of een stroom twee kanten op gaat met conflictregels, en hoe snel er API-toegang is. Dat laatste ligt buiten de bouw en duurt vaak het langst, omdat de beheerder of de leverancier van het pakket de toegang moet aanmaken. Je krijgt vooraf een vaste omvang en een vaste prijs.

Wat gebeurt er als onze regels veranderen?

Dan passen wij de koppeling aan. Een nieuwe drempel, een derde magazijn of een extra prijslijst is een wijziging in de regel of in de mapping. De gewijzigde koppeling draait eerst als dry run op echte orders, zodat je ziet welke orders anders verdeeld of anders geprijsd zouden zijn voordat er iets wordt weggeschreven.

Kan maatwerk naast een bestaande standaardkoppeling draaien?

Ja, per stroom. De standaardkoppeling blijft bijvoorbeeld facturen naar de boekhouding zetten en het maatwerk verzorgt de prijzen per debiteur. De voorwaarde is dat de twee nooit hetzelfde veld schrijven. Schrijven ze allebei de voorraad van artikel 10482, dan wint de laatste en weet niemand welke waarde klopt.

Wat is het verschil tussen een maatwerk koppeling en een koppelplatform?

Op een koppelplatform stel je stromen in binnen de velden en richtingen die het platform aanbiedt. Een maatwerk koppeling wordt gebouwd op jouw velden en regels en draait als eigen dienst met eigen logs. De technische verschillen, zoals doorvoer, richting en wat er bij een fout gebeurt, staan in koppeling of koppelplatform.

Vertel wat je nodig hebt

Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.

  • Je weet de prijs en de doorlooptijd voordat je iets toezegt
  • Wij zoeken uit welke koppeling het werk uit handen neemt
  • Wij verzorgen de bouw, hosting, bewaking en het onderhoud
  • Je team krijgt minder overtypwerk en minder uitzoekwerk

Leveranciers, producten, orders per dag, een ruwe schatting is prima.

Of mail direct: carsten@syncmyshop.com