Valideer je CSV-catalogus voordat je tienduizend rijen importeert
Controleer dubbele SKU’s, onvolledige varianten en fouten in prijzen of tekst vóór import. Tien CSV-rijen met resultaten die je zelf kunt controleren.
TL;DR: Om een catalogus-CSV te valideren, controleer je eerst hoe de bestemming deze interpreteert; controleer vervolgens kolommen, identificatoren, varianten en waarden. Test een voorbeeld met bekende fouten en valideer het volledige bestand voordat je het uploadt. Dat tien rijen succesvol zijn, betekent niet dat de rest in orde is, noch dat een update alle gegevens behoudt.
Inhoudsopgave
Een catalogus-CSV valideren begint met begrijpen wat de import zal veranderen. Daarna komen de kolommen, de identificatoren en de waarden. Een bestand dat zonder waarschuwingen wordt geopend, kan twee producten met dezelfde SKU of een maat zonder waarde bevatten. Een geaccepteerd bestand kan ook het verkeerde product bijwerken.
Met de volgende oefening leer je deze fouten onderscheiden. Het zijn tien verzonnen rijen, met controleerbare resultaten. Het is geen voorbeeld van een echte winkel, noch een bestand dat is voorbereid voor Shopify of Frihet: het gebruikt een zelfstandig oefenschema dat je moet vervangen door het formaat van het doelsysteem.
Begin bij de bestemming, niet bij het bestand van de leverancier
Download een actueel sjabloon of exporteer een representatief product vanuit de tool die de gegevens zal ontvangen. Noteer of je gaat aanmaken, bijwerken of beide bewerkingen gaat combineren; wat een record identificeert; welke velden verplicht zijn; en wat het betekent om een cel leeg te laten. Bewaar deze definitie samen met het werkbestand.
In Shopify, bijvoorbeeld, is overschrijven gebaseerd op de URL-identifier, genaamd handle. De documentatie vereist ook het controleren van de afhankelijkheden tussen variant- en optievelden. Onze SKU-regel beschrijft niet hoe die importfunctie producten identificeert. Productformaat van Shopify.
Als je gegevens tussen systemen verplaatst, scheid deze controle dan van de verbinding tussen winkel en beheer (in het Engels). Een beschikbare connector toont niet aan dat deze de kolommen van je leverancier accepteert.
Definieer controleerbare regels
In de oefening vertegenwoordigt elke rij een verkoopbaar artikel. product_key groepeert de varianten; sku moet aanwezig en uniek zijn. name is verplicht. Een variant heeft option_name en option_value nodig; Als beide leeg zijn, is er geen optie opgegeven. Als beide zijn ingevuld, mag hun combinatie met product_key niet worden herhaald.
Het bestand gebruikt UTF-8, komma’s tussen velden en acht kolommen in de getoonde volgorde. price accepteert niet-negatieve getallen met een punt en twee decimalen, zonder duizendseparator. Voor currency eisen we EUR voor deze test. Dit zijn voorwaarden die voor deze test zijn gekozen, geen universele regels of commerciële prijzen. Er is geen valutaconversie of belastingberekening.
SKU’s worden als tekst bewaard: 001 wordt niet 1. Microsoft legt uit hoe je automatische conversies kunt voorkomen bij het laden van identificatoren in Excel. Definieer het kolomtype voordat je de gegevens transformeert; het achteraf wijzigen van de weergave herstelt het origineel niet. Voorloopnullen behouden in Excel.
Tien rijen, inclusief één die correct lijkt
Kopieer het blok als tekst om het te onderzoeken. De laatste rij heeft opzettelijk één kolom minder. row_id is de identificator van de test; R01 bevindt zich op de tweede regel van het bestand, omdat de eerste de kopteksten bevat.
De productnamen en andere voorbeeldwaarden blijven in alle taalversies gelijk, zodat de resultaten reproduceerbaar zijn.
row_id,product_key,sku,name,option_name,option_value,price,currencyR01,P01,001,Taza,Color,Natural,19.90,EURR02,P01,002,Taza,Color,Ink,19.90,EURR03,P02,001,Bolsa,,,29.00,EURR04,P03,,Cuaderno,,,8.50,EURR05,P04,005,Café,,,6.00,EURR06,P05,006,Vaso,,,"12,50",EURR07,P06,007,Camiseta,Size,,24.00,EURR08,P01,008,Taza,Color,Natural,19.90,EURR09,P07,009,,,,15.00,EURR10,P08,010,Bandeja,,,25.00| Rij | Verwacht resultaat | Wat te onderzoeken |
|---|---|---|
| R01 | Blokkeren: Dubbele SKU en variant | Vergelijken met R03 en R08; deze rij wordt ook niet goedgekeurd. |
| R02 | Voldoet aan de oefenregels | Bewaar als controle; toont geen compatibiliteit met de bestemming aan. |
| R03 | Blokkeren: Dubbele SKU | 001 identificeert ook de mok van R01. |
| R04 | Blokkeren: SKU ontbreekt | Vraag de referentie op; verzin deze niet op basis van de naam. |
| R05 | Tekst controleren | Café vergelijken met het origineel van de leverancier. |
| R06 | Blokkeren: Prijsformaat | De decimale komma is in strijd met de gekozen regel. |
| R07 | Blokkeren: Onvolledige variant | Er is Size zonder waarde. |
| R08 | Blokkeren: Dubbele variant | P01 + Color + Natural verschijnt al in R01, zelfs als de SKU verandert. |
| R09 | Blokkeren: Naam ontbreekt | Identificeer het product voordat je verdergaat. |
| R10 | Blokkeren: Onvolledige structuur | Er zijn zeven velden; de valutakolom werd ook verwacht. |
Het resultaat is acht geblokkeerde rijen, één die nader moet worden bekeken en één die slaagt. Dit zijn rijstatussen, geen acht onafhankelijke fouten: R01 heeft twee conflicten. Je kunt elk resultaat controleren door de sleutels tussen rijen en de velden met de bovenstaande regels te vergelijken.
Een duplicaat wordt niet opgelost door de eerste rij te kiezen
R01 lijkt compleet wanneer afzonderlijk gelezen. Het conflict verschijnt wanneer de hele dataset wordt doorgenomen: het deelt SKU met een tas en een variantcombinatie met een andere mok. Daarom moet de controle alle leden van de groep markeren, en niet de eerste goedkeuren en de laatste afwijzen.
Vraag degene die de catalogus beheert om te bevestigen of er een verkeerde referentie, een herhaald product of een slecht beschreven variant is. Sla de beslissing op met de oude waarde, de nieuwe en de reden ervan. Verwijder R08 niet alleen omdat de naam overeenkomt; een echte catalogus kan materiaal, maat of andere opties onderscheiden die dit vereenvoudigde blad niet bevat.
Voor je echte batch, vergelijk ook met de referenties die al in de bestemming bestaan. Een unieke SKU binnen de CSV kan nog steeds overeenkomen met een ander product buiten het bestand. Definieer bovendien hoe om te gaan met spaties en hoofdletterverschillen vóór normalisatie: het opschonen van een identificator kan referenties samenvoegen die gescheiden moesten blijven.
Scheid formaat, tekst en betekenis
R06 bevat "12,50": de aanhalingstekens houden de prijs in één cel. Handmatig komma’s tellen zou een incorrecte diagnose opleveren; gebruik een CSV-lezer. De RFC 4180 beschrijft deze aanhalingstekenconventie, maar definieert niet welke kolommen een catalogus nodig heeft, noch hoe een prijs te interpreteren. De syntaxis van R06 is geldig; de waarde voldoet niet aan onze veldregel.
Voer geen globale vervanging uit van komma’s door punten: je zou zowel scheidingstekens als inhoud wijzigen. Identificeer eerst het veld, bevestig het bronformaat en converteer de waarde op een gecontroleerde manier. Een lege waarde staat ook niet gelijk aan nul; het registreren van een nul-prijs zou een commerciële beslissing zijn die niemand heeft bevestigd.
R05 vereist een andere controle. De tekst Café is opgeslagen met geldige UTF-8 bytes; dit bewijst niet dat de naam correct is. De waarschuwing in deze oefening is voorbereid op die specifieke waarde, het is geen universele coderingsdetector. Vergelijk de naam met de bron en controleer in welke stap deze is vervormd. Beschadigde tekst opnieuw opslaan als UTF-8 herstelt de karakters niet automatisch.
Controleer voor het bijwerken wat er behouden blijft
Een ontbrekende kolom en een lege cel kunnen verschillende wijzigingen veroorzaken. Shopify documenteert dat bij overschrijven een leeg optioneel veld het bestaande veld kan legen; het weglaten van de kolom kan het behouden. Het waarschuwt ook dat een gestarte import niet kan worden geannuleerd en raadt een back-up vóór de import aan. Importvoorwaarden van Shopify.
De identiteit van een variant kan ook veranderen: Shopify waarschuwt dat het wijzigen van optiewaarden hun vorige identificatoren verwijdert en nieuwe creëert. Controleer welke koppelingen van die identifiers afhangen voordat je een optie via CSV corrigeert. Variantopties en identificatoren.
Bereid een vergelijking voor tussen de vorige staat, de verwachte wijziging en het waargenomen resultaat. Voeg de velden toe die hetzelfde moeten blijven. Test in een beschikbare testomgeving en bewaar de gerelateerde rijen van een product bij elkaar; tien opeenvolgende regels vertegenwoordigen niet altijd tien complete producten.
In een echte operatie zou je verschillende gevallen kiezen: een eenvoudig product, verschillende opties, geaccentueerde tekens, een lege prijs en een update van een bestaande referentie. Dat voorbeeld test het traject. Pas daarna de regels toe op het volledige bestand: duplicaten kunnen gescheiden zijn door duizenden rijen. Raadpleeg de integraties om de tools van je workflow te identificeren, en controleer de gegevensvereisten van elke tool.
Laat een beslissing achter die een ander kan beoordelen
Voordat je uploadt, noteer de bestandsversie, bestemming, verantwoordelijke, toegepaste regels, opgeloste incidenten en de vergelijking van de test. Als een bevestiging ontbreekt, houd de batch dan in afwachting; een “geïmporteerd” bericht vervangt die beoordeling niet.
Frihet ondersteunt CSV-import van producten, binnen haar beheerfuncties. Het schema en de handmatige controles in dit artikel zijn onafhankelijk: ze tonen niet aan welke velden Frihet accepteert of welke automatische controles het uitvoert. Gebruik het sjabloon van je importfunctie en begin met het oplossen van de rijen die je nog niet kunt verklaren.
Was dit artikel nuttig?
Veelgestelde vragen
Vervangen deze controles de regels van de importfunctie?
Nee: het schema en de handmatige controles vormen een zelfstandige oefening. Gebruik het actuele sjabloon van het doelsysteem en controleer de regels voor aanmaken, bijwerken en lege velden.
Garandeert het valideren van tien rijen dat de rest van de catalogus klopt?
Nee. De steekproef dient om de werkwijze te testen; pas daarna de regels toe op het hele bestand en vergelijk met bestaande referenties in het doelsysteem, omdat ook buiten de steekproef duplicaten kunnen voorkomen.