Naar de inhoud
SyncMyShop

Webshopkoppeling

Webshop koppeling laten maken met de systemen die je al hebt

Je webshop blijft staan waar hij staat, net als je ERP, je boekhouding en je magazijnsysteem. Wij bouwen de koppeling ertussen op de API van jouw platform en de regels van jouw bedrijf, en draaien en bewaken hem daarna.

Waarmee je een webshop koppelt

Een webshop heeft zes kanten waar gegevens vandaan komen of naartoe gaan. Welke je koppelt hangt af van waar nu het overtypen zit.

Kant Systemen Waarop gematcht wordt Wat er over de lijn gaat
ERP Exact Online, Business Central, SAP Business One, AFAS artikelnummer, debiteurnummer orders heen; prijzen, voorraad en orderstatus terug
Boekhouding SnelStart, Twinfield, Moneybird factuurnummer, btw-code, grootboekrekening facturen, betalingen, creditnota's
WMS en vervoerder Picqer, Monta, Sendcloud ordernummer, SKU of EAN pickopdracht heen; verzendstatus en trackcode terug
PIM Akeneo, Pimcore SKU teksten, afbeeldingen en kenmerken, per taal
Leveranciers CSV, XML of API van de leverancier artikelnummer van de leverancier of EAN voorraad, levertijd, inkoopprijs
Inkoopsysteem van je klant OCI en PunchOut de sessie van de inkoper winkelmand terug naar het inkoopsysteem
De zes kanten waarmee een webshop gekoppeld wordt De webshop staat in het midden. Met het ERP gaan orders heen en komen prijzen en voorraad terug. Van het PIM komen teksten en afbeeldingen. Naar de boekhouding gaan facturen en betalingen. Van de leverancier komen voorraad en levertijd. Met het WMS en de vervoerder gaat de pickopdracht heen en komt de trackcode terug. Met het inkoopsysteem van een klant loopt een sessie heen en een winkelmand terug. ERP Exact Online, AFAS PIM Akeneo, Pimcore Boekhouding SnelStart, Twinfield Webshop via de koppeling Leverancier CSV, XML of API WMS en vervoerder Picqer, Sendcloud Inkoopsysteem van je klant, OCI orders heen, prijzen en voorraad terug teksten, afbeeldingen facturen, betalingen voorraad, levertijd pickopdracht heen, trackcode terug sessie heen, winkelmand terug
De zes kanten van een webshop, met per lijn wat eroverheen gaat en in welke richting.

Business Central is de opvolger van Navision (Dynamics NAV). Alle systemen, ook de pakketten die hier niet genoemd zijn, staan op het overzicht van koppelingen.

Eén artikel, vier codes

De kolom "waarop gematcht wordt" is waar het in de praktijk op vastloopt. Hetzelfde koppelstuk heeft in elk systeem een andere code:

Systeem Code
Webshop SKU KS-22-MS
ERP artikelnummer 10482
Leverancier bestelnummer 44-1082
WMS en vervoerder EAN 8712345678906

Vier codes voor één artikel, en geen systeem kent ze alle vier. De koppeling houdt een kruistabel bij waarin ze naast elkaar staan. Een artikel zonder regel in die tabel gaat naar de controlelijst. Het wordt niet stil overgeslagen. Wat je als sleutel kiest en waarom staat in koppelen op SKU of op EAN.

Wat er heen en terug gaat

Eén order raakt op een dag vijf systemen. Een voorbeeld met order 20418, 12 stuks van KS-22-MS:

Tijd Wat er gebeurt Van, naar Velden
10:02 de klant rondt de bestelling af webshop naar koppeling ordernummer, regels, adressen, betaalstatus
10:03 de order staat in het ERP koppeling naar ERP debiteur, artikel per regel, btw-code, betaalconditie
10:04 de pickopdracht staat klaar ERP naar WMS artikel, aantal, locatie
14:10 het pakket is gescand WMS naar koppeling vervoerder, trackcode
14:11 de klant krijgt een verzendmail koppeling naar webshop status, trackcode, volglink
23:00 de factuur staat in de boekhouding ERP naar boekhouding factuurnummer, grootboekrekening, btw-bedrag

