Custom Data Toolkit — Documentation

For shop operators and administrators using one or more CDT plugins.

Custom Data Toolkit consists of six plugins that build on each other. Core is the shared foundation that is always required. The actual admin UI — Catalog → Custom Data Toolkit — is provided by the Filter plugin; installed add-on modules (Sort, Columns, Search, Elasticsearch) automatically appear as additional sections in that single panel, with no extra admin page.

PluginShort description
CoreTechnical foundation: schema analysis, field registry, surface activation. Always required.
FilterStorefront and admin filters per field/entity; also provides the central admin panel.
SortAny field as a storefront sorting option.
ColumnsAny field as an additional column in admin lists (products, orders, customers).
SearchExtends storefront and admin search with additional fields.
ElasticsearchPremium add-on: Elasticsearch/OpenSearch support for all CDT surfaces.
BundleConvenience package bundling Core + Filter + Sort + Columns + Search in one product.

How the modules work together

Core (required)
 └─ Filter   → provides Catalog → Custom Data Toolkit (panel UI for all modules)
 └─ Sort     → own section "Make available as sorting" in the panel
 └─ Columns  → own section "Show as admin column" in the panel
 └─ Search   → own section "Include in search" in the panel
 └─ Elasticsearch (optional) → mapping/reindex hints in the panel when ES is active
Bundle = Core + Filter + Sort + Columns + Search in one product

Core Required

Technical foundation of the CDT family

Analyzes the shop, maintains a central field registry, and provides the programming interface on which filter, sorting, admin columns, and search are built.

Who is this plugin for?

For anyone who wants to use one of the other CDT plugins (Filter, Sort, Columns, Search, Elasticsearch) — Core is their shared prerequisite. Core itself provides no dedicated admin UI; configuration happens in the panel provided by the Filter plugin (see Filter).

What does Core do?

Requirements

Installation

bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitCore

After activation, nothing visible happens in the admin at first — Core works in the background. Also install at least Filter to see the panel and actually enable fields.

Configuration

Under Settings → Extensions → Custom Data Toolkit Core → Configure:

SettingDefaultMeaning
Dynamic sortings activeOnEnables/disables the product_sorting entries created by the Sort plugin globally.
Offer bool fields as sortingOffWhether boolean fields are additionally suggested as sorting options.
Analyze schema automatically on plugin eventsOnRuns a new schema analysis automatically after plugin installation/update, without manually clicking "Analyze schema".

Usage

  1. In the admin, go to Catalog → Custom Data Toolkit (surface provided by the Filter plugin).
  2. Click "Analyze schema". Core scans all entities and reports the number of fields/entities found.
  3. Results appear in the field selection, grouped by Base fields, Associations, and Custom Fields — ready to be enabled via the other CDT modules.

Programming interface (for integrations)

MethodPathPurpose
POST/api/_action/cdt/analyzeTrigger schema analysis manually
GET/api/_action/cdt/field-registrationsQuery the current field registry
GET/api/_action/cdt/listing-contextsAvailable listing contexts (product, category, order, customer, manufacturer, product search)
GET/POST/api/_action/cdt/surfaces/{listingContext}Read/write surface activation (parameters salesChannelId, categoryId optional)
GET/api/_action/cdt/compatibilityCompatibility/bundle hints

Limitations & notes

↑ Back to module overview

Filter

Storefront and admin filters per field/entity

Makes any custom fields, custom entities, and associations usable as storefront and admin filters without code. Also provides the central Custom Data Toolkit panel in the admin where all CDT modules are configured.

Who is this plugin for?

For shops that want customers to filter in the storefront by their own product attributes (technical data, B2B attributes, custom categorizations), as well as for administrators who want to filter the same fields in the admin product list.

Important: Even if you only want to use Sort, Columns, or Search, installing this plugin is still worthwhile — it provides the only admin UI (Catalog → Custom Data Toolkit) where all modules expose their toggles.

Requirements

Installation

bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitFilter
bin/console cache:clear   # Rebuild administration if needed: bin/build-administration.sh

The panel: Catalog → Custom Data Toolkit

