De situatie
Een e-commercebedrijf verkoopt via meer dan 20 verkoopkanalen: eigen webshops op Shopify, WooCommerce of Magento, Bol.com, Amazon en andere marketplaces via ChannelEngine. De financiële administratie is verdeeld over 6 Exact Online-administraties, een per land. Elk kanaal had zijn eigen manier om orders te verwerken.
Het aantal orders groeide richting 300.000 per jaar. Handmatig verwerken was geen optie meer.
De aanpak
We hebben een centrale koppeling gebouwd: middleware waar alle kanalen op aansluiten en die alle administraties bedient. Een plek voor alle regels, in plaats van 20 losse koppelingen.
De datastromen:
| Van | Naar | Wat |
|---|---|---|
| Elk verkoopkanaal | Middleware | Orders |
| Middleware | Exact Online (juiste administratie) | Verkooporder, debiteur, factuur |
| Exact Online | Middleware | Voorraadstanden |
| Middleware | Elk verkoopkanaal | Beschikbare voorraad, realtime |
De routering bepaalt per order in welke van de 6 administraties hij hoort. Daarvoor kijkt de middleware naar het land van de klant.
Foutafhandeling was het belangrijkste ontwerponderdeel. Bij 300.000 orders gaat er altijd iets mis: een artikel dat in een kanaal wel bestaat en in Exact Online niet, een adres dat niet klopt. Elke order doorloopt validatie voordat hij naar Exact Online gaat. Wat niet klopt, komt in een werklijst met de reden. Wat wel klopt, gaat door. Een probleemorder houdt de rest nooit tegen.
De API-limieten van Exact Online, 60 calls per minuut en 5.000 per dag per administratie, hebben we ingebouwd in de wachtrij. De middleware bundelt waar het kan en spreidt de rest over de dag, met prioriteit voor orders boven voorraadupdates.
Het resultaat
| Voor | Na |
|---|---|
| 20 manieren om orders te verwerken | 1 centrale koppeling |
| Voorraad per kanaal bijgehouden | Realtime voorraad in alle kanalen |
| Orders handmatig verwerken | Orders automatisch in de juiste Exact Online-administratie |
| Fouten onzichtbaar | Werklijst met reden per order |
300.000+ orders per jaar, 0 handmatige handelingen in de standaardflow. De administratie behandelt alleen nog de werklijst. Een nieuw kanaal of een nieuwe administratie aansluiten is nu configuratie in plaats van een project.
Wat we geleerd hebben
Bij veel kanalen is een centrale laag goedkoper dan losse koppelingen. Elke regel over btw, prijzen of routering staat een keer, niet twintig keer.
Ontwerp de foutafhandeling voordat je de happy flow bouwt. De happy flow is bij elke koppeling hetzelfde. Het verschil zit in wat er gebeurt als het misgaat.
Neem de API-limieten van Exact Online serieus. Bij dit volume haal je ze zonder planning binnen een uur. Een wachtrij met prioriteiten lost dat op, een retry-loop maakt het erger.
Systemen
- Exact Online, 6 administraties: verkooporders, debiteuren, facturen, voorraad.
- Verkoopkanalen, 20+: eigen webshops (Shopify, WooCommerce of Magento), Bol.com, Amazon en andere marketplaces via ChannelEngine.
- Eigen middleware: wachtrij met prioriteiten, werklijst voor uitzonderingen, in eigen huis gebouwd.
Lees meer over e-commerce integraties of over de API-limieten van Exact Online.