BEAR - WooCommerce Bulk Editor and Products Manager Professional

Bestehende WooCommerce Produkte per CSV-Import aktualisieren: der sichere Ablauf

Um bestehende WooCommerce Produkte per CSV-Import zu aktualisieren, exportieren Sie sie aus BEAR, ändern die Werte in einer Tabellenkalkulation und laden die Datei mit angehaktem Vorhandene Produkte aktualisieren (Update existing products) in den WooCommerce-Produktimporter. Der Rundlauf funktioniert, aber Export und Importer sprechen nicht ganz dieselbe Sprache: Mehrere Spalten müssen von Hand zugeordnet werden, einige leere Werte werden als 0 geschrieben, und der Importer schreibt jede zugeordnete Zelle, auch leere. Unachtsam durchgeführt, kann ein einziger Import Produkte für null ins Angebot setzen, die Lagerverwaltung einschalten, Attribute verbergen oder die Attribute entfernen, auf denen Variationen aufgebaut sind. Unten steht das Verfahren, das all das vermeidet.

So aktualisiert ein CSV-Import bestehende WooCommerce Produkte

BEAR hat keine eigene Import-Engine. Die Schaltfläche Aus CSV importieren (Import from CSV) im Export-Tab öffnet den Standard-Importer von WooCommerce (Produkte → Importieren (Products → Import)) in einem neuen Browser-Tab, daher folgt eine Aktualisierung den Regeln von WooCommerce:

  • Bei angehaktem Vorhandene Produkte aktualisieren wird jede Zeile über ihre Zelle ID einem Produkt oder einer Variation zugeordnet, oder über die SKU, wenn die ID-Zelle leer ist oder die Datei keine ID-Spalte hat. Zeilen, die nichts treffen, werden mit Es existiert kein passendes Produkt zum Aktualisieren (No matching product exists to update) übersprungen.
  • Ohne das Häkchen legt der Importer Produkte an, und Zeilen, deren ID oder SKU bereits existiert, werden mit Ein Produkt mit dieser ID existiert bereits (A product with this ID already exists) (oder SKU) übersprungen.
  • Produkte, die nicht in der Datei stehen, bleiben unberührt, und nichts wird gelöscht. Eine Datei mit fünf Zeilen ändert fünf Produkte.
  • Jede zugeordnete Spalte wird in jede Zeile geschrieben, und eine leere Zelle in einer zugeordneten Spalte löscht den Wert: Ein leerer Angebotspreis (Sale price) entfernt das Angebot. Eine Spalte mit der Einstellung Nicht importieren (Do not import) lässt das Feld, wie es ist.

Die letzte Regel ist der Schlüssel zu einer sicheren Aktualisierung: Schreiben Sie nur das in die Datei, was Sie ändern wollen, plus ID, und ordnen Sie nichts anderes zu. Machen Sie vor dem ersten Lauf ein Backup. Der Importer läuft nicht über BEAR, daher kann der Tab Verlauf (History) von BEAR nicht zurücksetzen, was ein Import geändert hat.

Exportieren Sie nur die Spalten, die Sie ändern wollen

  1. Filtern Sie die Produkte in BEAR oder haken Sie sie an. Bei einem variablen Produkt fügt der Export jede Variation hinzu, jede in einer eigenen Zeile mit eigener ID.
  2. Schalten Sie in den Einstellungen ID und die Spalten ein, die Sie bearbeiten wollen, zum Beispiel Regulärer Preis (Regular price) und Angebotspreis, und schalten Sie die übrigen aus. Die Datei enthält genau die aktiven Spalten in derselben Reihenfolge. Speichern Sie die Auswahl unter Spaltenprofile (Columns profiles), um jedes Mal eine identische Datei zu bekommen.
  3. Lassen Sie die Attributspalten ausgeschaltet, es sei denn, die Aufgabe besteht darin, Attribute zu ändern; der Abschnitt zu Variationen erklärt, warum.
  4. Belassen Sie das Komma im Trennzeichen-Dropdown, klicken Sie auf Als CSV exportieren (Export to CSV) und dann auf CSV herunterladen (download CSV).