After installation, the new entry "Custom Data Toolkit" appears in the main menu under Catalog. The overview page is structured as follows:

Available filter types

TypeStorefront displaySuitable for
Multi-SelectFacet with terms aggregationSelect custom fields, associations
Yes/No (Boolean)CheckboxBool custom fields
Range / SliderNumber input or range slider with min/max aggregationNumber fields
Free text (Contains)Search fieldText/long text fields
Date rangeFrom/to selectionDate fields
Entity selectSelection listAssociations to other entities
Text chips (LongText)Multi-select via tag inputLong text fields with multiple terms (OR combination)

For multi-select and entity select filters, you can additionally set the "Value grouping (limit)" — the maximum number of facet values displayed in the storefront.

Step by step: enable a filter

  1. Open Catalog → Custom Data Toolkit, run "Analyze schema" first if needed.
  2. Find the desired field via search or the groups.
  3. In the section "Make available as filter", enable the toggle and choose filter type and position (order in the filter bar, lower number = higher up).
  4. If desired, restrict by sales channel/category instead of enabling globally.
  5. Click "Save" — the success message "Configuration was saved successfully" confirms the change. "Discard" reverts unsaved changes.
  6. Verify the filter in the storefront: open the category or search listing; the new facet should appear in the filter bar.

Configuration (system settings)

Under Settings → Extensions → Custom Data Toolkit Filter → Configure:

SettingDefaultMeaning
Storefront filters activeOnEnables/disables all CDT storefront filters globally, independent of individual enablements in the panel.
Admin filters activeOnEnables/disables CDT filters in the admin product list globally.

Compatibility notes

If the third-party plugin SwagAdminListingConfig is also active, the panel indicates that admin columns/filters may overlap and recommends standardizing on a single panel (CDT). If the Bundle plugin is installed but an individual module (e.g. Sort) is missing or deactivated, a notice also appears in the panel.

Elasticsearch note

If Custom Data Toolkit Elasticsearch is active, the panel shows a notice after changes to filterable fields that bin/console es:index is required before the change takes effect in search.

↑ Back to module overview

Sort

Custom Data Toolkit — Sort

Makes any custom fields, custom entities, and associations usable as storefront sorting options without code.

Who is this plugin for?

For shops whose customers should sort product lists by their own attributes — e.g. by a technical value, a release date, or a custom rank field maintained via custom fields.

Requirements

Installation

bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitSort

Usage

  1. Open Catalog → Custom Data Toolkit (panel UI from Filter).
  2. Select the desired field.
  3. In the section "Make available as sorting", enable the toggle and choose sort direction: Ascending (A→Z), Descending (Z→A), or Both directions (creates two sorting options).
  4. Save — CDT automatically creates a matching entry in the Shopware sorting repository (product_sorting), identifiable by the key prefix cdt.* (e.g. cdt.customFields_mein_feld).
  5. The new option appears in the sort dropdown of the affected listing in the storefront.

Configuration

Global toggles for sorting are in the Core plugin (Settings → Extensions → Custom Data Toolkit Core): "Dynamic sortings active" and "Offer bool fields as sorting".

Notes

↑ Back to module overview

Admin columns

Custom Data Toolkit — Columns

Displays any custom fields, custom entities, and associations as additional columns in admin lists (products, orders, customers) without code.

Who is this plugin for?

For administrators who want to see their own data fields at a glance in the admin product, order, or customer lists without opening each record individually — e.g. an internal status code, a release date, or a B2B identifier.

Requirements

Installation

bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitColumns

Usage

  1. Open Catalog → Custom Data Toolkit (panel UI from Filter).
  2. Select the desired field.
  3. In the section "Show as admin column", enable the toggle and set the position (column order in the list).
  4. Save.
  5. Open the affected admin list (products, orders, or customers, depending on which listing context the field was registered for) — the new column appears in the list column picker and can be shown/hidden there.

Supported admin lists

Standard listing fields already present in Shopware are automatically hidden in the field selection (notice "{count} standard listing fields hidden" in the panel) so the list is not overloaded with duplicates.

Compatibility notes

