Skip to content

DmfTheOne ​

DmfTheOne is a flexible CMS element for Shopware 6.7 Shopping Experiences. It replaces rigid block layouts with a visual, tree-based builder: editors compose multi-column, nestable layouts directly in the admin without developer involvement. An integrated AI assistant generates complete layouts from text prompts, images, or voice commands.

Quick info ​

Composer packagedmf/sw6-plugin-the-one-cms-element
Plugin classDmf\TheOneCmsElement\DmfTheOneCmsElement
NamespaceDmf\TheOneCmsElement
Shopware>=6.7.0
Required dependencydmf/sw6-plugin-splide-slider
Repositorydmf / plugin-the-one-cms-element

Installation ​

bash
composer require dmf/sw6-plugin-the-one-cms-element
bin/console plugin:refresh
bin/console plugin:install --activate DmfTheOne
bin/console cache:clear
bin/console database:migrate --all DmfTheOne

DmfSplideSlider is pulled in automatically by Composer but must be activated separately, as the slider mode depends on it:

bash
bin/console plugin:install --activate DmfSplideSlider

Requirements ​

RequirementVersion
Shopware>=6.7.0
DmfSplideSlider*

Data model: Rows · Cols · Items ​

Every element is a nested tree:

Element
 └─ Rows[]              ← outer layout rows (optionally rendered as a Splide slider)
     └─ Cols[]          ← responsive columns
         └─ children[]  ← Items (text, image, heading, button …) and/or inner rows
             └─ Rows[]  ← inner rows (max. 2 columns, max. 2 levels deep)

Every node (Row, Col, Item) carries a full styling object:

CategoryFields
SizesWidth (mobile/tablet/desktop), min-/max-height, max-width
SpacesPadding and margin (4 sides each)
ColorsText color, background color, border color, border width, radius
AlignmentsFlex alignment classes, responsive
MaskingCSS clip-path: circle, ellipse, diamond, hexagon, wave, blob, custom SVG
AccessibilityArbitrary HTML attributes as key-value pairs
ClassesBootstrap or Tailwind utility classes
Inline CSSRaw CSS for properties not covered otherwise

CSS library ​

The plugin supports Bootstrap 5 (default) and Tailwind CSS. Column widths adapt to the chosen library:

WidthBootstrapTailwind
Full widthcol-12w-full
2 columnscol-lg-6lg:w-1/2
3 columnscol-lg-4lg:w-1/3
4 columnscol-lg-3lg:w-1/4

The library is configured once in the plugin settings and applies to all elements.

Switching the CSS library

Switching after elements have been created can break existing layouts that use library-specific class names (e.g. col-lg-6, btn-primary). Review all elements after switching and update their classes.

Slider mode ​

The entire element can be switched to "Display as slider". Each outer row becomes a slide, rendered by DmfSplideSlider.

Template system ​

Editors can persist the current element state as a named template in the database:

  • Save: store the current state under a name (max. 2 MB)
  • Load: pick a template from the gallery and apply it to the element
  • Overwrite/Delete: manage existing templates
  • Around 20 built-in presets: banners, card grids, sliders, hero sections, and more

Database table the_one_template ​

ColumnTypeNotes
idBINARY(16)UUID, primary key
nameVARCHAR(255)Unique
valueJSONSerialised element state
created_at / updated_atDATETIME(3)

AI assistant ​

The integrated AI assistant generates complete layouts and makes targeted edits to existing elements:

  • Text prompt: describe the desired layout in natural language
  • Image input: upload a screenshot, mockup, or wireframe and the AI reads structure and style directly from the image
  • Voice input: dictate the prompt via microphone
  • Edit mode: ask the AI to modify an existing element (e.g. "Add a button below the image")
  • Preview before applying and undo of the last apply

The assistant runs entirely server-side: the browser sends the prompt and optional image to the Shopware admin endpoint, which in turn calls the Anthropic API. The API key never leaves the server.

Image input requires Anthropic

Uploading images requires the Anthropic provider. Maximum image size is 3.75 MB (uncompressed).

Configuration ​

Admin path: Settings → System → Plugins → DmfTheOne → Configure.

AI parser settings ​

FieldTypeDefaultPurpose
aiProvidersingle-selectanthropicAI provider: Anthropic (Claude)
aiApiKeypassword–Anthropic API key
aiModelsingle-selectclaude-haiku-4-5-20251001Model: Haiku 4.5 (fast/cheap), Sonnet 4.6 (recommended), Opus 4.7 (powerful)
aiRateLimitint20Max. AI requests per admin user per hour. 0 = disabled
aiUsePromptCacheboolfalseCaches the system prompt at Anthropic. Saves up to 90 % of prompt tokens on follow-up requests
aiValidationboolfalseValidates AI output and sends an automatic correction request on errors
aiEnableLoggingboolfalseSends prompts and responses to a configurable endpoint for quality improvement. The shop URL is not transmitted
aiLoggingEndpointtext–URL of the receiver script for usage logging
aiLoggingSecretpassword–Authentication secret for the logging endpoint

Model choice

Sonnet 4.6 is the recommended choice for most projects: excellent price/performance ratio and very good layout quality. Haiku 4.5 is the fastest and cheapest option. Opus 4.7 delivers the best results for especially complex layouts.

Prompt cache

Writing the cache for the first time costs twice the normal input price. All follow-up requests within the cache validity period cost only 10 % of the normal input price. Minimum requirement: 4,096 tokens (Haiku 4.5) or 1,024 tokens (Sonnet/Opus 4.x).

CSS library ​

FieldTypeDefaultPurpose
cssLibrarysingle-selectbootstrapCSS framework for column classes and utilities: bootstrap or tailwind

Utility classes ​

FieldTypeDefaultPurpose
utilityClasseseditor–Custom responsive classes with desktop, tablet, and mobile values. Written automatically to the-one.scss. Run bin/console theme:compile after changes

Brand colours (AI defaults) ​

FieldTypeDefaultPurpose
colorTextDarktext–Text colour on light backgrounds (hex)
colorTextLighttext–Text colour on dark backgrounds (hex)
colorBgDarktext–Dark background colour (hex)
colorBgLighttext–Light background colour (hex)
colorBorderDarktext–Border colour for dark areas (hex)
colorBorderLighttext–Border colour for light areas (hex)

API endpoints ​

All routes are scoped to api and require admin authentication.

MethodRouteDescription
POST/api/_action/the-one/template/saveSave a template (max. 2 MB)
GET/api/_action/the-one/template/listList all templates
GET/api/_action/the-one/template/load?templateName=Load a template by name
PUT/api/_action/the-one/template/updateOverwrite a template
DELETE/api/_action/the-one/template/delete?templateName=Delete a template
GET/api/_action/the-one/placeholder-media-idRetrieve the placeholder media ID
POST/api/_action/the-one/ai-parseGenerate or edit a layout via AI

Notes ​

DmfSplideSlider required

DmfTheOne depends on DmfSplideSlider via Composer. The library is pulled in automatically but must be activated separately. Without an active DmfSplideSlider, slider mode will not render.