Zum Inhalt springen
Stone & Water
Handbuch · Aktuelle Version

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.5, 6.6 und 6.7. Alle hier beschriebenen Funktionen stehen in allen drei Versionen identisch zur Verfügung.

Systemvoraussetzungen

Das PIM-Plugin läuft in jeder Standard-Installation von Shopware 6 ohne zusätzliche Server-Konfiguration.

  • Shopware: 6.5, 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
Hinweis: Das Plugin nutzt ausschließlich die offiziellen Shopware-Datenmodelle und APIs. Keine eigenen Datenbank-Schemas, keine Patches am Core.

Installation

Die Installation erfolgt über den Shopware Store oder per manuellem Upload.

Über den Shopware Store

  1. Im Shopware-Admin unter Erweiterungen → Store nach „PIM für Shopware" suchen.
  2. Plugin laden — es erscheint danach unter Erweiterungen → Meine Erweiterungen.
  3. Mit Klick auf Installieren installieren, anschließend Aktivieren.

Manuelle Installation

  1. ZIP-Datei aus dem Shopware Store herunterladen.
  2. Im Shopware-Admin unter Erweiterungen → Meine Erweiterungen die ZIP-Datei hochladen.
  3. 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 Plugin-Konfigurationseinträge in der Datenbank
  • Registrierung der ACL-Berechtigungen
  • Registrierung der Menüpunkte in der Shopware-Admin-Sidebar
  • Aufbau der initialen Konfigmatrix mit Defaults
Kein Cache leeren nötig: Das Plugin triggert den nötigen Cache-Refresh automatisch.

PIM aufrufen

Nach der Aktivierung erscheint der Menüpunkt PIM in der Shopware-Admin-Sidebar. Beim ersten Aufruf wird das Listing aller Produkte geladen (sichtbar gemäß Sales-Channel-Berechtigungen des angemeldeten Users).

Konfigmatrix

Die Konfigmatrix ist das zentrale Steuerungselement des Plugins. Sie liegt unter Einstellungen → System → PIM-Konfiguration und steuert:

  1. Sichtbare Felder im Listing
  2. Editierbare Felder in der Mehrfachänderung
  3. Aktive Sprachen
  4. Default-Muster für Varianten-Generator
  5. KI-Anbieter-Konfiguration
  6. Export-Einstellungen für CSV
  7. Sichtbare Felder im Quickview-Modal

Änderungen in der Konfigmatrix wirken sich sofort auf alle Nutzer aus, ohne dass diese den Browser neu laden müssen.

Sektionsreihenfolge per Drag-and-Drop

Die Reihenfolge der Sektionen in der Produkt-Detailansicht (Stammdaten, Preise, Medien, SEO, Properties, Cross-Selling, …) lässt sich per Drag-and-Drop frei festlegen. Dasselbe gilt für die Sektionen im Varianten-Detail-Modal — beide werden in eigenen Tabs der Konfigmatrix konfiguriert.

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-Generator mit Pattern pro Shop

Im SEO-URL-Tab der Konfigmatrix definierst du das URL-Muster für die automatische Generierung der SEO-URLs. Verfügbare Variablen werden als anklickbare Chips angezeigt: {name}, {productNumber}, {manufacturer}, {category}, {mainCategory}, {options}, {ean}, sowie Custom-Field-Variablen.

Eigenes Pattern pro Shop

Neue Toggle-Option „Eigenes Pattern pro Shop". Aktiviert sich der Toggle, erscheint ein durchsuchbares Shop-Dropdown (mit der gleichen CI wie überall im PIM). Pro Verkaufskanal lässt sich ein abweichendes URL-Pattern festlegen:

  • Shops mit eigenem Pattern → nutzen ihr individuelles Pattern bei der Generierung
  • Shops ohne eigenes Pattern → verwenden weiterhin das Standard-Pattern (als Placeholder im Eingabefeld sichtbar)
  • Die Variablen-Chips fügen die Variable in das gerade fokussierte Feld ein — egal ob Standard oder Shop-spezifisch
  • Die Live-Vorschau zeigt das Pattern des gerade bearbeiteten Shops

Generator verarbeitet auch Varianten

