Context en probleem

Bigshopper is een prijsvergelijkingswebsite waarop webshops hun producten kunnen tonen tegen een maandelijkse vergoeding. Daarnaast werkt Bigshopper met marketingpartners die klanten kunnen aanbrengen.

Een kickback is een vergoeding voor zo'n partner. Wanneer een aangebrachte klant bepaalde producten of abonnementen afneemt, krijgt de partner periodiek een bedrag terug. Bigshopper moest daarom bijhouden welke partner bij welke klant hoort, welke facturen betaald zijn en welke factuurregels meetellen voor de kickback.

Dat proces kostte veel handmatig werk. De informatie stond verdeeld over het Bigshopper-dashboard, Stripe en de administratie. Daardoor moest het management elke maand veel controleren voordat een partner een creditfactuur kon krijgen. Het ging om ongeveer 200 partners, waarbij een partner meerdere klanten kon hebben.

Doel van de stageopdracht

Een uitbreiding bouwen in het bestaande dashboard waarmee Stripe-facturen inzichtelijk worden en waarmee op basis van betaalde facturen automatisch kickback-creditfacturen kunnen worden opgebouwd.

Werkwijze

Ik heb het project in twee fases aangepakt. De eerste fase ging over het ophalen en tonen van Stripe-facturen. De tweede fase ging over het gebruiken van die facturen voor het opbouwen van het kickback- en creditfactuursysteem.

Aan het begin van beide fases heb ik eerst onderzocht wat er nodig was. Dat deed ik door gesprekken te voeren met de office manager en programmeurs binnen Bigshopper, de stageopdracht te analyseren, de Stripe API-documentatie te bekijken en zelf door de bestaande code van het dashboard te gaan.

Onderzoeken

Eisen ophalen bij stakeholders, bestaande code lezen en uitzoeken hoe de Stripe API en webhooks binnen het dashboard gebruikt konden worden.

Ontwerpen

Per fase een ontwerp maken voor de datamodellen, schermen en workflow. Dit ontwerp is daarna besproken met de betrokken stakeholders.

Realiseren

De onderdelen zijn in sprints van 2 weken uitgewerkt, met steeds een concreet onderdeel van het systeem als doel.

Valideren

In sprint reviews zijn de gemaakte onderdelen beoordeeld. Na een fase volgden code review, livegang en testen met de liveomgeving van Stripe.

Fase 1: Stripe-facturen

In de eerste fase heb ik uitgezocht hoe facturen uit Stripe opgehaald moesten worden en hoe ze bruikbaar konden worden gepresenteerd in het dashboard. Het management moest snel kunnen zien welke facturen betaald, open, te laat of oninbaar waren.

Hiervoor is een facturenoverzicht gemaakt met filters, statussen, notities, bedrijfstotalen en acties voor openstaande facturen. Stripe-wijzigingen konden via webhooks worden verwerkt. Daarnaast is er een synchronisatiecommando gemaakt om facturen opnieuw uit Stripe op te halen wanneer dat nodig was.

Geanonimiseerd Bigshopper-scherm met Stripe-facturenoverzicht, filters en factuurregels
Geanonimiseerd scherm van het Stripe-facturenoverzicht. De data is demo-data, maar de structuur laat zien hoe facturen, statussen, filters en notities samenkomen.

Fase 2: Kickback en creditfacturen

In de tweede fase is vanuit de Stripe-facturen een systeem gemaakt dat factuurregels kan koppelen aan kickback-items. Het systeem controleert welke betaalde facturen meetellen, welke partner daarbij hoort en in welke periode de kickback terecht moet komen.

Per partner en periode kan er een creditfactuur worden opgebouwd. Daarbij kunnen items worden toegevoegd, aangepast of verwijderd, zodat het management controle houdt over uitzonderingen. Dit was belangrijk, omdat het om financiele gegevens gaat en de uitkomst moet kloppen voordat de administratie ermee verder kan.

Geanonimiseerd Bigshopper-scherm met kickback-overzicht en factuuritems
Geanonimiseerd scherm van het kickback- en creditfactuurgedeelte. Hier worden betaalde facturen gekoppeld aan de juiste partner en periode.

Testen en livegang

De onderdelen zijn eerst getest op een testserver die gekoppeld was aan de testomgeving van Stripe. Daardoor konden facturen, betalingen, webhooks en creditfacturen veilig worden getest voordat de onderdelen live gingen.

Usability en feedback

In de sprint reviews liet ik de nieuwe schermen zien aan de office manager en andere betrokkenen. Op basis daarvan zijn filters, acties en overzichten aangescherpt.

Validatie van data

Stripe-data is vergeleken met de opgeslagen data in het dashboard. Ook zijn gegenereerde creditfacturen vergeleken met handmatig gemaakte facturen.

Performance

Met grotere testdatasets is gekeken of overzichten snel genoeg bleven. Waar berekeningen te zwaar werden, zijn waarden vooraf opgeslagen.

Code review en live test

Na afronding van een fase volgde een code review. Daarna is het onderdeel live gezet en getest met de echte Stripe-omgeving.

Resultaat

Het systeem heeft de maandelijkse afhandeling van de kickback veel sneller gemaakt. Waar het management eerder bijna een week nodig had, bleef er na de automatisering ongeveer een halve dag controlewerk over.

De grootste winst zat in het controleren van betalingen en het automatisch opbouwen van de juiste kickbackregels voor creditfacturen. De daadwerkelijke administratieve verwerking bleef buiten het systeem, waardoor gevoelige financiele stappen bewust onder controle van het management bleven.

Voor Bigshopper leverde dit vooral meer overzicht en minder herhalend werk op. Het management kan nu sneller zien welke facturen betaald zijn, welke klanten meetellen voor kickback en welke regels op een creditfactuur moeten komen.

Wat ik geleerd heb

  • Hoe je een bestaand Django-dashboard onderzoekt voordat je er een nieuwe module aan toevoegt.
  • Hoe Stripe-webhooks en API-data gebruikt kunnen worden om een administratief proces te ondersteunen.
  • Hoe belangrijk het is om eerst eisen en randvoorwaarden helder te krijgen voordat je begint met bouwen.
  • Dat sprint reviews nuttig zijn om interne tools steeds te toetsen aan het echte gebruik.
  • Dat validatie extra belangrijk is bij financiele data, omdat kleine fouten direct invloed hebben op administratie en vertrouwen.

Andere projecten