Zes overdrachten, en bij elke overdracht verandert de vorm van de gegevens. Het bericht van 14:11 ziet er zo uit:

{
  "order": "20418",
  "status": "verzonden",
  "zendingen": [
    {
      "vervoerder": "PostNL",
      "trackcode": "3SABCD0123456",
      "regels": [ { "sku": "KS-22-MS", "aantal": 12 } ]
    }
  ]
}

zendingen is een lijst. Bij een deellevering staan er twee in, elk met een eigen trackcode en eigen regels, en de webshop toont de status per zending. Een koppeling die één trackcode per order doorgeeft, overschrijft bij de tweede zending de eerste.

Achter die ene order zitten vijf stromen, elk met een eigen richting en een eigen tempo:

Welke stroom direct moet en welke 's nachts kan, staat in realtime of batch.

Welk webshopplatform je ook draait

Elk platform geeft zijn gegevens op een eigen manier vrij en stelt eigen grenzen. Die grenzen bepalen hoe de koppeling wordt opgezet.

Platform Toegang Gedocumenteerde grens
WooCommerce REST API met sleutel en geheim standaard 10 items per pagina en 100 objecten per batch; een webhook wordt na 5 mislukte afleveringen op rij uitgeschakeld
Shopify GraphQL Admin API 100 punten per seconde, 200 op Advanced, 1.000 op Plus; een webhook moet binnen 5 seconden beantwoord zijn
Magento REST API met bulk-endpoints een bulk-aanroep geeft een bulk_uuid terug en wordt verwerkt door een berichtenwachtrij op de server
Shopware Admin API met Sync API /api/_action/sync schrijft meerdere records in één aanroep, altijd als upsert
Lightspeed REST API 300 aanroepen per 5 minuten, 3.000 per uur, 12.000 per dag
CCV Shop REST API met HMAC-handtekening 150 per minuut op leesaanroepen, 100 op schrijfaanroepen; standaard 25 items per pagina
BigCommerce REST API 150 aanroepen per 30 seconden op Standard en Plus, 450 op Pro
PrestaShop Webservice een lijst geeft alleen ID's terug; velden vraag je op met display, pagina's met limit

De getallen zijn op 3 oktober 2026 nagelezen in de documentatie van elk platform, waaronder die van Shopify, Lightspeed en WooCommerce.

8.000 artikelen bijwerken, op drie platformen

Dezelfde taak, de voorraad van 8.000 artikelen in de webshop zetten, kost per platform een ander aantal aanroepen:

  • Lightspeed, 100 varianten per bulkaanroep (PUT /variants/bulk.json). 8.000 gedeeld door 100 is 80 aanroepen. Per artikel apart zijn het er 8.000: 2 uur en 40 minuten bij de grens van 3.000 per uur, en 8.000 van de 12.000 aanroepen van die dag.
  • WooCommerce, 100 artikelen per batch. 8.000 gedeeld door 100 is 80 aanroepen.
  • Shopify, 250 voorraadregels per aanroep. 8.000 gedeeld door 250 is 32 aanroepen.

Het verschil zit dus in hoe de koppeling schrijft, niet alleen in het platform. Op Lightspeed gaat ook de bulkaanroep in porties van 100, en bij 400 gewijzigde artikelen zijn dat 4 aanroepen. Is de webshop gekoppeld aan de Lightspeed-kassa (R-Series), dan zijn artikelen en varianten via de webshop-API alleen te lezen en loopt het schrijven via de kassa-API. De som voor je eigen aantallen maak je met doorvoer berekenen.

De grens bij webhooks werkt de andere kant op. Shopify wacht 5 seconden op een antwoord en probeert het bij een fout nog 8 keer in 4 uur. WooCommerce schakelt een webhook na 5 mislukte afleveringen op rij uit, en daarna komt er geen order meer binnen zonder dat iets een fout meldt. De koppeling beantwoordt een webhook daarom direct en verwerkt de order daarna vanuit de wachtrij. Elke nacht vergelijkt hij de orders in de webshop met wat er is aangekomen. Meer hierover in wat is een webhook.