Der SEO-URL-Generator schrieb bisher nur für Stammartikel (Filter parentId = null) eine SEO-URL. Jetzt werden auch Varianten verarbeitet:

  • Geerbte Felder (Name, Hersteller, Kategorien, Hauptkategorie inkl. sales-channel-spezifischer) werden aus dem Eltern-Produkt aufgelöst
  • Variantenspezifische Werte wie {options} bleiben die der Variante
  • Pro Variante wird eine eigene SEO-URL pro Verkaufskanal generiert
UX-Hinweis: Die Bereiche im SEO-URL-Tab (URL Pattern, Generierung) starten standardmäßig eingeklappt — einheitlich mit den anderen Tabs der Konfigmatrix.

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

Das Plugin nutzt das Standard-ACL-System von Shopware. Folgende Berechtigungen werden registriert:

  • staw_pim.viewer — PIM aufrufen und Listing anzeigen (lesend)
  • staw_pim.editor — Inline-Bearbeitung und Mehrfachänderung
  • staw_pim.csv_export — CSV-Export-Funktion
  • staw_pim.csv_import — CSV-Import-Funktion
  • staw_pim.variant_generator — Varianten-Generator
  • staw_pim.ai_textgen — KI-Textgenerierung
  • staw_pim.config — Konfigmatrix bearbeiten
CSV-Import-Tab: Aus Sicherheitsgründen ist der Import-Tab im CSV-Modal zusätzlich auf Superadmins beschränkt — auch wenn die Rolle staw_pim.csv_import hat.

Sprachen

Das PIM unterstützt alle in Shopware angelegten Sprachen. Sichtbar und editierbar werden Sprachen, die in der Konfigmatrix als aktiv markiert sind. Pro Sprache wird ein eigener Tab im Detail-Editor angeboten.

Aufbau des Listings

Das zentrale Produktlisting ist die Hauptansicht des PIM mit folgenden Elementen:

  • Filter-Bar oben — beliebig viele Filter-Bedingungen mit UND/ODER-Verknüpfung
  • Spalten-Header — sortierbar, breitenanpassbar, ein-/ausblendbar
  • Datenzeilen — pro Produkt eine Zeile, mit Variantenartikel-Aufklappen on-demand
  • Footer-Toolbar — Auswahl-Anzahl, Bulk-Aktionen, Export/Import-Buttons
  • Bottom-Save-Bar — erscheint bei aktiven Inline-Änderungen mit Speichern/Verwerfen

Filter mit UND/ODER

Filter-Bedingungen können beliebig kombiniert werden:

  • 9 Vergleichsmodi pro Feld: enthält, enthält nicht, ist gleich, ist nicht gleich, beginnt mit, endet mit, ist leer, ist nicht leer, ist in Liste
  • UND/ODER-Logik zwischen Filter-Bedingungen — auch verschachtelt
  • Variantenartikel-aware — Filter berücksichtigen Hauptartikel und Varianten
  • Verfügbar für alle Felder inkl. Custom Fields und mehrsprachiger Felder

Spalten konfigurieren

Sichtbare Spalten lassen sich pro User individuell konfigurieren — Hinzufügen über Plus-Icon oben rechts, Reihenfolge per Drag-and-Drop, Breite per Drag am Spalten-Rand, Sortierung per Klick auf den Spaltenkopf. Alle Einstellungen werden pro User gespeichert.

Filter- und Spalten-Presets

Häufig genutzte Konfigurationen können als Preset gespeichert werden — eigene, geteilte und System-Presets.

Inline-Bearbeitung

Direkt im Listing können Felder per Klick editiert werden. Bestand, Preis, EAN, Herstellernummer, Gewicht sowie der Aktiv-Toggle sind inline editierbar — auch für Varianten. Nach dem Speichern wird der Wert verifiziert (Read-back). Wenn Shopware den Wert verwirft — z.B. wegen Vererbungslogik bei Varianten — erscheint ein Warnhinweis statt fälschlich Erfolg.

Unterstützte Eingaben: Text-Felder, Zahlenfelder mit Locale-bewusster Trennung, Toggle-Slider, Dropdown mit Suche, Multi-Select-Chips, native Date-Picker.

Tastenkürzel: Enter bestätigt, Esc bricht ab, Tab springt zum nächsten Feld.

Quickview-Modal