Export und Import des Bulk-Editors: Spaltenzuordnung

BEAR benennt die Spalten so wie sein Editor. Der Importer erkennt seine eigenen Namen und einige gängige, alles andere führt er als Nicht importieren auf. In einem Admin-Bereich auf Englisch werden diese Spalten von selbst zugeordnet: ID, Title (zu Name), SKU, Type, Description, Regular price, Sale price, Tax status, Tax class, Categories, Tags, Shipping class, Upsells, Cross-sells, Grouped products, Purchase note, Menu order (zu Position), Download limit, Parent, die Spalten Attribute N, die Spalten Download N und jede Spalte Meta:. In anderen Admin-Sprachen passen weniger davon. Wählen Sie für den Rest das Feld unter Feld zuordnen (Map to field):

BEAR-SpalteFeld zuordnenWerte in der Datei
Kurzbeschr. (Short Desc.)Kurzbeschreibung (Short description)Text, wie gespeichert
StatusVeröffentlicht (Published)1 veröffentlicht, -1 Entwurf, 0 privat
Hervorgehoben (Featured)Ist hervorgehoben? (Is featured?)1 oder 0
Katalogsichtbarkeit (Catalog Visibility)Sichtbarkeit im Katalog (Visibility in catalog)visible, catalog, search, hidden
Angebotszeitraum von, Angebotszeitraum bis (Sale time from, Sale time to)Startdatum des Angebotspreises, Enddatum des Angebotspreises (Date sale price starts, Date sale price ends)Nur Datum, Uhrzeit 0:00:00
Lagerbestandsmenge (Stock quantity)Bestand (Stock)Zahl; siehe nächster Abschnitt
Lagerstatus (Stock status)Vorrätig? (In stock?)1 vorrätig, 0 alles andere
Lieferrückstände erlauben (Allow backorders)Lieferrückstände erlaubt? (Backorders allowed?)1, 0 oder notify
Nur einzeln verkaufen (Sold individually)Einzeln verkauft? (Sold individually?)1 oder 0
Gewicht, Länge, Breite, Höhe (Weight, Length, Width, Height)Gewicht, Länge, Breite, Höhe (in den Einheiten Ihres Shops)Zahl
Bewertungen erlaubt (Reviews allowed)Kundenbewertungen erlauben? (Allow customer reviews?)1 oder 0
Produkt-URL, Text der Aff.-Schaltfläche (Product url, Aff.Button text)Externe URL, Schaltflächentext (External URL, Button text)Text
Ablauf des Downloads (Download expiry)Ablauftage des Downloads (Download expiry days)Zahl, -1 für nie

Einige Spalten haben im Importer keine Entsprechung: Titelform (Slug), Lagerbestand verwalten (Manage stock), Herunterladbar (Downloadable) und Virtuell (Virtual) (die Spalte Typ (Type) trägt diese beiden bereits als simple, downloadable, virtual), Autor (Author), Veröffentlichungsdatum (Date Published), Gesamtumsatz (Total sales), Anzahl Bewertungen (Review count), Durchschnittliche Bewertung (Average rating) und Attributsichtbarkeit (Attribute visibility). Lassen Sie sie auf Nicht importieren. Dasselbe gilt für Vorschaubild (Thumbnail) und Galerie (Gallery): Der Importer hat eine einzige Spalte Bilder (Images) (zuerst das Beitragsbild, dann die Galerie), BEAR exportiert dagegen zwei; ändern Sie Bilder daher im Editor.

Zwei weitere Dinge auf diesem Bildschirm. Die Kopfzeile einer BEAR-Datei endet mit einem Trennzeichen, daher endet die Liste mit einer zusätzlichen Spalte ohne Namen; sie ist leer, lassen Sie sie auf Nicht importieren. Und Meta-Felder, die Listen oder strukturierte Daten enthalten (die, die BEAR in einem Popup bearbeitet), werden als JSON-Text exportiert, den der Importer als einfache Zeichenkette anstelle der ursprünglichen Daten speichern würde. Importieren Sie diese Spalten nicht; bearbeiten Sie sie wie unter Meta-Felder beschrieben.

