Naar de inhoud
Ffantomu.dev
FNT / Blog · Nº 01← Alle artikelen

Waarom jouw e-commerce integratie blijft crashen (en hoe dat op te lossen)

Gestapelde kartonnen dozen in zwart-wit

Integraties23 april 2026

Je koppelt je Shopify-winkel aan Bol.com. Orders stromen een week lang binnen. Dan ontdek je op een ochtend dubbele bestellingen, ontbrekende voorraadmutaties en een supportwachtrij die 's nachts is verdubbeld. Je lost het op. Drie weken later gebeurt het opnieuw.

Dit is geen pech. Het is een voorspelbaar gevolg van het bouwen van integraties zonder rekening te houden met de vier storingsoorzaken die elke multi-channel e-commerce opstelling vroeg of laat treft.


1. Geen idempotentie: herhaalpogingen maken duplicaten aan

Wanneer een webhook of API-aanroep halverwege mislukt, probeert de verzender het opnieuw. Als jouw verwerker niet controleert of het evenement al eerder is verwerkt, krijg je twee bestellingen voor een aankoop, twee voorraadverlagingen voor een verkoop en twee bevestigingsmails in de inbox van de klant.

De oplossing is een idempotentiesleutel: een unieke identificator die aan elk inkomend evenement is gekoppeld. Controleer voor de verwerking of die sleutel al in je database staat. Als dat zo is, bevestig het verzoek en stop. Als dat niet zo is, verwerk dan atomair en sla de sleutel op. Platforms zoals Shopify sturen hiervoor eenX-Shopify-Webhook-Id-header mee. Gebruik die.

2. Webhooks zijn niet gegarandeerd: stille fouten stapelen zich op

Elk groot marktplaatsplatform behandelt webhooks als best-effort-bezorging. Bol.com, Amazon en eBay documenteren allemaal dat webhooks vertraagd, gededupliceerd of bij hoge belasting volledig weggelaten kunnen worden. Als je integratie alleen op webhooks reageert, mis je evenementen zonder dat je het doorhebt.

De oplossing is een reconciliatieopdracht: een geplande taak (elke 15 tot 60 minuten) die de marktplaats-API ondervraagt naar bestellingen die zijn aangemaakt of bijgewerkt sinds de laatste geslaagde synchronisatie. De reconciliatieopdracht is je vangnet. Webhooks zijn het snelle pad. Geen van beide is afzonderlijk voldoende.

3. Voorraadbeheer heeft een tijdkloof

Je verkoopt om 14:00 uur de laatste eenheid via Shopify. Je voorraadsynchronisatietaak draait om 14:05 uur. In die vijf minuten is diezelfde eenheid nog steeds beschikbaar op Bol.com. Een tweede klant bestelt hem. Nu heb je een oververkoop.

Er zijn twee maatregelen. Ten eerste: verklein de synchronisatiefrequentietot zo dicht bij realtime als de marktplaats-API toestaat. De meeste platforms ondersteunen bijna onmiddellijke voorraadmutaties via hun eigen API-eindpunten, niet alleen via webhooks. Ten tweede: gebruik een veiligheidsbuffer door een iets lagere voorraad te rapporteren dan de werkelijke hoeveelheid, bijvoorbeeld werkelijk minus een voor SKUs met lage voorraad, om tijdskloven op te vangen. Geen van beide is een perfecte oplossing; het doel is oververkopen zeldzaam te maken in plaats van normaal.

4. API-versiebeheer wordt genegeerd totdat het breekt

Marktplaats-API's versieren hun eindpunten. Shopify deprecieert API-versies op een rollendbasis van 18 maanden. Bol.com heeft ingrijpende wijzigingen doorgevoerd in hun Retailer API met beperkte vooraankondiging. De meeste integratiecodebases bevriezen op de versie die werkte bij de bouw en werken die nooit bij, totdat het eindpunt wordt afgeschakeld en alles op een dinsdag stopt.

De oplossing is een proces, geen code: volg afschakelmeldingen in een gedeelde agenda, voer maandelijks integratietests uit op een testomgeving en behandel API-versie-upgrades als gepland onderhoud in plaats van noodwerk.


Het patroon dat integraties betrouwbaar maakt

Betrouwbare multi-channel integraties volgen hetzelfde patroon, ongeacht welke platforms betrokken zijn:

  • Ontvangen: webhooks accepteren, onmiddellijk bevestigen, naar een interne wachtrij sturen
  • Dedupliceren: de idempotentiesleutel controleren voor de verwerking
  • Verwerken: het evenement afhandelen in een achtergrondproces, met herhaalpogingen bij tijdelijke fouten
  • Reconciliëren: een geplande taak ondervraagt de API en vult eventuele gaten op
  • Signaleren: wachtrijdiepte en reconciliatievertraging monitoren; alarmeren bij afwijkingen

Dit is geen complexe architectuur. Het is een wachtrij, een deduplicatietabel en een cron-taak. Maar zonder alle drie breekt elke integratie uiteindelijk, meestal op het slechtst mogelijke moment.

Als je huidige setup een van deze lagen mist, is dat de plek waar de volgende storing vandaan zal komen.

Laten we praten · มาคุยกัน

Klaar om jouw project te bespreken?