Direkt aus dem Listing kann pro Produkt ein Quickview-Modal geöffnet werden — über das Quickview-Icon in der Zeile. Es zeigt die wichtigsten Stammdaten kompakt zur direkten Bearbeitung, ohne Wechsel in die volle Detailansicht.

Inhalte des Modals:

  • Artikel-Basisdaten: Artikelnummer, Name, EAN, MPN, Aktiv-Status
  • Preise: Brutto/Netto, Einkaufspreis (brutto + netto), Omnibus-Preis (regulationPrice)
  • Bestand & Versand: Bestand, Wiederauffüllzeit, Closeout-Toggle, Versandkostenfrei
  • Bestellmengen: Min/Max/Schrittweite
  • Beschreibung als Textarea
  • SEO: Meta-Title, Meta-Description, Suchbegriffe

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 sichtbar sind, steuerst du in der Konfigurationsmatrix unter „Quickview" — pro Sektion. Sektionen ohne aktivierte Felder werden automatisch ausgeblendet.

Variantenanzeige

Variantsartikel werden im Listing als Hauptartikel-Zeile dargestellt. Per Klick auf das Plus-Icon werden die Varianten inline darunter aufgeklappt, ohne Page-Wechsel.

Mehrfachänderung — Übersicht

Die Mehrfachänderung ermöglicht es, in einem Vorgang Felder bei beliebig vielen ausgewählten Produkten gleichzeitig zu ändern.

Ablauf

  1. Produkte im Listing auswählen
  2. Klick auf Mehrfachänderung in der Footer-Toolbar
  3. Dialog öffnet sich — Zielfelder wählen, neue Werte eingeben
  4. Live-Vorschau zeigt für jedes Produkt das Ergebnis
  5. Bestätigen — Operation läuft in zwei Phasen (Snapshot + Apply)
  6. Live-Progress-Anzeige mit Counter, Phase und ETA — jederzeit per Abbrechen stoppbar

Editierbare Felder

Per Mehrfachänderung können über 25 Felder gepflegt werden:

Stammdaten

  • Name (pro Sprache), Beschreibung (pro Sprache)
  • Meta-Title, Meta-Description, Keywords
  • Hersteller, EAN, Artikelnummer
  • Produkteinheit (Stück, Liter, Kilogramm, Meter, …) — als eigene Bulk-Aktion

Preise und Grundpreis

  • Listenpreis und UVP, Staffelpreise (Bulk-Apply auf alle Staffeln)
  • Einkaufspreis brutto + netto als zwei getrennte Aktionen — der jeweils andere Wert wird automatisch über die Steuerklasse des Produkts berechnet
  • Streichpreis/UVP, Günstigster Preis 30 Tage (Omnibus)
  • Grundpreis (eigene Bulk-Aktion): Inhaltsmenge und Grundpreiseinheit gleichzeitig
  • Steuersatz neu zuweisen (Bruttopreis bleibt, Netto wird neu berechnet)

Bestand und Versand

  • Bestand, Lieferzeit, Versandfrei-Flag, Gewicht, Höhe, Breite, Länge

Sales Channels und Kategorien

  • Sales-Channel-Sichtbarkeit (mehrere parallel)
  • Hauptkategorie, Zusatzkategorien
  • Cross-Selling-Zuordnungen

Properties und Custom Fields

  • Properties (zuweisen und entfernen)
  • Custom Fields aller Typen, Tags
Mehrere Aktionen kombinieren: In einem Bulk-Lauf können beliebig viele Aktionen gleichzeitig ausgeführt werden — z.B. Hersteller setzen + Steuersatz ändern + Sales-Channel-Sichtbarkeit + Produkteinheit in einem Vorgang.

Vollständige Filter-Anzeige vor jeder Operation

Vor jeder Mehrfachänderung zeigt das PIM alle aktiven Filter aus dem ausgewählten Preset als lesbare Chips: Hersteller, Kategorien, Tags, Eigenschaften, Lagerbestand-Range, Preis-Range, Gewicht-Range, Datumsbereiche, Sichtbarkeit, Steuerklasse, Lieferzeit, dynamische Produktgruppen, Verkaufskanal, EAN-Status, Closeout, Versandfrei und SEO-Meta-Status. IDs werden in lesbare Klarnamen aufgelöst (z.B. Verkaufskanal-Name statt UUID). „Keine Filter aktiv" wird mit rotem Rahmen markiert — bewusste Warnung gegen versehentliche Bulk-Operationen.

