Mein Platz in der WordPress-Community
- Mein wordpress.org-Konto besteht seit 2006.
- Ich habe zum WordPress-Core in den Versionen 7.0 und 7.1 beigetragen.
- Ich betreue 30 Plugins auf wordpress.org.
- Ich organisiere WordCamps und trete dort als Speaker auf.
- Ich war bei jedem WordCamp Europe von 2017 bis 2026 dabei.
Wer in Hannover Industrie- und Handelsware online verkauft, hat selten ein Problem mit dem Warenkorb, sondern mit dem Katalog: Tausende Artikel mit Varianten, Attributen und Bildern liegen im ERP oder in einem PIM und müssen im Shop aktuell bleiben. Ich baue solche Importe so, dass sie sich wiederholen lassen und vorher auf einer Kopie des Shops erprobt sind. Dabei bin ich ein einzelner Entwickler in Gdynia und arbeite ausschließlich schriftlich.

Foto: Falk2, CC BY-SA 4.0, Wikimedia Commons.
Warum der Katalog in Hannover oft das größere Thema ist
Die Deutsche Messe mit ihrem Gelände in Hannover nennt auf ihrer Website mehr als 150 Messen und Veranstaltungen in Deutschland und im Ausland. Für Hersteller und Händler aus der Region bedeutet das: Wer ausstellt, bekommt Kontakte, und wer Kontakte bekommt, braucht danach einen Katalog, in dem Bestellnummern, Maße und Verfügbarkeit stimmen. Diese Daten entstehen nicht im Shop, sondern im ERP oder im PIM, und der Shop muss sie übernehmen, ohne dass jemand sie von Hand abtippt.
Daraus ergeben sich drei Fragen, die ich in jedem Projekt zuerst stelle: Welches System führt bei welchem Feld? Welches Feld identifiziert einen Artikel eindeutig? Und wie oft darf der Abgleich laufen, ohne dass der Shop dabei langsamer wird? Antworten auf diese Fragen sind wichtiger als die Wahl des Werkzeugs.
Was der CSV-Import von WooCommerce kann und wo er endet
WooCommerce bringt ein eigenes Werkzeug zum Importieren, Exportieren und Aktualisieren von Produkten mit. Die Dokumentation zum Produkt-CSV-Import beschreibt die wichtigsten Regeln:
- Die Datei muss UTF-8 sein, Datumswerte stehen in der lokalen Zeitzone des Shops, Wahrheitswerte als 1 oder 0.
- Mehrere Werte in einem Feld werden durch Kommas getrennt, Kommas innerhalb eines Werts werden mit einem Backslash maskiert.
- Die Spalte “Published” steuert den Status: 1 veröffentlicht, 0 privat, -1 Entwurf, 2 ausstehende Überprüfung.
- Einem neuen Produkt kann keine bestimmte ID zugewiesen werden, WooCommerce vergibt die nächste freie.
- Bilder müssen vorab hochgeladen oder online erreichbar sein. Manche Hosts blockieren Anfragen vom Shop oder liefern statt eines Bildes eine Seite, dann schlägt der Bildimport fehl.
- Der Import des Kerns kann den Alternativtext von Produktbildern nicht setzen.
Die Dokumentation nennt auch die Grenzen. Große Importe hängen von Speicher, Upload-Limit und Laufzeit des Servers ab, und der Wert “Maximum size” auf dem Upload-Bildschirm wird auf Serverebene gesetzt. Ist die CSV für eine einzelne Anfrage zu groß, soll man sie in kleinere Dateien teilen. Während des Laufs darf man die Seite weder aktualisieren noch verlassen. Wer das mit einem Katalog von mehreren tausend Artikeln täglich machen soll, braucht etwas anderes als einen Klick im Browser. Für umfangreiche Importe und eigene Produktdaten von Erweiterungen verweist die Dokumentation auf die kostenpflichtige Erweiterung Product CSV Import Suite. Ob sich die Erweiterung für Ihren Fall lohnt, hängt an Ihren Spalten, nicht am Katalogumfang.
Aktualisieren statt neu anlegen: Welcher Schlüssel den Import wiederholbar macht
Ein Import ist nur wiederholbar, wenn jede Zeile eindeutig zu einem vorhandenen Produkt führt. Beim Aktualisieren ordnet WooCommerce Zeilen über die ID oder die SKU zu. Ab WooCommerce 11.2 kann bei leerer ID und leerer SKU eine zugeordnete GTIN-, UPC-, EAN- oder ISBN-Spalte genutzt werden. Zwei Details aus der Dokumentation verhindern Überraschungen:
- Ist eine ID oder SKU angegeben, hat sie Vorrang, auch wenn sie nichts trifft. Auf die GTIN wird dann nicht zurückgegriffen.
- Eine unbekannte ID wird übersprungen. Eine unbekannte SKU legt höchstens eine neue Variante an, wenn die Regeln für Varianten erfüllt sind.
Bei Varianten ist die Dokumentation besonders deutlich: Jede Variante braucht eine eindeutige SKU, Attributnamen und Werte müssen in Eltern- und Variantenzeile identisch geschrieben sein, und Lieferantendateien sollen vor dem Import normalisiert werden, etwa “L”, “l” und “Large” zu einem einzigen Wert. Seit WooCommerce 11.1 kann ein Update-Import neue Varianten an einem bestehenden variablen Produkt anlegen, wenn die Elternzeile vor den Variantenzeilen steht. Bei früheren Versionen oder unsicherer Reihenfolge nennt die Dokumentation den Weg über zwei Importe.
Ich lege deshalb mit Ihnen vor dem ersten Lauf schriftlich fest, welches Feld im ERP der Schlüssel ist und dass dieses Feld sich nie ändert. Ändert sich eine Artikelnummer im ERP, entsteht sonst im Shop ein zweites Produkt, und das alte bleibt mit altem Bestand stehen.
REST-API: Pakete mit Ergebnisprotokoll
Die REST-Dokumentation von WooCommerce beschreibt unter POST /wp-json/wc/v3/products/batch eine Batch-Schnittstelle, die mehrere Produkte in einer Anfrage anlegt, ändert und löscht. Der Körper enthält die Listen create, update und delete. Standardmäßig ist die Zahl der Objekte pro Anfrage auf 100 begrenzt. Eigene Batch-Endpunkte gibt es laut Inhaltsverzeichnis auch für Produktvarianten, Attribute, Attributterme und Produktkategorien.
So gehe ich damit um:
- Reihenfolge einhalten: erst Kategorien, Attribute und Attributterme, dann Produkte, dann Varianten. Ein Produkt kann nur auf etwas verweisen, das schon existiert.
- Pakete von höchstens 100 Objekten senden und je Paket die Antwort speichern. Die Antwort nennt je Objekt, was geschehen ist.
- Nur geänderte Artikel senden. Dazu vergleicht der Abgleich einen Hash der Quellzeile mit dem zuletzt gesendeten Stand.
- Fehlgeschlagene Objekte in eine Liste schreiben, die Sie lesen können, nicht in ein Log, das niemand öffnet.
Welche Seite den Abgleich anstößt, hängt von Ihrem System ab. Manche ERP-Systeme senden selbst, bei anderen läuft ein Skript im Shop oder ein geplanter Job. Wie ich das für gängige Systeme anschließe, steht auf den Seiten zur ERP-Integration, zur JTL-Wawi-Anbindung und zu SAP Business One.
Action Scheduler: Der Import läuft im Hintergrund
Action Scheduler ist die Warteschlange, die WooCommerce selbst für Hintergrundaufgaben nutzt. Die Dokumentation beschreibt die Arbeitsweise genau:
- Er speichert Hook-Name, Argumente und Zeitpunkt einer Aktion. Er versucht jede Minute zu laufen, angestoßen über WP-Cron.
- Er reserviert einen Stapel von 25 Aktionen und arbeitet weitere Stapel ab, bis 90 Prozent des Speichers verbraucht sind oder 30 Sekunden vergangen sind. Dann setzt eine asynchrone Loopback-Anfrage die Arbeit fort.
- Eine Aktion, die länger als 5 Minuten läuft, gilt als Zeitüberschreitung und wird als fehlgeschlagen markiert. Abgeschlossene und abgebrochene Aktionen werden nach einem Monat gelöscht, fehlgeschlagene seit Version 4.0.0 nach drei Monaten.
- Alle Ereignisse einer Aktion landen in der Tabelle
actionscheduler_logsund sind in der Verwaltung sichtbar.
Für einen Import heißt das: Ich plane jedes Paket als eigene Aktion mit as_enqueue_async_action() ein. Der Funktion lassen sich Hook, Argumente, Gruppe, ein Flag für Eindeutigkeit und eine Priorität mitgeben. Mit dem Flag verhindere ich, dass derselbe Abgleich doppelt in der Warteschlange steht. Eine fehlgeschlagene Aktion bremst die anderen nicht, und der Fehler bleibt mit Meldung sichtbar.
Bei sehr großen Warteschlangen rät die Dokumentation zu WP-CLI statt WP-Cron: Dort gelten keine Zeitlimits einer normalen Webanfrage. Der Befehl wp action-scheduler run verarbeitet standardmäßig 100 Aktionen je Stapel, und mit --hooks oder --group lässt er sich auf einen Importjob begrenzen. Die Erweiterung “Action Scheduler - Disable Default Queue Runner” schaltet den Standardläufer ab, aber dann muss jemand die Warteschlange anderweitig bedienen, sonst läuft nichts. Filter wie action_scheduler_queue_runner_batch_size und action_scheduler_queue_runner_concurrent_batches erhöhen den Durchsatz. Die Dokumentation warnt, dass mehrere gleichzeitige Stapel einen Server lahmlegen können, und ich ändere diese Werte deshalb nur auf Staging und mit Messung.
HPOS und die Lookup-Tabelle für Attribute
Zwei Datenbankthemen tauchen bei großen Katalogen immer wieder auf, und sie werden oft verwechselt.
HPOS (High-Performance Order Storage) betrifft Bestellungen, nicht Produkte. Laut Entwicklerdokumentation ist HPOS seit WooCommerce 8.2 vom Oktober 2023 für neue Installationen Standard, und die Bestelldaten liegen dann in eigenen Tabellen (_wc_orders, _wc_order_addresses, _wc_order_operational_data, _wc_orders_meta). Ein Produktimport berührt das nicht. Es betrifft Sie, wenn Ihr ERP Bestellungen abholt oder Status zurückschreibt: Dann müssen alle beteiligten Plugins mit der gewählten Speicherart umgehen können. Die Anleitung zum Umstellen beschreibt, dass bestehende Shops zuerst den Kompatibilitätsmodus aktivieren, bei dem Aktionen im Hintergrund jeweils 25 Bestellungen nachführen. Die zugehörigen WP-CLI-Befehle liegen unter wp wc hpos, der ältere Namensraum wp wc cot gilt als veraltet.
Die Lookup-Tabelle für Produktattribute ist dagegen für Produkte da. Im Quellcode von WooCommerce (ProductAttributesLookup) heißt die Tabelle wc_product_attributes_lookup, und die Neuerzeugung der Daten plant sich selbst in kleinen Produktstapeln ein. Über WP-CLI gibt es dafür den Namensraum wp wc palt mit unter anderem info, regenerate, abort_regeneration, resume_regeneration und regenerate_for_product. Bei einem Katalog mit vielen Attributen und Filtern prüfe ich nach jedem Vollimport, ob die Tabelle vollständig ist, bevor ich die Filter im Shop abnehme. Auf Staging probiere ich vorher aus, ob eine Neuerzeugung die Seite spürbar belastet.
So teste ich einen Import auf Staging, damit er wiederholbar bleibt
Die Dokumentation zum CSV-Import sagt es selbst: Vor einem großen Import ein Backup anlegen und einen kleinen Import auf Staging testen. Ich gehe so vor:
- Muster statt Vollexport. Sie schicken mir einen Export mit etwa zwanzig Artikeln, mindestens einem variablen Produkt, Sonderzeichen in Namen und fehlenden Werten.
- Zuordnung schriftlich. Jede Spalte bekommt ein Zielfeld oder wird ausdrücklich ausgelassen.
- Kopie des Shops. Der Test läuft nie im Live-Shop, sondern auf einer Kopie mit demselben Theme und denselben Plugins.
- Erster Lauf, dann Prüfung. Ich prüfe Produktseiten, Varianten, Preise, Bilder, Kategorien und Filter.
- Zweiter Lauf mit derselben Datei. Es darf nichts doppelt entstehen, und es dürfen nur geänderte Artikel angefasst werden.
- Lauf mit geänderter Datei. Ein Preis, ein Bestand und eine Variante ändern sich, nichts sonst.
- Vollimport in Paketen. Erst jetzt kommt der ganze Katalog, mit Fehlerliste am Ende.
Ein Katalog, der nach dem zweiten Lauf unverändert aussieht, ist die Voraussetzung dafür, dass Sie den Abgleich später automatisch laufen lassen können.
Checkliste: Was ich für einen Katalogimport von Ihnen brauche
| Frage | Warum sie wichtig ist |
|---|---|
| Welches System führt bei Preis, Bestand, Beschreibung und Bildern? | Sonst überschreiben sich zwei Systeme gegenseitig. |
| Welches Feld identifiziert einen Artikel dauerhaft? | SKU oder ID entscheidet beim Aktualisieren, ob ein Produkt gefunden oder neu angelegt wird. |
| Wie sehen Varianten im Export aus? | Eltern- und Variantenzeile müssen dieselben Attributwerte tragen. |
| Wo liegen die Bilder und wie sind sie erreichbar? | Der Import kann Bilder nur laden, wenn der Server sie abrufen darf. |
| Wie oft ändern sich Daten, und welche? | Davon hängt ab, ob ein täglicher Gesamtabgleich nötig ist oder ein Abgleich der Änderungen reicht. |
| Welche Plugins greifen auf Bestellungen zu? | Sie müssen mit HPOS umgehen können, wenn Ihr Shop es nutzt. |
| Wer bearbeitet die Fehlerliste? | Ein Import ohne Verantwortlichen für Fehler füllt nur eine Liste. |
Datenschutz und Recht bei einem Shop mit ERP-Anbindung
Ein Katalogimport enthält meist keine personenbezogenen Daten. Der Rückweg tut es: Bestellungen mit Ansprechpartnern, Lieferadressen und Kundennummern wandern in das ERP. Für Unternehmen mit Sitz in Niedersachsen ist der Landesbeauftragte für den Datenschutz Niedersachsen zuständig. Seine Website bietet ein Online-Beschwerdeformular, ein Meldeformular für Datenpannen nach Art. 33 DSGVO und eine Seite zur Auftragsverarbeitung nach Art. 28 DSGVO. Sie empfiehlt für den Vertrag die Formulierungshilfe nach Art. 28 Abs. 3 DSGVO. Wo ich im Auftrag auf Ihren Shop und Ihre Kundendaten zugreife, gehört dieser Vertrag dazu. Ihre Kanzlei oder Ihr Datenschutzbeauftragter setzt ihn auf, ich liefere die technischen Angaben.
Auch bei der Frage, welche Verbraucherregeln für einen reinen B2B-Katalog gelten, lohnt der Blick in den Gesetzestext. Die Preisangabenverordnung regelt nach ihrem § 1 Abs. 1 die Angabe von Preisen gegenüber Verbrauchern. Das Barrierefreiheitsstärkungsgesetz nennt in § 1 als Zweck das Interesse der Verbraucher und Nutzer, und Abs. 3 erfasst Dienstleistungen, die für Verbraucher erbracht werden. Ein Shop, der ausschließlich Unternehmen beliefert, ist deshalb ein Fall, den Ihre Kanzlei einordnet. Ich baue, was sie festlegt, etwa die Trennung von Geschäfts- und Privatkunden bei der Registrierung.
So läuft ein Projekt mit mir
Ich bin ein einzelner Entwickler und arbeite remote und schriftlich, ohne Termine und ohne Telefonate. Layout, Mockups und Wireframes kommen von Ihnen, ich setze sie im Theme Ihres Shops um.
- Schriftliche Anfrage. Sie schicken die Adresse des Shops, den Export Ihres ERP oder PIM als Muster und die Frage, welche Daten wie oft abgeglichen werden sollen.
- Bestandsaufnahme. Ich lese Produktstruktur, Plugins und Hosting und halte offene Fragen schriftlich fest.
- Schriftlicher Umfang. Schlüsselfelder, Zuordnung, Fehlerbehandlung und Abnahmekriterien stehen vor dem ersten Code im Angebot. Für die erste Einschätzung zahlen Sie nichts.
- Umsetzung auf Staging. Importe laufen nur auf einer Kopie des Shops, bis der zweite Lauf nichts mehr ändert.
- Abnahme und Übergabe. Sie prüfen anhand der Checkliste. Danach betreuen Sie den Shop selbst oder beauftragen die Wartung. Wartungsstunden, die Sie in einem Monat nicht nutzen, übertrage ich nicht in den nächsten.
Häufige Fragen
Reicht der eingebaute CSV-Import von WooCommerce für meinen Katalog?
Für einmalige und seltene Importe oft ja. Die WooCommerce-Dokumentation nennt als Grenzen den Speicher, die Upload-Größe und die Laufzeit des Servers, und sie rät, große Dateien in kleinere Stapel zu teilen. Der Import läuft im Browser, und die Seite darf währenddessen nicht geschlossen werden. Für regelmäßige Abgleiche mit einem ERP oder PIM baue ich deshalb meist einen Ablauf über die REST-API oder über Hintergrundjobs.
Wie viele Produkte nimmt die REST-API pro Anfrage an?
Laut der REST-Dokumentation sind es standardmäßig bis zu 100 Objekte, die in einer Batch-Anfrage angelegt, geändert oder gelöscht werden. Einen Katalog mit tausenden Artikeln zerlege ich deshalb in Pakete, und jedes Paket bekommt ein Ergebnisprotokoll.
Was bringt Action Scheduler bei einem Import?
Er führt Aufgaben im Hintergrund aus, mit Protokoll und Verwaltungsseite. Statt einen Import in einer einzigen Browseranfrage zu erzwingen, wird jede Teilaufgabe als eigene Aktion eingeplant. Schlägt eine fehl, erscheint sie als Fehler mit Meldung, und die übrigen laufen weiter.
Müssen meine Bestellungen für HPOS umgebaut werden?
HPOS betrifft die Speicherung von Bestellungen, nicht von Produkten. Neue Installationen nutzen es seit WooCommerce 8.2 standardmäßig. Wenn Ihr ERP Bestellungen abruft oder zurückschreibt, prüfe ich auf Staging, ob die beteiligten Plugins die Funktion unterstützen.
Welche Aufsichtsbehörde prüft die Daten in meinem Katalog-Shop?
Für Unternehmen mit Sitz in Niedersachsen ist es der Landesbeauftragte für den Datenschutz Niedersachsen. Auf seiner Website finden Sie das Beschwerdeformular, das Meldeformular für Datenpannen nach Art. 33 DSGVO und Hinweise zur Auftragsverarbeitung nach Art. 28 DSGVO.
Arbeiten Sie nur für Unternehmen in Hannover?
Nein. Ich arbeite aus Gdynia, remote und schriftlich, für Unternehmen in Hannover, in Niedersachsen und in ganz Deutschland.
Schreiben Sie mir zu Ihrem Katalog
Senden Sie mir über die Kontaktseite die Adresse Ihres Shops, einen kleinen Export aus Ihrem ERP oder PIM, die ungefähre Artikelzahl, Ihr Wunschdatum und die Systeme, die Daten liefern oder abholen. Ich antworte schriftlich an Werktagen, und die erste schriftliche Einschätzung kostet nichts.
Ausgewählte Projekte
Beispiele aus meiner Arbeit.
Web Development Project: andrzejkaralow.pl
Andrzej Karałow ist ein talentierter Pianist und Komponist, dessen künstlerische Laufbahn bereits 2010 begann, als er die Musikschule „Karol Szymanowski“ in ...
Website-Umsetzung: Einzelanwaltskanzlei
Technische Umsetzung für eine Einzelanwaltskanzlei in Breslau: WordPress-Migration, SSL-Zertifikat, Mailserver-Einrichtung und Vorab-Audits.
weglopex.pl - WordPress Projekt | WPPoland
Die Website weglopex.pl wurde als modernes Informationsportal entwickelt, das sich an Enthusiasten und Fachleute aus der Energiebranche richtet, insbesondere...
WordPress Support & Entwicklung in Hannover
Siehe auch in Deutschland
Brauchen Sie die Leistung: WooCommerce Entwickler in Hannover?
Beschreiben Sie Ihr Projekt per E-Mail. Antwort innerhalb von 48 Stunden.
Projekt beschreibenWeitere WordPress-Dienste und Wissensbasis entdecken
Shops, Checkout-Prozesse und Verkaufslogik.
Shop-Ausfall, langsamer Checkout, Chaos nach Updates.
Laufende WooCommerce-Betreuung, Monitoring und Verfügbarkeit.
EU-Checkliste für Shops: VAT, Barrierefreiheit, Nachweise.
White-Label-WordPress-Entwicklung für Agenturen.
WooCommerce-Synchronisierung mit ERP und Großhandel.
Geschäftsprozessautomatisierung rund um WordPress und Firmensysteme.
Bibliothek konkreter Automatisierungsfälle.
Verwandte Kategorien
Unterstützende Artikel

Laut einer Auswertung des HTTP Archive liegt Shopify in Deutschland vor WooCommerce, Österreich und die Schweiz fehlen in den Daten. Was die Messung taugt, was E-Rechnung und Zahlungsarten ändern und wann ich welche Plattform empfehle.

Google hat Universal Cart in Search und Gemini auf Basis des Universal Commerce Protocol (UCP) gestartet. So wird WooCommerce bereit für nativen KI-Handel.

Architektur für einen WooCommerce-Katalog auf Astro 7. Was in wp-admin bleibt, welche Plugins mit dem Theme sterben, Store-API gegen GraphQL, und warum die deutsche Kasse auf WooCommerce bleibt.