Gids
Producten bulk uploaden naar Shopify
Shopify kan veel producten tegelijk aanmaken of bijwerken vanuit een CSV-bestand. Hier leest u hoe de import werkt, waar het lastig wordt en wat u doet als uw productgegevens beginnen in leveranciers-pdf’s.
De CSV-import van producten van Shopify is de standaardmanier om een catalogus in bulk toe te voegen. U bereidt een spreadsheet voor in de indeling van Shopify, uploadt die in het beheer, en Shopify maakt de producten, varianten en afbeeldingen aan.
Zoals bij elke import hangt het succes af van de gegevens die u invoert. Deze gids behandelt het CSV-proces, de alternatieven en de voorbereiding die u behoedt voor het achteraf opschonen van honderden producten.
Optie 1: een product-CSV importeren in het Shopify-beheer
Ga in het Shopify-beheer naar Producten en kies Importeren. Upload een CSV in de productindeling van Shopify, bepaal of producten met dezelfde handle moeten worden overschreven, bekijk de voorvertoning en bevestig. Shopify verwerkt het bestand op de achtergrond en meldt het zodra het klaar is.
- Begin met het voorbeeld-product-CSV-sjabloon van Shopify, of exporteer een bestaand product om de exacte kolommen te zien.
- De kolom URL handle (Handle in oudere sjablonen) identificeert een product; rijen met dezelfde handle zijn varianten of extra afbeeldingen van hetzelfde product.
- Veelvoorkomende kolommen zijn onder meer Title, Description (Body (HTML)), Vendor, Product category, Type, Tags, Status, Option1 name / Option1 value, SKU (Variant SKU), Price, Barcodes (Variant Barcode) en Product image URL (Image Src).
- Afbeeldingen worden tijdens het importeren opgehaald van openbare URL’s.
- Sla het bestand op als UTF-8 CSV zodat speciale tekens intact blijven.
Varianten goed verwerken
Varianten zijn waar de meeste eerste imports op vastlopen. Elk product kan maximaal drie opties hebben (bijvoorbeeld Maat, Kleur, Materiaal). De eerste rij van een product bevat de velden op productniveau en de optienamen; elke volgende rij met dezelfde handle voegt één variant toe met de optiewaarden, SKU, prijs en voorraad.
Houd optienamen identiek in alle rijen en de combinatie van optiewaarden van elke variant uniek, zodat elke rij overeenkomt met precies één variant. Een rij die variantkolommen heeft maar geen Option1 name en Option1 value, zorgt ervoor dat Shopify een standaardvariant aanmaakt en de bestaande varianten verwijdert.
Optie 2: importapps voor bulkimport
Importapps uit de Shopify App Store breiden de standaard-CSV uit: ondersteuning voor Excel en Google Sheets, metavelden, geplande imports uit leveranciersfeeds en migratie vanaf andere platforms. Ze zijn het overwegen waard als u regelmatig importeert of velden nodig hebt die de standaard-CSV niet dekt.
Optie 3: de Shopify Admin API
Apps en maatwerkintegraties kunnen producten aanmaken via de Admin API van Shopify in plaats van via een CSV-bestand. Zo vermijdt u spreadsheet-heen-en-weer volledig, en veel catalogus- en vermeldingstools maken op deze manier producten in Shopify aan.
Doc2Shelf kiest deze route: u koppelt uw winkel via OAuth en beoordeelde vermeldingen worden als conceptproducten aangemaakt, met afbeeldingen, prijzen en categorieën.
Productgegevens voorbereiden voor Shopify
Controleer vóór elke bulk-upload of:
- Elk product een unieke handle heeft en elke variant een unieke SKU.
- Titels één patroon volgen (bijvoorbeeld merk + product + belangrijkste kenmerk).
- Beschrijvingen uw eigen tekst zijn, geen geplakte leverancierstekst, en eenvoudige HTML gebruiken.
- Specificaties consistente eenheden en namen gebruiken, zodat ze opties, tags of metavelden kunnen worden.
- Producten eerst ongepubliceerd worden geïmporteerd, zodat u een steekproef kunt beoordelen voordat u live gaat.
Als productgegevens uit leveranciers-pdf’s komen
Een CSV-import gaat ervan uit dat u al schone, gestructureerde gegevens hebt. Als leveranciers specificatiebladen en catalogi als pdf sturen, moet iemand eerst titels, specificaties en identificatiecodes extraheren en beschrijvingen schrijven — meestal het traagste deel van het hele werk.
Doc2Shelf vervangt die stap: het leest leveranciers-pdf’s, extraheert de productgegevens met betrouwbaarheidsinformatie voor beoordeling, stelt de Shopify-vermeldingstekst op als concept en maakt beoordeelde producten in uw gekoppelde winkel aan als concepten, zonder CSV.
Kolommen van de Shopify-product-CSV: actuele namen en oudere equivalenten
Shopify heeft verschillende kolommen van de product-CSV hernoemd. De actuele CSV-referentie gebruikt labels als URL handle, Description, SKU en Barcodes, terwijl veel sjablonen en tutorials nog Handle, Body (HTML), Variant SKU en Image Src tonen. Shopify zegt achterwaartse compatibiliteit met oudere kolomnamen te behouden, zodat een oud bestand nog steeds wordt geïmporteerd — maar een nieuwe export gebruikt de actuele labels, en een bestand dat beide stijlen mengt is moeilijk te controleren.
De tabel bevat de kolommen die de meeste bulkuploads nodig hebben. De hernoeming van Barcode naar Barcodes staat in de documentatie van Shopify; de andere oudere labels zijn gekoppeld op basis van wat elk veld bevat, dus bevestig ze aan de hand van een export uit uw eigen winkel. Kopteksten zijn hoofdlettergevoelig.
| Actuele kolom | Wat het bevat | Voorbeeld | Oudere naam of opmerkingen |
|---|---|---|---|
| Title | Productnaam | Roestvrijstalen waterkoker 1,7 L | Vereist om een product aan te maken. |
| URL handle | Unieke productidentificatie die in de product-URL wordt gebruikt | steel-kettle | Oudere sjablonen noemen het Handle. Rijen met dezelfde handle horen bij één product. |
| Description | Productbeschrijving | Snoerloze waterkoker met… | Oudere sjablonen noemen het Body (HTML). |
| Vendor | Merk of fabrikant | Acme | — |
| Product category | Categorie uit de Standard Product Taxonomy | hg-15-1-2 | Volledig categoriepad (breadcrumb) of categorie-ID, niet allebei. |
| Type | Uw eigen producttype | Elektrische waterkoker | Vrije invoer, anders dan de categorie. |
| Tags | Tags gescheiden door komma’s | snoerloos, keuken | Maximaal 250 tags per product. |
| Status | Productstatus | draft | Importeren als concept (draft), beoordelen en dan activeren. |
| SKU | Variant SKU | KTL-SLV | Oudere sjablonen noemen het Variant SKU. |
| Barcodes | Barcodes van de variant | gtin:4006381333931 | Voorheen Barcode (en daarvoor Variant Barcode). Scheid meerdere met puntkomma’s; het typevoorvoegsel is optioneel. |
| Option1 name / Option1 value | Eerste optie en de waarde van deze variant | Kleur / Zilver | Option2 en Option3 volgen hetzelfde patroon. |
| Option1 LinkedTo | Koppeling van de optie aan een categoriemetaveld | product.metafields.shopify.[attribute] | Optioneel; zie het onderdeel over taxonomie hieronder. |
| Price / Compare-at price | Verkoopprijs en vergelijkingsprijs | 49.90 / 59.90 | Price / [Market]-kolommen bevatten marktspecifieke prijzen. |
| Inventory quantity | Voorraad op hand | 25 | Werkt samen met de kolom Inventory tracker. |
| Weight value (grams) | Gewicht van de variant in gram | 1200 | Oudere sjablonen noemen het Variant Grams. Weight unit for display bepaalt de eenheid die shoppers zien. |
| Product image URL | Openbare URL van een productafbeelding | https://cdn.example.com/kettle.jpg | Oudere sjablonen noemen het Image Src. |
| Image position / Image alt text | Volgorde in de galerij en alternatieve tekst | 1 / Stalen waterkoker, vooraanzicht | Alternatieve tekst tot 512 tekens. |
| Variant image URL | Afbeelding die wordt getoond wanneer deze variant is geselecteerd | https://cdn.example.com/kettle-black.jpg | — |
| SEO title / SEO description | Titel en metabeschrijving voor zoekresultaten | — | Maximaal 70 en 320 tekens. |
| Metafield-kolommen | Waarden van productmetavelden | Material (product.metafields.custom.material) | Kopformaat: Naam (product.metafields.namespace.key). |
Varianten en opties: limieten en valkuilen
Een Shopify-product kan maximaal drie opties hebben — bijvoorbeeld Maat, Kleur en Materiaal — en maximaal 2.048 varianten. De limiet voor varianten was 100 totdat Shopify die in oktober 2025 verhoogde, dus sjablonen en gidsen van eerder noemen nog het oude getal. Sommige thema’s, apps en verkoopkanalen zijn rond de oude limiet gebouwd, dus controleer die van u voordat u een product met honderden varianten importeert.
De eerste rij van een product bevat de velden op productniveau en de optienamen. Elke volgende rij met dezelfde URL handle voegt één variant toe met optiewaarde, SKU, prijs, gewicht en voorraad, en laat de velden op productniveau leeg.
Twee gedragingen verrassen vaak bij het importeren van updates. Als een rij variantkolommen zoals SKU of weight bevat maar Option1 name en Option1 value weglaat, maakt Shopify een standaardvariant aan en verwijdert de bestaande varianten. En wie een optiewaarde wijzigt — bijvoorbeeld „Zilver” hernoemen naar „Zilverkleurig” — verwijdert de variant-ID’s en maakt nieuwe aan, wat apps en feeds die naar die ID’s verwijzen kan breken.
| Rij | URL handle | Title | Option1 name | Option1 value | SKU |
|---|---|---|---|---|---|
| Eerste rij | steel-kettle | Stalen waterkoker | Kleur | Zilver | KTL-SLV |
| Volgende rij | steel-kettle | (leeg) | (leeg) | Zwart | KTL-BLK |
Productafbeeldingen in een Shopify-CSV
Shopify downloadt tijdens de import afbeeldingen uit de kolom Product image URL, dus elke URL moet openbaar toegankelijk zijn en rechtstreeks naar het afbeeldingsbestand verwijzen. Links die een login vereisen, een voorbeeldpagina openen of verlopen voordat de import draait, zijn de gebruikelijke redenen waarom afbeeldingen ontbreken.
Een product kan maximaal 250 afbeeldingen of andere media bevatten. Zet de eerste afbeelding op de eerste rij van het product; voeg elke volgende afbeelding toe op een eigen rij met dezelfde URL handle, de afbeeldings-URL, de Image position en de Image alt text. Om een bepaalde afbeelding te tonen wanneer een shopper een variant kiest, zet u de URL in Variant image URL op de rij van die variant.
Alternatieve tekst mag maximaal 512 tekens lang zijn en Shopify adviseert 125 of minder. Beschrijf wat de afbeelding toont — „Roestvrijstalen waterkoker, vooraanzicht met waterniveaumeter” — in plaats van de producttitel te herhalen.
Productcategorie, metavelden en de Standard Product Taxonomy
De kolom Product category wijst een categorie toe uit de Standard Product Taxonomy van Shopify, gekozen op basis van de hoofdfunctie van het product. Voer het volledige categoriepad in, zoals Home & Garden > Linens & Bedding > Bedding > Bed Sheets, of de categorie-ID, zoals hg-15-1-2 — niet allebei. Een product zonder categorie wordt als niet-gecategoriseerd behandeld.
Het instellen van een categorie ontgrendelt de bijbehorende categoriemetavelden, die de taxonomie productkenmerken noemt. De categorie Shirts van Shopify heeft er bijvoorbeeld negen, waaronder maat, halslijn, stof en kleur, en kleurwaarden kunnen als stalen worden getoond. De kolom Option1 LinkedTo koppelt een variantoptie aan een van deze categoriemetavelden.
De categorie is ook buiten navigatie van belang: Shopify Tax gebruikt haar om belastingtarieven vast te stellen. Type is daarentegen een vrij label dat u zelf definieert en dat nuttig is voor uw eigen filters en rapporten.
Aangepaste productmetavelden worden geïmporteerd via kolommen met de kop Naam (product.metafields.namespace.key), bijvoorbeeld Materiaal (product.metafields.custom.material). Variantmetavelden worden niet ondersteund in de product-CSV; stel die in via de beheeromgeving, met een app of via de API.
Limieten van de Shopify-CSV en lengtes van SEO-velden
Dit zijn de limieten die Shopify documenteert voor product-CSV-imports en productrecords. Getallen in oudere gidsen — vooral de limiet van 100 varianten — zijn verouderd.
De kolommen SEO title en SEO description vullen de titel en metabeschrijving die in zoekresultaten worden gebruikt. Schrijf ze per product in plaats van één patroon over de hele catalogus te kopiëren: begin met de productnaam en het kenmerk waarop shoppers zoeken, zoals maat, materiaal of modelnummer.
| Onderdeel | Limiet | Wat te doen |
|---|---|---|
| Grootte van het CSV-bestand | 15 MB | Splits grote catalogi; houd alle rijen van een product in één bestand. |
| Opties per product | 3 | Modelleer verdere verschillen als afzonderlijke producten of metavelden. |
| Varianten per product | 2.048 | Controleer of uw thema en apps grote aantallen varianten aankunnen. |
| Afbeeldingen en media per product | 250 | Beperk de galerij tot afbeeldingen die shoppers helpen beslissen. |
| Tags per product | 250 | Gebruik tags voor filtering en automatisering. |
| Barcodes per product of variant | 20 | Voeg een typevoorvoegsel zoals gtin: toe wanneer u het type kent. |
| SEO-titel | 70 tekens | Begin met de productnaam en het belangrijkste kenmerk. |
| SEO-beschrijving | 320 tekens | Vat het product samen, met de kerndetails eerst. |
| Alternatieve tekst van afbeelding | 512 tekens (125 of minder aanbevolen) | Beschrijf wat de afbeelding toont. |
Overschrijven of aanmaken: hoe updates zich gedragen
Om een product aan te maken heeft de CSV alleen een Title nodig; voor varianten is ook de URL handle nodig. Om een bestaand product bij te werken heeft Shopify de URL handle en Title nodig, en kiest u bij het starten van de import voor het overschrijven van producten met overeenkomende handles.
Beschouw een overschrijving als leidend voor elke kolom die u opneemt. Het veiligste patroon is exporteren, bewerken, opnieuw importeren: exporteer de producten die u wilt wijzigen, bewerk alleen de cellen die moeten veranderen, laat de optiekolommen op hun plaats en importeer het bewerkte bestand met overschrijven ingeschakeld. Met een schaars bestand dat u helemaal opnieuw opbouwt, activeert u gemakkelijk het hierboven beschreven gedrag waarbij varianten worden verwijderd.
Lees het importvoorbeeld voordat u bevestigt en voer een grote update eerst uit op een handvol producten. De export die u vóór het bewerken hebt gemaakt, is uw weg terug als er iets misgaat.
Checklist vóór de import en probleemoplossing
Werk deze stappen af voor een grote import; de tabel daarna behandelt de problemen die het vaakst voorkomen.
- Exporteer één product uit uw winkel en hergebruik de kopregel, zodat de kolomnamen exact overeenkomen.
- Geef elk product een unieke URL handle en elke variant een unieke SKU.
- Controleer optienamen en -waarden op consistente spelling en bevestig dat elke variantrij zijn optiewaarde heeft.
- Vul Product category met een categoriepad of een ID dat uit de taxonomie is gekopieerd.
- Open een steekproef van afbeeldings-URL’s in een privévenster van de browser om te bevestigen dat ze zonder login laden.
- Stel Status voor de eerste run in op draft.
- Sla op als UTF-8-CSV en bevestig dat het bestand kleiner is dan 15 MB.
- Importeer vijf tot tien producten, beoordeel ze in de beheeromgeving en in de winkel en importeer dan de rest.
| Probleem | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Bestand geweigerd | Groter dan 15 MB, of niet opgeslagen als UTF-8-CSV | Splits het bestand per product en sla het opnieuw op als UTF-8-CSV |
| Kolom genegeerd | Kop verkeerd gespeld of met andere hoofdletters | Kopieer de kopteksten uit een nieuwe export |
| Varianten weg na een update | Variantkolommen verzonden zonder Option1 name en value | Importeer opnieuw met de optiekolommen erbij |
| Apps zijn varianten kwijt | Een optiewaarde is hernoemd, waardoor nieuwe variant-ID’s zijn ontstaan | Hernoem optiewaarden bewust en koppel de betrokken apps opnieuw |
| Producten onjuist gesplitst of samengevoegd | URL handle verschilt tussen de rijen van één product | Gebruik één identieke handle per product |
| Afbeeldingen ontbreken | URL is niet openbaar, geen directe bestandslink of verlopen | Host afbeeldingen op stabiele openbare URL’s |
| Categorie niet ingesteld | Categoriepad verkeerd getypt, of zowel pad als ID opgegeven | Gebruik er precies één, gekopieerd uit de taxonomie |
| Barcode niet geaccepteerd | Lengte past niet bij het opgegeven type | GTIN: 8, 12, 13 of 14 cijfers; UPC: 8 of 12; EAN: 8 of 13 |
| Waarden van metavelden ontbreken | Verkeerd kopformaat, of een variantmetaveld | Gebruik Naam (product.metafields.namespace.key); stel variantmetavelden elders in |
Veelgestelde vragen
- Hoe upload ik gratis producten in bulk naar Shopify?
- Gebruik de ingebouwde CSV-import onder Producten → Importeren. Die is bij elk Shopify-abonnement inbegrepen en verwerkt producten, varianten en afbeeldingen uit een CSV-bestand in de indeling van Shopify.
- Kan ik producten vanuit Excel naar Shopify uploaden?
- De standaardimporter heeft CSV nodig, dus sla uw Excel-blad op als UTF-8 CSV met de kolomnamen van Shopify. Sommige importapps kunnen Excel-bestanden rechtstreeks lezen.
- Overschrijft een CSV-import mijn bestaande producten?
- Bestaande producten worden alleen bijgewerkt als u kiest voor de optie om producten met dezelfde handle te overschrijven. Bekijk de voorvertoning van de import voordat u bevestigt, en test eerst met een klein bestand.
- Waarom worden mijn afbeeldingen niet geïmporteerd?
- Afbeeldings-URL’s moeten openbaar toegankelijke, directe links naar afbeeldingsbestanden zijn. Links die inloggen vereisen, doorverwijzen naar een webpagina of afkomstig zijn van een tijdelijke bestandsdeling mislukken meestal.
- Welke kolommen zijn verplicht in een Shopify-product-CSV?
- Alleen Title is vereist om een product aan te maken, plus URL handle wanneer u varianten toevoegt. Om bestaande producten bij te werken, neemt u URL handle en Title op. Al het andere is optioneel, hoewel een bruikbare vermelding doorgaans een prijs, SKU, categorie, beschrijving en afbeeldingen nodig heeft.
- Hoeveel varianten kan een Shopify-product hebben?
- Maximaal 2.048 varianten met in totaal ten hoogste drie opties. Shopify heeft de limiet in oktober 2025 verhoogd van 100, dus oudere sjablonen en gidsen die 100 noemen, zijn verouderd.
- Kan ik metavelden importeren met een Shopify-CSV?
- Productmetavelden wel: voeg een kolom toe met de kop Name (product.metafields.namespace.key). Variantmetavelden worden niet ondersteund in de product-CSV en moeten worden ingesteld in het beheer, met een app of via de API.
- Wat is de maximale grootte van een Shopify-product-CSV?
- Een product-CSV mag niet groter zijn dan 15 MB. Splits grotere catalogi op in meerdere bestanden en houd alle rijen van één product in hetzelfde bestand.