Sprachauswahl bei übersetzbaren Feldern

Bei übersetzbaren Bulk-Feldern erscheint ein Sprachdropdown, sobald ein Wert eingetragen ist. Der Wert wird in der Standardsprache gesetzt und zusätzlich in jede gewählte Sprache geschrieben — eine Aktion, mehrere Sprachen.

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
Mehrere Sprachen gleichzeitig: Bei einer Bulk-Aktion „Verpackungseinheit setzen" mit Sprachen „Deutsch + Englisch + Französisch" wird der Wert in alle drei Sprachen geschrieben — kein dreifaches Ausführen nötig.

Daten-Vererbung Parent → Varianten

Eine dedizierte Bulk-Aktion überträgt Felder vom Stammartikel auf alle seine Varianten — sinnvoll für Werte, die sich zwischen Varianten nicht unterscheiden:

  • Beschreibung und Meta-Texte
  • Staffelpreise auf alle Varianten anwenden
  • Cross-Selling-Streams übertragen
  • Bilder und Mediengalerie an Varianten weitergeben
  • SEO-Felder (Title, Description, Keywords) übernehmen

Die Aktion ist sowohl per Bulk-Operation auf mehrere Stammartikel anwendbar als auch im Varianten-Tab eines einzelnen Produkts verfügbar.

Snapshot & Revert

Bei jeder Mehrfachänderung wird automatisch ein Snapshot der vorherigen Werte gespeichert. Snapshots bleiben 30 Tage erhalten. Übersicht aller Snapshots unter PIM → Snapshots. Revert pro Produkt einzeln möglich oder für die gesamte Operation.

Achtung: Drei Felder sind nicht snapshot-fähig: SEO-URL (generiert, nicht reversibel), Staffelpreise→Varianten, Cross-Selling→Varianten.

Live-Vorschau

Vor dem Speichern zeigt eine Tabelle für jedes ausgewählte Produkt: aktuellen Wert, neuen Wert nach Operation, Diff-Markierung bei Text-Feldern, Hinweis bei nicht änderbaren Feldern.

CSV-Export

Der CSV-Export erzeugt eine Datei mit allen oder gefilterten Produkten. Konfigurierbar über die Konfigmatrix.

  • Spalten beliebig auswählbar — Standard-Felder, Custom Fields (einzeln pro cf_*-Spalte), Properties, Übersetzungen
  • Spalten-Trenner: Komma, Semikolon, Tab
  • Dezimaltrennzeichen: Punkt oder Komma — pro Export überschreibbar
  • Encoding: UTF-8 (mit BOM-Option für Excel)
  • Filter berücksichtigen: Aktive Filter aus dem CSV-Modal werden angewandt
  • Varianten-Export: pro Profil oder global aktivierbar
  • Vorgefertigte Profile: Stammdaten, SEO, Bilder, Preise & Lager, Eigenschaften & Custom Fields, Cross-Selling, Übersetzungen

Spalte „Einheit (Name)"

