Für Shop-Betreiber:innen und Administrator:innen, die eines oder mehrere CDT-Plugins einsetzen.
Custom Data Toolkit besteht aus sechs Plugins, die aufeinander aufbauen. Core ist die gemeinsame, immer benötigte Basis. Die eigentliche Bedienoberfläche — Katalog → Custom Data Toolkit — liefert das Filter-Plugin; installierte Zusatzmodule (Sort, Columns, Search, Elasticsearch) erscheinen automatisch als weitere Abschnitte in genau diesem einen Register, es entsteht keine zusätzliche Admin-Seite.
| Plugin | Kurzbeschreibung |
|---|---|
| Core | Technisches Fundament: Schema-Analyse, Feldregister, Surface-Aktivierung. Immer erforderlich. |
| Filter | Storefront- und Admin-Filter je Feld/Entität; stellt außerdem das zentrale Admin-Register bereit. |
| Sort | Beliebige Felder als Storefront-Sortieroption. |
| Columns | Beliebige Felder als zusätzliche Spalte in Admin-Listen (Produkte, Bestellungen, Kunden). |
| Search | Erweitert Storefront- und Admin-Suche um zusätzliche Felder. |
| Elasticsearch | Premium-Erweiterung: Elasticsearch-/OpenSearch-Unterstützung für alle CDT-Flächen. |
| Bundle | Komfort-Paket, das Core + Filter + Sort + Columns + Search in einem Produkt bündelt. |
Core (Pflicht)
└─ Filter → liefert Katalog → Custom Data Toolkit (Register-UI für alle Module)
└─ Sort → eigener Abschnitt "Als Sortierung verfügbar machen" im Register
└─ Columns → eigener Abschnitt "Als Admin-Spalte anzeigen" im Register
└─ Search → eigener Abschnitt "In Suche einbeziehen" im Register
└─ Elasticsearch (optional) → Mapping/Reindex-Hinweise im Register, wenn ES aktiv ist
Bundle = Core + Filter + Sort + Columns + Search in einem Produkt
Analysiert den Shop, führt ein zentrales Feldregister und stellt die Programmierschnittstelle bereit, auf der Filter, Sortierung, Admin-Spalten und Suche aufbauen.
Für jeden, der eines der anderen CDT-Plugins (Filter, Sort, Columns, Search, Elasticsearch) einsetzen möchte — Core ist deren gemeinsame Voraussetzung. Core selbst liefert keine eigene Bedienoberfläche; die Konfiguration erfolgt im Register, das vom Filter-Plugin bereitgestellt wird (siehe Filter).
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitCore
Nach der Aktivierung passiert im Admin zunächst nichts sichtbar — Core arbeitet im Hintergrund. Installieren Sie zusätzlich mindestens Filter, um das Register zu sehen und Felder tatsächlich freizugeben.
Unter Einstellungen → Erweiterungen → Custom Data Toolkit Core → Konfigurieren:
| Einstellung | Standard | Bedeutung |
|---|---|---|
| Dynamische Sortierungen aktiv | An | Schaltet die vom Sort-Plugin erzeugten product_sorting-Einträge global ein/aus. |
| Bool-Felder als Sortierung anbieten | Aus | Ob boolesche Felder zusätzlich als Sortieroption vorgeschlagen werden. |
| Schema bei Plugin-Events automatisch analysieren | An | Führt nach Plugin-Installation/-Update automatisch eine neue Schema-Analyse aus, ohne manuellen Klick auf „Schema analysieren“. |
| Methode | Pfad | Zweck |
|---|---|---|
| POST | /api/_action/cdt/analyze | Schema-Analyse manuell auslösen |
| GET | /api/_action/cdt/field-registrations | Aktuelles Feldregister abfragen |
| GET | /api/_action/cdt/listing-contexts | Verfügbare Listing-Kontexte (Produkt, Kategorie, Bestellung, Kunde, Hersteller, Produktsuche) |
| GET/POST | /api/_action/cdt/surfaces/{listingContext} | Surface-Aktivierung lesen/schreiben (Parameter salesChannelId, categoryId optional) |
| GET | /api/_action/cdt/compatibility | Kompatibilitäts-/Bundle-Hinweise |
Macht beliebige Custom Fields, Custom Entities und Assoziationen ohne Code als Storefront-Filter und Admin-Filter nutzbar. Liefert außerdem das zentrale Custom Data Toolkit-Register im Admin, in dem alle CDT-Module konfiguriert werden.
Für Shops, die Kunden im Storefront nach eigenen Produktmerkmalen (technische Daten, B2B-Attribute, individuelle Kategorisierungen) filtern lassen möchten, sowie für Administrator:innen, die dieselben Felder auch in der Admin-Produktliste filtern wollen.
Wichtig: Auch wer nur Sort, Columns oder Search nutzen möchte, profitiert von der Installation dieses Plugins — es stellt die einzige Bedienoberfläche (Katalog → Custom Data Toolkit) bereit, in der alle Module ihre Schalter zeigen.
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitFilter
bin/console cache:clear # Administration neu bauen, falls nötig: bin/build-administration.sh
Nach der Installation erscheint im Hauptmenü unter Katalog der neue Eintrag „Custom Data Toolkit“. Die Übersichtsseite gliedert sich in:
| Typ | Storefront-Darstellung | Geeignet für |
|---|---|---|
| Multi-Select | Facette mit Terms-Aggregation | Auswahl-Custom-Fields, Assoziationen |
| Ja/Nein (Boolean) | Checkbox | Bool-Custom-Fields |
| Bereich / Slider | Zahleneingabe bzw. Range-Slider mit Min/Max-Aggregation | Zahlenfelder |
| Freitext (Contains) | Suchfeld | Text-/Langtextfelder |
| Datumsbereich | Von/Bis-Auswahl | Datumsfelder |
| Entitäts-Auswahl | Auswahlliste | Assoziationen zu anderen Entitäten |
| Text-Chips (LongText) | Mehrfachauswahl per Tag-Eingabe | Langtextfelder mit mehreren Begriffen (ODER-Verknüpfung) |
Bei Multi-Select- und Entitäts-Auswahl-Filtern lässt sich zusätzlich die „Wertgruppierung (Limit)“ setzen — die maximale Anzahl an Facetten-Werten, die im Storefront angezeigt wird.
Unter Einstellungen → Erweiterungen → Custom Data Toolkit Filter → Konfigurieren:
| Einstellung | Standard | Bedeutung |
|---|---|---|
| Storefront-Filter aktiv | An | Schaltet alle CDT-Storefront-Filter global ein/aus, unabhängig von den Einzelfreigaben im Register. |
| Admin-Filter aktiv | An | Schaltet die CDT-Filter in der Admin-Produktliste global ein/aus. |
Ist zusätzlich das Fremdplugin SwagAdminListingConfig aktiv, weist das Register darauf hin, dass sich Admin-Spalten/-Filter überschneiden können, und empfiehlt, sich auf ein einheitliches Register (CDT) festzulegen. Ist das Bundle-Plugin installiert, aber ein Einzelmodul (z. B. Sort) fehlt oder ist deaktiviert, erscheint ebenfalls ein Hinweis im Register.
Ist Custom Data Toolkit Elasticsearch aktiv, zeigt das Register nach Änderungen an filterbaren Feldern einen Hinweis, dass ein bin/console es:index erforderlich ist, bevor die Änderung in der Suche wirksam wird.
Macht beliebige Custom Fields, Custom Entities und Assoziationen ohne Code als Storefront-Sortieroption nutzbar.
Für Shops, deren Kunden Produktlisten nach eigenen Merkmalen sortieren sollen — z. B. nach einem technischen Kennwert, einem Freigabedatum oder einem individuellen Rang-Feld, das über Custom Fields gepflegt wird.
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitSort
product_sorting) an, erkennbar am Schlüsselpräfix cdt.* (z. B. cdt.customFields_mein_feld).Die globalen Schalter für Sortierungen liegen im Plugin Core (Einstellungen → Erweiterungen → Custom Data Toolkit Core): „Dynamische Sortierungen aktiv“ und „Bool-Felder als Sortierung anbieten“.
product_sorting-Eintrag automatisch wieder — es bleiben keine verwaisten Sortieroptionen zurück.Zeigt beliebige Custom Fields, Custom Entities und Assoziationen ohne Code als zusätzliche Spalte in Admin-Listen an (Produkte, Bestellungen, Kunden).
Für Administrator:innen, die in den Produkt-, Bestell- oder Kundenlisten des Admins auf einen Blick eigene Datenfelder sehen möchten, ohne jeden Datensatz einzeln zu öffnen — etwa einen internen Statuscode, ein Freigabedatum oder ein B2B-Kennzeichen.
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitColumns
Bereits in Shopware vorhandene Standard-Listing-Felder werden in der Feldauswahl automatisch ausgeblendet (Hinweis „{Anzahl} Standard-Listing-Felder ausgeblendet“ im Register), damit die Liste nicht mit Duplikaten überladen wird.
Ist zusätzlich das Fremdplugin SwagAdminListingConfig aktiv, weist das Register darauf hin, dass sich Admin-Spalten überschneiden können, und empfiehlt ein einheitliches Register (CDT) zu verwenden, um doppelte oder widersprüchliche Spaltenkonfigurationen zu vermeiden.
↑ Zur ModulübersichtBezieht beliebige Custom Fields, Custom Entities und Assoziationen ohne Code in die Storefront- und Admin-Suche mit ein.
Für Shops, deren Kunden nach Begriffen suchen sollen, die in eigenen Datenfeldern stehen (z. B. eine Herstellernummer, ein technisches Kürzel oder ein individuelles Schlagwort), sowie für Administrator:innen, die dieselben Felder in der Admin-Produktsuche wiederfinden möchten.
includeInSearch; für Assoziationspfade (z. B. Felder auf verknüpften Custom-Entity-Erweiterungen) synchronisiert es passende Einträge in product_search_config_field, damit auch verschachtelte Felder durchsuchbar werden.bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitSearch
Erweitert alle CDT-Flächen (Filter, Sortierung, Suche) um Elasticsearch-/OpenSearch-Unterstützung, inklusive automatischer Index-Mapping-Pflege.
Für Shops, die Elasticsearch oder OpenSearch für die Produktsuche/-listings einsetzen. Ohne dieses Plugin funktionieren Filter, Sortierung und Suche der übrigen CDT-Module nur über die klassische Datenbank-Criteria-API — mit aktivem Elasticsearch würden CDT-Felder sonst in den ES-Ergebnissen fehlen, da sie nicht Teil des Standard-Mappings sind.
shopware/elasticsearch muss im Shop vorhanden sein (Shopware 6.7).core.elasticsearch.enabled, Hosts in den Systemeinstellungen hinterlegt).bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitElasticsearch
bin/console es:mapping:update
bin/console es:index
Solange Elasticsearch aktiv ist, zeigt das Register (Katalog → Custom Data Toolkit, bereitgestellt von Filter) bei jeder Änderung an einem such-/filterrelevanten Feld einen Hinweis: „Elasticsearch: Mapping geändert — bitte bin/console es:index ausführen und danach den Hinweis bestätigen.“ Nach dem Reindex lässt sich der Hinweis über die Statusseite quittieren.
| Methode | Pfad | Zweck |
|---|---|---|
| GET | /api/_action/cdt-elasticsearch/status | Liefert enabled, integrationActive, requiresReindex |
| POST | /api/_action/cdt-elasticsearch/acknowledge-reindex | Reindex-Hinweis quittieren, nachdem der Reindex gelaufen ist |
Komfort-Paket, das Core, Filter, Sort, Columns und Search in einem Produkt bündelt — ein Kauf statt fünf.
Für alle, die von Anfang an die volle CDT-Funktionalität wollen (Filter, Sortierung, Admin-Spalten und Suche für eigene Datenfelder), ohne die Module einzeln zu suchen und zu installieren. Elasticsearch bleibt bewusst außen vor und wird nur empfohlen, da es zusätzliche Infrastruktur (einen laufenden Elasticsearch-/OpenSearch-Server) voraussetzt.
| Modul | Aufgabe |
|---|---|
| Core | Schema-Analyse, Feldregister, Surface-API |
| Filter | Storefront-/Admin-Filter, zentrales Register |
| Sort | Storefront-Sortierung |
| Columns | Admin-Spalten |
| Search | Storefront-/Admin-Suche |
Nicht enthalten, optional nachrüstbar: Elasticsearch.
Der Bundle-Kauf installiert automatisch alle fünf enthaltenen Plugins als Abhängigkeiten:
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitCore
bin/console plugin:install --activate CustomDataToolkitFilter
bin/console plugin:install --activate CustomDataToolkitSort
bin/console plugin:install --activate CustomDataToolkitColumns
bin/console plugin:install --activate CustomDataToolkitSearch
bin/console plugin:install --activate CustomDataToolkitBundle
bin/console cache:clear
Alle Flächen werden über ein Register bedient: Katalog → Custom Data Toolkit. Das Bundle selbst fügt der Administration zusätzlich einen eigenen Übersichtspunkt „Custom Data Toolkit“ hinzu, der die installierten Module auflistet und direkt zum Register verlinkt („Register öffnen“).
Details zur eigentlichen Konfiguration je Fläche (Filtertypen, Sortierrichtung, Spaltenposition, Sucheinbindung) stehen in den jeweiligen Modul-Abschnitten oben.
Ist ein Teil des Bundles (z. B. Sort) nachträglich deaktiviert worden, während das Bundle selbst aktiv bleibt, zeigt das Register einen Hinweis wie „Custom Data Toolkit (Bundle) ist aktiv, aber Custom Data Toolkit (Sort) nicht — Sortierfunktionen des Bundles fehlen. Bitte aktivieren.“ — analog für Filter, Columns und Search.
↑ Zur ModulübersichtFrage zu einem Modul, ein Bug oder Feature-Wunsch? Support-Ticket öffnen oder direkt an support@kernpfad.dev schreiben.