wat we hebben gekoppeld.
We hebben Exact Online gekoppeld aan Shopify, Shopware, Magento en CloudSuite. Uitgewisseld worden onder meer orders, inkooporders, producten, voorraad, prijzen, facturen en zendingen. Voorbeelden zie je in de Kisch-case (CloudSuite) en de Verfwinkel-case (Magento). Met Shopify hebben we daarnaast veel ERP-koppelingen gebouwd.
het lastige punt: API-limieten.
Exact Online is streng met API-limieten, vooral bij grotere klanten. Bepalend is daarom hoe vaak je Exact Online iets vraagt. Een koppeling die alles steeds opnieuw opvraagt, doet het prima in de test met een handvol orders. Met de echte aantallen loopt hij tegen de limiet aan en valt hij stil op het moment dat het druk is, bijvoorbeeld tijdens een actie of op maandagochtend.
Stel: een webshop met een groot assortiment haalt elke paar minuten het hele assortiment op om de voorraad bij te werken. Sinds de vorige keer is maar een klein deel veranderd. De overige aanvragen leveren niets nieuws op, maar tellen wel mee voor de limiet. Moeten er daarnaast ook orders weggeschreven worden, dan is het budget al op.
hoe we ermee omgaan.
- Slim zoeken met paginering. We vragen gegevens in pagina's op en maken zoekopdrachten zo precies mogelijk: niet "alle orders", maar de orders die aan een voorwaarde voldoen.
- Alleen opvragen wat nog niet bekend is. Wat we al hebben, vragen we niet opnieuw op. Waar een systeem toelaat om alleen de wijzigingen sinds een tijdstip op te halen, gebruiken we dat en onthouden we tot waar we zijn gekomen.
- Een cachinglaag. Gegevens die vaak nodig zijn maar zelden veranderen, bewaren we: welk artikel in Exact Online bij een artikelcode uit de webshop hoort, klantnummers, btw-codes, betalingscondities. Zonder cache kost elke orderregel een aparte aanvraag om die op te zoeken.
Een cache is alleen nuttig als je weet wanneer hij niet meer klopt. Elk soort gegeven krijgt daarom een eigen vervaltijd, afhankelijk van hoe vaak het verandert. Schrijft de koppeling zelf iets weg, dan werkt hij zijn cache meteen bij. Gegevens waarbij een verouderde waarde direct geld kost, zoals de voorraad van artikelen die snel uitverkopen, krijgen een korte vervaltijd of worden opgehaald op het moment dat het ertoe doet.
Een goede koppeling voorkomt ook dubbele verwerking. Een mislukte aanvraag wordt opnieuw geprobeerd, en dan mag dezelfde order niet twee keer in Exact Online staan. De koppeling controleert daarom eerst of iets al bestaat, en wacht bij een limiet af in plaats van orders te laten vallen.
wie is eigenaar van welke gegevens.
Leg vooraf per soort gegevens vast welk systeem leidend is. Vaak is Exact Online dat voor prijzen en voorraad en de webshop voor nieuwe orders, maar elk bedrijf heeft eigen afspraken. Vragen die je samen beantwoordt:
- Waar wordt een prijs aangepast, en moet de webshop dat binnen een minuut tonen of is een uur goed?
- Welk systeem telt de voorraad, ook als je via meerdere kanalen verkoopt?
- Wordt een nieuwe webshopklant automatisch een klant in Exact Online, en wat gebeurt er als het e-mailadres al bestaat?
Elk antwoord bepaalt een richting van het verkeer, en dus het aantal aanvragen. Twee systemen die allebei dezelfde gegevens mogen wijzigen, zijn een veelvoorkomende oorzaak van een koppeling die blijft repareren wat hij net heeft gesynchroniseerd.
hoe je test.
Test met echte aantallen, niet met tien orders. Tel hoeveel aanvragen een volledige doorloop kost, zodat je weet hoeveel ruimte er is op een drukke dag. Test ook de vervelende gevallen: een aanvraag die halverwege mislukt, dezelfde order die twee keer wordt aangeboden, een product dat in Exact Online niet bestaat. En kijk wat de koppeling doet als de limiet wél wordt bereikt: wacht hij en gaat hij daarna verder, of verliest hij orders?
wat je controleert voor de livegang.
- Een steekproef van orders in Exact Online nagekeken op bedragen, btw, grootboekrekening en gekoppelde klant.
- Aantallen in beide systemen naast elkaar gelegd: orders, producten en voorraadstanden.
- Per soort gegevens afgesproken hoe oud het mag zijn, en de vervaltijden van de cache daarop afgestemd.
- Vastgelegd waar fouten terechtkomen en wie ze de eerste weken in de gaten houdt.
standaardkoppeling of maatwerk.
Alumio biedt kant-en-klare koppelingen uit zijn bibliotheek, een goed startpunt als je weinig ervaring hebt met integraties. In de praktijk hebben de meeste klanten eigenaardigheden in het proces die daar niet in passen: een order die per magazijn gesplitst moet worden, prijzen per klantgroep, een andere afhandeling voor buitenlandse klanten. Daarom bouwen we met generieke componenten die we configureren naar jullie proces.
wat het kost.
We werken met een vaste prijs, afgesproken voordat we beginnen. Voordat we die noemen, valideren we de koppeling technisch, zodat het risico voor jou klein is. De prijs hangt af van de soorten systemen (bekend of verouderd), het aantal routes (hoeveel gegevensstromen er lopen) en de complexiteit van het geheel.
Gaat jouw combinatie niet over de webshops hierboven? Lees dan hoe we dat controleren in is dit al eens gedaan?. Vertel ons welke webshop je gebruikt, hoeveel orders, producten en klanten je hebt en hoe vaak die veranderen, dan zeggen we je in één gesprek wat het inhoudt.