PIM für Shopware 6 - Handbuch
Diese Seite bündelt alle Funktionen des PIM-Plugins für Shopware 6 auf einen Blick. Sie ist als kompakte Referenz gedacht - für ausführliche Anleitungen mit Screenshots verweisen wir auf die detaillierten Doku-Seiten zu den einzelnen Bereichen.
Das PIM-Plugin ist kompatibel mit Shopware 6.6 und 6.7. Seit Version 1.11.48 deckt ein einziges Paket beide Reihen ab, getrennte Pakete je Shopware-Version entfallen damit. Alle hier beschriebenen Funktionen stehen in dieser Version zur Verfügung.
Stand dieser Referenz: Plugin-Version 1.11.72.
Systemvoraussetzungen
Das PIM-Plugin läuft in jeder Standard-Installation von Shopware 6 ohne zusätzliche Server-Konfiguration.
- Shopware: 6.6 oder 6.7
- PHP: 8.2 oder neuer
- Datenbank: MySQL 8 oder MariaDB 10.11
- Speicher: Standard-Empfehlung von Shopware reicht (256 MB+)
- Berechtigungen: Shopware-Admin-Zugang als Administrator-Rolle
staw_pim_direct_ an: Konfiguration, Filter-Presets, Import-/Export-Profile, Änderungshistorie, Snapshots, Freigaben, Bearbeitungssperren, Kategorie-Verlauf und -Snapshots sowie Referenzstände und Protokoll des Fremdsystem-Schutzes.Installation
Die Installation erfolgt über den Shopware Store oder per manuellem Upload.
Über den Shopware Store
- Im Shopware-Admin unter Erweiterungen → Store nach „PIM für Shopware" suchen.
- Plugin laden - es erscheint danach unter Erweiterungen → Meine Erweiterungen.
- Mit Klick auf Installieren installieren, anschließend Aktivieren.
Manuelle Installation
- ZIP-Datei aus dem Shopware Store herunterladen.
- Im Shopware-Admin unter Erweiterungen → Meine Erweiterungen die ZIP-Datei hochladen.
- Installieren und aktivieren wie oben.
Plugin aktivieren
Nach der Installation muss das Plugin aktiviert werden. Beim Aktivieren werden folgende Vorgänge ausgeführt:
- Anlage der eigenen Tabellen und der Konfigurationseinträge per Migration
- Registrierung der ACL-Berechtigungen
- Registrierung der Menüpunkte in der Shopware-Admin-Sidebar
- Aufbau der initialen Konfigmatrix mit Defaults
PIM aufrufen
Nach der Aktivierung erscheinen im Admin im Menü von Stone & Water drei Einträge: PIM Dashboard, PIM (die Produktliste) und PIM Konfigurationsmatrix. Voraussetzung ist das Recht „Ansehen" aus der Rechtegruppe „StawPim (Produkte)".
Optional leitet die Einstellung „Standard-Produktliste auf PIM umleiten" (Konfigmatrix → Tab Allgemein) den Menüpunkt „Kataloge → Produkte" automatisch auf die PIM-Produktliste um.
PIM Dashboard
Das Dashboard fasst den Zustand des Katalogs zusammen. Ausführlich beschrieben ist es auf der Seite Dashboard.
- KPI-Karten: unter anderem Produkte gesamt, aktiv, inaktiv, Varianten, Ø Vollständigkeit, neu (7 Tage), Preis-Kennzahlen, Ø Bilder sowie Produkte ohne Bilder, Beschreibung, SEO oder Kategorien. Welche Karten erscheinen, legst du in der Konfigmatrix im Tab Dashboard fest.
- Lager-Status: Out of Stock, Bestand kritisch und Inaktiv mit Bestand, dazu die zehn Artikel mit dem niedrigsten Bestand.
- Top-Probleme: sortiert nach Schweregrad und Anzahl, zum Beispiel aktive Produkte ohne Sichtbarkeit, ohne Preis, ohne Bilder, ohne Beschreibung, ohne Kategorien, ohne SEO-Daten, kurze Beschreibungen und doppelte EANs, jeweils mit Sprung ins Listing.
- Datenqualität und Vollständigkeit: Qualitätsbalken je Feld, Vollständigkeitsverteilung sowie die am wenigsten vollständigen und die zuletzt geänderten Produkte. Außerdem Top-Hersteller und Preis-Verteilung.
- Einstellungen (Tab Dashboard): Varianten einbeziehen, Schwellwerte „Bestand kritisch ab" (Standard 5) und „Kurze Beschreibung unter" (Standard 50 Zeichen), KPI-Karten, Datenqualitätsprüfungen und eine Vollständigkeits-Gewichtung für 38 Felder in fünf Gruppen (Ignorieren, Normal 1×, Wichtig 2×, Sehr wichtig 3×).
Konfigmatrix
Die Konfigmatrix ist das zentrale Steuerungselement des Plugins. Du öffnest sie über den Menüpunkt PIM Konfigurationsmatrix im Stone & Water-Menü des Admins. Ob normale Benutzer sie sehen, regelt der Superadmin-Schalter „PIM-Konfiguration" (siehe Superadmin & Sichtbarkeit).
Oben steht eine Suche über alle Einstellungen: Strg+K (Mac: ⌘+K) setzt den Cursor hinein, Tabs mit Treffern zeigen die Trefferzahl, und über die Vor- und Zurück-Schaltflächen springst du von Treffer zu Treffer.
Die 13 Tabs im Überblick
- Allgemein: Standard-Produktliste auf PIM umleiten, Filter dauerhaft setzen (optional mit Suchbegriff), Seitengröße (10, 25, 50 oder 100 Einträge), kompakte Variantenansicht, sichtbare Spalten der Produktliste samt eigenen Spalten, fixierte Kanal- und Sprachleiste (sticky), Scroll-to-Top-Button, Coverbild immer an erster Position, sichtbare Filter und Schnellfilter.
- Dashboard: Varianten einbeziehen, Schwellwerte, KPI-Karten, Datenqualitätsprüfungen und Vollständigkeits-Gewichtung.
- Produkte: Tab-Sichtbarkeit der Detailseite, sichtbare Verkaufskanäle, Zusatzfelder nach Sets gruppieren, Rundung und automatisches Nachziehen gebundener Staffelpreise, Vorschau für inaktive Artikel sowie je Feld die Sichtbarkeit und die Pflichtfeld-Markierung in der Detailansicht und die Reihenfolge der Abschnitte.
- Varianten: Artikelnummern- und Namens-Pattern mit Trennzeichen, Optionsnamen-Format und maximaler Länge der Artikelnummer, Hauptvariante automatisch setzen samt Strategie, Hauptartikel im Listing verbergen, automatisierte Eigenschaftszuordnung, Matrix-Ansicht (Standard-Ansicht, Standard-Wert, max. Varianten, Standard 500), Felder und Abschnitte der Varianten-Ansicht sowie die Quickview-Felder für die Variantenbearbeitung im Listing.
- SEO-URLs: Shopware-Standard-SEO-URL oder Zwei-Generator-System, Feld-Pattern und URL-Pattern (Twig), eigene Patterns je Verkaufskanal, Kategorie-Pfad-Quelle, Trennzeichen, Kleinschreibung und Umlaute umwandeln. Details: SEO-URLs.
- Texte & Übersetzungen: Hauptsprache als Platzhalter, sichtbare Kanal-Sprachen für Mehrfachänderung und CSV-Export, Masterprompt, Längenvorgaben sowie DeepL, ChatGPT, Claude, Mistral und Gemini mit API-Key, Modell, Verbindungstest und Standard-Tonalität. ChatGPT, Claude und DeepL haben zusätzlich je einen Schalter für die Mehrfachänderung.
- Import / Export: Produkte pro Sync-Batch, parallele Bild-Uploads pro Produkt, gleichzeitige Produkte beim Bild-Import, Übersetzungen pro Sync-Batch, API-Rate-Limit, Indexierung während des Imports deaktivieren, nach dem Import automatisch re-indexieren, Import bei Fehleranzahl abbrechen sowie die Export-Voreinstellungen (Standard-Exportprofil, Trennzeichen, max. Produkte mit Standard 5.000, Varianten standardmäßig exportieren, Dateiformat, Dezimaltrennzeichen).
- Mehrfachänderung: fehlende Eigenschafts-Übersetzungen anzeigen, Batch-Größe, max. Produkte über Preset-Filter, Schreibgröße pro API-Request, Snapshot vor Änderung, Bestätigung vor Anwendung, bei Abbruch automatisch zurücksetzen und Varianten standardmäßig einschließen.
- Freigabe: Workflow aktivieren, Freigabe-Berechtigte, Protokollierung, Aufbewahrung, Statistik und Bereinigung.
- Änderungshistorie: automatische Bereinigung, Aufbewahrungszeitraum (Standard 90 Tage), maximale Einträge pro Produkt (Standard 100), Protokollierung an oder aus, gesamte Historie löschen.
- Snapshots: automatische Bereinigung, Aufbewahrungszeitraum (Standard 90 Tage), maximale Anzahl (Standard 50), Snapshots bei Mehrfachänderung und bei CSV-Import, Diff-Ansicht sowie die Listen zum Vergleichen, Wiederherstellen und Löschen.
- Fremdsysteme: Schutz vor Fremdsystemen mit geschützten Sprachen, Feldern und Integrationen, Auslösung, Wartezeit, Referenzstand und Protokoll. Details: Fremdsystem-Schutz.
- PIM-Superadmin (nur für Superadmins sichtbar): Superadmin-Benutzer, Sichtbarkeit und Funktionen für normale Benutzer, Bearbeitungssperre und „PIM auf Standard zurücksetzen".
Änderungen in der Konfigmatrix werden mit „Speichern" übernommen.
Sektionsreihenfolge per Pfeil-Schaltflächen
Die Reihenfolge der Abschnitte in der Produkt-Detailansicht legst du im Tab Produkte fest, die der Varianten-Ansicht im Tab Varianten - jeweils über die Schaltflächen „Nach oben" und „Nach unten".
Sektionen, in denen alle Felder deaktiviert sind, werden automatisch ausgeblendet - kein leerer Akkordeon-Header mit nichts dahinter.
Brutto-/Netto-Toggles für alle Preisarten
Alle vier Preisarten lassen sich in der Konfigmatrix unabhängig für Brutto und Netto ein- und ausblenden - sowohl für Hauptartikel als auch für Varianten:
- Verkaufspreis brutto / Verkaufspreis netto
- Einkaufspreis brutto / Einkaufspreis netto
- Streichpreis / UVP brutto / netto
- Günstigster Preis 30 Tage (Omnibus) brutto / netto
Damit ist eine reine Brutto-Pflege, reine Netto-Pflege oder gemischte Anzeige möglich - passend zur Standard-Steuerlogik des Shops oder zur Vorliebe des Pflegers. Bestehende User-Konfigurationen mit den alten Einzel-Toggles bleiben über Fallback-Logik gültig - keine Migration nötig.
SEO-URL-System - zwei Generatoren mit Zusatzfeld als Brücke
Das SEO-URL-System arbeitet in zwei klar getrennten Schritten, die über ein Canonical-Zusatzfeld zusammenspielen. Der Vorteil: Die fertigen URLs kommen aus Shopwares eigener SEO-Vorlage und überstehen jede Neu-Indexierung - auch wenn Shopware den Katalog komplett neu indexiert, bleiben deine URLs erhalten.
Alternativ: Shopware-Standard-SEO-URL
Wer das Canonical-Zusatzfeld-System nicht nutzen will, kann in der Konfigmatrix die Option „Shopware Standard SEO-URL" aktivieren (getrennt steuerbar für Produktdetail, Varianten-Modal und Quickview). Ist sie aktiv:
- zeigt das Feld die native Shopware-SEO-URL statt des StawPim-Canonical-Felds; die Canonical-Optionen werden ausgeblendet, die Hauptkategorie bleibt sichtbar
- ist das Standard-SEO-URL-Feld in Stammdaten, Varianten-Modal und Quickview direkt editierbar - es lädt die bestehende URL (auch ohne Verkaufskanal-Bindung) und schreibt per PATCH in
seo_url, ohne Duplikate zu erzeugen - bleiben bestehende Pattern-Shops unverändert (abwärtskompatibel, explizite Defaults)
Schritt 1 - „URL im Zusatzfeld generieren" (Token → Feld)
Ein Token-Pattern (z.B. {mainCategoryPath}/{name}) wird variant- und sprachgenau aufgelöst und in das Pro-Shop-Zusatzfeld staw_pim_canonical_<shop> geschrieben. Verfügbar auf zwei Wegen:
- Bulk-Lauf: Button im SEO-Tab öffnet das Modal mit Kanal-/Sprachauswahl (gruppiert nach Shop, Akkordeons, „Alle (ab)wählen" je Gruppe) und Fortschrittsanzeige
- Pro-Produkt: Button „Aus Pattern generieren" direkt in Stammdaten und Varianten - füllt das Eingabefeld, danach normal speichern
Verfügbare Tokens als anklickbare Chips: {name}, {productNumber}, {manufacturer}, {category}, {categoryPath}, {mainCategory}, {mainCategoryPath}, {options}, {properties}, {tags}, {ean}, {metaTitle} sowie Custom-Field-Tokens. Das „Feld-Pattern" ist ein eigenes Eingabefeld, getrennt vom Twig-URL-Pattern von Schritt 2.
Optionales Meta-Title-Pattern
Neben dem Feld-Pattern (Schritt 1) lässt sich optional ein Meta-Title-Pattern konfigurieren. Beim Generieren wird der Meta-Title in Klartext aufgelöst - keine Slugifizierung, Umlaute und Groß-/Kleinschreibung bleiben erhalten, Breadcrumbs werden mit „ / " verbunden - und im selben Lauf pro Sprache in den Produkt-Meta-Title geschrieben. Berücksichtigt „nur leere", kürzt bei 255 Zeichen, und die Ergebnis-Zusammenfassung zeigt die Anzahl geschriebener Meta-Titles. Die Variablen-Chips stehen auch unter dem Meta-Title-Feld zur Verfügung.
Schritt 2 - „SEO URLs generieren" (Twig → Datenbank)
Ein Twig-Pattern liest die Zusatzfelder und wird als Shopwares native SEO-URL-Vorlage (seo_url_template) je Verkaufskanal gesetzt. Die Neuindexierung läuft über Shopwares eigenen SeoUrlGenerator - Shopware erzeugt die URLs selbst aus dem Zusatzfeld. Typisches Pattern für Migrationen:
{% if staw_url_product_detail %}{{ staw_url_product_detail|raw }}{% else %}{{ product.customFields.staw_pim_canonical_shop|raw }}{% endif %}
Migrierte Produkte behalten so ihre bestehende URL, neue Produkte nutzen das von Schritt 1 gefüllte Feld. Geänderte Pfade bleiben als 301-Weiterleitung erhalten - kein SEO-Verlust, kein 404 für bestehende Links.
Pattern-Editor mit Textarea, Stift und Twig-Syntax-Check
Das Pattern-Eingabefeld ist eine Textarea mit Auto-Höhe - bei langen Patterns mit {% if %}-Abfrage ist die ganze Logik sichtbar. Pro Pattern:
- Stift-Icon zum Bearbeiten - öffnet einen großen Editor mit Variablen-Chips
- Variablen-Chips kontextabhängig: Token-Chips für Schritt 1, offizielle Shopware-SEO-Twig-Variablen (Produktdetailseite) für Schritt 2. Felder werden direkt mit
|raweingefügt - Live-Twig-Syntax-Check: Ungültiges Twig wird rot gemeldet, Speichern ist gesperrt
- Mix-Warnung: Wenn
{tokens}und Twig ({% %}/{{ }}) im selben Pattern stehen, warnt der Editor - das funktioniert nicht, da Shopware die Twig-Ausgabe slugifiziert und Token-Klammern entfernt. Empfehlung: reines Twig oder reines Token-Pattern
Eigenes Pattern pro Shop - für beide Generatoren
Der Pro-Verkaufskanal-Pattern-Editor ist für beide Generatoren verfügbar: Schritt 1 kann ein eigenes Token-Pattern je Verkaufskanal erhalten, Schritt 2 ein eigenes Twig-Pattern. Shop-Patterns sind eine Liste: Jeder Shop mit eigenem Pattern wird mit Name + Pattern angezeigt - per Stift bearbeiten oder Papierkorb entfernen. „Pattern für Shop hinzufügen" öffnet das Editor-Modal mit Kanal-Auswahl. Shops ohne eigenes Pattern verwenden das Standard-Pattern.
Das Generierungs-Modal
Beide Generatoren öffnen ein geführtes Modal (im PIM-CI mit Indigo-Akzenten):
- Verkaufskanal + Sprachen wählen - alle aktiven Kanäle, nach Shop gruppiert als Karten mit Sprach-Akkordeons darunter (initial zugeklappt, nichts vorausgewählt). Je Gruppe „Alle (ab)wählen" mit Zähler, plus globaler „Alle auswählen"-Button. Pro Kanal Badges: Anzahl Produkte (nur tatsächlich im Kanal sichtbare, inkl. Varianten) und Anzahl ohne SEO-URL.
- Optionen:
- „Alte URLs als 301 behalten" - geänderte Pfade bleiben als Redirect erhalten
- „Nur fehlende SEO-URLs erzeugen" - bestehende/migrierte URLs bleiben unangetastet
- „Alle Produkt-URLs entfernen (Reset)" - löscht alle SEO-URLs der gewählten Kanäle/Sprachen (inkl. Shopwares globaler Detail-URLs der Sprache) und baut frisch auf. Die anderen Optionen springen sichtbar auf AUS
- Vorschau - wählt Beispielprodukte, die im Kanal sichtbar sind und deren Pattern auflöst; bis zu drei echte Beispiel-URLs, lange URLs werden umbrochen, Box scrollbar.
- Probelauf oder Generierung - der Probelauf zeigt den kompletten Lauf ohne zu schreiben. Ergebniskarten farbcodiert: Neu = grün, Änderung = blau, Übersprungen = grau, Warnung = amber, Fehler = rot.
Der Fortschrittsbalken zeigt Prozentanzeige mit Indigo-Verlauf. Die Generierung läuft chunked - auch zehntausende Produkte ohne Timeout.
Ergebnisbericht und Konflikte
- Geschrieben / Übersprungen / Redirects als Zähler
- „N ohne gerenderten Pfad" - Produkte, deren Pattern nichts ausgibt (z.B. Migrations-Feld und Canonical-Feld beide leer). So ist sofort sichtbar, warum nichts geschrieben wurde
- Konflikte mit Produktnummern statt internen IDs. Pfade, die bereits von einer anderen Route belegt sind (z.B. Kategorie mit gleichem Slug), werden sauber übersprungen und als „Pfad bereits anderweitig vergeben" gemeldet - kein Duplicate-Key-Abbruch
{mainCategoryPath}/{name}-{options}.Slug-Behandlung: Umlaute, Schrägstriche, Punkte
- Umlaute und Sonderzeichen (auch in statischem Pattern-Text wie einem wörtlichen „für/") werden konvertiert: ä→ae, ö→oe, ü→ue, ß→ss; „&" und Leerzeichen werden zum Trennzeichen
- Schrägstriche und Punkte bleiben erhalten - Kategorienamen mit „/" und Artikelnummern/Namen mit „." (z.B.
.html-Suffixe) laufen unverändert durch - Twig
|rawautomatisch: Shopwares SEO-Umgebung slugifiziert jede Twig-Ausgabe (inkl. Schrägstriche → „-"). Nackte Ausgaben von Pfad-Feldern bekommen in allen Generierungspfaden automatisch|rawinjiziert - Vorschau und Server-Generierung verhalten sich identisch - was die Vorschau zeigt, wird auch geschrieben
- Sicherheitsnetz: Leeres Canonical-Feld → Fallback auf den Produktnamen statt leerem Pfad
Sprach-Fallback bei mehrsprachigen Shops
Bei der Generierung werden durchgängig die kanal-/sprachspezifischen Werte verwendet (Name, Hersteller, Kategorie, Varianten-Optionen). Fallback-Kette: angefragte Sprache → Eltern-Sprache → System; leere oder geerbte Übersetzungen werden übersprungen. Gilt für Token- und Twig-Generierung - keine versehentliche Standardsprache in fremdsprachigen URLs.
Varianten: eindeutige URLs
Beide Generatoren verarbeiten Parent und Varianten. Geerbte Felder werden aus dem Parent aufgelöst (inkl. übersetzter customFields mit Vererbung). Die Tokens {options}, {properties} und {tags} liefern sprachübersetzte Werte - ein Pattern wie {mainCategoryPath}/{name}-{options} erzeugt pro Variante und Sprache eine eindeutige URL, keine doppelten Pfade zwischen Varianten desselben Parents.
Kategorie-Pfad deterministisch
{mainCategoryPath}/{categoryPath} nutzen die Hauptkategorie des jeweiligen Verkaufskanals. Ist keine gesetzt, bevorzugt der Fallback die tiefste zugewiesene Kategorie (längster Pfad) - deterministisch statt beliebig. Bei leerer category.path-Spalte (Indexer-Rückstand nach Importen) wird die Ahnenkette über parent_id rekonstruiert.
…/config/seourl öffnet wieder den SEO-Tab.Standard-Steuersatz für neue Produkte
Beim Anlegen eines neuen Produkts wird automatisch der erste Steuersatz aus dem Shopware-System vorausgewählt (sortiert nach position ASC). Sowohl taxId als auch taxRate werden gesetzt, sodass die Brutto/Netto-Berechnung sofort funktioniert.
Validation-Modal mit Scroll-to-Section
Klick auf Speichern während Pflichtfelder leer sind: statt einer Warn-Banner-Wand öffnet sich ein Modal mit allen Fehlern. Klick auf einen Fehler springt direkt zur betroffenen Sektion - sie wird aufgeklappt, das Feld wird mit einer indigo Outline für rund 2,5 Sekunden hervorgehoben.
Berechtigungen & Superadmin
Der Zugriff wird auf zwei Ebenen geregelt: über die Shopware-Rollen mit der Rechtegruppe „StawPim (Produkte)" und über die Superadmin-Einstellungen in der Konfigmatrix. Ausführlich: Rechte & Superadmin.
Einstellungen → Benutzer & Berechtigungen → Rollen → eine Rolle wählen oder anlegen → Gruppe „Kataloge" → „StawPim (Produkte)"
Vier Rollen in der Rechtegruppe
staw_pim.viewer- Ansehen: Voraussetzung für die Menüpunkte und alle PIM-Seiten (Dashboard, Produktliste, Detailseite, Konfigurationsmatrix). Bringtproduct.viewersowie Leserechte auf Zusatzfelder, Verkaufskanäle, Sprachen, dynamische Produktgruppen, Tags, Lieferzeiten, Einheiten und Steuersätze mit.staw_pim.editor- Bearbeiten: bringtproduct.editormit. Das Plugin prüft diese Rolle nicht gesondert; ob gespeichert werden darf, entscheiden die Shopware-Rechte auf die betroffenen Daten.staw_pim.creator- Anlegen: bringtproduct.creatormit und sichert die Seite zum Anlegen neuer Produkte ab. Setzt Ansehen und Bearbeiten voraus.staw_pim.deleter- Löschen: bringtproduct.deletermit. Setzt Ansehen voraus.
Rollenbasierte Menü-Sichtbarkeit
Ohne Recht „Ansehen" sind die Menüpunkte nicht sichtbar - Dashboard, Produkte und Konfigurationsmatrix erscheinen für nicht berechtigte Benutzer gar nicht erst. Auch die automatische Weiterleitung von der Shopware-Standard-Produktliste auf die PIM-Liste respektiert das Recht.
Superadmin & Sichtbarkeit
Im Tab PIM-Superadmin trägst du die Benutzernamen der PIM-Superadmins ein (einer pro Zeile oder kommagetrennt). Superadmins sehen alle Bereiche und Funktionen. Solange die Liste leer ist, gelten alle Benutzer als Superadmin.
Unter „Sichtbarkeit für normale Benutzer" legst du fest, ob Benutzer ohne Superadmin-Eintrag die PIM-Konfiguration (Konfigmatrix) und das PIM Dashboard sehen. Ist das Dashboard ausgeblendet, verschwindet auch der Dashboard-Button in der Kopfzeile.
Feed-Generator separat freigebbar
Unter „Funktionen für normale Benutzer" gibt es einen eigenen Schalter „Feed-Generator" - damit lässt sich der Feed-Generator für Nicht-Superadmins gezielt an- oder abschalten, unabhängig von CSV-Import und -Export. Standard: aktiv.
Funktionsschalter für normale Benutzer
Im Bereich „Funktionen für normale Benutzer" schaltest du einzelne Funktionen für Benutzer ohne Superadmin-Eintrag ein oder aus. Standardmäßig sind sie eingeschaltet, Superadmins sehen sie immer:
- Produkte erstellen und Produkte duplizieren (Duplizieren-Eintrag im Kontextmenü)
- Varianten generieren (Mehrfachänderung) - Tab „Varianten generieren" in der Mehrfachänderung
- Auf Varianten übertragen - die Schaltflächen zum Übertragen von Bildern und Eigenschaften des Stammartikels auf dessen Varianten
- Produkte löschen - einzeln und über die Mehrfachänderung
- Aktiv/Inaktiv setzen
- Mehrfachänderungen
- Snapshots und Änderungshistorie
- CSV-Export und CSV-Import
- Feed-Generator
- Kategorien verwalten - Button „Kategorien" und die Kategorien-Verwaltung
CSV-Import-Tab
Bearbeitungssperre
Mit „Bearbeitungssperre aktivieren" (Tab PIM-Superadmin) erscheint ein Hinweis „Produkt wird bearbeitet", wenn ein anderer Benutzer dasselbe Produkt gerade geöffnet hat. Du kannst die Bearbeitung übernehmen oder zur Produktliste zurückkehren. Die Sperre hält sich per Heartbeat (alle 5 Sekunden je geöffnetem Produkt); nach dem eingestellten Timeout ohne Heartbeat wird sie automatisch aufgehoben, zum Beispiel wenn ein Browser unerwartet geschlossen wurde.
PIM auf Standard zurücksetzen
„Alle Einstellungen zurücksetzen" setzt alle PIM-Konfigurationen (Feldauswahl, Reihenfolge, allgemeine Einstellungen) auf die Standardwerte zurück. Zusätzlich werden Filter-Presets, Import-/Export-Profile, Snapshots, Änderungshistorie und Freigabe-Einträge gelöscht. Der Vorgang muss mit dem eigenen Admin-Passwort bestätigt werden.
Sprachen
Das PIM arbeitet mit allen in Shopware angelegten Sprachen. In der Detailansicht wählst du Verkaufskanal und Sprache über die Kanal- und Sprachleiste. In der Konfigmatrix (Tab Texte & Übersetzungen, „Sichtbare Kanal-Sprachen") legst du fest, welche Kanal-Sprach-Kombinationen in der Mehrfachänderung und im CSV-Export zur Auswahl stehen. Ist „Hauptsprache als Platzhalter anzeigen" aktiv, erscheint bei einem leeren Feld der Wert der Hauptsprache grau als Platzhalter.
Aus Standardsprache übernehmen
Legt ein Verkaufskanal eine eigene Sprache an, sind dort zunächst keine eigenen Texte hinterlegt. Im Shop erscheinen zwar die geerbten Inhalte, eine gezielte Pflege oder KI-Überarbeitung je Sprache ist ohne eigenen Ausgangstext aber nicht möglich. Für diesen Fall gibt es an zwei Stellen die Funktion „Aus Standardsprache übernehmen".
- Produkte: Mehrfachänderung → Bereich KI & Texte. Übertragen werden Name, Beschreibung, Meta-Titel, Meta-Description und Keywords; Felder und Zielsprachen sind frei wählbar.
- Kategorien: Sammelaktion im Kategorien-Modal. Der Dialog nennt vorab Anzahl, Zielsprache und Felder, zeigt während der Übernahme einen Fortschrittsbalken und aktualisiert die Ansicht danach automatisch. Die Schaltfläche erscheint nur, wenn die gewählte Sprache von der Standardsprache abweicht.
- Vorhandenes bleibt stehen: Standardmäßig werden nur leere Felder gefüllt. Das Überschreiben lässt sich bei den Produkten optional aktivieren; bei den Kategorien werden eigene Texte immer übersprungen und am Ende ausgewiesen.
- Sauber geprüft: Ob eine Zielsprache bereits eigene Texte hat, wird anhand der Übersetzungssätze ermittelt - nicht anhand der geerbten Anzeigewerte.
Aufbau des Listings
Das zentrale Produktlisting ist die Hauptansicht des PIM mit folgenden Elementen:
- Filter - Schnellfilter, Kategoriebaum, Verkaufskanal und frei definierbare eigene Filter mit UND- oder ODER-Verknüpfung
- Spaltenkopf - Sortierung per Klick; welche Spalten erscheinen, legt die Konfigmatrix fest
- Datenzeilen - pro Produkt eine Zeile, Varianten lassen sich darunter aufklappen
- Aktionen - Mehrfachänderung, CSV-Import/Export, Feed-Generator und Kategorien
- Blätterung - 10, 25, 50 oder 100 Zeilen pro Seite
Filter mit UND/ODER
Eigene Filter bestehen aus Feld, Operator und Wert. Pro Filtersatz gilt ein Verknüpfungsmodus: UND (Produkte müssen alle aktiven Filter erfüllen) oder ODER (mindestens einen). Verschachtelte Gruppen gibt es nicht. Einzelne Filter lassen sich deaktivieren, ohne sie zu löschen.
- Textfelder (8 Operatoren): enthält, enthält nicht, ist genau, ist nicht, beginnt mit, endet auf, ist leer, ist nicht leer
- Zahlenfelder (8 Operatoren): =, ≠, >, <, ≥, ≤, ist leer, ist nicht leer
- Ja/Nein-Felder (2 Operatoren): ist aktiv, ist inaktiv
- Felder: Artikelnummer, Name, Beschreibung, Meta-Description, Meta-Titel, Suchbegriffe, EAN/GTIN, Hersteller-Artikelnr. (MPN), Verpackungseinheit, Lagerbestand, Verfügbar, Preis, Gewicht, Breite, Höhe, Länge, Anzahl Varianten, Status (aktiv) und Topseller-Markierung
- Variantenartikel-aware - Filter berücksichtigen Hauptartikel und Varianten
- „Übersetzung fehlt" - in den Varianten Name fehlt, Beschreibung fehlt und Beides fehlt. Die Treffer werden serverseitig gegen genau die gewählte Sprache ermittelt und auf Stammartikel eingegrenzt; leere Texte zählen wie fehlende. Ohne ausdrückliche Sprachwahl gilt die aktive Sprache. Der Filter-Chip nennt die geprüfte Sprache mit, zum Beispiel „Übersetzung: Name fehlt (Alpendampf DE)".
- Sprachvererbung: Liegt ein Text nur bei der übergeordneten Sprache, greift er im Shop - Filter und Vollständigkeit prüfen deshalb die gesamte Sprachkette. Produkte ohne jede Übersetzung in der Kette werden weiterhin zuverlässig gefunden.
- Vollständigkeit folgt dem Verkaufskanal: Die übersetzbaren Felder werden gegen die Sprache des gewählten Kanals gerechnet; ohne Kanalauswahl gegen die Systemsprache.
- UVP-Status („UVP fehlt", „UVP kleiner als Brutto") wird serverseitig über den gesamten Bestand ermittelt, sodass Trefferzahl, Blätterung und Ergebnis zusammenpassen.
Kategoriefilter
Neben den frei kombinierbaren Bedingungen filtert ein eigener Baum über die Kategorien. Er stellt den Katalog in beliebiger Tiefe dar; auch fünf, sechs oder mehr Ebenen lassen sich aufklappen und auswählen.
- Untergeordnete werden mitgewählt - hakst du eine Kategorie an, sind alle darunter liegenden ebenfalls ausgewählt; beim Abwählen verschwinden sie wieder
- Beliebige Tiefe - der Baum ruft sich selbst auf und endet nicht mehr nach vier Ebenen
- Der Filter wirkt zusammen mit allen übrigen Bedingungen
Das Mitwählen der untergeordneten Kategorien ist der praktisch entscheidende Teil: Produkte hängen meist an der untersten Ebene, sodass die Auswahl einer Oberkategorie allein nichts gefunden hätte.
Zusammenspiel der Filter
Alle gesetzten Filter wirken gemeinsam und schränken die Treffermenge ein - Verkaufskanal, Kategorien, Vollständigkeit, eigene Bedingungen, Warengruppen, Preisspanne, Bilder, Beschreibung, Sichtbarkeit, UVP, Eigenschaften, Lieferzeit und Varianten-Bilder.
- Varianten werden mitgesucht - ist ein eigener Filter gesetzt, sucht das Plugin zusätzlich in den Varianten und holt deren Stammartikel in die Liste, damit ein Treffer nicht übersehen wird
- Verneinende Bedingungen wie „enthält nicht" oder „ist nicht" wirken bewusst nur auf den Stammartikel - sonst würde eine einzige passende Variante genügen, um einen widersprechenden Artikel hereinzuholen
- Leere Felder zählen bei verneinenden Bedingungen als Treffer, denn ein leeres Feld enthält den gesuchten Text gerade nicht
window.stawPimLastCriteria. Damit ist bei mehreren gleichzeitig gesetzten Filtern nachvollziehbar, welche Bedingungen wirklich ankommen.Spalten konfigurieren
Welche Spalten die Produktliste zeigt, legst du zentral in der Konfigmatrix fest: Tab Allgemein → „Sichtbare Spalten in der Produktliste". Artikelnummer und Name sind immer sichtbar. Die Reihenfolge änderst du dort über „Nach oben" und „Nach unten". Die Einstellung gilt für alle Benutzer. In der Liste sortierst du per Klick auf den Spaltenkopf.
Eigene Spalten anlegen
Über „Eigene Spalte hinzufügen" in derselben Spaltenkonfiguration öffnet sich ein Dialog, in dem du eine zusätzliche Spalte mit eigenem Namen und einem Quellfeld definierst:
- Quellfeld: entweder ein Stammdatenfeld (Erscheinungsdatum, Bestand, Maße, weitere Datumsfelder, …) oder ein beliebiges Zusatzfeld (Custom Field). Die Auswahl ist ein durchsuchbares Dropdown mit Gruppen-Überschriften (Stammdaten / Zusatzfelder) - lange Zusatzfeld-Listen filterst du per Tippen.
- Sortierbar machen: Ein Schalter im Dialog erlaubt das Sortieren der Liste über diese Spalte (Klick auf den Spaltenkopf). Bei Zusatzfeldern hängt das vom Feldtyp ab.
- Automatische Formatierung: Werte werden passend dargestellt - Datum im deutschen Format, Ja/Nein bei Boolean-Feldern.
Neue Spalten erscheinen in der Spaltenliste, lassen sich über die Pfeile einordnen, wieder entfernen und werden in der Konfiguration gespeichert.
Filter-Presets
Häufig genutzte Filterkombinationen speicherst du als Preset. Presets liegen in der Datenbank des Shops und stehen allen Benutzern zur Verfügung, eine Trennung nach Benutzer gibt es nicht. Ein Preset lässt sich als Schnellfilter markieren und erscheint dann direkt über der Liste. Presets dienen außerdem als Grundlage für die Mehrfachänderung („Preset-Filter"), für Feeds und für die Produktzuordnung von Kategorien.
Inline-Bearbeitung
Direkt in der Listenzeile bearbeitbar sind Bestand, Preis (brutto), EAN, Herstellernummer und Gewicht sowie der Aktiv-Schalter - auch bei Varianten. Gespeichert wird sofort, sobald du das Feld verlässt; eine Erfolgsmeldung bestätigt das. Beim Preis wird der Nettowert über den Steuersatz des Produkts berechnet. Geerbte Werte einer Variante werden hervorgehoben dargestellt.
Quickview-Modal
Ein Klick auf eine Variante in der Produktliste öffnet das Quickview-Modal mit ihren Stammdaten - ohne Wechsel in die volle Detailansicht. Mit gedrückter Strg- bzw. ⌘-Taste öffnet sich der Artikel stattdessen in einem neuen Tab.
Inhalte des Modals:
- Artikel-Basisdaten: Artikelnummer, Name (leer = vom Hauptprodukt erben), EAN/GTIN, Hersteller-Artikelnr. (MPN), Aktiv/Inaktiv
- Preise: Preis brutto und netto, Einkaufspreis, Pseudopreis (Streichpreis), günstigster Preis 30 Tage (Omnibus)
- Beschreibung
- Lieferbarkeit & Maße: Lagerbestand, Wiederauffüllzeit, Abverkauf, Versandkostenfrei, Lieferzeit, Verkaufseinheit (Singular/Plural), Inhaltsmenge, Grundpreiseinheit, Produkteinheit, Mindest- und Maximalabnahme, Staffelung, Gewicht, Länge, Breite, Höhe, Erscheinungsdatum
- SEO: Meta-Titel, Meta-Beschreibung, Suchbegriffe und, wenn in der Konfigmatrix eingeschaltet, die Shopware-Standard-SEO-URL
Header-Layout
Der Modal-Header zeigt den Variantennamen vorne (groß und dunkel), die Artikelnummer als sekundäre Information dahinter (klein, grau) - analog zur Stammartikel-Variantenmaske. So ist bei Variantenpflege auf den ersten Blick klar, welche Variante gerade bearbeitet wird.
Einheitliche Eingabefelder
Alle Eingabefelder im Quickview folgen der gleichen Struktur: Label oben, Eingabefeld darunter (42 px Höhe) - konsistent zum Rest des Plugins. Das gilt für Text-Felder, Zahlen-Felder, Selects und Toggles.
Alles ausklappen / Alles einklappen
Im Modal-Header gibt es einen Button Alles ausklappen bzw. Alles einklappen - analog zur Detailansicht der Stammdaten. Damit lassen sich alle Akkordeons in einem Schritt öffnen oder schließen.
Welche Felder im Quickview erscheinen, steuerst du in der Konfigmatrix im Tab Varianten unter „Quickview-Felder (Varianten-Bearbeitung im Listing)". Einen eigenen Tab „Quickview" gibt es nicht.
Variantenanzeige
Variantsartikel werden im Listing als Hauptartikel-Zeile dargestellt. Per Klick auf das Plus-Icon werden die Varianten inline darunter aufgeklappt, ohne Page-Wechsel.
Kompakte Variantenansicht: In der Konfigmatrix unter Allgemein → Produktliste lässt sich die Option „Kompakte Variantenansicht" aktivieren. Varianten werden dann platzsparend dargestellt - ohne große Einrückung, ohne Vorschaubild und mit deutlich flacheren Zeilen; der Varianten-Marker (└) sitzt mittig. Inhalte (Name + Optionen) bleiben vollständig erhalten, auch bei sehr langen Variantennamen (die Zeilen wachsen bei Bedarf mit, ohne Überlappung). Nach dem Umstellen in der Konfigmatrix „Speichern" klicken.
Bild-Upload per Drag & Drop
In den Stammdaten und in der Varianten-Ansicht gibt es in der Sektion „Bilder/Medien" eine Drag-&-Drop-Zone (unterhalb der Bilder). Dateien ablegen oder per Klick den Datei-Dialog öffnen - beides funktioniert, mit Fortschrittsanzeige.
- Uploads landen in der Shopware-Mediathek (Produkt-Ordner) und werden sofort dem Produkt zugeordnet
- Das erste Bild wird automatisch Titelbild, falls noch keins gesetzt ist
- Varianten: Ein hochgeladenes Bild wird zum eigenen Bild der Variante und überschreibt das geerbte. Entfernt man das eigene Bild, werden wieder die Bilder des Hauptprodukts geerbt - beides bleibt jederzeit möglich
Dateiname, Alt-Text und Title
In der Medien-Ansicht eines Produkts öffnet das Bearbeiten-Symbol an einem Bild drei Felder: Dateiname, Alt-Text (Alternativtext für SEO und Barrierefreiheit) und Title (Titel-Attribut). Das Umbenennen der Datei läuft serverseitig über einen eigenen Endpunkt des Plugins (/api/_action/staw-pim-direct/media/{id}/rename).
Vorschau inaktiver Artikel
Ist „Vorschau bei inaktiven Artikeln erlauben" (Konfigmatrix → Tab Produkte) eingeschaltet, kann auch ein inaktiver Artikel über den Vorschau-Button im Shop angesehen werden. Nach einer Rückfrage wird er dafür vorübergehend aktiviert; ist keine Sichtbarkeit hinterlegt, setzt das PIM automatisch „Nur per Direktlink". Beides wird nach der eingestellten Dauer (15, 30, 60 oder 120 Sekunden) automatisch zurückgenommen.
Freigabe-Workflow
Der Freigabe-Workflow wird in der Konfigmatrix im Tab Freigabe mit „Freigabe-Workflow aktivieren" eingeschaltet. Ausführlich: Freigabe-Workflow.
- Status: Entwurf, In Bearbeitung, zur Überprüfung eingereicht, zur Überarbeitung (abgelehnt) und freigegeben.
- Einreichen setzt den Status „eingereicht" und deaktiviert den Artikel. Ablehnen (optional mit Grund) setzt „zur Überarbeitung" und deaktiviert ihn ebenfalls. Freigeben aktiviert den Artikel. Freigabe entziehen setzt ihn auf Entwurf zurück und deaktiviert ihn.
- „In Bearbeitung" setzen Bearbeiter selbst als Signal an das Team; der Status lässt sich wieder auf Entwurf zurücksetzen.
- Freigabe-Berechtigte: Freigeben und Ablehnen dürfen die Benutzer, deren Benutzernamen unter „Freigabe-Berechtigte" eingetragen sind (einer pro Zeile oder kommagetrennt), sowie alle Superadmins. Ist die Liste leer, dürfen alle Benutzer freigeben. Eine eigene Shopware-Rolle dafür gibt es nicht.
- Mehrfachänderung: Freigabe-Berechtigte finden im Tab Stammdaten die Aktion „Freigabe" mit Freigeben, Zur Überarbeitung (optional mit Grund) und Zurücksetzen. Die Status werden gebündelt mit einer Anfrage je 200 Produkte geschrieben.
- Sichtbar: Status-Badge mit Schaltflächen in der Detailansicht, Status-Indikator und Filter in der Produktliste, Statistik in der Konfigmatrix.
- Protokoll: Statuswechsel landen mit Benutzer und Zeitpunkt in der Änderungshistorie des Produkts. Zusätzlich speichert die Freigabe-Protokollierung jeden Freigabe-Eintrag in einer eigenen Tabelle; sie lässt sich abschalten, bestehende Einträge bleiben dann erhalten.
- Aufbewahrung und Bereinigung: Optional automatische Bereinigung nach 30, 60, 90, 180 Tagen, 1 oder 2 Jahren (bereinigte Einträge fallen auf Entwurf zurück). Manuell: Entwürfe löschen, ältere Einträge bereinigen oder alle Freigabe-Einträge löschen (alle Produkte erhalten danach wieder „Entwurf").
- Deaktivieren: Schaltest du den Workflow aus, brauchen Produkte keine Freigabe mehr. Vorhandene Freigabe-Einträge bleiben in der Datenbank, bis du sie bereinigst.
Kategorie-Zuweisung mit Chips
Zugewiesene Kategorien werden als entfernbare Chips unter dem Kategoriebaum aufgelistet (kleines × zum Entfernen). So ist auf einen Blick ersichtlich, welche Kategorien ausgewählt sind - ohne im Baum suchen zu müssen.
Produkt anlegen - geführtes Modal
Der Button „Produkt anlegen" öffnet ein Modal, das vor dem Anlegen die Grundlagen abfragt - statt ein leeres, kategorieloses Produkt direkt in den Katalog zu schreiben. So entstehen keine unsichtbaren Karteileichen mehr.
Das Modal ist bewusst auf das Wesentliche reduziert: Name, Artikelnummer (aus dem Nummernkreis reserviert, editierbar) und Verkaufskanal-Sichtbarkeit (vorausgewählt), untereinander dargestellt. Preis (0), Standard-Steuersatz und der Inaktiv-Status werden still als Defaults gesetzt - diese und die Kategorien pflegst du anschließend auf der Detailseite, die direkt nach dem Anlegen geöffnet wird.
Die Eingabefelder folgen dem PIM-CI (1,5px-Ränder, 8px-Radius, Indigo-Fokusring, einheitliche Höhe), inklusive der Steuersatz-Auswahl.
Duplizieren: Beim Duplizieren eines Produkts vergibt das PIM die nächste freie Artikelnummer aus dem Shopware-Nummernkreis (wie beim manuellen Anlegen) statt ein -Copy-Suffix anzuhängen; der Name erhält den Zusatz „(Kopie)". Varianten der Kopie bekommen ihre Nummer als <neue Nummer>.<Index> (Shopware-Varianten-Konvention). Fällt der Nummernkreis aus, greift der -Copy-Suffix als Fallback.
Erscheinungsdatum
Das Erscheinungsdatum (Shopwares releaseDate) heißt im gesamten PIM einheitlich so - auf der Detailseite, in der Konfigmatrix, der Mehrfachänderung, im Feed-Generator, im CSV und in der Varianten-Schnellpflege. (Frühere Versionen nutzten einen Mix aus „Erscheinungsdatum", „Freigabedatum" und „Veröffentlichungsdatum".)
- Detailseite: Das Feld sitzt im Abschnitt „Lieferbarkeit" (nicht mehr unter „Sichtbarkeit"). Der Abschnitt öffnet sich auch, wenn nur das Erscheinungsdatum-Feld aktiviert ist.
- Varianten: Pro Variante setzbar - sowohl in der Varianten-Schnellpflege als auch im Varianten-Detail-Modal, jeweils im Lieferbarkeits-Abschnitt. Leer erbt vom Hauptartikel (ausgegraut dargestellt wie die übrigen vererbbaren Felder). In der Feld-Matrix „Varianten Lieferbarkeit" ein-/ausblendbar (Default an).
- Anzeige & Speicherung: Der Datepicker zeigt das Datum im deutschen Format (TT.MM.JJJJ) ohne Uhrzeit, speichert intern aber weiterhin den vollständigen Datetime-Wert (Shopware-Standard).
availableAt-/„Verfügbar ab"-Spalte aus früheren Exporten wird beim CSV-Import aus Kompatibilitätsgründen weiterhin auf das Erscheinungsdatum gemappt - aber nur, wenn das Erscheinungsdatum selbst leer ist. Das frühere separate Feld „Verfügbar ab" gibt es nicht mehr (es wurde nie gespeichert, da die Produkt-Entität diese Spalte nicht hat).Kategorien-Verwaltung
Ein Button „Kategorien" (links neben dem Feed-Generator) öffnet ein Modal zur kompletten Kategorie-Verwaltung - kein Wechsel in den Shopware-Standard nötig.
- Baum je Verkaufskanal: Die Verkaufskanal-/Sprach-Auswahl nutzt den Channel-Bar im Stammdaten-Stil (mit Icons und Feld-Rahmen). Pro Kanal wird der Baum ab der Navigations-Wurzel aufgebaut, die Einstiegs-/Wurzelkategorie steht oben. Geladen wird direkt über das
category-Repository (kein separater API-Endpoint). - Anlegen, bearbeiten, löschen: Kategorien lassen sich anlegen, umbenennen, aktivieren/deaktivieren und löschen. Neue Kategorien werden in der Systemsprache angelegt. Ein Button „Neue Kategorie" in der Leiste legt schnell eine Wurzelkategorie im gewählten Kanal an. Die Lösch-Bestätigung ist ein Dialog im PIM-CI-Stil (kein Browser-Confirm).
- Felder je Sprache: Name, Beschreibung und SEO-Felder werden pro Sprache gepflegt; ein Sprachwechsel lädt Baum und Detail neu, sodass übersetzte Felder erscheinen. Die Beschreibung ist ein WYSIWYG-Editor (sw-text-editor) mit sichtbarer HTML-Formatierung.
- Typ, Layout & mehr: Übergeordnete Kategorie und Typ setzen, ein Layout (CMS-Erlebniswelt) zuweisen (inkl. Button „Neue Erlebniswelt anlegen", öffnet den CMS-Editor in neuem Tab), externer Link bei Link-Kategorien, Schalter „In Hauptnavigation anzeigen", Zusatzfelder-Abschnitt. Per Drag & Drop lassen sich Kategorien unter einen anderen Übergeordneten verschieben.
- KI-Texte für Kategorien: Ein Button „KI-Texte" öffnet ein Panel zum Generieren von Beschreibung, Meta-Title, Meta-Description und Keywords - über alle vier Anbieter, mit Tonalitätswahl, Ausgabe in der aktiven Sprache und freiem Feld „Weitere Anweisungen an die KI". Ein Schalter „Unterkategorien einbeziehen" generiert für den gesamten Unterbaum, ein Schalter „Bestehende Texte überschreiben" entscheidet, ob nur leere Felder gefüllt oder vorhandene ersetzt werden. Daneben steht „Übersetzen" einzeln zur Verfügung (DeepL oder KI-Anbieter, Quell- → Zielsprache).
- Kategoriebild & Alt-Text: In den Stammdaten ein Cover-Bild aus der Mediathek wählen oder hochladen (gespeichert als
category.mediaId), plus sprachabhängiger Alt-Text für Barrierefreiheit/SEO. - SEO-URL (Slug): Je Verkaufskanal und Sprache ein eigener Slug; die alte URL bleibt als 301-Weiterleitung erhalten, die neue wird Canonical und überlebt den Reindex. Leeres Feld setzt auf Shopware-Automatik zurück.
- Produktzuordnung: Pro Kategorie eine Dynamische Produktgruppe (Stream) oder ein StawPim-Preset-Filter (mit Live-Trefferanzahl; beim Speichern werden die Produkte fest zugewiesen).
- Vollständigkeits-Score & Bulk: Jede Kategorie zeigt einen Prozent-Score (Beschreibung, Meta, Bild); ein Vollständigkeits-Filter neben der Suche. Mehrfachauswahl per Checkbox für „Aktiv/Inaktiv" und „In Nav anzeigen/ausblenden" mit Snapshot/„Verlauf" und Audit-Log.
- Standard-Sortierung & Duplizieren: Pro Kategorie eine Shopware-Sortierung setzen; eine Kategorie inkl. Unterbaum als „(Kopie)" duplizieren.
- Import/Export: Kompletter Baum als mehrsprachige CSV (Spalten
feld.locale, Zusatzfelder alscf.-Spalten) oder als JSON-Backup; Import löst Eltern überparentPathauf, mit Vorschau, Validierung und Sicherung.
Sprachen im Kategoriebaum
- Vollständigkeit je Sprache: Der Prozentwert je Kategorie zählt nur die eigenen Texte der gewählten Sprache - passend zum Bearbeitungsformular daneben, in dem ebenfalls je Sprache gepflegt wird. Geerbte Inhalte fließen nicht mit ein.
- Baum folgt der Kanalsprache: Beim Öffnen wird der Baum in der Sprache des zuerst gewählten Verkaufskanals aufgebaut, sodass Namen und Prozentwerte links zur Sprachanzeige oben passen.
- Sofort sichtbare Änderungen: Nach Sammelaktionen (aktiv/inaktiv, Navigation ein-/ausblenden, Rückgängig) und nach einem Import wird neben dem Baum auch die Bearbeitungsansicht rechts aktualisiert.
Mehrfachänderung - Übersicht
Die Mehrfachänderung ändert in einem Vorgang Felder bei vielen Produkten gleichzeitig. Ausführlich: Mehrfachänderung.
Ablauf
- Quelle wählen: Auswahl (markierte Zeilen) oder Preset-Filter (alle Treffer eines gespeicherten Presets). Angezeigt wird die Artikelanzahl mit Produkten und Varianten.
- Im Dialog links einen Tab wählen und eine oder mehrere Aktionen aktivieren (Mehrfachauswahl möglich), Werte eintragen.
- Ist „Bestätigung vor Anwendung" eingeschaltet (Standard), erscheint eine Übersicht aller geplanten Änderungen. Löschen und Felder leeren verlangen immer eine Bestätigung.
- Die Operation läuft zweiphasig: erst wird ein Snapshot der bisherigen Werte gesichert, dann werden die neuen Werte geschrieben.
- Fortschrittsanzeige mit Zähler, Phase und voraussichtlicher Restzeit - jederzeit per Abbrechen stoppbar.
Ob Varianten der gewählten Produkte einbezogen werden, legt die Einstellung „Varianten standardmäßig einschließen" im Tab Mehrfachänderung der Konfigmatrix fest.
Aktionen je Tab
Die Mehrfachänderung ist in Tabs gegliedert. In jedem Tab lassen sich mehrere Aktionen kombinieren.
Stammdaten
- Status (aktiv/inaktiv), Topseller, Abverkauf, Versandkostenfrei
- EAN / GTIN: setzen, Prefix, Suffix oder leeren
- Erscheinungsdatum setzen (leer = sofort freigegeben)
- Listing-Konfiguration: Hauptprodukt anzeigen oder Varianten aufklappen
- Freigabe (nur bei aktivem Workflow und für Freigabe-Berechtigte): Freigeben, Zur Überarbeitung, Zurücksetzen
Zuordnung
- Hersteller, Wesentliche Merkmale (Vorlage zuweisen oder entfernen), Garantie (ab Shopware 6.7.14)
- Kategorien und Tags hinzufügen oder entfernen
- Eigenschaften zuweisen oder entfernen, neue Gruppen und Optionen direkt anlegen
- Sichtbarkeit je Verkaufskanal hinzufügen oder entfernen (Suche & Navigation, nur Suche, nur Navigation)
- Sichtbarkeit auf Varianten und Eigenschaften auf Varianten (auf Vererbung zurücksetzen oder vom Stammartikel kopieren)
- Staffelzeile ab 1 nachtragen
- Cross-Selling zuweisen: neue Gruppe mit Name, Position, Typ (dynamische Produktgruppe oder Produktliste), Sortierung, Limit und Aktiv-Status; bestehende Gruppen bleiben erhalten
Preise & Lager
- Preis: Festpreis, % erhöhen, % senken, € erhöhen, € senken, EK + % oder EK + € (Produkte ohne Einkaufspreis werden dabei übersprungen)
- Pseudopreis (Streichpreis): Festpreis, % über Verkaufspreis, Aufschlag in € oder entfernen. Gesetzt wird er nur, wenn er höher ist als der Verkaufspreis.
- Lagerbestand: setzen, erhöhen oder abziehen
- Steuerklasse: Bruttopreis bleibt, Nettopreis wird neu berechnet
- Bestellmenge (Mindest- und Maximalbestellmenge, 0 = unbegrenzt) und Staffelung (Bestellschritte)
- Auf Varianten übertragen: Preisstaffel und Cross-Selling vom Hauptprodukt auf alle Varianten kopieren
- Staffel-Verkettung: Staffeln an den Grundpreis binden, Bindung lösen oder mit „Staffelung vorgeben" für eine Preisregel neu aufbauen
Versand
- Gewicht, Breite, Höhe, Länge
- Lieferzeit, Wiederauffüllzeit (leer löscht den Wert)
- Verpackungseinheit (Singular und Plural, mit Sprachauswahl)
- Grundpreis (Inhaltsmenge und Grundpreiseinheit) und Produkteinheit
SEO
- Meta-Title, Meta-Description und SEO-URL als Vorlage mit Variablen wie
{name},{manufacturer},{category}oder{mainCategoryPath}; Vorschau für die ersten drei Produkte - Hauptkategorie je Verkaufskanal
- Canonical-Variante: erste Variante, bestimmte Variante (bei genau einem markierten Artikel) oder entfernen
Zusatzfelder
- Alle Produkt-Zusatzfelder nach Typ (Ja/Nein, Auswahl, Zahl, Text), mit Sprachauswahl
Weitere Tabs
- KI & Texte - erscheint, sobald ChatGPT, Claude oder DeepL für die Mehrfachänderung freigeschaltet ist (siehe unten)
- Varianten generieren - Varianten erzeugen oder löschen (Funktionsschalter „Varianten generieren")
- Felder leeren - Stammdaten, SEO & Marketing, Verknüpfungen und Zusatzfelder gezielt leeren
- Löschen - ausgewählte Produkte endgültig löschen, inklusive Varianten und Medien-Zuweisungen (Funktionsschalter „Produkte löschen")
Filter-Anzeige bei Preset-Filter
Wählst du als Quelle ein Preset, zeigt das PIM dessen aktive Filter als lesbare Chips, zum Beispiel Status, Lagerbestand, Hersteller, Kategorien, dynamische Produktgruppe, Verkaufskanal, Tag, Steuer, Lieferzeit, Preis und Gewicht. IDs werden in Klarnamen aufgelöst. Enthält das Preset keine Filter, erscheint eine rot markierte Warnung „Keine Filter aktiv".
Sprachauswahl bei übersetzbaren Feldern
Bei übersetzbaren Feldern erscheint die Auswahl „Kanäle & Sprachen". Der Wert wird in der Standardsprache gesetzt und zusätzlich in jede gewählte Sprache geschrieben - eine Aktion, mehrere Sprachen. Ohne Auswahl wird nur die Standardsprache geschrieben.
Felder mit Sprachauswahl:
- SEO-Tab: Meta-Title, Meta-Description, SEO-URL
- Zusatzfelder (Custom Fields): alle Custom Fields, die in Shopware als übersetzbar markiert sind
- Versand-Tab: Verpackungseinheit (singular/plural) - das einzige sprachpflichtige Feld im Versand-Bereich
Felder bewusst ohne Sprachauswahl:
- Produkteinheit / Maßeinheit: ist nur eine Referenz auf eine Einheit (Stück, Liter, kg) - die Übersetzung hängt an der Einheit selbst, nicht am Produkt
- Sprachunabhängige Felder: Preis, Lagerbestand, EAN, Gewicht, Hersteller, Aktiv-Status, Maße, Lieferzeit - diese existieren nur einmal pro Produkt
Daten vom Stammartikel auf Varianten
Für Werte, die bei allen Varianten gleich sein sollen, gibt es mehrere Wege:
- Mehrfachänderung, Tab Preise & Lager → „Auf Varianten übertragen": Preisstaffel und Cross-Selling (inklusive Produkte) vom Hauptprodukt auf alle Varianten kopieren. Vorhandene Daten der Varianten werden dabei überschrieben.
- Mehrfachänderung, Tab Zuordnung: „Sichtbarkeit auf Varianten" und „Eigenschaften auf Varianten".
- Detailansicht eines Stammartikels → „Auf Varianten übertragen": ausgewählte Felder auf alle Varianten übertragen - Preis (brutto/netto), Pseudopreis, Einkaufspreis, Lagerbestand, Lieferzeit, Versandkostenfrei, Gewicht & Maße, EAN und Aktiv-Status.
- Bilder und Eigenschaften: eigene Schaltflächen in der Detailansicht (siehe Auf Varianten übertragen).
KI & Texte
Der Tab erscheint, sobald mindestens einer der drei Anbieter ChatGPT, Claude oder DeepL in der Konfigmatrix (Tab Texte & Übersetzungen) aktiviert und für die Mehrfachänderung freigeschaltet ist. Mistral und Gemini stehen in der Mehrfachänderung nicht zur Verfügung.
- ChatGPT und Claude: Kontext (Artikelname, Beschreibung, Hersteller, Preis, EAN, Kategorien, Eigenschaften, Gewicht), Felder (Produktname, Beschreibung, Meta-Title, Meta-Description, Meta-Keywords), Tonalität, Zielsprachen je Kanal und zusätzliche Anweisungen. Optional „Individuelle Texte pro Kanal & Sprache".
- DeepL: Übersetzung in die gewählten Zielsprachen.
- Aus Standardsprache übernehmen: Name, Beschreibung, Meta-Title, Meta-Description und Keywords in Zielsprachen kopieren; optional vorhandene Texte überschreiben und optional von der KI überarbeiten lassen.
Varianten generieren und löschen
- Generieren: Eigenschaften und Optionen wählen, Vorschau „Varianten × Produkte = insgesamt", Artikelnummern- und Namens-Pattern aus der Konfigmatrix oder für diesen Lauf überschreiben, Hauptvariante und Listing, bestehende Kombinationen überspringen oder ergänzen. Erzeugte Varianten bleiben auch nach einem Snapshot-Rückgängig bestehen.
- Löschen: Umfang „Nur ohne Bestellungen" (empfohlen) oder „ALLE Varianten löschen". Im sicheren Modus werden Varianten mit Bestellbezug übersprungen und in der Vorschau als geschützt gezählt. Das Löschen ist unwiderruflich, auch nicht über Snapshots.
Zuordnung - Eigenschafts-Übersetzungen
Fehlen Eigenschaftsoptionen in einer Sprache, zeigt Shopware über die Fallback-Kette den Namen aus einer anderen Sprache - in der Zuordnung stehen dann scheinbar gemischte Sprachen. Der Zuordnungs-Tab macht das sichtbar und direkt behebbar.
- Markierung: Optionen ohne Übersetzung werden farblich hervorgehoben und mit dem Hinweis „keine Übersetzung" versehen; oben erscheint eine Zusammenfassung mit der Anzahl.
- Übersetzungsdialog: Über das Stift-Symbol an jeder Option lässt sich der übersetzte Name direkt hinterlegen, ohne den Shopware-Eigenschaftskatalog zu verlassen. Mehrere Sprachen sind gleichzeitig pflegbar, jede mit eigenem Textfeld und den zugehörigen Verkaufskanälen zur Orientierung.
- Maßstab sind die Verkaufskanäle: Geprüft wird gegen die Sprachen der Kanäle, denen die betroffenen Artikel tatsächlich zugeordnet sind. Ein gesetzter Verkaufskanal-Filter hat Vorrang.
- Auch dem Stammartikel zuweisen: Die Checkbox schreibt die gewählten Optionen zusätzlich beim Elternprodukt der betroffenen Varianten, im Entfernen-Modus entsprechend auch dort. Über die Konfigurationsoption „Varianten-Eigenschaften immer auch in den Stammartikel schreiben" lässt sie sich dauerhaft vorbelegen.
Felder leeren - inklusive Zusatzfelder
Neben Stammdaten-, SEO- und Verknüpfungsfeldern lassen sich auch die Zusatzfelder der Produkte gezielt leeren. Da Zusatzfelder übersetzbar sind, greift die vorhandene Sprachauswahl auch hier; die Werte vor dem Leeren werden im Snapshot mitgesichert und bleiben damit rückholbar.
Snapshot & Revert
Vor jeder Mehrfachänderung und jedem CSV-Import wird automatisch ein Snapshot der vorherigen Werte gespeichert (abschaltbar). Verwaltet werden die Snapshots in der Konfigmatrix im Tab Snapshots, erreichbar auch über „Snapshots verwalten" im Dialog:
- Getrennte Listen für Mehrfachänderungen und CSV-Importe
- Diff anzeigen: Vergleich Vorher (Snapshot) und Aktuell (im Shop) je Produkt und Feld, mit Suche und „Nur Produkte mit Änderungen"
- Snapshot wiederherstellen oder löschen, einzeln oder alle
- Aufbewahrung: Standard 90 Tage (7 Tage bis 1 Jahr wählbar), maximal 50 Snapshots (10 bis 200 wählbar); älteste werden zuerst entfernt
Mit „Bei Abbruch automatisch zurücksetzen" (Tab Mehrfachänderung) werden bei einem abgebrochenen Lauf bereits angewendete Änderungen über den Snapshot zurückgenommen.
Bestätigung und Vorschau
Eine Vorher-Nachher-Tabelle je Produkt gibt es vor dem Ausführen nicht. Stattdessen:
- Bestätigung vor Anwendung - Übersicht aller geplanten Änderungen vor dem Ausführen (Standard an, für Löschen und Felder leeren immer)
- SEO-Vorschau - Meta-Title, Meta-Description und SEO-URL der ersten drei Produkte
- Varianten-Vorschau - Anzahl und die ersten Kombinationen; beim Löschen die Zahl der zu löschenden und geschützten Varianten
- Diff-Ansicht - nachträglich im Tab Snapshots der Konfigmatrix
Einstellungen der Mehrfachänderung
Im Tab Mehrfachänderung der Konfigmatrix:
- Fehlende Übersetzungen in der Mehrfachänderung anzeigen (Zuordnung / Eigenschaften)
- Batch-Größe (Produkte pro API-Aufruf), Max. Produkte über Preset-Filter, Schreibgröße pro API-Request
- Snapshot vor Änderung erstellen, Bestätigung vor Anwendung, Bei Abbruch automatisch zurücksetzen
- Varianten standardmäßig einschließen
CSV-Export
Der CSV-Export erzeugt eine Datei mit allen Produkten oder mit den Treffern des aktiven Filters. Ausführlich: CSV-Import & Export.
- Spalten frei auswählbar - Standard-Felder, Zusatzfelder (
cf_*), Eigenschaften, Cross-Selling, Bilder und Übersetzungen - Vorgefertigte Profile: Stammdaten, Preise & Lager, SEO, Bilder, Übersetzungen, Varianten und Vollexport; eigene Profile lassen sich speichern
- Hauptsprache für Export: diese Sprache steht in den Hauptspalten (
name,descriptionusw.), weitere Kanal-Sprachen erscheinen alstrans_*-Spalten - Dezimaltrennzeichen: Punkt oder Komma (auf 2 Nachkommastellen gerundet)
- Encoding: UTF-8 mit BOM, damit Excel Umlaute korrekt anzeigt
- Filter: Filter aus der Produktliste werden übernommen; was sich nicht abbilden lässt (eigene Filter, UVP-Status, Freigabestatus, Suchbegriff), nennt der Dialog ausdrücklich
- Voreinstellungen in der Konfigmatrix (Tab Import / Export): Standard-Exportprofil, Trennzeichen (Semikolon, Komma, Tab), max. Produkte (Standard 5.000), Varianten standardmäßig exportieren, Standard-Dateiformat, Dezimaltrennzeichen
Spalte „Einheit (Name)"
Zusätzlich zur Einheit-ID (UUID) wird die Produkteinheit als Klarname exportiert (z.B. „Liter", „Kilogramm", „Stück").
CSV-Import
Der Import liest CSV, TSV, XML, DATANORM sowie Excel-Dateien (.xlsx, .xls), wahlweise per Datei oder von einer URL, und legt neue Produkte an oder aktualisiert bestehende.
- Produkt-Zuordnung über: Artikelnummer (Standard), EAN / GTIN, Herstellernummer oder Produkt-ID
- Import-Modus: Aktualisieren + Neue, Nur aktualisieren oder Nur neue anlegen (erfordert eine Name-Spalte)
- Bild-Modus: Ergänzen oder Ersetzen (alle löschen)
- Spalten-Mapping je CSV-Spalte per Auswahlliste, mit „Überspringen"; Mapping, Trennzeichen und Modi lassen sich als Import-Profil speichern
- Validierung vor dem Import: Zahl der neu anzulegenden, zu aktualisierenden und übersprungenen Zeilen, Warnungen (z.B. doppelte Artikelnummern, Zeilen ohne Artikelnummer) und Fehler
- Strict Mode (alles oder nichts): treten Fehler auf, werden alle bereits importierten Änderungen automatisch zurückgesetzt
- Daten auch für Hauptsprache importieren: übersetzte Felder werden zusätzlich in die Hauptsprache des Admins geschrieben
Auto-Erkennung „Einheit"
Der Importer erkennt sowohl „Einheit (Name)" als auch „Produkteinheit" als Spaltennamen automatisch und löst Klarnamen wie „Liter" oder „Kilogramm" in die korrekte Einheit-ID auf.
Automatische Lookups
Fehlende Hersteller, Tags, Steuersätze, Lieferzeiten und Eigenschaftsoptionen legt der Import automatisch an. Kategorien und Produkteinheiten müssen bereits existieren; nicht gefundene Einträge erscheinen als Fehler. Bei Varianten lassen sich Eltern über die Artikelnummer auflösen - UUIDs sind nicht zwingend nötig.
Änderungslog und Rückgängig
Der Tab Änderungslog im CSV-Fenster listet die Importe mit Zeitpunkt, Anzahl neu/aktualisiert/Fehler, Dateiname und betroffenen Feldern. Über „Letzten Import rückgängig" werden die zuletzt importierten Änderungen auf die vorherigen Werte zurückgesetzt; „Log leeren" entfernt die Liste. Ein Download der Originaldatei ist nicht vorgesehen. Zusätzlich landen Import-Snapshots im Tab Snapshots der Konfigmatrix.
Performance-Einstellungen
In der Konfigmatrix (Tab Import / Export): Produkte pro Sync-Batch (10, 50 Standard, 200; bei Fehlern automatischer Fallback auf Einzelverarbeitung), parallele Bild-Uploads pro Produkt (Standard 5), gleichzeitige Produkte beim Bild-Import (Standard 2), Übersetzungen pro Sync-Batch, API-Rate-Limit, Indexierung während des Imports deaktivieren, nach dem Import automatisch re-indexieren und Import bei Fehleranzahl abbrechen (nie oder nach 5, 10, 25, 50 oder 100 Fehlern).
DATANORM-Import (4.0 & 5.0)
Neben CSV unterstützt der Importer das im Handwerk und Großhandel verbreitete DATANORM-Format zum Einlesen von Artikeldaten aus Lieferanten-Katalogen:
- DATANORM 4.0 und 5.0: Beide Versionen werden über den
V;-Header automatisch erkannt (inkl. Versions- und Herstellererkennung). DATANORM 5.0 nutzt ein eigenes Feldlayout für Name, Preis und EAN. - Volume-Dateien: Beliebige Volume-Endungen von
.001bis.999werden akzeptiert (nicht nur.001-.003) - so lassen sich auch aufgeteilte Kataloge wieDATANORM.500einlesen. - Satzarten: Unterstützt werden u.a. A (Artikel-Stammsatz), B (Warengruppen), T (Langtext/Beschreibung) und P (Preise / DATPREIS).
DATANORM-Dateien laufen nach dem Einlesen durch dieselbe Zuordnung, Validierung und Import-Logik wie CSV-Dateien.
Datentyp-Erkennung
Der Importer erkennt Datentypen automatisch je Sprache und Spalte:
- Boolean: 1/0, true/false, ja/nein, aktiv/inaktiv
- Datum: ISO-Notation und deutsche Notation
- Zahl: Komma oder Punkt als Dezimaltrenner
- Array: Pipe-Separator (
|) bei Multi-Select-Custom-Fields - JSON: bei komplexen Feldern wie Übersetzungen
Importierbare und exportierbare Felder
Die folgenden Spalten stehen im CSV-Export zur Verfügung; alle außer den als „nur Export" markierten lassen sich auch importieren. Die Spaltennamen entsprechen den Kopfzeilen der Exportdatei.
productNumber;name;price_gross;stock;taxRate;active;manufacturerName;categoriesSW-TSHIRT-001;Bio-Baumwoll T-Shirt „Summit";24.90;120;19;1;Nordtrek;Bekleidung|T-ShirtsBasis
id,productNumber,name,description,active,ean,manufacturerNumber,manufacturerName,manufacturerId,markAsTopseller,isCloseout,shippingFreetagsundcategories- Pipe-getrennt, z.B.Bekleidung|T-Shirts
Preis & Bestand
price_gross,price_net,taxRate,taxId,stockpurchasePrice(Einkaufspreis brutto),purchasePrice_net,listPrice(Streichpreis brutto),regulationPrice(UVP / Regulierungspreis)purchaseUnit,referenceUnit,packUnit,packUnitPlural,unitId,unitNameminPurchase,maxPurchase,purchaseSteps,deliveryTimeName,deliveryTimeId,restockTime
Maße & Gewicht, SEO, Datum
weight(kg),width,height,length(cm)metaTitle,metaDescription,keywords,canonicalUrl,searchKeywordsreleaseDate
Varianten und Sichtbarkeit
parentProductNumber,parentId,variantOptions(FormatGruppe:Option|Gruppe:Option),mainVariantId,configuratorGroupConfigvisibilities(FormatKanal-ID:Wert|…),productStreamIds,displayInListing,variantListingConfig,featureSetId,cmsPageId
Bilder, Eigenschaften, Cross-Selling, Zusatzfelder, Übersetzungen
coverUrl,imageUrls(Pipe-getrennt)properties(FormatGruppe:Option|…),crossSellingcf_<name>- Zusatzfelder als einzelne Spalten, sprachbezogen alscf_<name>__<Sprachcode>trans_<kanal>_<sprache>_<feld>- Übersetzungen je Verkaufskanal und Sprache für Name, Beschreibung, Meta-Title, Meta-Description, Keywords, Verpackungseinheit (Singular/Plural) und Suchbegriffe
Nur Export (nicht importierbar)
mainCategory,ratingAverage,sales,childCount,displayGroup,customFields(JSON),availableStock,available,productUrl,imageUrlAbsolute,imageUrlsAbsolute,createdAt,updatedAt
Feed-Generator - automatische URL-Feeds
Über den Feeds-Tab stellst du automatisch aktualisierte URL-Feeds bereit - z.B. für Google Shopping, Preisvergleichsportale oder ERP-Anbindungen. Ein Feed liefert die Produktdaten unter einer eindeutigen URL mit Token-Authentifizierung.
Feed aus Vorlage oder Profil anlegen
Oben im Feeds-Tab gibt es den Selektor „Feed aus Vorlage / Profil anlegen". Damit aktivierst du in einem Klick einen neuen Feed:
- Built-in-Vorlage wählen - Stammdaten, Preise & Lager, SEO, Bilder, Übersetzungen, Varianten, Vollexport: Ein gespeichertes Export-Profil mit passender Feldauswahl wird automatisch erzeugt, der Feed aktiviert, ein Token generiert. Das aus der Vorlage angelegte Profil heißt z.B. „Stammdaten (Feed)".
- Bestehendes Profil wählen - Eigene Export-Profile (die du im Export-Tab gespeichert hast) lassen sich direkt als Feed aktivieren.
Akkordeon-Liste mit Status, Chips und Aktionen
Alle Feeds und alle eigenen Export-Profile erscheinen als kompakte Liste. Jede Zeile zeigt:
- Name · umbenennbar
- Status-Pille · „Feed aktiv" (grün) oder „kein Feed" (grau)
- Feed-URL-Vorschau · die tokenisierte URL bei aktiven Feeds
- Filtervorlage-Chip · die gewählte Filtervorlage oder „kein Filter"
- Produktanzahl-Chip · live ermittelt aus dem Katalog
- Stift-Symbol rechts (öffnet/schließt den Editor) und Papierkorb (löscht mit Sicherheitsabfrage)
Ein Klick auf die Zeile öffnet und schließt den Editor zuverlässig - ein Chevron rechts zeigt den Zustand und dreht sich beim Öffnen. Der Papierkorb-Button reagiert separat (verhindert versehentliches Auf-/Zuklappen).
Editor: Allgemein, Spalten, Zugriff, Format
Im aufgeklappten Editor stehen alle Optionen pro Feed:
- Name und „Feed über URL bereitstellen" (Feed aktiv oder aus)
- Generierung: „Live bei Abruf (immer aktuell)" oder „Per Cron in Datei (lastschonend)"
- Streaming (große Kataloge) - liefert die Datei in Stücken aus; abschaltbar, dann wird gepuffert
- Preset - Filtervorlage aus der Produktliste oder „kein Filter"
- Varianten exportieren, Verkaufskanal (bestimmt Domain und SEO-URL für Produkt-URL und absolute Bild-URLs) und Sprache der Texte
- Spalten, Feed-URL mit Token und Format (siehe unten)
Filtervorlagen im Feed
Statt einfacher Filter-Checkboxen wählst du im Feed eine gespeicherte Filtervorlage - die gleiche, die du auch im Listing oder bei der Mehrfachänderung nutzt. Der Feed filtert wie die Produktübersicht. Nicht abbildbar sind nur der Freigabe-Status und „UVP ungültig"; der Editor zeigt unter „Im Feed angewendet", welche Kriterien greifen.
Format, Zeichensatz und Spalten
- Dateiformat: CSV (für Tabellen und ERP), XML oder JSON (für Schnittstellen und Portale). TSV gibt es im Feed nicht; Standard-Trennzeichen für CSV-Feeds ist das Semikolon.
- Zeichenkodierung: UTF-8, Windows-1252 (ANSI) oder ISO-8859-1 (Latin-1); JSON wird immer in UTF-8 ausgeliefert
- BOM voranstellen (nur UTF-8, für Excel)
- Dezimaltrennzeichen für Preise und Maße: Punkt oder Komma
- Spalten: frei hinzufügen und entfernen, Reihenfolge per Ziehen oder Pfeile, eigene Spaltenüberschrift je Spalte (leer = Standardname). Zusätzlich verfügbar: Produkt-URL, Bild-URL absolut und Bild-URLs absolut.
Migration alter Feeds
Token und URL-Format
Jeder Feed bekommt einen eindeutigen Token. Die URL hat das Format:
https://dein-shop.de/staw-pim/export/{token}- die Endung.csvwird zusätzlich akzeptierthttps://dein-shop.de/api/staw-pim/export/{token}- alternative Feed-URL (API-Route), domainunabhängig, falls die Shop-URL auf die Startseite umleitet (z.B. bei Sprachpfad-Domains oder im Wartungsmodus)
Beide Routen brauchen keine Anmeldung und funktionieren auch im Wartungsmodus des Verkaufskanals. Die Antwort trägt X-Robots-Tag: noindex. „Token generieren" erzeugt einen neuen Token - die alte URL wird damit ungültig.
Backend & Streaming-Performance
Der FeedExportService ist auf große Kataloge ausgelegt. Vier Performance-Layer arbeiten zusammen:
- DBAL-Streaming in 2.000er-Batches - Daten werden in Chunks per PHP-Generator (
yield) ausgegeben statt komplett im Speicher gehalten. Memory-Verbrauch ist unabhängig von der Katalog-Größe. - Keyset-Pagination über
product_number(eindeutige, indizierte Spalte) stattLIMIT/OFFSET- die Ausgabezeit bleibt linear, auch bei sehr großen Katalogen. - gzip-Komprimierung serverseitig per
gzencode(), wenn der ClientAccept-Encoding: gzipsendet. Feed-CSVs komprimieren ~80-90 % - drastisch kürzere Übertragung. - Datei-Modus für die größten Kataloge: der Scheduled Task
staw_pim_direct.export_feed(alle 15 Min) schreibt die Dateistaw-pim-direct-feeds/feed_<token>.csvin das private Dateisystem von Shopware. Beim Abruf wird die vorgenerierte Datei ausgeliefert - keine DB-Last bei jedem Poll.
Zusätzlich: @ini_set('memory_limit', '1024M') defensiv im Endpoint - auch breite Spaltenauswahlen mit dutzenden Custom Fields laufen sauber durch. Die Filterkriterien werden serverseitig angewendet - kein Daten-Roundtrip in die Admin-Oberfläche.
Varianten-Generator - Eigenschaftsauswahl
Der Varianten-Generator erzeugt aus Property-Kombinationen automatisch Varianten zu einem Hauptartikel. Visuelle Auswahl aller Properties mit Werten gruppiert (z.B. „Farbe → rot/blau/grün"). Live-Vorschau der Kombinationen unten.
Vereinheitlichte Suche
Eine einzige Suche oben durchsucht Eigenschaften und Optionen gleichzeitig. Tippst du „rot", bleiben alle Eigenschafts-Gruppen sichtbar, die irgendwo die Option „rot" haben - und in der rechten Spalte werden die Treffer hervorgehoben.
Muster für Artikelnummer und Name & Pattern-Akkordeons
Pro Variante können Artikelnummer und Name automatisch aus einem Muster erzeugt werden. Die Standard-Muster legst du in der Konfigmatrix im Tab Varianten fest (Standard Artikelnummer {parentNumber}-{options}, Name {parentName} {options}), dazu Trennzeichen, Optionsnamen-Format (vollständig, Groß-, Kleinbuchstaben, erste 3 Zeichen) und die maximale Länge der Artikelnummer (Shopware erlaubt höchstens 64 Zeichen).
Verfügbare Variablen
{parentNumber}- Artikelnummer des Hauptartikels{firstVariantNumber}- Nummer der ersten Variante{parentName}- Name des Hauptartikels{options}- alle Optionen, verbunden mit dem Trennzeichen{option1},{option2},{option3}- einzelne Optionen in Klick-Reihenfolge{group1},{group2}- Namen der Eigenschaftsgruppen{counter}- laufende Nummer
{number} wird aus älteren Mustern weiterhin als {parentNumber} verstanden. Variablen wie {base}, {property:…} oder {counter:03} gibt es nicht.
Pattern-Akkordeons
Statt zwei nackter Inputs nebeneinander: zwei eigenständige Akkordeons - eines für die Artikelnummer, eines für den Variantennamen. Eingeklappt zeigen sie das aktuelle Pattern; aufgeklappt erscheint das Eingabefeld plus klickbare Variablen-Chips. Ein Klick auf einen Chip fügt die Variable direkt ins aktive Pattern ein. Die Vorschau zeigt die ersten fünf Kombinationen.
Variantenmatrix
Ab zwei Eigenschaftsgruppen bietet die Varianten-Übersicht neben der Listen-Ansicht eine Matrix-Ansicht: Zeilen sind die Optionen der einen Gruppe, Spalten die der anderen. In jeder Zelle bearbeitest du einen Wert direkt - wählbar sind Preis, Bestand oder Aktiv.
- Standard-Ansicht beim Öffnen und Standard-Wert der Zellen legst du in der Konfigmatrix (Tab Varianten) fest
- „Max. Varianten für Matrix-Ansicht" begrenzt die geladene Menge (Standard 500)
- Die Listen-Ansicht blättert mit 10, 25, 50 oder 100 Zeilen
Sicheres Löschen
Varianten löschst du für viele Artikel in der Mehrfachänderung im Tab „Varianten generieren" mit der Aktion „Varianten löschen":
- „Nur ohne Bestellungen" (empfohlen): Varianten mit Bestellbezug werden übersprungen und bleiben unverändert bestehen. Die Vorschau zeigt, wie viele gelöscht und wie viele geschützt werden.
- „ALLE Varianten löschen": löscht auch Varianten mit Bestellungen - das kann Bestell-Historien beeinträchtigen.
Eigenschaften und Bilder auf Varianten übertragen
Die Vererbung in Shopware wirkt pro Feld nach dem Prinzip alles-oder-nichts: Sobald eine Variante einen eigenen Wert hat, erbt sie in diesem Feld gar nichts mehr vom Stammartikel. Das ist die häufigste Erklärung dafür, dass im Frontend weniger Eigenschaften oder gar kein Bild erscheint, obwohl am Stammartikel alles gepflegt ist. Drei Schaltflächen lösen genau das auf.
- „Eigenschaften auf Varianten übertragen" (Reiter Eigenschaften): Ergänzt bei Varianten mit eigenen Eigenschaften die fehlenden des Stammartikels. Varianten ohne eigene Eigenschaften erben ohnehin alles und bleiben unangetastet; vorhandene eigene Zuordnungen bleiben erhalten.
- „Bilder auf Varianten übertragen" (Stammdaten → Bilder & Medien): Legt für jede Variante ohne eigene Bilder eigene Bildzuordnungen auf dieselben Mediendateien an, inklusive Reihenfolge, und setzt das Titelbild auf die eigene Kopie des Elterncovers. Die Anzeige im Listing ist damit unabhängig davon, ob die Vererbung in der Storefront ankommt. Varianten mit eigenen Bildern bleiben unverändert und werden in der Meldung ausgewiesen.
- Zuweisungsdialog der Varianten: Dieselbe Übertragung steht auch dort zur Verfügung, ergänzt um die Checkbox „Auch dem Stammartikel zuweisen".
- Aktion „Eigenschaften auf Varianten" in der Mehrfachänderung: „Auf Vererbung zurücksetzen" entfernt eigene Eigenschaften der Varianten, damit sie wieder die des Stammartikels zeigen und ihm auch später folgen. „Vom Stammartikel kopieren" schreibt sie als eigene Werte in jede Variante.
Abweichungen sichtbar machen
- Eigenschaften, die ausschließlich an Varianten hängen, werden orange hervorgehoben; betroffene Gruppen bekommen in der Gruppenliste einen orangen Punkt und die Zählleiste nennt die Anzahl.
- Gruppen mit abgeschaltetem „Auf Produktdetailseite anzeigen" werden als „Nicht in Storefront" markiert - damit ist sofort klar, warum im Frontend weniger Eigenschaften erscheinen als im Admin.
- Die Vollständigkeit von Varianten löst vererbte Werte auf: Hat die Variante keinen eigenen Wert, zählt der des Stammartikels. Artikelnummer und Bestand bleiben bewusst variantenspezifisch.
Duplizieren mit wählbarer Vererbung
Beim Duplizieren eines Varianten-Artikels fragt ein Dialog, welche Felder die Varianten vom Hauptartikel erben sollen: Bilder, Name, Preis, Gewicht und EAN. Geerbte Felder übernehmen automatisch spätere Änderungen am Hauptartikel, nicht geerbte werden als eigener Wert kopiert. Bestand und Artikelnummer bleiben systembedingt immer variantenspezifisch; bei einfachen Artikeln ohne Varianten erscheint die Abfrage nicht. Der Duplikat-Stammartikel bekommt dabei eine eigene, korrekte SEO-URL nach Kanal-Vorlage.
KI-Textgenerierung - Anbieter und Modelle
Das PIM integriert vier KI-Anbieter für die Textgenerierung und DeepL für Übersetzungen direkt im Shopware-Admin. Jeder hat eine eigene Sektion in der Konfigmatrix im Tab Texte & Übersetzungen (Aktivieren, API-Key, Modell, Verbindungstest, Standard-Tonalität). Ausführlich: KI-Textgenerierung.
- OpenAI ChatGPT: GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.6 Luna, GPT-5.5, GPT-5.4 mini (voreingestellt), GPT-5.4 nano
- Anthropic Claude: Claude Haiku 4.5, Claude Sonnet 5 (voreingestellt), Claude Sonnet 4.6, Claude Opus 4.8, Claude Fable 5
- Mistral AI: Mistral Large 3 (voreingestellt), Mistral Medium 3.5, Mistral Small 4 (in der Konfiguration als
mistral-large-latest,mistral-medium-latest,mistral-small-latest) - Google Gemini: Gemini 3.1 Pro, Gemini 3.5 Flash (voreingestellt), Gemini 3.1 Flash-Lite
Das Modell wird je Anbieter in der Konfigmatrix gewählt. Sind mehrere Anbieter aktiv, wählst du im KI-Fenster der Detailansicht (auch für Varianten) und in der Kategorien-Verwaltung pro Aufruf den Anbieter. In der Mehrfachänderung stehen nur ChatGPT, Claude und DeepL zur Verfügung, jeweils mit eigenem Schalter.
API-Key einrichten
- Beim jeweiligen Anbieter einen API-Key erzeugen (console.anthropic.com, platform.openai.com, console.mistral.ai oder Google AI Studio)
- Im PIM unter Konfigmatrix → Übersetzungen den Key in der jeweiligen Anbieter-Sektion eintragen
- Mit dem „Verbindung testen"-Button prüfen (je Anbieter separat)
- Modell auswählen und Tonalität festlegen
- Für ChatGPT, Claude und DeepL optional den Schalter für die Mehrfachänderung aktivieren
/api/_action/staw-pim-direct/ai-proxy), der sie per Server direkt an den jeweiligen Anbieter weiterleitet. Über Server von Stone & Water laufen sie nicht.Was kann generiert werden
- Produktname - nicht vorausgewählt, damit bestehende Namen nicht versehentlich überschrieben werden; überlange Namen werden auf 255 Zeichen gekürzt
- Beschreibung (HTML) mit Absatzstruktur
- Meta-Title (max 60 Zeichen)
- Meta-Description (max 155 Zeichen)
- Keywords (komma-separierte Liste)
Stilvorlagen
5 vordefinierte Tone-Templates: Professionell, locker-modern, Premium/Luxus, technisch, emotional.
Masterprompt und Längenvorgaben
Zwei zentrale Stellschrauben in der Konfiguration unter Texte & Übersetzungen, die für alle Anbieter gleichermaßen gelten.
Masterprompt
Die hier hinterlegte Vorgabe wird jeder Anfrage an die KI zusätzlich mitgegeben - in der Detailansicht, in der Mehrfachänderung und bei der Überarbeitung im Rahmen der Übernahme aus der Standardsprache. Damit lassen sich dauerhafte Regeln einmal zentral festlegen, etwa Anrede, Markenschreibweise, Pflichtangaben oder Formulierungsverbote, statt sie bei jedem Lauf erneut einzutragen. Anweisungen im jeweiligen Dialog bleiben erhalten und ergänzen den Masterprompt.
Längenvorgaben je Feld
Für Artikelname, SEO-Title, Meta-Description und Beschreibung lassen sich Vorgaben in Wörtern und Zeichen hinterlegen. Die Werte gehen in den Prompt ein und bestimmen zusätzlich das Token-Budget des Aufrufs.
- Artikelname: 120 Zeichen
- SEO-Title: 60 Zeichen - die Länge, die Google üblicherweise vollständig anzeigt
- Meta-Description: 155 Zeichen
- Beschreibung: 250 Wörter bzw. 1500 Zeichen
- Der Wert
0bedeutet keine Vorgabe
Filter „Fehlende Texte je Sprache"
Der Filter deckt auf, wo in einer bestimmten Sprache Text fehlt. Du wählst die Felder - Name, Beschreibung, Meta-Title, Meta-Description, Keywords - und die Sprache. Ein Artikel gilt schon dann als Treffer, wenn eines der gewählten Felder leer ist.
Der Dialog zeigt die Treffer je Feld getrennt. Bei mehreren gewählten Feldern wäre sonst nicht erkennbar, welches Feld die Zahl verursacht.
Zwei Feinheiten bestimmen, was als vorhanden zählt:
- Vererbung zwischen Sprachen wird berücksichtigt. Hängt die gewählte Sprache an einer Elternsprache, etwa Deutsch (Schweiz) an Deutsch, zählt deren Text als vorhanden.
- Auf die Systemsprache wird bewusst nicht ausgewichen. Ein Text, der nur über die Systemsprache im Shop erscheint, gilt als fehlend - genau das ist die Lücke, die im Sprachzweig eines Verkaufskanals zu schließen ist.
- „Nur eigener Text der Variante": Varianten gelten als Treffer, wenn sie selbst keinen Text haben - unabhängig davon, ob der Stammartikel einen hat. Ohne diese Angabe zählt der geerbte Text als vorhanden.
Bei Varianten wird der wirksame Wert geprüft: eigener Text, sonst der des Stammartikels. Unter einem Treffer stehen nur die Varianten, denen der Text tatsächlich fehlt.
Filter „Sichtbarkeiten für Stammartikel/Varianten"
Dieser Filter deckt Varianten auf, die aus einem Verkaufskanal herausfallen, obwohl der Artikel dort zugeordnet ist. Der Grund liegt in Shopware selbst: Sobald eine Variante eigene Sichtbarkeitszeilen hat, ersetzen diese die des Stammartikels vollständig. Fehlt dort der Kanal, ist die Variante im Shop nicht auffindbar - und an der Variante ist das nicht zu sehen.
- Variante fehlt im gewählten Kanal
- Variante niedriger sichtbar als der Artikel
- In Kanal-Kategorie, aber ohne Sichtbarkeit - Stammartikel, die in einer Kategorie des Kanals liegen, dort aber keine Sichtbarkeit tragen
- Stammartikel & Varianten - führt die drei Einzelprüfungen in einem Durchgang zusammen
Der Filter braucht einen gewählten Verkaufskanal und weist im Dialog darauf hin. Die Trefferzahl steht am Chip, und unter dem Artikel bleiben nur die betroffenen Varianten stehen.
Sichtbarkeit auf Varianten übertragen
Genau die Lücke, die der Filter aufdeckt, schließt ein Knopf in den Stammdaten unterhalb der Sichtbarkeitsliste: „Sichtbarkeit auf Varianten übertragen". Er setzt alle Varianten auf denselben Stand wie den Stammartikel. Der erste Klick fragt nach, der zweite führt aus.
Die Übertragung läuft serverseitig in einer Transaktion und wird im Änderungsprotokoll vermerkt.
Staffelpreise an den Grundpreis binden
Über das Kettensymbol in der Staffelzeile wird eine Stufe an den Grundpreis gebunden. Führende Größe ist dabei der Anteil in Prozent: Er bleibt bei einer Änderung des Grundpreises erhalten, und alle gebundenen Stufen ziehen nach.
- Alle Stufen auf einmal binden über einen Knopf in der Kopfzeile der Staffelgruppe
- Staffelpreise automatisch nachziehen als Einstellung, je einmal unter Produkte und unter Varianten
- Rundung gebundener Staffelpreise in den Allgemeinen Einstellungen, ebenfalls getrennt für Produkte und Varianten
- In der Mehrfachänderung lassen sich Staffeln für viele Artikel auf einmal binden oder wieder lösen; der Modus „Staffelung vorgeben" setzt die Stufen nach einer Preisregel
- Staffelzeile ab Menge 1 wird automatisch angelegt - Shopware liest die Staffeln einer Preisregel als vollständige Preistabelle. Fehlt die Zeile ab 1, zeigt die Storefront bei nur einer Staffel deren Preis als normalen Einzelpreis an. Die Aktion „Staffelzeile ab 1" in der Mehrfachänderung repariert den Bestand.
- Beim Duplizieren werden Staffelpreise jetzt mitkopiert, für den Hauptartikel und für jede Variante.
Wesentliche Merkmale
Shopware zeigt die Wesentlichen Merkmale im Warenkorb und an der Kasse. Welche Vorlage ein Artikel verwendet, lässt sich im PIM an vier Stellen steuern.
- Am einzelnen Artikel - in den Stammdaten neben Hersteller und in der Variantenansicht. Hat eine Variante keinen eigenen Wert, steht die Vorlage des Hauptartikels als Platzhalter da; das Feld wird vererbt. Eine leere Auswahl an der Variante setzt den Wert bewusst zurück, die Variante erbt dann wieder vom Hauptartikel.
- Als Filter - mit den Werten „Kein Template gesetzt", „Template vorhanden", „Variante ohne eigene Vorlage" und den konkreten Vorlagen. Neu angelegte Artikel haben das Feld nie gesetzt, deshalb lohnt sich ein Preset, das regelmäßig darauf prüft.
- In der Mehrfachänderung - Vorlage zuweisen oder Template entfernen. Die Rücknahme eines Laufs berücksichtigt das Feld ebenfalls.
- In der Feldkonfiguration - ein- und ausblendbar und als Pflichtfeld setzbar, getrennt für Stammdaten und Varianten.
Der Auswahlwert „Variante ohne eigene Vorlage" ist nicht dasselbe wie „Kein Template gesetzt". Ein leerer Wert an einer Variante bedeutet in Shopware „gilt wie beim Stammartikel" und nicht „keine Vorlage". Artikel ohne Varianten bleiben bei dieser Auswahl außen vor, sie haben nichts zu vererben.
Der Filter prüft auch die Variantenzeilen und wertet dabei den wirksamen Wert aus: Eine Variante ohne eigene Vorlage trägt die des Stammartikels. Wählt man eine konkrete Vorlage, bleiben unter einem Treffer nur die Varianten stehen, die sie tatsächlich tragen.
Die Vorlagen selbst legt Shopware in den Einstellungen an - das PIM baut den Editor bewusst nicht nach. Neben dem Auswahlfeld steht ein Link, der die Vorlagenverwaltung in einem neuen Tab öffnet. Die Liste lädt sich beim Aufklappen neu, eine gerade angelegte Vorlage steht also sofort zur Verfügung.
Garantie (GARAN-Label)
Shopware kennt ab 6.7.14 zwei Felder für die gesetzliche Garantieangabe: die Garantiedauer in Monaten und die Bestätigung des Händlers. Das PIM pflegt beide an einer Stelle.
- Eigener Bereich in den Stammdaten mit Kartenrahmen - er lässt sich über die Feldkonfiguration ausblenden und in der Sektionsreihenfolge verschieben wie die übrigen Bereiche.
- Je Variante setzbar: Die Garantiedauer ist ein vererbtes Feld. Ohne eigenen Wert gilt die Angabe des Hauptartikels; die Variantenansicht hat einen eigenen Garantiebereich mit Hinweis auf die Vererbung.
- In der Mehrfachänderung als Aktion „Garantie": Dauer setzen oder entfernen, Bestätigung setzen, widerrufen oder unverändert lassen.
- Ältere Installationen: Unter Shopware 6.7.14 ist der Bereich sichtbar, aber gesperrt und erklärt warum. Die Angaben werden dort auch nicht mitgeschrieben - ein Lauf hätte sonst die Felder mitgeschickt und die Schnittstelle den gesamten Stapel abgewiesen.
Canonical-Variante
Bei Artikeln mit vielen Varianten konkurrieren deren Detailseiten in der Suche miteinander. Mit der Canonical-Variante verweisen alle Varianten eines Artikels auf dieselbe URL.
- Stammdaten, Abschnitt SEO - der Schalter „Dieselbe Canonical-URL für alle Varianten" mit Auswahl der Variante, auf die verwiesen wird.
- Mehrfachänderung, Reiter SEO - mit „Erste Variante setzen", „Bestimmte Variante" und „Entfernen". Eine bestimmte Variante lässt sich nur bei genau einem markierten Artikel wählen.
- Konfigmatrix - eigene Einträge in den Reitern Produkte und Varianten, mit Sichtbarkeit und Pflichtfeld wie bei den übrigen Feldern.
Das Feld ist vererbbar: Eine Variante ohne eigenen Wert erbt vom Stammartikel. Die Vererbung wird angezeigt und lässt sich lösen und wiederherstellen.
Abgleich mit Fremdsystemen
Der Fremdsystem-Schutz wacht darüber, dass Änderungen aus einem angebundenen System die im PIM gepflegten Texte nicht überschreiben. Eingerichtet wird er in der Konfigmatrix im Tab Fremdsysteme. Ausführlich: Fremdsystem-Schutz.
- Schutz aktivieren: Solange der Schutz aus ist, wird weder ein Referenzstand festgehalten noch etwas wiederhergestellt.
- Geschützte Sprachen und geschützte Felder (Name, Beschreibung, Meta-Title, Meta-Description, Keywords) - nur diese werden verglichen und gegebenenfalls wiederhergestellt.
- Als fremd geltende Integrationen: ohne Auswahl gilt jeder Zugriff über eine Integration als fremd. Änderungen angemeldeter Benutzer, auch aus dem PIM, bleiben immer unberührt.
- Auslösung: Ereignisse und geplanter Lauf, nur Ereignisse, nur geplanter Lauf (Cronjob) oder nur manuell. Der Scheduled Task
staw_pim_direct.translation_guardläuft alle 5 Minuten. - Wartezeit zwischen Läufen (Sekunden) - bremst den Abgleich, wenn ein Fremdsystem viele Artikel kurz hintereinander schreibt.
- Referenzstand und Protokoll: „Referenzstand setzen", „Nur prüfen" und „Jetzt wiederherstellen"; das Protokoll zeigt Zeitpunkt, Auslöser, Geprüft, Wiederhergestellt und Dauer. Wiederhergestellte Artikel lassen sich als CSV herunterladen (Artikelnummer, Name, betroffene Felder).
Der Abgleich lässt sich zusätzlich auf zwei Wegen auslösen.
- Über die Kommandozeile - der klassische Weg, wenn ein Zugang besteht
- Über eine Adresse im Browser - für Umgebungen ohne Konsolenzugang, etwa bei geteiltem Hosting
Die Adresse findest du im Bereich "Referenzstand und Protokoll". Ein Cron-Dienst deines Hosters oder ein externer Aufrufdienst kann sie regelmäßig abrufen. Im Normalfall arbeitet sie nur die vorgemerkten Artikel ab; mit angehängtem ?full=1 wird stattdessen der gesamte Bestand geprüft.
Der Aufruf erfolgt ohne Anmeldung und ist ausschließlich über einen zufällig erzeugten Zugriffsschlüssel in der Adresse geschützt. Der Vergleich läuft zeitkonstant, und der Aufruf kann ausschließlich diesen einen Abgleich auslösen - mehr ist damit nicht möglich.
Die beiden Bildfilter
Es gibt zwei getrennte Filter für Titelbilder, und der Unterschied ist entscheidend:
- Titelbild (Hauptartikel) - prüft das Titelbild des Stammartikels
- Titelbild (Varianten) - prüft, ob die Varianten ein eigenes Bild haben, mit den Auswahlmöglichkeiten "Varianten ohne eigenes Bild" und "Varianten mit eigenem Bild"
Wer Varianten ohne Bild sucht und den ersten Filter wählt, erhält zu Recht kein Ergebnis, sofern die Hauptartikel ein Bild haben. Bis Version 1.10.27 hießen beide "Cover-Bild" und "Variant-Cover", was den Unterschied nicht erkennen ließ.
Der Variantenfilter wirkt über die Varianten auf den Stammartikel: Gesucht werden Stammartikel, die mindestens eine Variante ohne eigenes Titelbild haben. Die betroffenen Varianten erscheinen wie gewohnt darunter. Liste, gespeicherte Voreinstellungen und CSV-Export liefern dabei dasselbe Ergebnis.
Herstellerauswahl
Die Herstellerauswahl lädt den gesamten Bestand blockweise, nicht nur einen Ausschnitt. Das betrifft die Detailansicht, die Mehrfachänderung und die Variantenansicht.
Import- und Exportprofile
Gespeicherte Profile sind seit 1.11.71 gegen Datenverlust abgesichert. Zuvor konnte ein fehlgeschlagener Ladevorgang beim Öffnen dazu führen, dass ein anschließendes Speichern alle übrigen Profile löschte.
- Lesen vor dem Schreiben: Jedes Speichern und Löschen liest unmittelbar vorher den aktuellen Stand, ändert nur das eine Profil und schreibt dann. Scheitert das Lesen, wird gar nichts geschrieben.
- In einer Transaktion: Löschen und Neuschreiben laufen gemeinsam - bei einem Fehler bleibt der alte Stand erhalten.
- Keine Obergrenze mehr: Die Begrenzung auf 20 Profile ist entfallen; sie ließ beim Speichern stillschweigend das älteste Profil verschwinden.
- Sichtbare Fehler: Scheitert das Laden, erscheint ein Hinweis mit der Möglichkeit, erneut zu laden - statt einer leeren Liste ohne Erklärung.
Konsolenbefehle und geplante Aufgaben
Für Server mit Kommandozeilen-Zugang bringt das Plugin zwei Befehle mit:
bin/console staw:pim:seo:generate- erzeugt Produkt-SEO-URLs serverseitig aus der SEO-Vorlage des Shops (mit 301-Historie). Optionen:--sales-channel(-s, Hex-ID oder Name),--language(-l, Standard: Kanal-Standardsprache),--dry-run(nur simulieren),--no-redirects(alte URLs hart ersetzen),--overwrite(auch bestehende URLs neu schreiben, Standard: nur fehlende),--keep-modified(manuell geänderte URLs nicht überschreiben).bin/console staw:pim:guard:snapshot- setzt den Referenzstand des Fremdsystem-Schutzes oder gleicht ihn ab. Optionen:--check(nur berichten, nichts schreiben),--restore(Abweichungen wiederherstellen und danach den Referenzstand auffrischen),--force(auch ausführen, wenn der Schutz ausgeschaltet ist).
Geplante Aufgaben (Scheduled Tasks): staw_pim_direct.export_feed alle 15 Minuten für Feeds im Datei-Modus und staw_pim_direct.translation_guard alle 5 Minuten für den Fremdsystem-Schutz.
Performance
- Browser-native Virtualisierung via
content-visibility: auto - Server-side Filtering - alle Filter in der DB
- Lazy-Loading der Varianten
- Bulk-Operations in Batches mit Progress
- Minified Bundle - ca. 23 % kleiner als unminified
- Sticky Header in der Konfigmatrix
Mehrfachänderung & Import: asynchrone Indexierung
- Queue-Indexierung statt sync: Produkt-Schreibvorgänge der Mehrfachänderung nutzen standardmäßig Shopwares asynchrone Queue-Indexierung (Header
use-queue-indexing) statt synchroner Indexierung im Request. Die Schreib-Batchgröße liegt bei 25 (vorher 10) - große Bulk-Läufe laufen um ein Mehrfaches schneller. Konfigurierbar überbulkIndexingBehavior:use-queue-indexing|disable-indexing|sync. - CSV-Import ohne Komplett-Reindex: Importe nutzen ebenfalls Queue-Indexierung - nur die importierten Produkte werden asynchron nachindexiert. Der frühere Reindex des gesamten Katalogs nach jedem Import entfällt (läuft nur noch bei
importIndexingMode = 'disable'). Modi:queue|disable|sync. - Gebündelte Requests: Audit-Log-Schreibvorgänge werden alle 600 ms als ein Batch gespeichert (zusätzlich beim Verlassen der Seite); Mehrfach-Freigaben laufen über einen Batch-Endpoint (ein Request pro 200 Produkte); Bulk-Übersetzungen und Freigabe-/Audit-Writes nutzen
INSERT … ON DUPLICATE KEY UPDATE. - Varianten-Löschung gebündelt: Ein IN-Delete statt einem Statement pro Variante, mit Fehler-Rückmeldung je ID und automatischem Einzel-Fallback bei z.B. Fremdschlüssel-Sperren.
- Snapshots lazy: Bulk-Edit-Snapshots und Rückgängig-Daten (potenziell mehrere MB) werden nur einmal pro Sitzung geladen.
- Stale-Response-Schutz: Schnelle Filter-/Seitenwechsel können neuere Ergebnisse nicht mehr mit älteren überschreiben.
Produktliste mit Varianten
- Nur benötigte Felder: Beim Anzeigen der Varianten werden ausschließlich die Felder geladen, die die Liste tatsächlich darstellt, samt Vorschaubild und Varianten-Optionen. Eigene Spalten bleiben berücksichtigt; zeigt eine eigene Spalte auf ein verschachteltes Feld, wird vollständig geladen, damit keine Spalte leer bleibt.
- Vollständigkeit vom Server: Der Prozentwert wird serverseitig berechnet - nach derselben Vorschrift wie der Vollständigkeitsfilter. Beschreibung und Meta-Texte jeder Variante müssen dafür nicht mehr in den Administrationsbereich geladen werden, die übertragene Datenmenge sinkt erheblich. Schlägt die Abfrage fehl, greift weiterhin die Berechnung im Browser.
- Laufzeitmessung: Nach dem Laden stehen die Zeiten je Phase (Stammartikel-Abfrage, Varianten-Abfrage, Aufbereitung) in der Browser-Konsole unter
window.stawPimLastLoadTimings- rein diagnostisch.
Diagnose & Stabilität
- Sitzungs-Fehlerprotokoll: Die letzten 50 Fehler stehen in
window._stawPimErrLog- bisher stille Fehlerpfade (Audit-Flush, Batch-Freigaben, Snapshot-Laden) protokollieren Fehlschläge, sodass Probleme auch ohne Server-Log-Zugriff über die Browser-Konsole diagnostizierbar sind. - Interne Testsuite: Leichtgewichtiger Test-Runner (kein PHPUnit nötig) prüft SEO-Fallback-Logik, Snippet-Konsistenz de-DE ↔ en-GB und Versions-Konsistenz bei jedem Release.
Troubleshooting
Listing lädt nicht
Cache leeren, Browser-Konsole prüfen, PHP-Memory-Limit prüfen (512 MB empfohlen bei großen Katalogen).
CSV-Import bricht ab
Encoding (UTF-8), Trenner und PHP-Limits prüfen.
KI-Generierung schlägt fehl
API-Key testen unter Konfigmatrix → Texte & Übersetzungen → Verbindung testen. Bei Anthropic: Guthaben aufladen. Bei OpenAI: Billing-Status prüfen.
Kontakt & Support
- Feature anfragen: über das Formular
- Häufige Fragen: FAQ
- E-Mail-Support: pim@stoneandwater.online
- Hersteller: Stone & Water - Schöppingen
Antwortzeit: in der Regel 1-2 Werktage.