Leere Werte, Nullen und -1: was der Importer damit macht

BEAR 2.2.4 schreibt Zahlenspalten als Zahlen, auch wenn das Produkt keinen Wert hat: Ein leerer Regulärer Preis, Angebotspreis, Lagerbestandsmenge, Gewicht, Länge, Breite oder Höhe wird in der Datei zu 0. Der Importer nimmt die Null wörtlich:

  • Angebotspreis 0 setzt das Produkt für 0 ins Angebot, und der Shop verkauft es kostenlos. Filtern Sie vor dem Import in der Tabellenkalkulation die Spalte Angebotspreis nach 0 und löschen Sie diese Werte: Eine leere Zelle bedeutet keinen Angebotspreis. Verfahren Sie ebenso mit dem Regulären Preis bei Produkten, die überhaupt keinen Preis haben.
  • Bestand 0 schaltet die Lagerverwaltung mit einer Menge von 0 ein, sodass ein Produkt, das den Lagerbestand nicht verfolgt hat, nicht vorrätig wird, und die eigene Zeile eines variablen Produkts schaltet die Lagerverwaltung auf Produktebene ein. Eine leere Zelle bewirkt das Gegenteil: Sie schaltet die Lagerverwaltung aus. Exportieren Sie Lagerbestand verwalten zusammen mit der Lagerbestandsmenge, leeren Sie die Menge in jeder Zeile, in der Lagerbestand verwalten 0 ist, und ordnen Sie Lagerbestand verwalten Nicht importieren zu.
  • Gewicht und Maße 0 ersetzen leere Werte durch 0. Leeren Sie sie oder importieren Sie diese Spalten nicht.
  • -1 entfernt einen Angebotspreis nur im eigenen Tab Massenbearbeitung (Bulk Edit) von BEAR, wie in Angebotspreise in Masse entfernen. Der Importer speichert -1 als negativen Angebotspreis, und der Produktpreis wird -1. In einer CSV-Datei ist eine leere Zelle der Weg, ein Angebot zu entfernen.

Auch andere Werte brauchen einen Blick. Der Lagerstatus wird als 1 für vorrätig und 0 für alles andere exportiert, daher kommen Produkte mit Lieferrückstand als nicht vorrätig zurück; schreiben Sie in ihre Zellen backorder. Ausstehende und geplante Produkte werden mit den Wörtern pending und future in Status exportiert, die der Importer als 0 liest und die Produkte privat macht; lassen Sie Status auf Nicht importieren, wenn Sie solche haben. Angebotsdaten werden ohne Uhrzeit exportiert, daher wird ein Angebot, das zu einer bestimmten Stunde beginnt oder endet, auf Mitternacht verschoben; importieren Sie diese Spalten nur, wenn Sie die Daten ändern.

Wenn Sie diesen Rundlauf regelmäßig durchführen, lassen Sie den Export leere Zellen und die tatsächliche Attributsichtbarkeit (im nächsten Abschnitt erklärt) selbst schreiben. Dieser Filter ändert nur die Werte des CSV-Exports. Fügen Sie ihn in die functions.php des Child-Themes oder in ein Code-Snippets-Plugin ein:

/**
 * BEAR CSV export: write empty prices, stock quantity, weight and dimensions
 * as empty cells instead of 0, and the product's own attribute visibility,
 * so the file can be imported back with the WooCommerce importer.
 */