Velden die het platform niet heeft

Een product in WooCommerce heeft een voorraadaantal (stock_quantity) en een voorraadstatus (stock_status), en geen veld voor de verwachte leverdatum van je leverancier. Een artikel met voorraad 0 dat morgen binnenkomt en een artikel met voorraad 0 dat over zes weken komt, zien er in de webshop hetzelfde uit. De datum staat wel in het bestand van de leverancier of in de inkooporder in het ERP.

De koppeling zet zo'n waarde in een eigen veld van het platform: een metafield bij Shopify, meta_data bij WooCommerce, een eigen attribuut bij Magento. Voor WooCommerce ziet de update van één artikel er zo uit:

{
  "sku": "KS-22-MS",
  "stock_quantity": 0,
  "meta_data": [
    { "key": "verwachte_leverdatum", "value": "2026-10-14" }
  ]
}

Het thema van de webshop toont het veld daarna als "verwacht op 14 oktober". Hetzelfde geldt voor elke waarde waar het platform geen standaardveld voor heeft, zoals het bestelnummer 44-1082 van de leverancier: de koppeling vult een eigen veld. Hoe dat voor levertijden werkt staat bij levertijd synchroniseren.

Plugin, koppelplatform of maatwerk

Een plugin leest één bron in één formaat. Dat gaat goed tot de tweede leverancier. Dit zijn de eerste regels uit de bestanden van twee leveranciers voor hetzelfde artikel:

leverancier A (puntkomma, eigen bestelnummer, levertijd als duur)
artikelnr;voorraad;levertijd
44-1082;14;2 werkdagen

leverancier B (komma, EAN, levertijd als datum)
"ean","stock","eta"
"8712345678906","9","14-10-2026"

Drie verschillen in twee regels: het scheidingsteken, de sleutel en de vorm van de levertijd. "2 werkdagen" en "14-10-2026" zijn pas te vergelijken met een kalender van werkdagen erbij. Daarbovenop komt de vraag wat er geldt als beide leveranciers het artikel voeren: 14 plus 9 is 23 stuks, of alleen de 14 van de leverancier met de kortste levertijd. Een plugin met één mapping heeft voor die keuze geen instelling.

Plugin of app Koppelplatform Maatwerk
Bronnen één feed, één formaat de systemen uit de catalogus van het platform elk systeem waar gegevens gecontroleerd in en uit kunnen
Velden vaste set van de maker instelbaar binnen het platform, prijzen per klantgroep jouw velden, ook vrije velden
Kostenopbouw een licentie per webshop per stroom, per paar systemen, per maand een vaste bouwprijs en een vast bedrag per maand
Bij een fout een regel in het log van de webshop een foutenlijst in het platform wachtrij, herhaling en een controlelijst met de reden

Maatwerk is aan de orde zodra een regel van jouw bedrijf niet in een instelling past. Wat dat inhoudt staat op maatwerk koppeling laten maken. De technische vergelijkingen staan in maatwerk of plugin en koppeling of koppelplatform.

Meerdere kanalen op één voorraad

Naast de webshop verkoop je via bol, een tweede shop of een B2B-portaal. Alle kanalen verkopen uit dezelfde voorraad en ze weten niet van elkaar wat er net is verkocht.

Twee regels houden dat kloppend. De eerste is een buffer per kanaal: van artikel 10482 liggen 14 stuks vrij, de webshop toont 14 en bol krijgt 12. De 2 stuks verschil vangen de minuten op tussen een verkoop op het ene kanaal en de update op het andere. De tweede is een voorvoegsel per kanaal op het ordernummer: WS-10482 en BOL-10482 zijn in het ERP twee orders, ook al gaf elk kanaal zelf het nummer 10482 uit.

