Dieser Artikel erklärt wie du den Konfigurator per HTML-Snippet in deine Website oder dein CMS einbindest — ohne Webshop-System. Du brauchst dafür keinen Entwickler: ein <script>-Tag und ein <div> mit ein paar Attributen genügen.
Wann ist das HTML-Snippet die richtige Wahl?
Das HTML-Snippet eignet sich wenn du:
- keinen Magento-, Shopware- oder Shopify-Shop betreibst
- den Konfigurator auf einer Webseite als Angebots- oder Produktpräsentationstool einsetzen möchtest
- ein CMS wie WordPress, TYPO3, Joomla oder Jimdo nutzt
Für die drei Shopsysteme gibt es fertige Plugins — die bringen Warenkorb-Anbindung und Preisübernahme mit, was das Snippet allein nicht leisten kann.
Schritt 1: HTML5-Integration aktivieren
Im Backend unter Einstellungen → Integrationen findest du die Karte HTML5 (V3 Beta). Aktiviere sie, falls noch nicht aktiv. Dort steht auch das fertige Snippet mit deiner Kunden-ID und deinem Token — vorausgefüllt, du musst nur die Komponenten-ID ersetzen.
Daneben liegt die ältere Karte HTML5 ohne Zusatz. Sie gehört zur Vorgängerversion des Konfigurators; welche du brauchst, steht weiter unten unter „Das ältere Snippet".
Schritt 2: Domain freischalten
Unter Einstellungen → Domänen trägst du die Domain(s) ein, auf denen der Konfigurator laufen soll. Trage sie ohne Protokoll ein, also www.meineseite.de oder meineseite.de.
Das ist keine Formalie: Dein Token steht im Quelltext der Seite und ist damit für jeden lesbar. Was ihn schützt, ist genau diese Liste — Anfragen von einer nicht eingetragenen Domain beantwortet der Dienst mit „Requesting host not authorized", und der Konfigurator bleibt leer. Steht deine Seite auf einer Staging-Domain, trage diese mit ein.
Schritt 3: Komponenten-ID herausfinden
Die ID deiner Komponente siehst du in der Komponenten-Übersicht — sie steht direkt unter dem Komponentennamen (z. B. „ID 10722"). Diese ID kommt ins Snippet.
Schritt 4: Das Snippet
<script src="https://cloud.configento.app/configento-v3/configento.js" defer></script>
<div
data-configento
data-component-id="YOUR_TEMPLATE_ID"
data-configento-customer="DEINE-KUNDEN-ID"
data-configento-token="DEIN-TOKEN"
data-configento-cloud-base-url="cloud.configento.app"
data-configento-tax-rate="19"
data-configento-locale="de_DE"
></div>
So funktioniert es: Das Skript sucht beim Laden jedes Element mit dem Attribut data-configento und baut dort einen Konfigurator auf. Alles Weitere liest es aus den data-configento-*-Attributen desselben Elements.
Das <div> darf überall stehen, wo dein CMS HTML erlaubt — das Skript selbst nur einmal pro Seite, auch wenn mehrere Konfiguratoren darauf liegen.
Alle Attribute im Überblick
Grundlagen
| Attribut | Bedeutung |
|---|---|
data-configento |
Markiert das Element als Konfigurator-Platz. Ohne Wert. |
data-component-id |
Welche Komponente geladen wird. |
data-configento-customer |
Deine Kunden-ID. Steht im Snippet im Backend. |
data-configento-token |
Dein Token. Steht im Snippet im Backend. |
data-configento-cloud-base-url |
cloud.configento.app — unverändert übernehmen. |
data-configento-tax-rate |
Steuersatz für die Preisanzeige, z. B. 19. |
data-configento-locale |
Sprache, z. B. de_DE. Steuert Komponententexte und die Beschriftungen des Konfigurators. |
Darstellung an eigener Stelle
| Attribut | Bedeutung |
|---|---|
data-configento-price-mount |
CSS-Selektor: Dort erscheint der laufende Preis. Ohne dieses Attribut zeigt das Snippet keinen Preis. |
data-configento-summary-mount |
CSS-Selektor: Dort erscheint die Zusammenfassung. Ohne das Attribut gibt es keine. |
data-configento-summary-open |
Zusammenfassung anfangs aufgeklappt (true/false). Wirkt nur zusammen mit summary-mount. |
data-configento-combined-image-mount |
CSS-Selektor: Das zusammengesetzte Produktbild erscheint dort. |
Sprachen
| Attribut | Bedeutung |
|---|---|
data-configento-language-select |
Fragt den Besucher nach seiner Sprache, bevor der Konfigurator erscheint. Ohne Wert. |
data-configento-languages |
Schränkt die angebotenen Sprachen ein, z. B. de_DE, en_GB. |
data-configento-content-locale |
Sprache nur für die Komponententexte, getrennt von der Oberfläche. Selten nötig. |
Selten gebraucht
| Attribut | Bedeutung |
|---|---|
data-configento-config |
Alle Einstellungen als JSON-Objekt statt als Einzelattribute. |
data-configento-currency |
Währungscode, wenn er vom Standard der Komponente abweicht. |
data-configento-asset-base-url |
Abweichender Ort für Bilder. |
data-configento-token-endpoint |
Adresse, an der sich der Konfigurator selbst kurzlebige Tokens holt. Das nutzen die Shop-Plugins; beim HTML-Snippet bleibt es leer. |
Zusatzfunktionen
Preis und Zusammenfassung platzieren — wichtig
Ohne weitere Angabe zeigt das HTML-Snippet weder Preis noch Zusammenfassung. Das ist Absicht: Auf einer Webseite gehören diese beiden Elemente ins Layout der Seite, nicht in einen fremden Kasten mittendrin. Du bestimmst also selbst, wo sie erscheinen — aber du musst es tun, sonst fehlen sie.
Du legst dafür eigene Elemente an und verweist per CSS-Selektor darauf:
<div id="mein-bild"></div>
<h1>Mein Produkt</h1>
<div id="mein-preis"></div>
<div
data-configento
data-component-id="10722"
data-configento-customer="DEINE-KUNDEN-ID"
data-configento-token="DEIN-TOKEN"
data-configento-cloud-base-url="cloud.configento.app"
data-configento-tax-rate="19"
data-configento-locale="de_DE"
data-configento-price-mount="#mein-preis"
data-configento-combined-image-mount="#mein-bild"
></div>
Preis und Bild aktualisieren sich dort live mit jeder Auswahl. Findet der Selektor kein Element, bleibt die Stelle leer — ein Tippfehler legt den Konfigurator nicht lahm, kostet dich aber die Anzeige.
Das zusammengesetzte Produktbild verhält sich anders als Preis und Zusammenfassung: Es erscheint auch ohne combined-image-mount, dann innerhalb des Konfigurators. Der Selektor verschiebt es lediglich.
Für die Zusammenfassung gilt dasselbe Muster mit data-configento-summary-mount. data-configento-summary-open steuert dann, ob sie aufgeklappt startet — allein, ohne summary-mount, bewirkt das Attribut nichts, weil es dann keine Zusammenfassung gibt, die es aufklappen könnte.
Sprachauswahl vorschalten
Liegt deine Komponente in mehreren Sprachen vor, kann der Konfigurator den Besucher zuerst fragen, welche er möchte. Er zeigt dann je Sprache eine Kachel mit Flagge und Sprachnamen; nach dem Klick startet der Konfigurator in dieser Sprache — Komponententexte wie Beschriftungen.
<div data-configento
data-component-id="10722"
data-configento-language-select></div>
Welche Sprachen angeboten werden, liest der Konfigurator aus der Komponente selbst. Die Liste kann also nicht von dem abweichen, was wirklich übersetzt ist. Soll ein bestimmter Auftritt nur zwei davon zeigen, nenne sie ausdrücklich:
data-configento-language-select
data-configento-languages="de_DE, en_GB"
Gut zu wissen:
- Bei nur einer Sprache erscheint keine Auswahl — ein Klick, der nichts fragt, wäre nur eine Hürde.
- Die Wahl gilt für die Sitzung: Wer auf eine andere Seite wechselt und zurückkommt, wird nicht erneut gefragt. Ein Besuch am nächsten Tag beginnt wieder mit der Frage.
- Die Wahl des Besuchers hat Vorrang vor
data-configento-locale. Dieses Attribut ist deine Vorgabe, die Auswahl ist seine Entscheidung.
Zum Ausprobieren: Demo „Mehrsprachigkeit".
Mehrere Konfiguratoren auf einer Seite
Du kannst beliebig viele data-configento-Elemente auf einer Seite platzieren — jedes lädt seine eigene Komponente und rechnet eigenständig. Das Skript bindest du trotzdem nur einmal ein.
Vergib in diesem Fall je Element eine eigene id, damit du sie später per JavaScript auseinanderhalten kannst, und verweise mit price-mount & Co. auf unterschiedliche Ziele.
Einstellungen als JSON
Wenn dein CMS viele Attribute am selben Element unhandlich macht, kannst du sie gebündelt angeben:
<div data-configento data-configento-config='{
"componentId": "10722",
"customer": "DEINE-KUNDEN-ID",
"token": "DEIN-TOKEN",
"cloudBaseUrl": "cloud.configento.app",
"taxRate": "19",
"uiLocale": "de_DE"
}'></div>
Achte auf die einfachen Anführungszeichen außen, damit die doppelten im JSON erhalten bleiben.
JavaScript-API
Für eigene Logik auf der Seite — etwa einen „Angebot anfordern"-Knopf im Seitendesign — stellt der Konfigurator eine kleine Schnittstelle unter window.Configento bereit:
<script>
Configento.ready.then(function () {
var konf = Configento.first();
// Auf jede Preisänderung reagieren
konf.on('price', function (p) {
console.log('Neuer Gesamtpreis:', p.total);
});
// Aktuelle Auswahl auslesen
console.log(konf.getSelections());
});
</script>
Configento.ready— ein Promise, das erfüllt ist, sobald die Konfiguratoren der Seite bereitstehen. Dein Code gehört hinein; davor gibt es nichts abzufragen.Configento.first()— der erste Konfigurator der Seite. Bei mehreren:Configento.forElement('#meine-id').on('change', …)— jede Änderung der Auswahl.on('price', …)— jede Preisänderung, mit Gesamtpreis und Differenz zum Vorwert.getSelections(),getState(),getPriceBreakdown()— Auswahl, Gesamtzustand und Preisaufschlüsselung auslesen.getSummary()— die Zusammenfassung als HTML, z. B. für ein eigenes Formular.finalize()— schließt die Konfiguration ab und liefert das Ergebnis zurück; damit speicherst du sie in deinem eigenen Prozess.
Schritt 5: Snippet einbinden
Füge das Snippet an der gewünschten Stelle in deine Website ein:
- WordPress — HTML-Block im Gutenberg-Editor
- TYPO3 — HTML-Element
- Jimdo — Widget „Eigener HTML-Code"
- Sonstige — direkt in den Quellcode der Seite
Manche CMS-Editoren entfernen <script>-Tags aus normalen Textblöcken. Nutze deshalb immer den ausdrücklichen HTML-/Code-Block, nicht den Fließtext-Editor.
Schritt 6: Testen
Öffne die Seite im Browser und prüfe, ob der Konfigurator lädt. Im Backend kannst du unter Bearbeiten → Vorschau ebenfalls testen — die Vorschau setzt eine aktive HTML5-Integration voraus.
Bei Problemen:
| Symptom | Ursache |
|---|---|
| Konfigurator bleibt leer, Meldung „Requesting host not authorized" | Domain nicht unter Einstellungen → Domänen eingetragen (auch die Staging-Domain!) |
| Gar nichts passiert, kein Kasten | <script>-Tag vom CMS entfernt — HTML-Block statt Textblock verwenden |
| „Komponente konnte nicht geladen werden" | YOUR_TEMPLATE_ID nicht ersetzt, oder die Komponente ist noch nicht veröffentlicht |
| Konfigurator da, aber kein Preis zu sehen | data-configento-price-mount fehlt — siehe „Preis und Zusammenfassung platzieren" |
| Preis erscheint nicht an der gewünschten Stelle | Das Element mit der im Selektor genannten id fehlt oder steht erst nach dem Konfigurator im HTML |
| Sprachauswahl erscheint nicht | Die Komponente führt nur eine Sprache, oder es wurde bereits in dieser Sitzung gewählt |
Das ältere Snippet
Einbindungen, die mit _configentoSettings und html5.js arbeiten, stammen aus der Vorgängerversion und laufen unverändert weiter — du musst nichts überstürzt umstellen.
Neue Einbindungen solltest du aber mit dem oben gezeigten Snippet aufbauen. Nur dort gibt es die neueren Funktionen wie die Sprachauswahl, die eigenen Platzierungen für Preis und Produktbild sowie die JavaScript-Schnittstelle. Auch einzelne Merkmalstypen funktionieren ausschließlich im neuen Konfigurator; die Komponenten-Einstellungen weisen im Backend darauf hin.
Zum Umstellen tauschst du das alte Snippet komplett gegen das neue — die beiden Varianten lassen sich nicht mischen. Kunden-ID und Token bleiben dieselben.