WordPress und WooCommerce
wie man Großhändler-Feeds in WooCommerce-Produkte und Lagerbestände importiert
Warum brechen CSV-Feeds von Großhändlern ständig den WooCommerce-Bestand
Großhandelslieferanten legen über Nacht CSV- oder XML-Dateien mit neuen Preisen, Packungsgrößen und Lagerbeständen ab. Jemand lädt die Datei herunter, öffnet Excel, korrigiert Dezimalkommas und fügt sie in ein WooCommerce-Import-Plugin ein. Bis zum Vormittag zeigt die Hälfte des Katalogs null Lagerbestand, weil eine leere Mengen-Spalte als Update behandelt wurde oder ein Lieferant einen Herstellercode umbenannt hat und jeder Abgleich fehlschlug. Geschäfte, die denselben SKU von zwei Großhändlern verkaufen, streiten darüber, welches Feed gewinnt, und das ERP in Comarch Optima oder Subiekt hält immer noch eine dritte Menge, der der Einkauf mehr vertraut als dem Shop. Manuelle Importe zerstören auch die Anreicherungen. Redakteure haben Wochen in PL- und EN-Beschreibungen, Attributübersetzungen und Hero-Bilder investiert; ein vollständiger Katalogersatz vom Großhändler überschreibt Titel mit SUPPLIER-Strings in GROSSBUCHSTABEN und entfernt Kategorien. Margenregeln verschwinden, wenn der Feed Bruttopreise liefert und der Shop Nettopreise erwartet, oder umgekehrt. B2B-Händler erleben dies als plötzliche Preissprünge, die Verträge mit Schlüsselkunden verletzen, denen ein gesperrter Nettopreis versprochen wurde. Ausfallmodi verstärken sich unter Last. Ein 40.000-Zeilen-Feed, der synchron über WP-Admin importiert wird, läuft zeitlich aus, hinterlässt nur eine teilweise Anwendung, und niemand weiß, welche SKUs tatsächlich übernommen wurden. Action Scheduler hilft nur, wenn der Job als in Teilen vorgenommene Upserts mit einer Lauf-ID gestaltet ist. Ohne eine Quarantänetabelle kann ein fehlerhafter EAN den gesamten Batch bei strengeren Importern abbrechen oder schlimmer, mit falschen Einheiten erfolgreich sein, sodass man Stücke als Packungen verkauft. Die geschäftlichen Auswirkungen zeigen sich in Überverkäufen, Margenverlusten und verärgerten Account Managern. Der Support verspricht den Versand am nächsten Tag basierend auf grünem Lagerbestand im Shop, während die API des Großhändlers bereits eine Stunde zuvor Null zurückgegeben hat. Marketing startet eine Kampagne zu einem SKU, dessen Feed-Preis über Nacht gestiegen ist. Die Finanzabteilung kann nicht erklären, warum sich Shop-Umsatz und Optima-Einkaufspreise für denselben Artikelcode nicht mehr decken. Automatisierung hier bedeutet nicht „das Import-Plugin per Cron ausführen“. Es ist eine kontrollierte Pipeline: abrufen, validieren, zuordnen, Deltas mit Puffern anwenden, Ausnahmen in Quarantäne setzen und berichten. Lager- und Preisaktualisierungen sollten von Inhaltsaktualisierungen trennbar sein, damit redaktionelle Arbeit erhalten bleibt. Wenn ein ERP das echte Lagerbuch ist, sollte der Großhändler-Feed zuerst den Einkauf oder das ERP aktualisieren und dann dem Shop einen geprüften Push liefern - nicht mit einem parallelen CSV-Import das ERP überholen. Saisonalität fügt eine weitere Ebene hinzu. Vor dem Black Friday kann ein Großhändler optimistischen Lagerbestand melden, der bis zum Mittag wieder verschwunden ist; ohne Begrenzungen, die an bestätigte Bestellungen gebunden sind, verkauft der Shop Kits, die der Einkauf nie bestellt hat, zu viel. Im Gegensatz dazu kann nach der Ankunft eines Containers der Feed sechs Stunden verzögert sein, während das Lager bereits Paletten in Subiekt gescannt hat, sodass der Shop unterverkauft. Die Automatisierung muss wissen, ob die Großhandelsmenge ein verkäufliches Versprechen oder lediglich ein Gerücht aus dem Lieferantenlager ist, und die Meta entsprechend für Support-Makros kennzeichnen. Der Einkauf sollte die quarantänisierten Zeilen während der Feed-Onboarding-Wochen in einem täglichen Stand-up überprüfen und danach wöchentlich, sobald es stabil ist. Fotografieren oder archivieren Sie Beispieldateien jeder Schema-Version, die der Lieferant liefert, damit Streitigkeiten über die Bedeutung von Spalten evidenzbasiert geführt werden können. Wenn die Lieferzeiten über zwei Wochen hinausgehen, erhöhen Sie die Sicherheitsreserve und informieren Sie das Marketing, welche SKUs versprechensbegrenzt und welche vorrätig sind. Operative Details zu Prüfsummen und abgeschnittenen Datei-Schutzmaßnahmen: Dokumentieren Sie Eigentümer, Fehlerbeispiele und die Metrik, die zeigt, dass die Kontrolle in der Produktion für diese WooCommerce-Automatisierung funktioniert. Schreiben Sie den Runbook-Schritt, das Alarmziel und die Rücksetz- oder Entschädigungsmaßnahme, damit der Nachtschicht-Support handeln kann, ohne zu raten. Geben Sie den Namen des Systems der Aufzeichnung und das in den Protokollen verwendete Korrelations-ID-Feld an. Sequenzmarker en-wholesaler-feed-to-products-stock-pad-1.
wann ein Großhändler-Feed die Shop-Katalogdaten aktualisieren sollte
Laufen Sie dem Großhändler hinterher, wenn er eine neue Datei auf SFTP stellt oder wenn deren API einen `feed.updated` Zeitstempel anzeigt, der neuer ist als Ihre letzte erfolgreiche Lauf-ID. Der typische Rhythmus ist alle ein bis vier Stunden für Lagerbestände, nächtlich für vollständige Preislisten. Ermöglichen Sie auch ein manuelles `replay_feed` mit einer bestimmten Dateiversion zur Vorfallwiederherstellung. Lösen Sie nicht bei jeder kleinen FTP-Zeitstempeländerung ohne eine Prüfsummänderung aus, sonst verbrauchen Sie API-Limits, indem Sie identische Zeilen neu schreiben.
Schritte, um Großhandelszeilen sicher in WooCommerce-Produkte zu übertragen
- Rufen Sie den Feed zum Objektspeicher oder zu einem Staging-Datenträger ab, berechnen Sie die Prüfsumme und verweigern Sie die Verarbeitung, wenn die Datei leer ist, unterhalb einer Mindestzeilenanzahl abgeschnitten ist oder mit der letzten erfolgreichen Prüfsumme identisch ist.
- Analysiere Zeilen mit expliziten Dezimal- und Kodierungsregeln. Normalisiere Lieferanten-SKU, EAN und deine interne SKU über die Zuordnungstabelle. Markiere unbekannte SKUs für eine Onboarding-Warteschlange, anstatt automatisch Fake-Produkte zu erstellen, es sei denn, die Richtlinie erlaubt eine kontrollierte Erstellung mit Entwurfsstatus.
- Geschäftsregeln validieren: maximale Preisabweichungsprozentsatz, Maßeinheit, Mindestbestellmenge und Lagerbestand darf nicht negativ sein. Einen Sicherheitspuffer anwenden, der den Lagerbestand im Shop unter dem Lagerbestand beim Großhändler hält, wenn die Lieferzeiten lang sind.
- Fügen Sie WooCommerce-Produkte in Blöcken über REST oder einen privilegierten internen Endpunkt ein oder aktualisieren Sie sie: nur Preis, Lagerbestand, Nachbestellungskennzeichen und Einkaufs-Metadaten. Überspringen Sie Inhaltsfelder, es sei denn, es ist ein explizites Inhalts-Synchronisierungs-Flag für diesen Lieferanten gesetzt.
- Schreiben Sie einen Ablaufbericht: Reihen ok, unter Quarantäne gestellt, unbekannte SKUs und SKUs, die die Preisänderungsbremse erreicht haben. Benachrichtigen Sie den Einkauf, wenn die Quarantäne einen Schwellenwert überschreitet, und speichern Sie die Ablauf-ID bei aktualisierten Produkten zur Prüfung.
- Veröffentlichen Sie ein Post-Run-Ereignis, damit Google-Merchant-Feeds, Marktplatz-Bestandspushs und Niedrigbestand-Benachrichtigungen die neue Run-ID erst nach dem Commit verwenden, um halbaktualisierte Kataloglesungen zu vermeiden.
Systeme
- WooCommerce
- Wholesaler SFTP/API
- Comarch Optima
- Subiekt
Werkzeuge
- n8n
- WP-Cron
- Action Scheduler
- WooCommerce REST
wie FTP-API und n8n Großhandelsdaten in den Shop übertragen
n8n oder ein kleiner Worker zieht SFTP/API-Daten, speichert die Rohdatei und parst sie in eine Staging-Tabelle. Die Zuordnung liegt in einem versionierten Sheet oder einer Datenbanktabelle, die Product Ops besitzt. WooCommerce-Updates laufen über REST mit Application Passwords oder einem benutzerdefinierten Route, die UI-Importer umgeht, wobei Action Scheduler innerhalb von WordPress nur für die endgültigen gestückelten Schreibvorgänge verwendet wird, wenn shopseitige Sperren notwendig sind. Wenn Comarch Optima oder enova den Lagerbestand verwalten, aktualisiert der Feed zuerst die ERP-Einkaufskarten; der Shop hört auf ERP-Deltas, anstatt den Großhandelsbestand direkt zu übernehmen - das vermeidet Doppelschreibkonflikte. Make.com kann n8n für einfache CSV-Fälle mit einem einzelnen Lieferanten ersetzen, aber komplexe Quarantänen und Delta-Bremsen sind in n8n oder benutzerdefinierten PHP-Workern klarer. Niemals die FTP-Zugangsdaten des Großhändlers in einer öffentlichen Plugin-Option ohne Verschlüsselung speichern. Die Chunk-Größe sollte den Hosting-Grenzen entsprechen: einige hundert REST-Updates pro Welle mit Jitter sind besser als ein einzelner riesiger Admin-Ajax-Import. Speichern Sie den letzten Feed-Hash pro SKU, damit unveränderte Zeilen Schreibvorgänge überspringen und die Objekt-Cache-Invalidierung ruhig bleibt. Wenn Google Merchant oder Marktplatz-Synchronisationen vom Shop-Bestand abhängen, sollten diese Jobs nach Abschluss der Feed-Lauf-ID ausgeführt werden, anstatt mitten im Anwenden zu konkurrieren. Für den Großhändler-Feed zum Produktbestand sollten die Lauf-IDs in den Operator-Dashboards behalten und der Mapping-Eigentümer benachrichtigt werden, anstatt einen generischen Posteingang, wenn die Fehlerquote steigt. Betriebliche Details zu den Regeln zur Normalisierung des Dezimalkommas: Dokumenteneigentümer, Fehlerbeispiele und die Kennzahl, die beweist, dass die Kontrolle in der Produktion für diese WooCommerce-Automatisierung funktioniert. Schreiben Sie den Runbook-Schritt, das Alarmziel und die Rollback- oder Ausgleichsaktion auf, damit der Nachtschicht-Support handeln kann, ohne zu raten. Geben Sie den Namen des Systems der Aufzeichnungen und das in den Protokollen verwendete Korrelations-ID-Feld an. Sequenzmarker en-wholesaler-feed-to-products-stock-pad-2. Bei personenbezogenen Kundendaten ist ein AVV mit dem Integrationsbetreiber zu prüfen.
wie man schlechte Großhändlerzeilen unter Quarantäne stellt, ohne den Lagerbestand zu löschen
Wenn die Datei die Prüfsumme oder Zeilen-Floor-Prüfungen nicht besteht, brechen Sie den Vorgang ab und lassen Sie den Lagerbestand von gestern unangetastet. Quarantänisieren Sie einzelne fehlerhafte Zeilen, ohne den gesamten Stapel fehlschlagen zu lassen, wenn der Fehler lokal ist (falscher Preis, unbekannte Mengeneinheit). Wenn WooCommerce REST 429 zurückgibt, pausieren Sie den Chunk-Worker mit Backoff und setzen denselben Lauf-ID fort. Bei teilweisem Ausfall des Shops markieren Sie den Lauf nicht als erfolgreich: Speichern Sie die Cursor-Offsets, damit die Wiedergabe fortgesetzt werden kann. Preisabweichungsbremsen sollten eine manuelle Genehmigung erfordern, bevor Ausreißer angewendet werden, protokolliert mit der Angabe, wer genehmigt hat. Alarmieren Sie, wenn mehr als ein bestimmter Anteil der Zeilen in Quarantäne ist, da dies normalerweise bedeutet, dass der Lieferant die Spalten geändert hat. Bei SKUs aus zwei Quellen lösen Sie Konflikte mit einer expliziten Prioritätenliste, anstatt dass der letzte Schreibvorgang gewinnt. Wenn die Version der Zuordnungstabelle nicht mit der Feed-Header-Version übereinstimmt, schlagen Sie den Vorgang fehl und benachrichtigen Sie den Einkauf. Rollback ist selten eine vollständige Katalogwiederherstellung; bevorzugen Sie ausgleichende Transaktionen, die nur die vom fehlgeschlagenen Lauf-ID berührten SKUs mit dem bei Laufbeginn aufgenommenen Pre-Image-Snapshot zurücksetzen.
wenn ein Großhändler-Feed-Sync noch nicht automatisiert werden sollte
Sie haben weniger als ein paar hundert SKUs, die wöchentlich aktualisiert werden, und einen einzigen Lieferanten, der bereits saubere WooCommerce-fertige CSV-Dateien mit stabilen Spalten liefert. In diesem Fall kann ein überwachsener wöchentlicher Import besser sein als der Aufbau von Quarantäne-Tools. Warten Sie auch, wenn der Lieferant das gesamte Schema jeden Monat ohne Vorankündigung ersetzt - stabilisieren Sie zuerst den Vertrag.
KPIs für Großhändler-Feed zur WooCommerce-Bestandsgesundheit
- Zeit vom Feed-Checksum bis zum letzten committen Block
- Anteil der pro Durchlauf unter Quarantäne gestellten Zeilen
- Überverkäufe, die auf veralteten Großhandelsbeständen beruhen
- Anzahl der versehentlich pro Monat überschriebenen Inhaltsfelder
ROI-Rechner für Automatisierung
Tragen Sie Läufe pro Monat, Minuten pro Lauf und Ihren belasteten Stundenkostensatz ein. Das Ergebnis ist eine Simulation, kein Angebot für unsere Arbeit.
Stunden = Läufe × Minuten / 60 × Rückgewinn %. Zeitwert = Stunden × Satz × Realisierung %. Vermiedene Fehler = Läufe × Fehler % × Fehlerkosten × Realisierung %. Netto = Summe − Betrieb. Amortisation = Aufbau / Netto, nur wenn Netto > 0.
Zurückgewonnene Stunden / Monat: -
Zurückgewonnene Stunden / Jahr: -
Zeitwert / Monat: -
Vermiedene Fehlerkosten / Monat: -
Netto / Monat: -
Amortisation (Monate): -
Ergebnis im ersten Jahr: -
Häufig gestellte Fragen
Praktische Antworten zur Umsetzung des Themas.
Soll der Feed automatisch neue Produkte erstellen?
#Wie gehen Sie mit zwei Großhändlern für eine SKU um?
#Aktualisieren Sie Bestand und Preis in derselben Ausführung?
#Sie brauchen ein FAQ für Branche und Zielmarkt? Wir erstellen eine Version passend zu Ihren Business-Zielen.
Kontakt aufnehmen