Hoe groot de buffer moet zijn staat bij veiligheidsvoorraad. Wat er gebeurt als het toch misgaat, staat in twee klanten, het laatste exemplaar.

Wat je krijgt

Wij bouwen de koppeling voor een vaste prijs en hosten, draaien en bewaken hem daarna voor een vast bedrag per maand. De opbouw daarvan staat op koppeling laten bouwen.

De koppeling draait eerst als dry run: hij verwerkt de echte gegevens en schrijft niets, zodat je per artikel ziet wat er zou veranderen. Daarna kies je per stroom of wijzigingen op jouw akkoord wachten of direct doorgaan. In het dashboard staat per run wat er is gewijzigd, bijvoorbeeld artikel 10482, voorraad, van 14 naar 8, en wat er op de controlelijst staat met de reden erbij. Past een platform zijn API aan, dan passen wij de koppeling aan.

Vertel welk platform je draait en welke systemen erachter staan. Je hoort welke stromen er zijn en waar de grenzen van jouw platform liggen.

Veelgestelde vragen

Wat is een webshopkoppeling?

Een webshopkoppeling is de verbinding die gegevens tussen je webshop en een ander systeem overzet zonder dat iemand ze overtypt: orders naar het ERP of de boekhouding, voorraad en prijzen terug naar de webshop. De uitleg met voorbeelden staat in wat is een webshopkoppeling.

Kunnen jullie onze webshop koppelen aan ons ERP?

Ja. Exact Online, AFAS, Business Central en SAP Business One komen het vaakst voor, en elk geeft zijn gegevens op een eigen manier vrij: Exact Online met 60 aanroepen per minuut per administratie, AFAS via connectoren die je eigen beheerder beschikbaar stelt. Wat dat per ERP betekent staat op ERP koppeling met je webshop.

Kunnen jullie meerdere verkoopkanalen koppelen?

Ja. De voorraad komt uit één bron en gaat naar elk kanaal met een eigen regel, bijvoorbeeld 14 stuks naar de webshop en 12 naar bol. Orders krijgen per kanaal een voorvoegsel, zodat webshoporder 10482 en bol-order 10482 in het ERP twee verschillende orders blijven.

Mijn webshop of systeem staat er niet bij. Wat nu?

De naam van het pakket bepaalt niet of het te koppelen is. Bepalend is of gegevens er op een vaste, herhaalbare manier in en uit kunnen: via een API, een databaseview, een geplande export of als laatste een gescripte route door de schermen. Noem de systemen, dan hoor je welke route er is.

Waarom een koppeling in plaats van een import uit een spreadsheet?

Een import is een momentopname. Importeer je om 08:00 en raakt een artikel om 11:00 uitverkocht, dan verkoopt de webshop door tot de volgende import. Een bestand dat onderweg in Excel is geopend, verliest voorloopnullen: 00482 wordt 482 en het artikel wordt niet meer gevonden. Een koppeling verwerkt elke wijziging, controleert elke regel en meldt wat hij afkeurt.

Moet er iets in onze webshop geïnstalleerd worden?

Meestal is toegang tot de API genoeg. Bij WooCommerce is dat een sleutel met lees- en schrijfrechten, bij Shopify een app met alleen de rechten die de koppeling gebruikt. De koppeling zelf draait bij ons en niet op de server van je webshop.

Wat gebeurt er met de koppeling als we van webshopplatform wisselen?

De regels, de mapping en de kant van het ERP blijven dezelfde. De platformkant wordt opnieuw aangesloten op de API van het nieuwe platform, met de limieten die daar gelden. Voorwaarde is dat artikelnummers en klantnummers bij de overstap gelijk blijven, anders vindt de koppeling geen enkel artikel terug.

Hoe snel staat een order uit de webshop in het ERP?

De webshop meldt een nieuwe order met een webhook, en de koppeling zet hem direct in de wachtrij voor het ERP. In de regel staat de order er binnen enkele minuten. Is het ERP onbereikbaar of zit het aan zijn limiet, dan wacht de order in de wachtrij en komt hij daarna alsnog aan, één keer.

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