add_filter( 'woobe_export_product_fields_answer', function ( $answer, $product_id, $fields ) {
	$product = wc_get_product( $product_id );
	if ( ! $product ) {
		return $answer;
	}

	$getters = array(
		'regular_price'  => 'get_regular_price',
		'sale_price'     => 'get_sale_price',
		'stock_quantity' => 'get_stock_quantity',
		'weight'         => 'get_weight',
		'length'         => 'get_length',
		'width'          => 'get_width',
		'height'         => 'get_height',
	);

	// How many CSV cells each column takes: an attribute takes 4,
	// the downloads column takes whatever is left over.
	$widths = array();
	foreach ( $fields as $key => $field ) {
		if ( '__checker' === $key ) {
			continue;
		}
		$widths[ $key ] = ( 'attribute' === $field['field_type'] ) ? 4 : 1;
	}
	if ( isset( $widths['download_files'] ) ) {
		$widths['download_files'] = count( $answer ) - array_sum( $widths ) + 1;
	}

	$index = 0;
	foreach ( $widths as $key => $width ) {
		if ( isset( $getters[ $key ] ) ) {
			$value = $product->{ $getters[ $key ] }( 'edit' );
			if ( null === $value || '' === $value ) {
				$answer[ $index ] = '';
			}
		}

		// Attribute "visible" cell: the product's own setting.
		if ( 4 === $width && '' !== $answer[ $index ] && ! $product->is_type( 'variation' ) ) {
			$attributes = $product->get_attributes();
			if ( isset( $attributes[ $key ] ) ) {
				$answer[ $index + 2 ] = $attributes[ $key ]->get_visible() ? 1 : 0;
			}
		}

		$index += $width;
	}

	return $answer;
}, 10, 3 );

Mit aktivem Filter lässt eine Datei, die unverändert exportiert und wieder importiert wird, Preise, Lagerbestand und Attributsichtbarkeit genau so, wie sie waren. Ein verwalteter Lagerbestand von 0 bleibt 0, weil nur fehlende Werte geleert werden.

CSV-Import hat Attribute oder Variationen entfernt: so vermeiden Sie es

Der Importer behandelt Attribute Zeile für Zeile und ersetzt die Attributliste eines Produkts, statt ihr etwas hinzuzufügen:

  • Hat eine Produktzeile in irgendeiner Zelle Attribute N value(s) einen Wert, werden die Attribute des Produkts genau die in der Datei. Ein Attribut, das keine Spalte hat oder in dieser Zeile eine leere Zelle, wird vom Produkt entfernt, einschließlich der Attribute, auf denen die Variationen aufgebaut sind. Die Variationen verlieren dann diese Werte und erscheinen im Shop als Beliebige Größe (Any Size) oder Beliebige Farbe (Any Color).
  • Sind alle Attributzellen einer Zeile leer, bleiben die Attribute des Produkts unberührt.
  • Eine Wertzelle ist die vollständige Liste der Begriffe für dieses Produkt, durch Kommas getrennt. Ein Wert, den es noch nicht als Begriff gibt, wird angelegt, ein Tippfehler wird also zu einem neuen Begriff.
  • BEAR exportiert nur globale Attribute (Produkte → Attribute (Products → Attributes)). Benutzerdefinierte Attribute, die auf der Produktseite eingetippt wurden, können nicht in der Datei stehen, daher entfernt ein Import mit einem beliebigen Attributwert sie. Machen Sie sie zuerst global, wie in benutzerdefinierte Attribute in globale umwandeln.
  • Attribute N visible ist das Kontrollkästchen Auf der Produktseite sichtbar (Visible on the product page). BEAR 2.2.4 schreibt die Einstellung Archive aktivieren? (Enable archives?) des Attributs hinein, die meist ausgeschaltet ist, sodass ein unveränderter Rundlauf die Attribute auf Produktseiten verbirgt. Verwenden Sie den obigen Filter oder setzen Sie die Zellen vor dem Import auf 1 (angezeigt) oder 0 (verborgen). Lassen Sie Attribute N global auf 1.
  • In Variationszeilen sind die Attributzellen in 2.2.4 leer. Weil sie leer sind, lässt der Importer die eigenen Attributwerte der Variationen in Ruhe, daher ist das Aktualisieren von Preisen, Lagerbestand oder SKUs bestehender Variationen per ID sicher. Neue Variationen aus der Datei zu erstellen ist es nicht: Ohne Attributwerte werden sie als Beliebige ...-Variationen angelegt. Erstellen Sie sie stattdessen in BEAR, wie in Variationen in Masse erstellen.