Zusätzlich zur Einheit-ID (UUID) wird die Produkteinheit als Klarname exportiert (z.B. „Liter", „Kilogramm", „Stück"). Im Profil „Preise & Lager" ist der Klarname als Standard aktiviert.

CSV-Import

Der CSV-Import liest eine Datei und legt neue Produkte an oder aktualisiert bestehende. Match-Logik wählbar: per Artikelnummer (Standard), ID (UUID) oder EAN.

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

Beim Import werden fehlende Entitäten automatisch erstellt: Hersteller, Tags, Kategorien, Steuerklassen, Lieferzeiten, Eigenschaften und Produkteinheiten. Bei Varianten werden Parent-IDs auch über Artikelnummer oder EAN aufgelöst — UUIDs sind nicht zwingend nötig.

Sicherheit: Der Import-Tab ist ausschließlich Superadmins zugänglich — zusätzlich zur Berechtigung staw_pim.csv_import.

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

Folgende Felder sind im CSV-Export und/oder -Import verfügbar.

Stammdaten

  • productNumber — Artikelnummer (Match-Schlüssel)
  • name, description — pro Sprache (name_de-DE)
  • ean, manufacturerNumber, manufacturer
  • taxRate, active, markAsTopseller, isCloseout, shippingFree

Preise

  • price, price_net, listPrice, purchasePrice
  • tier_* — Staffelpreise
  • purchaseUnit, referenceUnit
  • unitId oder Einheit (Name) oder Produkteinheit

Bestand und Versand

  • stock, minPurchase, maxPurchase, purchaseSteps
  • deliveryTime, restockTime
  • weight, width, height, length

SEO

  • metaTitle, metaDescription, keywords, packUnit — pro Sprache

Kategorien und Sichtbarkeit

  • categories — Pipe-separiert
  • visibilities — pro Channel

Varianten

  • parentId (auch über parent_productNumber / parent_ean auflösbar)
  • mainVariantId (auch über Artikelnummer/EAN)
  • options, configuratorGroupConfig

Eigenschaften, Custom Fields, Bilder, Cross-Selling, Tags

  • properties — Pipe-separiert (z.B. „Material:Baumwolle|Farbe:Rot")
  • cf_* — Custom Fields als einzelne Spalten, auch pro Sprache cf_*_de-DE
  • cover, images — URL(s) der Bilder
  • crossSellings — Format „StreamName:productNumber1,..."
  • tags — Pipe-separiert

Nur Export (nicht importierbar)

  • createdAt, updatedAt, Variantenanzahl, sales, ratingAverage, availableStock

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, 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.
Mehrere Feeds pro Profil: Feeds sind vom Quell-Profil entkoppelt — du kannst beliebig viele Feeds für dasselbe Profil anlegen. Beispiel: ein „Stammdaten"-Profil als Basis für mehrere Feeds mit unterschiedlichen Filtervorlagen pro Verkaufskanal oder Zielmarkt.

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 mit Umbenennen, Modus, Filtervorlage

Im aufgeklappten Editor stehen alle Konfigurations-Optionen pro Feed:

  • Namensfeld — Feed umbenennen (Name muss eindeutig sein; Kollision wird abgelehnt)
  • Aktivieren-Toggle — Feed online/offline schalten
  • Modus — XML, CSV, TSV oder JSON
  • Filtervorlage — Auswahl aus den gespeicherten Filtervorlagen
  • Feed-URL — fertig zum Kopieren
  • Token — anzeigen oder regenerieren

Filtervorlagen — was wird übernommen, was bewusst nicht

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.

Im Feed angewendet (serverseitig zuverlässig abbildbar): Aktiv-Status, Lagerbestand (Min/Max), Hersteller, Kategorie, Verkaufskanal.

Im Feed bewusst NICHT angewendet: Qualitäts- und Vollständigkeitskriterien (z.B. „Bilder fehlen", „Meta-Daten unvollständig", „ohne Beschreibung", „SEO-Score < X"). Diese Bewertungen werden im Listing live berechnet und sind im Feed-Kontext nicht zuverlässig serverseitig abbildbar.

Warum diese Trennung: Würde der Feed Qualitätskriterien stillschweigend anwenden, würde dein ERP eine still verfälschte Produktmenge bekommen. Mit der klaren Trennung weißt du genau: Filtervorlage definiert welche Produkte, der Feed liefert diese Produkte.

Migration alter Feeds

Automatisch & nicht-destruktiv: Falls du bisher Feeds hattest, die direkt am Export-Profil hingen (mit Token/URL), werden diese beim ersten Laden automatisch in die neue Liste übernommen. Bestehende Feed-URLs in deinem ERP, Google-Shopping-Konto oder bei Preisvergleichsportalen bleiben gültig — kein Re-Konfigurieren nötig.

Token und URL-Format

Jeder Feed bekommt einen eindeutigen Token. Die URL hat das Format:

  • https://dein-shop.de/staw-pim/feed/{token}.xml
  • https://dein-shop.de/staw-pim/feed/{token}.csv
  • https://dein-shop.de/staw-pim/feed/{token}.json

Der Token-Regenerieren-Button erzeugt einen neuen Token — die alte URL wird damit ungültig. Sinnvoll, wenn ein Feed-Link öffentlich geleakt wurde.

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) statt LIMIT/OFFSET — die Ausgabezeit bleibt linear, auch bei sehr großen Katalogen.
  • gzip-Komprimierung serverseitig per gzencode(), wenn der Client Accept-Encoding: gzip sendet. Feed-CSVs komprimieren ~80–90 % — drastisch kürzere Übertragung.
  • Datei-Modus für die größten Kataloge: ein Scheduled Task (alle 15 Min) schreibt die Datei atomar nach var/staw-pim-feeds/ via Flysystem. 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. Filterkriterien (Hersteller, Kategorie, Bestandsbereich) werden serverseitig im SQL angewendet (inkl. Varianten-Vererbung auf den Hauptartikel) — kein Daten-Roundtrip in die Vue-Schicht.

Graceful Fallback bei Modus „Datei": Wenn die Cron-Datei noch nicht existiert (z.B. direkt nach dem Anlegen eines neuen Feeds), fällt der Controller automatisch auf Live-Generierung zurück. Du musst nicht warten bis der Cron das erste Mal gelaufen ist.
Sicherheit: Feed-URLs sind tokenisiert und nicht öffentlich indexierbar. Trotzdem nicht öffentlich teilen — wer den Token kennt, sieht die Produktdaten des Feeds.

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 SKU und Name & Pattern-Akkordeons

Pro Variante können SKU und Name automatisch erzeugt werden anhand eines Musters.

Verfügbare Variablen

  • {base} — SKU des Hauptartikels
  • {property:Farbe}, {property:Größe} — Property-Werte
  • {counter}, {counter:03} — fortlaufende Nummer

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 als Code-Chip rechts; aufgeklappt erscheint das Eingabefeld plus klickbare Variable-Chips. Ein Klick auf einen Chip fügt die Variable direkt ins aktive Pattern ein.

Variantenmatrix · Bulk-Preise und Bestand

Bei einem Variant-Produkt mit vielen Optionen ist die Preis- und Bestandspflege zeilenweise mühsam. Die Variantenmatrix legt alle Varianten in einer Tabelle übereinander: Eine Achse zeigt die erste Eigenschaft (z.B. Farbe), die andere die zweite (z.B. Größe). Pro Zelle stehen Preis und Bestand zum direkten Editieren.

  • Inline-Edit für Preis, Bestand, EAN, MPN
  • Spaltenkonfiguration: welche Werte angezeigt werden, ist umschaltbar
  • Sortierung der Eigenschaften per Drag-and-Drop
  • Optional: Werte aus dem Stammartikel auf alle leeren Zellen anwenden

Sicheres Löschen

Beim Löschen von Varianten prüft das Plugin auf offene Bestellungen.

  • Modus „Sicher" (empfohlen): Varianten mit offenen Bestellungen werden nicht gelöscht, sondern deaktiviert.
  • Modus „Vollständig": Varianten werden gelöscht, auch wenn Bestellungen vorliegen.

KI-Textgenerierung — Anbieter und Modelle

Das PIM integriert zwei KI-Anbieter direkt im Shopware-Admin. Beide haben jeweils eine eigene Sektion in der Konfigmatrix unter Übersetzungen:

  • Anthropic Claude: Haiku 4.5, Sonnet 4.6, Opus 4.6 / 4.7
  • OpenAI ChatGPT: GPT-4o Mini, GPT-4o, GPT-4.1 Mini, GPT-4.1

Sind beide Anbieter aktiviert, kann im KI-Generator-Modal pro Aufruf der gewünschte Anbieter und das Modell ausgewählt werden.

API-Key einrichten

  1. Unter console.anthropic.com (Claude) oder platform.openai.com (ChatGPT) einen API-Key erzeugen
  2. Im PIM unter Konfigmatrix → Übersetzungen den Key in der jeweiligen Anbieter-Sektion eintragen
  3. Mit dem „Verbindung testen"-Button prüfen
  4. Modell auswählen und Tonalität festlegen
  5. Mit „Bulk freischalten" aktivieren
Sicherheit: Keys werden verschlüsselt in der Datenbank gespeichert und nur serverseitig verwendet.

Was kann generiert werden

  • 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.

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

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 → KI → Verbindung testen. Bei Anthropic: Guthaben aufladen. Bei OpenAI: Billing-Status prüfen.

Kontakt & Support

Antwortzeit: in der Regel 1–2 Werktage.