Ratgeber
Produkte per CSV in WooCommerce importieren
WooCommerce kann Hunderte von Produkten auf einmal aus einer CSV-Datei importieren. Dieser Ratgeber zeigt den integrierten Importer, erklärt, wann ein Plugin oder die REST API sinnvoller ist, und wie Sie saubere Daten überhaupt in die CSV bekommen.
Produkte einzeln im WooCommerce-Backend anzulegen ist für einen kleinen Shop in Ordnung, doch ein Lieferantenkatalog kann auf diese Weise Tage dauern. WooCommerce enthält einen CSV-Importer für Produkte, und für größere oder wiederkehrende Aufgaben gibt es Import-Plugins und eine API.
Der Import selbst ist selten das Schwierige. Schwierig ist es, eine korrekte CSV zu erstellen: eine Zeile pro Produkt oder Variante, die richtigen Spalten, einheitliche Attribute und Beschreibungen, die sich zu veröffentlichen lohnen.
Option 1: Der integrierte WooCommerce-CSV-Importer
WooCommerce liefert einen CSV-Importer und -Exporter für Produkte mit. Gehen Sie im WordPress-Backend zu Produkte → Alle Produkte und wählen Sie Importieren. Laden Sie Ihre CSV hoch, ordnen Sie die Spalten den WooCommerce-Feldern zu und starten Sie den Import. Mit der Option „Vorhandene Produkte aktualisieren“ aktualisieren Sie Produkte, die über ID oder SKU zugeordnet werden, statt Duplikate anzulegen.
- Exportieren Sie zuerst ein vorhandenes Produkt und verwenden Sie diese Datei als Vorlage — sie zeigt die genauen Spaltennamen, die Ihr Shop erwartet.
- Typische Spalten sind Type, SKU, Name, Published, Short description, Description, Regular price, Categories, Tags, Images und Attribute 1 name / Attribute 1 value(s).
- Bilder werden über URLs importiert und müssen daher beim Import öffentlich erreichbar sein.
- Variable Produkte benötigen eine Elternzeile vom Typ „variable“ und je Variante eine Zeile, die auf das übergeordnete Produkt verweist.
- Sehr große Dateien können bei Shared Hosting in einen Timeout laufen — teilen Sie sie in Stapel von einigen Hundert Zeilen auf.
Option 2: Import-Plugins
Import-Plugins von Drittanbietern ergänzen Funktionen, die dem Kern-Importer fehlen: zeitgesteuerte oder wiederkehrende Importe aus einem Lieferanten-Feed, XML-Unterstützung, Regeln zur Feldtransformation und eine bessere Verarbeitung sehr großer Dateien. Sie sind sinnvoll, wenn ein Lieferant regelmäßig aktualisierte Preis- und Bestandsdateien schickt.
Auch Plugins erwarten strukturierte Eingaben. Wenn Ihr Lieferant PDFs statt eines Feeds liefert, nimmt Ihnen ein Plugin die Arbeit nicht ab, diese PDFs in Zeilen zu überführen.
Option 3: Die WooCommerce REST API
Entwickler und Integrationswerkzeuge können Produkte über die WooCommerce REST API anlegen, einschließlich eines Batch-Endpunkts, der viele Produkte in einer Anfrage erstellt oder aktualisiert. Das eignet sich für automatisierte Pipelines und Apps, die Produkte direkt und ohne CSV-Schritt erstellen.
Doc2Shelf nutzt diesen Weg: Nach der Prüfung sendet es Produkte als einfache Entwurfsprodukte mit langen und kurzen Beschreibungen an WooCommerce, sodass Sie sie in WooCommerce kontrollieren können, bevor sie live gehen. Globale Filterattribute und variable Produkte werden separat in WooCommerce eingerichtet.
Produktdaten für den Massenimport vorbereiten
Welche Importmethode Sie auch verwenden: Die Datenqualität entscheidet über das Ergebnis. Vor dem Import:
- Vergeben Sie jedem Produkt eine eindeutige SKU — darüber findet ein späteres Update das richtige Produkt.
- Legen Sie Kategorien und globale Attribute zuerst in WooCommerce an und verweisen Sie dann einheitlich darauf.
- Normalisieren Sie Spezifikationen: gleiche Einheiten, gleiche Attributnamen, ein Wert pro Zelle.
- Schreiben Sie eigene Beschreibungen, statt Lieferantentext einzufügen; Marktplätze und Suchmaschinen belohnen einzigartige Texte.
- Importieren Sie beim ersten Durchlauf als Entwürfe – setzen Sie Published auf -1 (0 macht Produkte privat) – und prüfen Sie dann eine Stichprobe, bevor Sie alles veröffentlichen.
Wenn Ihr Lieferant nur PDFs schickt
Viele Lieferanten stellen Datenblätter und Kataloge als PDFs bereit, nicht als CSV-Feeds. Dann ist die Extraktion der Engpass: Jemand muss jedes PDF lesen, die Spalten ausfüllen und eine Beschreibung schreiben.
Das können Sie manuell erledigen oder die Daten mit einem Werkzeug extrahieren und prüfen. Doc2Shelf liest Lieferanten-PDFs, extrahiert die Spezifikationen zur Prüfung, entwirft lange und kurze WooCommerce-Beschreibungen und legt die Produkte über die REST API als Entwürfe an — und ersetzt damit bei PDF-basierten Katalogen den Tabellenschritt.
Häufige Fehler beim WooCommerce-Import
Wenn ein Import fehlschlägt oder unerwartete Ergebnisse liefert, prüfen Sie zuerst Folgendes:
- Doppelte oder fehlende SKUs, durch die Zeilen übersprungen oder Produkte dupliziert werden.
- Falsche Dateikodierung — speichern Sie die CSV als UTF-8, damit Umlaute und Akzente korrekt importiert werden.
- Bild-URLs, die weiterleiten, eine Anmeldung erfordern oder auf sehr große Dateien verweisen.
- Uneinheitlich geschriebene Kategoriepfade (verwenden Sie „Eltern > Kind“ für verschachtelte Kategorien).
- Varianten, deren Attributwerte nicht zu den Attributwerten des übergeordneten Produkts passen.
Referenz der WooCommerce-Produkt-CSV-Spalten
Der Core-Importer liest einen festen Satz von Spaltennamen. Wenn Sie ein Produkt aus Ihrem eigenen Shop exportieren, erhalten Sie genau die Kopfzeilen, die Ihre WooCommerce-Version erwartet; die folgende Tabelle erklärt die Spalten, die für einen Massenupload am wichtigsten sind. Nur Name ist erforderlich – alle anderen Spalten sind optional, aber ein Katalog, der ohne Type, SKU, Preise und Kategorien importiert wird, hinterlässt später viel Handarbeit.
Spalten mit einer Einheit in der Kopfzeile, etwa Weight und die drei Abmessungen, zeigen die in Ihren Shop-Einstellungen festgelegte Einheit; kopieren Sie diese Kopfzeilen daher aus einem Export, statt sie abzutippen. Eigene Daten ohne eigene Spalte kommen in eine Spalte, deren Kopfzeile mit meta: beginnt, gefolgt vom Feldschlüssel.
| Spalte | Inhalt | Beispiel | Hinweise |
|---|---|---|---|
| ID | Vorhandene WooCommerce-Produkt-ID | — | Bei neuen Produkten leer lassen; Update-Importe gleichen zuerst über die ID ab. |
| Type | Produkttyp | simple | Außerdem variable, variation, grouped oder external. Virtual und downloadable sind Kennzeichnungen eines Produkts, keine eigenen Typen. |
| SKU | Ihr eindeutiger Produktcode | ACME-KTL-17 | Zweiter Abgleichsschlüssel für Updates, nach der ID. Muss im Shop eindeutig sein. |
| GTIN, UPC, EAN, or ISBN | Globale Produktkennung | 4006381333931 | Core-Feld. Seit WooCommerce 11.2 der Ersatz-Abgleichsschlüssel, wenn ID und SKU beide leer sind. |
| Name | Produkttitel | Wasserkocher aus Edelstahl 1,7 l | Die einzige Pflichtspalte. |
| Published | Status nach dem Import | -1 | 1 = veröffentlicht, 0 = privat, -1 = Entwurf, 2 = ausstehende Prüfung. |
| Regular price / Sale price | Preise | 49.90 | Reine Zahlen ohne Währungssymbol. |
| Stock | Lagerbestand | 25 | Bei Bedarf zusammen mit In stock? und Backorders allowed? verwenden. |
| Weight (unit), Length (unit), Width (unit), Height (unit) | Versandgewicht und Abmessungen | 1.2 | Die Kopfzeile zeigt die Einheit Ihres Shops, zum Beispiel kg oder cm. |
| Categories | Produktkategorien | Küche > Wasserkocher, Geschenke | Kommagetrennt; „>“ kennzeichnet eine Unterkategorie. |
| Images | Bild-URLs | https://cdn.example.com/ktl-front.jpg | Kommagetrennt; das erste Bild wird zum Beitragsbild. |
| Parent | Übergeordnetes Produkt einer Variationszeile | ACME-KTL | Die SKU des übergeordneten Produkts oder id: gefolgt von dessen ID. |
| Attribute 1 name / Attribute 1 value(s) | Ein Attribut und seine Werte | Farbe / Rot, Blau | Für weitere Attribute Attribute 2, Attribute 3 usw. ergänzen. |
| Attribute 1 visible / Attribute 1 global | Kennzeichen für dieses Attribut | 1 / 1 | Visible zeigt es auf der Produktseite; global verwendet ein shopweites Attribut. |
| Attribute 1 default | Vorausgewählter Wert eines variablen Produkts | Rot | In der übergeordneten Zeile festlegen. |
| meta:supplier_code | Ein benutzerdefiniertes Meta-Feld | D-4471 | Jede Kopfzeile, die mit meta: beginnt, wird als benutzerdefiniertes Meta gespeichert. |
Variable Produkte in einer CSV: übergeordnete Zeilen und Variationszeilen
Ein variables Produkt verteilt sich auf mehrere Zeilen: eine übergeordnete Zeile, die das Produkt und die angebotenen Attributwerte definiert, und je eine Zeile pro Variation, die Preis, SKU und Bestand für eine einzelne Kombination enthält. Die übergeordnete Zeile hat den Type „variable“; jede Variationszeile hat den Type „variation“ und verweist in der Spalte Parent auf das übergeordnete Produkt, mit dessen SKU oder id: gefolgt von dessen ID.
Die Attributspalten verbinden die Zeilen miteinander. Beim übergeordneten Produkt listet Attribute 1 value(s) alle angebotenen Werte auf, durch Kommas getrennt. Bei jeder Variation steht derselbe Attribute 1 name mit genau einem dieser Werte. Schreibweise und Groß-/Kleinschreibung müssen übereinstimmen: Eine Variation mit „rot“ unter einem übergeordneten Produkt mit „Rot“ kann am Ende ohne verwendbaren Attributwert dastehen.
Setzen Sie Attribute 1 global beim übergeordneten Produkt und bei seinen Variationen auf 1, wenn Sie ein shopweites Attribut verwenden, das unter Produkte → Attribute angelegt wurde – damit arbeiten die Filternavigation und Filter-Widgets. Seit WooCommerce 11.1 kann ein Update-Import außerdem neue Variationen zu einem bereits vorhandenen variablen Produkt hinzufügen, sodass Sie eine Produktreihe erweitern können, ohne das übergeordnete Produkt neu aufzubauen.
- Halten Sie jede übergeordnete Zeile oberhalb ihrer Variationen, damit sich die Datei leicht prüfen lässt und das übergeordnete Produkt existiert, wenn seine Variationen darauf verweisen.
- Geben Sie jeder Variation eine eigene SKU und einen eigenen Preis; eine Variation ohne Preis kann nicht gekauft werden.
- Steuern Sie mit Attribute 1 default beim übergeordneten Produkt, welche Option vorausgewählt ist.
| Zeile | Type | SKU | Parent | Attribute 1 name | Attribute 1 value(s) |
|---|---|---|---|---|---|
| Übergeordnet | variable | ACME-KTL | — | Farbe | Rot, Blau |
| Variation 1 | variation | ACME-KTL-RED | ACME-KTL | Farbe | Rot |
| Variation 2 | variation | ACME-KTL-BLU | ACME-KTL | Farbe | Blau |
Produktbilder über die CSV hinzufügen
Die Spalte Images nimmt eine oder mehrere Bild-URLs auf, durch Kommas getrennt. Die erste URL wird zum Beitragsbild, die übrigen bilden die Produktgalerie in der angegebenen Reihenfolge. Beim Import lädt WordPress jede Datei in Ihre Mediathek herunter, daher muss jede URL in diesem Moment öffentlich erreichbar sein – ohne Login, ohne ablaufenden Freigabelink und ohne Weiterleitung auf eine Webseite statt auf die Datei.
Bilder sind meist der langsamste Teil eines Imports: Einige hundert Produkte mit je fünf Bildern bedeuten über tausend Downloads. Verkleinern Sie Bilder, bevor Sie sie hosten, verwenden Sie aussagekräftige Dateinamen (kettle-red-front.jpg, nicht IMG_0042.jpg) und teilen Sie große Kataloge in kleinere Dateien auf.
Der Core-Importer kann keinen Alt-Text für Bilder setzen. Ergänzen Sie Alt-Texte nachträglich in der Mediathek, über die REST API oder mit einer Import-Erweiterung, die dies unterstützt. Eine Variation enthält nur ein Bild, geben Sie daher jeder Variationszeile höchstens eine URL.
Produkte per WooCommerce REST API in großen Mengen anlegen
Die REST API ist der bessere Weg, wenn Importe sich wiederholen, wenn die Produktdaten bereits in einem anderen System liegen oder wenn niemand mehr mit einer CSV hantieren soll. Der Batch-Endpunkt für Produkte (POST /wp-json/wc/v3/products/batch) akzeptiert Anlegen-, Aktualisieren- und Löschen-Vorgänge in einer einzigen Anfrage.
Standardmäßig ist eine Batch-Anfrage auf 100 Objekte für Anlegen, Aktualisieren und Löschen zusammen begrenzt. Dasselbe Limit gilt für die Batch-Endpunkte für Variationen, Kategorien, Attribute und Attributbegriffe. Ein Katalog mit 1.000 Produkten benötigt daher mindestens zehn Anfragen, mit Variationen mehr.
- Erstellen Sie unter WooCommerce → Einstellungen → Erweitert → REST-API einen REST-API-Schlüssel mit Lese-/Schreibrechten, oder lassen Sie eine App über den Autorisierungsbildschirm von WooCommerce einen anfordern.
- Legen Sie zuerst die Kategorien, globalen Attribute und Attributbegriffe an und notieren Sie deren IDs.
- Senden Sie einfache und übergeordnete Produkte in Batches von bis zu 100 mit dem Status „Entwurf“ (draft).
- Legen Sie die Variationen jedes variablen Produkts über den Variationen-Batch-Endpunkt dieses Produkts an.
- Prüfen Sie in der Antwort das Ergebnis für jeden Eintrag und wiederholen Sie nur die fehlgeschlagenen Einträge.
- Prüfen Sie im Admin-Bereich stichprobenartig einige Entwürfe und veröffentlichen Sie sie dann.
Ein Plugin oder einen Weg für den WooCommerce-Massenupload von Produkten wählen
Reicht der Core-Importer nicht aus, beurteilen Sie ein Import-Plugin oder eine Erweiterung danach, wie es mit Ihren Daten umgeht, nicht nach der Länge der Funktionsliste, und testen Sie es mit einer echten Lieferantendatei auf einer Staging-Kopie des Shops, bevor Sie sich festlegen. Die Tabelle vergleicht die vier Wege; danach folgen die Fragen, die Sie an jedes Plugin stellen sollten.
- Quellformate: nur CSV oder auch XML, Tabellendateien und per URL abgerufene Remote-Feeds.
- Zeitplanung: ob ein Import nach Zeitplan erneut ausgeführt werden kann, um neue Preise und Bestände zu übernehmen.
- Zuordnung und Transformation: Spalten umbenennen, Werte aufteilen, Einheiten umrechnen und Preisregeln während des Imports anwenden.
- Variable Produkte: ob übergeordnete Produkte, Variationen und globale Attribute zuverlässig aufgebaut werden.
- Bilder: wie sie heruntergeladen werden, ob Duplikate erkannt werden und ob Alt-Texte gesetzt werden.
- Große Dateien: Verarbeitung im Hintergrund oder in Teilen, damit lange Importe nicht in ein Timeout laufen.
- Update-Regeln: über welchen Schlüssel abgeglichen wird (ID, SKU oder GTIN) und welche Felder überschrieben werden dürfen.
| Weg | Am besten geeignet für | Zu beachten |
|---|---|---|
| Core-CSV-Importer | Einmalige Importe und Massenaktualisierungen durch das Shop-Team | Upload- und Zeitlimits des Servers; kein Alt-Text für Bilder |
| Import-Plugin oder Erweiterung | Wiederkehrende Lieferanten-Feeds, XML- oder Tabellenquellen, geplante Updates | Ein weiteres Plugin, das gewartet und kompatibel gehalten werden muss |
| REST-API-Batch-Anfragen | Automatisierte Pipelines und Synchronisierung aus einem anderen System | Entwicklungsaufwand; standardmäßig 100 Objekte pro Batch-Anfrage |
| App, die Produkte für Sie anlegt | Produktdaten, die nicht aus einer Tabelle stammen, etwa Lieferantendokumente | Prüfen, welche Produkttypen und Felder die App tatsächlich setzt |
Checkliste vor dem Import und Fehlerbehebung
Die meisten fehlgeschlagenen Importe gehen auf einen übersprungenen Vorbereitungsschritt zurück. Arbeiten Sie vor jedem großen Import die Checkliste ab und nutzen Sie die Tabelle, um Probleme zu diagnostizieren, die trotzdem auftreten.
- Sichern Sie die Datenbank oder führen Sie den Import auf einer Staging-Kopie des Shops aus.
- Exportieren Sie ein vorhandenes Produkt und kopieren Sie dessen Kopfzeile in Ihre Datei.
- Legen Sie die Kategorien, globalen Attribute und Attributbegriffe an, auf die sich die Datei bezieht.
- Prüfen Sie, dass jede SKU eindeutig ist und dass der Parent-Wert jeder Variation zur SKU eines vorhandenen übergeordneten Produkts passt.
- Verwenden Sie in den Spalten für Preis, Bestand, Gewicht und Abmessungen reine Zahlen.
- Öffnen Sie eine Stichprobe der Bild-URLs in einem privaten Browserfenster und prüfen Sie, dass sie ohne Login geladen werden.
- Setzen Sie Published auf -1, damit die Produkte als Entwürfe ankommen.
- Speichern Sie die Datei als UTF-8-CSV.
- Importieren Sie eine Testdatei mit zehn Zeilen, prüfen Sie die Ergebnisse und importieren Sie dann den Rest in Batches.
| Problem | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Produkte werden dupliziert statt aktualisiert | Option „Bestehende Produkte aktualisieren“ nicht angehakt, oder IDs und SKUs stimmen nicht mit dem Shop überein | Option anhaken; IDs oder SKUs aus einem frischen Export kopieren |
| Zeilen werden bei einem Update-Import übersprungen | Kein Treffer bei ID oder SKU (die GTIN wird seit 11.2 nur versucht, wenn beide leer sind) | SKU oder ID des vorhandenen Produkts in jede Zeile eintragen |
| Variationen werden als separate Produkte importiert | Type nicht auf variation gesetzt, oder die Spalte Parent ist leer oder falsch geschrieben | Type „variation“ und die exakte SKU des übergeordneten Produkts verwenden |
| Bilder fehlen | URL erfordert einen Login, leitet weiter, oder der Host blockiert den Download | Bilder unter öffentlichen, direkten URLs hosten und den Import erneut ausführen |
| Datei wird beim Upload abgelehnt | Datei größer als die maximale Upload-Größe des Servers | Datei aufteilen oder den Hoster bitten, das Limit zu erhöhen |
| Import bricht zwischendurch ab | Zeit- oder Speicherlimit des Servers erreicht | Kleinere Dateien importieren |
Mit Testprodukten testen, bevor der echte Import startet
Eine kleine Testdatei fängt Zuordnungsfehler ab, bevor sie Hunderte Produkte betreffen. Erstellen Sie sie aus Ihrer echten Vorlage, damit die Kopfzeilen identisch sind, und versehen Sie jedes Testprodukt mit einer deutlichen Markierung – einem SKU-Präfix „TEST-“ und einem Schlagwort „test“ –, damit Sie die Produkte später finden und löschen können.
Decken Sie jeden Fall ab, der in Ihrer echten Datei vorkommt, nicht nur den einfachen. Etwa zehn Zeilen genügen meist:
- Ein einfaches Produkt, bei dem alle Spalten ausgefüllt sind, die Sie verwenden wollen.
- Ein variables Produkt mit zwei Attributen und mindestens drei Variationen.
- Ein Produkt mit einer Galerie aus mehreren Bildern und eines ohne Bilder.
- Ein Produkt in einer verschachtelten Kategorie, die noch nicht existiert.
- Ein Produkt mit Umlauten und Akzentzeichen, Anführungszeichen und einem Komma in der Beschreibung.
- Eine Zeile, die ein vorhandenes Produkt über die SKU aktualisiert.
- Prüfen Sie die Ergebnisse im Admin-Bereich und im Shop – Preise, Variations-Auswahllisten, Bildreihenfolge und Kategorieseiten – und löschen Sie die Testprodukte vor dem echten Import.
Häufig gestellte Fragen
- Hat WooCommerce einen integrierten Massenimport für Produkte?
- Ja. WooCommerce enthält unter Produkte → Alle Produkte → Importieren einen CSV-Importer für Produkte sowie einen passenden Exporter. Für Standard-CSV-Importe ist kein Plugin nötig.
- Wie viele Produkte kann ich auf einmal in WooCommerce importieren?
- Der Importer kennt kein festes Produktlimit, doch Server-Timeouts und Speicherbegrenzungen Ihres Hostings bestimmen, was praktikabel ist. Üblich ist, große Kataloge in Stapel von einigen Hundert Zeilen aufzuteilen.
- Kann ich vorhandene Produkte per CSV-Import aktualisieren?
- Ja. Aktivieren Sie im Importer „Vorhandene Produkte aktualisieren“; Zeilen werden über ID oder SKU vorhandenen Produkten zugeordnet, und nur die enthaltenen Spalten werden aktualisiert.
- Kann ich Produkte direkt aus PDFs in WooCommerce importieren?
- Nicht mit dem Kern-Importer, der CSV erwartet. Sie müssen die Produktdaten zuerst aus den PDFs extrahieren — manuell oder mit einem Extraktionswerkzeug — und sie dann per CSV importieren oder die Produkte über die REST API anlegen.
- Welche Spalten braucht eine WooCommerce-Produkt-CSV?
- Der Core-Importer verlangt nur Name. Für einen brauchbaren Katalog nehmen Sie mindestens Type, SKU, Published, Regular price, Categories, Images und Description auf. Exportieren Sie ein Produkt aus Ihrem Shop, um die genauen Kopfzeilen Ihrer Version zu erhalten.
- Wie importiere ich variable Produkte per CSV?
- Fügen Sie eine übergeordnete Zeile mit Type „variable“ hinzu, die alle Attributwerte auflistet, und dann je eine Zeile pro Variation mit Type „variation“, der SKU des übergeordneten Produkts in der Spalte Parent, einem einzelnen Attributwert sowie eigener SKU und eigenem Preis.
- Kann ich Produktbilder und Alt-Texte mit dem CSV-Importer importieren?
- Bilder ja: Tragen Sie öffentliche Bild-URLs in die Spalte Images ein, durch Kommas getrennt und mit dem Beitragsbild zuerst. Alt-Texte nein – der Core-Importer kann sie nicht setzen; ergänzen Sie sie nachträglich oder nutzen Sie die REST API oder eine Erweiterung.
- Wie viele Produkte kann ich pro WooCommerce-REST-API-Anfrage anlegen?
- Der Batch-Endpunkt akzeptiert standardmäßig bis zu 100 Objekte pro Anfrage, wobei Anlegen, Aktualisieren und Löschen zusammengezählt werden. Größere Kataloge werden als Serie von Batch-Anfragen gesendet.