Muss die CSV-Datei also Attributänderungen tragen, schalten Sie vor dem Export die Spalte jedes Attributs ein, das Ihre Produkte verwenden, und prüfen Sie, dass jede Produktzeile alle ihre Begriffe aufführt. Für die meisten Attributaufgaben ist der Editor der kürzere Weg: Attribute in Masse zu Produkten hinzufügen fügt Begriffe hinzu, ohne die anderen anzutasten.

Excel, Google Sheets und alles in einer Spalte

  • Der Zuordnungsbildschirm zeigt eine Zeile mit allen Spaltennamen darin. Die Datei verwendet ein anderes Trennzeichen, als der Importer erwartet. Excel speichert CSV-Dateien mit Semikolons, wo immer das Listentrennzeichen des Systems ein Semikolon ist, was in vielen europäischen Regionen der Fall ist. Tragen Sie entweder ; in CSV-Trennzeichen (CSV Delimiter) unter Erweiterte Optionen anzeigen (Show advanced options) auf dem ersten Bildschirm des Importers ein oder speichern Sie die Datei mit Kommas. Entscheidend ist die Datei, die Sie hochladen, nicht das Trennzeichen, mit dem Sie exportiert haben.
  • Buchstaben mit Akzenten oder nicht lateinische Buchstaben gehen kaputt. Wählen Sie in Excel beim Speichern CSV UTF-8 (durch Trennzeichen getrennt); das einfache CSV (Trennzeichen-getrennt) verwendet die lokale Codepage des Computers. Die Option Zeichenkodierung der Datei (Character encoding of the file) des Importers steht standardmäßig auf Automatisch erkennen (Autodetect).
  • SKUs, Codes und Preise ändern sich. Excel entfernt führende Nullen, macht aus langen Zahlen 1.23E+12 und liest in Regionen mit Dezimalkomma Preise wie 29.90 falsch. Öffnen Sie den Export über Daten → Aus Text/CSV (Data → From Text/CSV) und stellen Sie solche Spalten auf Text, wie in BEAR-CSV-Exporte reparieren beschrieben.
  • Google Sheets vermeidet das meiste davon: Datei → Herunterladen → Durch Kommas getrennte Werte (.csv) (File → Download → Comma-separated values) schreibt immer Kommas und UTF-8.
  • Vorherige Einstellungen der Spaltenzuordnung verwenden? Der Importer merkt sich Ihre letzte Zuordnung, und diese erweiterte Option füllt sie wieder ein. Die Zuordnung wird nach Spaltenposition gespeichert, nicht nach Name, ist also nur für eine Datei mit denselben Spalten in derselben Reihenfolge richtig. Ein gespeichertes Spaltenprofil in BEAR liefert genau das; prüfen Sie trotzdem den Zuordnungsbildschirm, bevor Sie den Import ausführen.

Checkliste vor dem Klick auf „Importer ausführen“

  1. Ein Backup existiert, und die Datei wurde zuerst mit einem einfachen und einem variablen Produkt ausprobiert.
  2. Die Datei hat die Spalte ID, und Vorhandene Produkte aktualisieren ist angehakt.
  3. Der Zuordnungsbildschirm zeigt getrennte Spalten mit Beispielwerten, und nur die Spalten, die Sie geändert haben, sind zugeordnet.
  4. Keine 0 steht dort, wo das Produkt keinen Angebotspreis, keinen Preis oder keine Lagerverfolgung hatte, und keine -1 in Preisspalten (oder der Export-Filter ist aktiv).
  5. Entweder steht kein Attributwert in der Datei, oder jede Produktzeile führt alle ihre Attribute und Begriffe mit dem richtigen visible-Wert auf.

Die WooCommerce-Seite des Imports ist im Leitfaden zum CSV-Importer und -Exporter für WooCommerce-Produkte dokumentiert. Ändert eine Aktualisierung weiterhin etwas, das sie nicht ändern sollte, eröffnen Sie im BEAR-Supportforum ein Thema mit den ersten Zeilen Ihrer Datei und der gewählten Zuordnung.