Project
Een klein feedscript dat vier jaar lang de voorraad en producten van een meubelwebshop in lijn hield met de leveranciers.
Het systeem in één oogopslag
-
01
Ophalen
Voorraad- en productdata bij iedere leverancier ophalen.
-
02
Samenvoegen
Losse records combineren en formaten normaliseren.
-
03
Verwerken
Filteren, herschrijven, vertalen en productregels toepassen.
-
04
Synchroniseren
De live CCV Shop-catalogus volgens schema bijwerken.
Het probleem
Een Nederlandse webshop in designmeubels werkte met dropshipping: geen eigen voorraad, maar verkoop vanuit de voorraad van leveranciers. De webshop draaide op CCV Shop, een Nederlands gehost platform.
De webshop werkte met ongeveer vier leveranciers. Iedere leverancier leverde de catalogus op een andere manier en in een ander formaat aan. Ook kwamen voorraad, productinformatie en beschrijvingen vaak uit losse bestanden. Dat handmatig bijhouden was niet haalbaar: voorraad verandert voortdurend en je wilt geen product verkopen dat de leverancier niet meer kan leveren. De bestaande CCV-importmodules pasten niet of waren relatief duur. De eigenaar wilde daarom een eigen oplossing die niet als openbare extensie werd aangeboden.
De aanpak
Het begon als een klein project met een vaste prijs. CCV Shop heeft een API, dus in plaats van een bestaande extensie schreef ik een script dat de leveranciersfeeds ophaalt en de webshop volgens een schema bijwerkt. Producten werden gekoppeld op het artikelnummer van de leverancier. Hoe vaak de synchronisatie draaide, hing af van het aantal producten.
Dat was de eerste versie. Vanaf daar groeide het mee met de shop.
Het gebouwde systeem
- Een geplande koppeling met de CCV Shop API. Voordat er iets naar de webshop ging, moesten losse feeds per leverancier worden samengevoegd: voorraad uit de ene bron, productinformatie en beschrijvingen uit de andere. Samen vormden ze één productrecord.
- Filters per feed, zodat alleen bepaalde categorieën en producttypes werden geïmporteerd in plaats van de hele catalogus van de leverancier.
- Productnamen en -beschrijvingen herschreven om uniek te zijn. Dit was vóór generatieve AI, dus de teksten werden met regels in code aangepast. Zo gebruikte de webshop niet exact dezelfde tekst als iedere andere verkoper van hetzelfde meubel.
- Automatische vertaling van nieuwe producten naar het Nederlands via de DeepL API.
- Voorraad- en prijsupdates per product, met regels voor de uitzonderingen: bepaalde SKU's uitgesloten van prijsupdates, producten zonder afbeelding offline gehaald.
- Iedere leverancier leverde gegevens anders aan: via FTP, een XML-feed of een API. Verschillende formaten, inloggegevens en schema's werden binnen dezelfde koppeling verwerkt.
Het resultaat
Het systeem draaide ongeveer vier jaar, van 2019 tot in 2023. Meestal deed het stil op de achtergrond zijn werk. Soms veranderde een feed zonder waarschuwing, verplaatste een leverancier een bestand of stopte een synchronisatie. Dan moest de oorzaak snel worden gevonden en dezelfde dag worden opgelost.
Zo ziet dit soort werk in productie eruit. Het is geen eenmalige oplevering, maar software die moet blijven aansluiten terwijl zowel de leveranciers als de webshop veranderen. Wat begon als een klein feedscript, hield uiteindelijk vier jaar lang de producten en voorraad van de webshop bij.
Stack
- PHP
- CCV Shop API
- Geplande synchronisatie van leveranciersfeeds
- Meerdere leveranciers via FTP, XML en API
- Samenvoegen van voorraad- en productgegevens
- Filtering op categorie/type per feed
- Regel-gebaseerde herschrijving van productnamen & -beschrijvingen
- DeepL vertaal-API
Neem contact op
Wordt leveranciersdata nog steeds handmatig opgeschoond?
Stuur de bronformaten, het doelsysteem en de uitzonderingen die je team handmatig afhandelt. Ik kan daar een betrouwbaar integratieproject van maken.
De meeste projecten beginnen met een korte mail — info@pawon.nl. Ik antwoord meestal binnen één werkdag.