3,4 miljoen artikelregels doorzoekbaar gemaakt
Inkopers vergeleken leveranciersprijzen met de hand, per aanvraag, in Excel. De volledige productcatalogus zat wel in een datapool-export, maar die was 26 GB aan XML en daarmee praktisch onbruikbaar. Die export is nu een doorzoekbare vergelijkingstool.
Het vraagstuk
De volledige productwereld waar de organisatie mee werkt stond in een Compano SALES005-export: twee XML-bestanden van samen 26 GB, met 3.369.374 artikelregels en 2.043.270 productregels. Er zat alles in wat je nodig hebt, inclusief bruto- en nettoprijzen per kortingsgroep, maar niemand kon er iets mee. Een bestand van elf gigabyte open je niet even.
Het gevolg was voorspelbaar. Bij elke klantaanvraag zocht een inkoper handmatig naar een alternatief artikel bij een andere leverancier, op basis van wat hij toevallig wist. Vergelijkbare artikelen die niemand kende, kwamen simpelweg nooit in beeld.
Wat ik gebouwd heb
- 01Een Python-ingestlaag die de SALES005-export streamend parseert en bulk-load naar Postgres doet, in plaats van het bestand in geheugen te trekken.
- 02Validatie op de echte data voordat er iets gebouwd werd: 95% van de regels bleek al een doorgerekende nettoprijs te bevatten, waardoor een losse conditietabel voor de meeste gevallen overbodig was.
- 03Een matching-laag die artikelen van verschillende fabrikanten aan elkaar koppelt op GTIN, fabrikantcode, omschrijving en verpakkingskenmerken, met een betrouwbaarheidsscore per match.
- 04Een zoek- en vergelijkscherm waarin een inkoper een artikel invoert en alternatieven ziet met netto prijs, kortingsgroep en fabrikant ernaast.
- 05Analyse-runs die als resultaat bewaard blijven, zodat een eerdere vergelijking reproduceerbaar is en niet opnieuw hoeft.
- 06Excel-export voor de inkopers die het gesprek met een leverancier toch op papier voeren.
Hoe het werkt
Bron
Compano SALES00526 GB XML, volledige replace
Ingest
Python streaming parserBulk-load naar Postgres
Match
Score per koppelingGTIN, code, tekst, verpakking
Tool
Next.js op VercelZoeken, vergelijken, exporteren
Wat het opleverde
Een vergelijking die eerder een halve dag handwerk was, is nu een zoekopdracht. Belangrijker nog: de inkoper ziet alternatieven die hij zelf niet had bedacht, omdat de tool de hele catalogus kent en niet alleen het deel dat iemand uit zijn hoofd weet.
De grootste winst zat niet in de tool maar in de bronanalyse ervoor. Door eerst te valideren wat er werkelijk in de export zit, verviel een groot deel van de oorspronkelijk geplande conditielogica. Dat scheelde weken bouwen aan iets wat de data al gaf.
Cijfers beschrijven het volume van de bronexport en de techniek die nodig was om die te verwerken. Leverancierscondities, prijzen en marges staan niet op deze pagina en horen daar ook niet.
Uitgangspunten
- Volledige catalogus in plaats van bekende artikelen
- Betrouwbaarheidsscore per match
- Analyse-runs blijven reproduceerbaar
- Excel-export voor leveranciersgesprekken
- Draait als interne app op eigen omgeving
Gebouwd met
Herkenbaar vraagstuk?
Stuur kort welke systemen meedoen en waar het vastloopt. Dan krijg je een eerlijk antwoord over de beste eerste stap, ook als dat is dat je mij niet nodig hebt.
