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.
| Plugin | Short description |
|---|---|
| Core | Technical foundation: schema analysis, field registry, surface activation. Always required. |
| Filter | Storefront and admin filters per field/entity; also provides the central admin panel. |
| Sort | Any field as a storefront sorting option. |
| Columns | Any field as an additional column in admin lists (products, orders, customers). |
| Search | Extends storefront and admin search with additional fields. |
| Elasticsearch | Premium add-on: Elasticsearch/OpenSearch support for all CDT surfaces. |
| Bundle | Convenience package bundling Core + Filter + Sort + Columns + Search in one product. |
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
Analyzes the shop, maintains a central field registry, and provides the programming interface on which filter, sorting, admin columns, and search are built.
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).
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.
Under Settings → Extensions → Custom Data Toolkit Core → Configure:
| Setting | Default | Meaning |
|---|---|---|
| Dynamic sortings active | On | Enables/disables the product_sorting entries created by the Sort plugin globally. |
| Offer bool fields as sorting | Off | Whether boolean fields are additionally suggested as sorting options. |
| Analyze schema automatically on plugin events | On | Runs a new schema analysis automatically after plugin installation/update, without manually clicking "Analyze schema". |
| Method | Path | Purpose |
|---|---|---|
| POST | /api/_action/cdt/analyze | Trigger schema analysis manually |
| GET | /api/_action/cdt/field-registrations | Query the current field registry |
| GET | /api/_action/cdt/listing-contexts | Available 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/compatibility | Compatibility/bundle hints |
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.
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.
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitFilter
bin/console cache:clear # Rebuild administration if needed: bin/build-administration.sh
After installation, the new entry "Custom Data Toolkit" appears in the main menu under Catalog. The overview page is structured as follows:
| Type | Storefront display | Suitable for |
|---|---|---|
| Multi-Select | Facet with terms aggregation | Select custom fields, associations |
| Yes/No (Boolean) | Checkbox | Bool custom fields |
| Range / Slider | Number input or range slider with min/max aggregation | Number fields |
| Free text (Contains) | Search field | Text/long text fields |
| Date range | From/to selection | Date fields |
| Entity select | Selection list | Associations to other entities |
| Text chips (LongText) | Multi-select via tag input | Long 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.
Under Settings → Extensions → Custom Data Toolkit Filter → Configure:
| Setting | Default | Meaning |
|---|---|---|
| Storefront filters active | On | Enables/disables all CDT storefront filters globally, independent of individual enablements in the panel. |
| Admin filters active | On | Enables/disables CDT filters in the admin product list globally. |
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.
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.
Makes any custom fields, custom entities, and associations usable as storefront sorting options without code.
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.
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitSort
product_sorting), identifiable by the key prefix cdt.* (e.g. cdt.customFields_mein_feld).Global toggles for sorting are in the Core plugin (Settings → Extensions → Custom Data Toolkit Core): "Dynamic sortings active" and "Offer bool fields as sorting".
product_sorting entry again — no orphaned sorting options remain.Displays any custom fields, custom entities, and associations as additional columns in admin lists (products, orders, customers) without code.
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.
bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitColumns
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.
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 overviewIncludes any custom fields, custom entities, and associations in storefront and admin search without code.
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.
includeInSearch for enabled custom fields; for association paths (e.g. fields on linked custom entity extensions) it synchronizes matching entries in product_search_config_field so nested fields are searchable too.bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitSearch
Extends all CDT surfaces (filter, sorting, search) with Elasticsearch/OpenSearch support, including automatic index mapping maintenance.
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.
shopware/elasticsearch must be present in the shop (Shopware 6.7).core.elasticsearch.enabled, hosts configured in system settings).bin/console plugin:refresh
bin/console plugin:install --activate CustomDataToolkitElasticsearch
bin/console es:mapping:update
bin/console es:index
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.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/_action/cdt-elasticsearch/status | Returns enabled, integrationActive, requiresReindex |
| POST | /api/_action/cdt-elasticsearch/acknowledge-reindex | Acknowledge reindex notice after the reindex has run |
Convenience package bundling Core, Filter, Sort, Columns, and Search in one product — one purchase instead of five.
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).
| Module | Role |
|---|---|
| Core | Schema analysis, field registry, surface API |
| Filter | Storefront/admin filters, central panel |
| Sort | Storefront sorting |
| Columns | Admin columns |
| Search | Storefront/admin search |
Not included, optional add-on: Elasticsearch.
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
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.
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 overviewQuestion about a module, a bug, or a feature request? Open a support ticket or write directly to support@kernpfad.dev.