If the third-party plugin SwagAdminListingConfig is also active, the panel indicates that admin columns may overlap and recommends using a single panel (CDT) to avoid duplicate or conflicting column configurations.

↑ Back to module overview
Custom Data Toolkit — Search

Includes any custom fields, custom entities, and associations in storefront and admin search without code.

Who is this plugin for?

For shops whose customers should search for terms stored in custom data fields (e.g. a manufacturer part number, a technical abbreviation, or a custom keyword), as well as for administrators who want to find the same fields in the admin product search.

Requirements

What does Search do?

Installation

bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitSearch

Usage

  1. Open Catalog → Custom Data Toolkit (panel UI from Filter).
  2. Select the desired field.
  3. In the section "Include in search", enable the toggle.
  4. Save.
  5. Enter a search term that appears in the field value in the storefront search field or admin product search — the product should now appear in the results.

Notes

↑ Back to module overview

Elasticsearch Premium add-on

Custom Data Toolkit — Elasticsearch

Extends all CDT surfaces (filter, sorting, search) with Elasticsearch/OpenSearch support, including automatic index mapping maintenance.

Who is this plugin for?

For shops that use Elasticsearch or OpenSearch for product search/listings. Without this plugin, filter, sorting, and search from the other CDT modules work only via the classic database Criteria API — with active Elasticsearch, CDT fields would otherwise be missing from ES results because they are not part of the standard mapping.

Requirements

What does Elasticsearch do?

Installation & setup

  1. Enable Elasticsearch/OpenSearch support in Shopware Core (core.elasticsearch.enabled, hosts configured in system settings).
  2. Install and activate the plugin:
    bin/console plugin:refresh
    bin/console plugin:install --activate CustomDataToolkitElasticsearch
  3. Under Settings → Extensions → Custom Data Toolkit Elasticsearch → Configure, enable the toggle "Enable CDT Elasticsearch integration" (default: off).
  4. After activation and after every change to field enablements in the panel:
    bin/console es:mapping:update
    bin/console es:index

Reindex notice in the panel

While Elasticsearch is active, the panel (Catalog → Custom Data Toolkit, provided by Filter) shows a notice on every change to a search/filter-relevant field: "Elasticsearch: mapping changed — please run bin/console es:index and then acknowledge the notice." After the reindex, the notice can be acknowledged via the status page.

Programming interface

MethodPathPurpose
GET/api/_action/cdt-elasticsearch/statusReturns enabled, integrationActive, requiresReindex
POST/api/_action/cdt-elasticsearch/acknowledge-reindexAcknowledge reindex notice after the reindex has run

Notes

↑ Back to module overview

Bundle

Custom Data Toolkit — Bundle

Convenience package bundling Core, Filter, Sort, Columns, and Search in one product — one purchase instead of five.

Who is this plugin for?

For anyone who wants the full CDT functionality from the start (filter, sorting, admin columns, and search for custom data fields) without finding and installing modules individually. Elasticsearch is intentionally excluded and only recommended when you have the additional infrastructure (a running Elasticsearch/OpenSearch server).

Included modules

ModuleRole
CoreSchema analysis, field registry, surface API
FilterStorefront/admin filters, central panel
SortStorefront sorting
ColumnsAdmin columns
SearchStorefront/admin search

Not included, optional add-on: Elasticsearch.

Installation

The Bundle purchase automatically installs all five included plugins as dependencies:

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

Usage

All surfaces are managed via one panel: Catalog → Custom Data Toolkit. The Bundle itself adds an additional overview entry "Custom Data Toolkit" to the administration that lists the installed modules and links directly to the panel ("Open panel").

Details for configuring each surface (filter types, sort direction, column position, search inclusion) are in the respective module sections above.

Compatibility notes

If a part of the Bundle (e.g. Sort) was later deactivated while the Bundle itself remains active, the panel shows a notice such as "Custom Data Toolkit (Bundle) is active, but Custom Data Toolkit (Sort) is not — Bundle sorting features are missing. Please activate." — similarly for Filter, Columns, and Search.

↑ Back to module overview
>

Question about a module, a bug, or a feature request? Open a support ticket or write directly to support@kernpfad.dev.