This commit is contained in:
team3
2026-07-29 15:19:41 +02:00
parent 2e86d682eb
commit 5d42b4cfc5
155 changed files with 14482 additions and 1736 deletions

View File

@@ -0,0 +1,537 @@
{
"abdeckung": {
"einbinden:VariantConfiguratorPlugin": {
"abdruck": "823481507a44729d",
"funktion": "Konfigurationsdaten bereitstellen",
"trug": "5fbc8363b7cffe59"
},
"einbinden:erweitert @Storefront/storefront/component/buy-widget/configurator.html.twig": {
"abdruck": "c6d031d6bc598089",
"funktion": "Konfigurator aktivieren",
"trug": "6cf5a2b08ce2371a"
},
"einbinden:override sw-product-detail-variants": {
"abdruck": "2fcf518e7333458a",
"funktion": "",
"trug": ""
},
"einbinden:register mto-vc-variants-card": {
"abdruck": "c472feadaac5ac71",
"funktion": "",
"trug": ""
},
"hoeren:[data-mto-vc-gallery-next].click": {
"abdruck": "c402ad6f114e8c3d",
"funktion": "Galerie blättern",
"trug": "bacf45ebf9dd77b8"
},
"hoeren:[data-mto-vc-gallery-prev].click": {
"abdruck": "f50d4f7effc60a06",
"funktion": "Galerie blättern",
"trug": "bacf45ebf9dd77b8"
},
"hoeren:[data-mto-vc-lightbox-close].click": {
"abdruck": "89a22850af7694bb",
"funktion": "Galerie blättern",
"trug": "bacf45ebf9dd77b8"
},
"hoeren:document.keydown": {
"abdruck": "7c018ebbfa346bee",
"funktion": "Schritt öffnen",
"trug": "efe9634e3080c073"
},
"hoeren:el.click": {
"abdruck": "6a423a062267755c",
"funktion": "Nächsten Schritt anzeigen",
"trug": "f6b276e3fedf287d"
},
"hoeren:info.click": {
"abdruck": "7a5a70dfb792bf19",
"funktion": "Optionsdetail öffnen",
"trug": "39fed29af6734cd4"
},
"hoeren:info.keydown": {
"abdruck": "409cecf6fb3bbb4a",
"funktion": "Optionsdetail öffnen",
"trug": "39fed29af6734cd4"
},
"hoeren:lightboxSelect.click": {
"abdruck": "9add2d2c77b440b5",
"funktion": "Ansicht schließen",
"trug": "24d52cc6d249d4f5"
},
"hoeren:next.click": {
"abdruck": "d5b0cdcce40afcff",
"funktion": "Konfigurator schließen",
"trug": "1cc1a6b5fc943e03"
},
"hoeren:prev.click": {
"abdruck": "6b8db8d885c0d6f8",
"funktion": "Konfigurator schließen",
"trug": "1cc1a6b5fc943e03"
},
"hoeren:row.click": {
"abdruck": "b4ec6f63c613c35f",
"funktion": "Option wählen",
"trug": "80df89cf0c129387"
},
"hoeren:thumb.click": {
"abdruck": "b4aa2111971f6886",
"funktion": "Bild wählen",
"trug": "0604a0a6875489b8"
},
"hoeren:trigger.click": {
"abdruck": "e219933925adc81a",
"funktion": "Schritt öffnen",
"trug": "efe9634e3080c073"
},
"reaktion:ProductPageLoadedEvent": {
"abdruck": "6f808b91c1a0c4f5",
"funktion": "Konfigurationsdaten bereitstellen",
"trug": "5fbc8363b7cffe59"
},
"route:get /mto-variant-configurator/resolve/{productId}": {
"abdruck": "b14355d6007564a1",
"funktion": "Konfigurationsdaten bereitstellen",
"trug": "5fbc8363b7cffe59"
}
},
"belege": {
"[\"auswahl-anstossen\", \"Gewählte Option anzeigen\"]": {
"abdruck": "626af3ee300b610a",
"beleg": "<span class=\"mto-vc-select-trigger-label\" data-mto-vc-trigger-label>\n {{ mtoVcSelected ? mtoVcSelected.translated.name : 'mto.variantConfigurator.choose'|trans }}\n </span>",
"datei": "src/Resources/views/storefront/component/buy-widget/configurator.html.twig"
},
"[\"auswahl-anstossen\", \"Hinweistext anzeigen\"]": {
"abdruck": "b9baf394ca99d4e6",
"beleg": "{% if mtoVcBubble != mtoVcBubbleKey and mtoVcBubble is not empty %}\n <p class=\"mto-vc-bubble\">{{ mtoVcBubble|sw_sanitize }}</p>\n {% endif %}",
"datei": "src/Resources/views/storefront/component/buy-widget/configurator.html.twig"
},
"[\"auswahl-anstossen\", \"Schrittnummer anzeigen\"]": {
"abdruck": "b9e4deada2c3a6f1",
"beleg": "<span class=\"mto-vc-step-badge\">{{ 'mto.variantConfigurator.step'|trans({ '%step%': mtoVcStep })|sw_sanitize }}</span>",
"datei": "src/Resources/views/storefront/component/buy-widget/configurator.html.twig"
},
"[\"beratung-anbieten\", \"Beratung erreichen\"]": {
"abdruck": "fa513f8d265ad713",
"beleg": "{% if ctaPhone is not empty %}\n <span class=\"mto-vc-support-icon\" aria-hidden=\"true\"></span>\n <a href=\"tel:{{ ctaPhone|replace({' ': '', '/': '', '-': '', '(': '', ')': ''}) }}\"\n class=\"mto-vc-support-phone\">{{ ctaPhone|sw_sanitize }}</a>\n {% endif %}",
"datei": "src/Resources/views/storefront/component/buy-widget/mto-variant-configurator-modal.html.twig"
},
"[\"beratung-anbieten\", \"Optionsübersicht öffnen\"]": {
"abdruck": "8aba7fb9bf50281b",
"beleg": "{% if pdfUrl %}\n <a href=\"{{ pdfUrl }}\" target=\"_blank\" rel=\"noopener\"\n class=\"mto-vc-btn is-outline mto-vc-all-options\">\n {{ 'mto.variantConfigurator.allOptions'|trans|sw_sanitize }}\n </a>\n {% else %}\n <span class=\"mto-vc-actions-spacer\" aria-hidden=\"true\"></span>\n {% endif %}",
"datei": "src/Resources/views/storefront/component/buy-widget/mto-variant-configurator-modal.html.twig"
},
"[\"beratung-anbieten\", \"Vertrauen zeigen\"]": {
"abdruck": "5b204dff7de6f96d",
"beleg": "{% if trustLogo %}\n <img src=\"{{ trustLogo }}\" alt=\"\" class=\"mto-vc-trust-logo\">\n{% endif %}",
"datei": "src/Resources/views/storefront/component/buy-widget/mto-variant-configurator-modal.html.twig"
},
"[\"layout-zuweisen\", \"Konfigurator aktivieren\"]": {
"abdruck": "60a65511f06ae7fe",
"beleg": "<sw-switch-field\n v-model:value=\"configuratorActive\"\n class=\"mto-vc-variants-card__active\"\n :disabled=\"!editable\"\n :label=\"$tc('mto-variant-configurator.card.activeLabel')\"\n :help-text=\"$tc('mto-variant-configurator.card.activeHelp')\"\n />",
"datei": "src/Resources/app/administration/src/component/mto-vc-variants-card/mto-vc-variants-card.html.twig"
},
"[\"layout-zuweisen\", \"Optionsübersicht hinterlegen\"]": {
"abdruck": "97b421cf540a6cc2",
"beleg": "{% if pdfUrl %}\n <a href=\"{{ pdfUrl }}\" target=\"_blank\" rel=\"noopener\"\n class=\"mto-vc-btn is-outline mto-vc-all-options\">\n {{ 'mto.variantConfigurator.allOptions'|trans|sw_sanitize }}\n </a>\n {% else %}\n <span class=\"mto-vc-actions-spacer\" aria-hidden=\"true\"></span>\n {% endif %}",
"datei": "src/Resources/views/storefront/component/buy-widget/mto-variant-configurator-modal.html.twig"
},
"[\"layout-zuweisen\", \"Trust-Logo hinterlegen\"]": {
"abdruck": "1954311a4c3a9cc1",
"beleg": "$mediaId = $this->systemConfigService->get(\n MtoVariantConfigurator::CONFIG_TRUST_LOGO,\n $salesChannelId,\n );",
"datei": "src/Core/Content/Product/VariantResolveService.php"
},
"[\"option-ansehen\", \"Ansicht schließen\"]": {
"abdruck": "6eac493d9a481e30",
"beleg": "if (!this._nodes.lightbox.hidden) {\n this._closeLightbox();\n } else {\n this._close();\n }",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"option-ansehen\", \"Option aus Ansicht wählen\"]": {
"abdruck": "b4223f8cf3e2456e",
"beleg": "this._nodes.lightboxSelect?.addEventListener('click', () => {\n if (this._lightboxOption) {\n this._selectOption(this.options.groups[this._currentStep], this._lightboxOption.id);\n }\n this._closeLightbox();\n });",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"option-ansehen\", \"Optionsdetail öffnen\"]": {
"abdruck": "59faab581e0fac7f",
"beleg": "info.addEventListener('click', open);\n info.addEventListener('keydown', (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n open(event);\n }\n });",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"schritt-zeigen\", \"Eigenschaft benennen\"]": {
"abdruck": "dd54064a67689e2c",
"beleg": "this._nodes.title.textContent = group.name;",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"schritt-zeigen\", \"Optionen auflisten\"]": {
"abdruck": "a71af321f056608d",
"beleg": "if (option.media) {\n const visual = document.createElement('span');\n visual.className = 'mto-vc-option-media';\n const img = document.createElement('img');\n img.src = option.media;\n img.alt = '';\n img.loading = 'lazy';\n visual.appendChild(img);\n row.appendChild(visual);\n } else if (option.color) {\n const visual = document.createElement('span');\n visual.className = 'mto-vc-option-swatch';\n visual.style.backgroundColor = option.color;\n row.appendChild(visual);\n } else {\n row.classList.add('has-no-visual');\n }",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"schritt-zeigen\", \"Schrittstand anzeigen\"]": {
"abdruck": "aa7b8888103f8bd0",
"beleg": "this._nodes.counter.textContent = (this._snippets.stepCount || '__step__ / __total__')\n .replace('__step__', String(step))\n .replace('__total__', String(total));\n this._nodes.progress.style.width = `${(step / total) * 100}%`;",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"varianten-waehlen\", \"Auswahl übernehmen\"]": {
"abdruck": "21ccf5bc0286c95c",
"beleg": "if (optionId && select.value !== optionId) {\n select.value = optionId;\n lastChanged = select;\n }",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"varianten-waehlen\", \"Konfigurationsdaten bereitstellen\"]": {
"abdruck": "e6e5848381fce5aa",
"beleg": "$page->assign([",
"datei": "src/Subscriber/ProductPageSubscriber.php"
},
"[\"varianten-waehlen\", \"Konfigurator schließen\"]": {
"abdruck": "1b7d4aea18cdb896",
"beleg": "_close() {\n this._closeLightbox();\n this._modalEl.hidden = true;\n document.body.classList.remove('mto-vc-modal-open');\n document.removeEventListener('keydown', this._keydownHandler);\n this._lastFocus?.focus();\n }",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"varianten-waehlen\", \"Nächsten Schritt anzeigen\"]": {
"abdruck": "3deee97595984a3e",
"beleg": "const isLast = this._nextUsableStep(this._currentStep + 1, 1) === null;\n this._nodes.next.textContent = isLast\n ? this._nodes.next.dataset.finishLabel\n : this._nodes.next.dataset.nextLabel;",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"varianten-waehlen\", \"Option wählen\"]": {
"abdruck": "4b9f7dc844cf7aac",
"beleg": "this._selected[group.id] = optionId;",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"varianten-waehlen\", \"Schritt öffnen\"]": {
"abdruck": "94b3aa8d50c53fc8",
"beleg": "this._triggers.forEach((trigger) => {\n trigger.addEventListener('click', (event) => {\n event.preventDefault();\n this._open(parseInt(trigger.dataset.mtoVcStepIndex, 10));\n });\n });",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"varianten-waehlen\", \"Vorherigen Schritt anzeigen\"]": {
"abdruck": "df5e60fe148da5e6",
"beleg": "this._nodes.prev.disabled = this._nextUsableStep(this._currentStep - 1, -1) === null;",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"vorschau-zeigen\", \"Bild wählen\"]": {
"abdruck": "ab1e74251036541a",
"beleg": "thumb.className = `mto-vc-thumb${index === this._galleryIndex ? ' is-active' : ''}`;",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"vorschau-zeigen\", \"Galerie blättern\"]": {
"abdruck": "6b28a5866629b878",
"beleg": "_stepGallery(delta) {\n if (this._gallery.length < 2) {\n return;\n }\n const count = this._gallery.length;\n this._galleryIndex = (this._galleryIndex + delta + count) % count;\n this._renderGallery();\n }",
"datei": "src/Resources/app/storefront/src/js/variant-configurator.plugin.js"
},
"[\"vorschau-zeigen\", \"Vorschau laden\"]": {
"abdruck": "413024bc244f7770",
"beleg": "return new JsonResponse($this->variantResolveService->resolveVariant($variantId, $context));",
"datei": "src/Storefront/Controller/VariantConfiguratorController.php"
}
},
"ohne_code": {},
"ohne_karte": {},
"paare": {
"[\"[\\\"auswahl-anstossen\\\", \\\"Gewählte Option anzeigen\\\"]\", \"[\\\"auswahl-anstossen\\\", \\\"Hinweistext anzeigen\\\"]\"]": {
"abdruck": "450345e8a27f5695",
"gleich": false
},
"[\"[\\\"auswahl-anstossen\\\", \\\"Gewählte Option anzeigen\\\"]\", \"[\\\"auswahl-anstossen\\\", \\\"Schrittnummer anzeigen\\\"]\"]": {
"abdruck": "60008fdb6d69349b",
"gleich": false
},
"[\"[\\\"auswahl-anstossen\\\", \\\"Hinweistext anzeigen\\\"]\", \"[\\\"auswahl-anstossen\\\", \\\"Schrittnummer anzeigen\\\"]\"]": {
"abdruck": "3eaf19062d6d53a3",
"gleich": false
},
"[\"[\\\"beratung-anbieten\\\", \\\"Beratung erreichen\\\"]\", \"[\\\"beratung-anbieten\\\", \\\"Optionsübersicht öffnen\\\"]\"]": {
"abdruck": "9d3da3bf8c127ae1",
"gleich": false
},
"[\"[\\\"beratung-anbieten\\\", \\\"Beratung erreichen\\\"]\", \"[\\\"beratung-anbieten\\\", \\\"Vertrauen zeigen\\\"]\"]": {
"abdruck": "2c3c62cb4b935c56",
"gleich": false
},
"[\"[\\\"beratung-anbieten\\\", \\\"Optionsübersicht öffnen\\\"]\", \"[\\\"beratung-anbieten\\\", \\\"Vertrauen zeigen\\\"]\"]": {
"abdruck": "bf601d5dc7c6c507",
"gleich": false
},
"[\"[\\\"beratung-anbieten\\\", \\\"Optionsübersicht öffnen\\\"]\", \"[\\\"layout-zuweisen\\\", \\\"Optionsübersicht hinterlegen\\\"]\"]": {
"abdruck": "bc9dc09e54b78a75",
"gleich": false
},
"[\"[\\\"layout-zuweisen\\\", \\\"Konfigurator aktivieren\\\"]\", \"[\\\"layout-zuweisen\\\", \\\"Optionsbild am Datensatz pflegen\\\"]\"]": {
"abdruck": "5a4d802d668ddd55",
"gleich": false
},
"[\"[\\\"layout-zuweisen\\\", \\\"Konfigurator aktivieren\\\"]\", \"[\\\"layout-zuweisen\\\", \\\"Optionsübersicht hinterlegen\\\"]\"]": {
"abdruck": "eeed78a6284711f1",
"gleich": false
},
"[\"[\\\"layout-zuweisen\\\", \\\"Konfigurator aktivieren\\\"]\", \"[\\\"layout-zuweisen\\\", \\\"Trust-Logo hinterlegen\\\"]\"]": {
"abdruck": "b4944e5aa4df871a",
"gleich": false
},
"[\"[\\\"layout-zuweisen\\\", \\\"Optionsbild am Datensatz pflegen\\\"]\", \"[\\\"layout-zuweisen\\\", \\\"Optionsübersicht hinterlegen\\\"]\"]": {
"abdruck": "b91bdff82a120a8d",
"gleich": false
},
"[\"[\\\"layout-zuweisen\\\", \\\"Optionsbild am Datensatz pflegen\\\"]\", \"[\\\"layout-zuweisen\\\", \\\"Trust-Logo hinterlegen\\\"]\"]": {
"abdruck": "97268714e2b5d989",
"gleich": false
},
"[\"[\\\"layout-zuweisen\\\", \\\"Optionsübersicht hinterlegen\\\"]\", \"[\\\"layout-zuweisen\\\", \\\"Trust-Logo hinterlegen\\\"]\"]": {
"abdruck": "b52cedd4106ee837",
"gleich": false
},
"[\"[\\\"option-ansehen\\\", \\\"Ansicht schließen\\\"]\", \"[\\\"option-ansehen\\\", \\\"Option aus Ansicht wählen\\\"]\"]": {
"abdruck": "caa5ce4c5ff31774",
"gleich": false
},
"[\"[\\\"option-ansehen\\\", \\\"Ansicht schließen\\\"]\", \"[\\\"option-ansehen\\\", \\\"Optionsdetail öffnen\\\"]\"]": {
"abdruck": "462a46d7a2030874",
"gleich": false
},
"[\"[\\\"option-ansehen\\\", \\\"Option aus Ansicht wählen\\\"]\", \"[\\\"option-ansehen\\\", \\\"Optionsdetail öffnen\\\"]\"]": {
"abdruck": "8f695dfd90060204",
"gleich": false
},
"[\"[\\\"schritt-zeigen\\\", \\\"Eigenschaft benennen\\\"]\", \"[\\\"schritt-zeigen\\\", \\\"Optionen auflisten\\\"]\"]": {
"abdruck": "5372df6b482e9a5c",
"gleich": false
},
"[\"[\\\"schritt-zeigen\\\", \\\"Eigenschaft benennen\\\"]\", \"[\\\"schritt-zeigen\\\", \\\"Schrittstand anzeigen\\\"]\"]": {
"abdruck": "732d371c2135b53f",
"gleich": false
},
"[\"[\\\"schritt-zeigen\\\", \\\"Optionen auflisten\\\"]\", \"[\\\"schritt-zeigen\\\", \\\"Schrittstand anzeigen\\\"]\"]": {
"abdruck": "590d6974e948c69c",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Auswahl übernehmen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Konfigurationsdaten bereitstellen\\\"]\"]": {
"abdruck": "34e23fca918e5dc0",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Auswahl übernehmen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Konfigurator schließen\\\"]\"]": {
"abdruck": "eb521941a5dc979a",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Auswahl übernehmen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Nächsten Schritt anzeigen\\\"]\"]": {
"abdruck": "271109c8b42cf5d5",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Auswahl übernehmen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Option wählen\\\"]\"]": {
"abdruck": "618d3c213492555a",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Auswahl übernehmen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Schritt öffnen\\\"]\"]": {
"abdruck": "b45252ce7cc39ed9",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Auswahl übernehmen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Vorherigen Schritt anzeigen\\\"]\"]": {
"abdruck": "d7ade9bdd7d0c66e",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurationsdaten bereitstellen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Konfigurator schließen\\\"]\"]": {
"abdruck": "97ceded85ca2035c",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurationsdaten bereitstellen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Nächsten Schritt anzeigen\\\"]\"]": {
"abdruck": "ba83ab596b72af22",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurationsdaten bereitstellen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Option wählen\\\"]\"]": {
"abdruck": "6f23248b5fbd7be4",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurationsdaten bereitstellen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Schritt öffnen\\\"]\"]": {
"abdruck": "7350e93a2a368ac1",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurationsdaten bereitstellen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Vorherigen Schritt anzeigen\\\"]\"]": {
"abdruck": "50753ef9f3d5c8b5",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurator schließen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Nächsten Schritt anzeigen\\\"]\"]": {
"abdruck": "b49e65e1c60b5307",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurator schließen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Option wählen\\\"]\"]": {
"abdruck": "b165f28b36fc3637",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurator schließen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Schritt öffnen\\\"]\"]": {
"abdruck": "0bf509fed71f1c25",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Konfigurator schließen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Vorherigen Schritt anzeigen\\\"]\"]": {
"abdruck": "de5acdbf92511e14",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Nächsten Schritt anzeigen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Option wählen\\\"]\"]": {
"abdruck": "7c9a06867c701267",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Nächsten Schritt anzeigen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Schritt öffnen\\\"]\"]": {
"abdruck": "f45378da83876bae",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Nächsten Schritt anzeigen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Vorherigen Schritt anzeigen\\\"]\"]": {
"abdruck": "9fc4c9cf8ae1d7fb",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Option wählen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Schritt öffnen\\\"]\"]": {
"abdruck": "a71f8b8b92d1025c",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Option wählen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Vorherigen Schritt anzeigen\\\"]\"]": {
"abdruck": "e3270a7176c63620",
"gleich": false
},
"[\"[\\\"varianten-waehlen\\\", \\\"Schritt öffnen\\\"]\", \"[\\\"varianten-waehlen\\\", \\\"Vorherigen Schritt anzeigen\\\"]\"]": {
"abdruck": "44e775b8e8b106d1",
"gleich": false
},
"[\"[\\\"vorschau-zeigen\\\", \\\"Bild wählen\\\"]\", \"[\\\"vorschau-zeigen\\\", \\\"Galerie blättern\\\"]\"]": {
"abdruck": "19851d2901c309a1",
"gleich": false
},
"[\"[\\\"vorschau-zeigen\\\", \\\"Bild wählen\\\"]\", \"[\\\"vorschau-zeigen\\\", \\\"Vorschau laden\\\"]\"]": {
"abdruck": "508415e6500f9fca",
"gleich": false
},
"[\"[\\\"vorschau-zeigen\\\", \\\"Galerie blättern\\\"]\", \"[\\\"vorschau-zeigen\\\", \\\"Vorschau laden\\\"]\"]": {
"abdruck": "86aa1f412d5a5dcd",
"gleich": false
}
},
"stil": {
"[\"auswahl-anstossen\", \"\"]": {
"abdruck": "aeec25973dafe92f",
"probleme": []
},
"[\"auswahl-anstossen\", \"Gewählte Option anzeigen\"]": {
"abdruck": "59058982f7989af8",
"probleme": []
},
"[\"auswahl-anstossen\", \"Hinweistext anzeigen\"]": {
"abdruck": "b3568e0a2585d71c",
"probleme": []
},
"[\"auswahl-anstossen\", \"Schrittnummer anzeigen\"]": {
"abdruck": "117d58f0d4b21973",
"probleme": []
},
"[\"beratung-anbieten\", \"\"]": {
"abdruck": "4b0267b165360857",
"probleme": []
},
"[\"beratung-anbieten\", \"Beratung erreichen\"]": {
"abdruck": "cfdb65d682c3e068",
"probleme": []
},
"[\"beratung-anbieten\", \"Optionsübersicht öffnen\"]": {
"abdruck": "28d5587c78199c54",
"probleme": []
},
"[\"beratung-anbieten\", \"Vertrauen zeigen\"]": {
"abdruck": "8c00dec8d3ebf751",
"probleme": []
},
"[\"layout-zuweisen\", \"\"]": {
"abdruck": "1e0d2ca5296aabea",
"probleme": []
},
"[\"layout-zuweisen\", \"Konfigurator aktivieren\"]": {
"abdruck": "dca9bbf7361f5520",
"probleme": []
},
"[\"layout-zuweisen\", \"Optionsbild am Datensatz pflegen\"]": {
"abdruck": "cc0701aafd02ac3a",
"probleme": []
},
"[\"layout-zuweisen\", \"Optionsübersicht hinterlegen\"]": {
"abdruck": "de6c0e3e80d47496",
"probleme": []
},
"[\"layout-zuweisen\", \"Trust-Logo hinterlegen\"]": {
"abdruck": "ebd1a72ece157e69",
"probleme": []
},
"[\"option-ansehen\", \"\"]": {
"abdruck": "ace46c77101e26b3",
"probleme": []
},
"[\"option-ansehen\", \"Ansicht schließen\"]": {
"abdruck": "6bdaf5e60fb3baa9",
"probleme": []
},
"[\"option-ansehen\", \"Option aus Ansicht wählen\"]": {
"abdruck": "cc10af5dda4a7857",
"probleme": []
},
"[\"option-ansehen\", \"Optionsdetail öffnen\"]": {
"abdruck": "e00d07ce7b75d8fc",
"probleme": []
},
"[\"schritt-zeigen\", \"\"]": {
"abdruck": "f0d53ef421968759",
"probleme": []
},
"[\"schritt-zeigen\", \"Eigenschaft benennen\"]": {
"abdruck": "ec4828e2e9197083",
"probleme": []
},
"[\"schritt-zeigen\", \"Optionen auflisten\"]": {
"abdruck": "d8e6daed0f36098f",
"probleme": []
},
"[\"schritt-zeigen\", \"Schrittstand anzeigen\"]": {
"abdruck": "42a1c7f94c30f72d",
"probleme": []
},
"[\"varianten-waehlen\", \"\"]": {
"abdruck": "0835908894fa892c",
"probleme": []
},
"[\"varianten-waehlen\", \"Auswahl übernehmen\"]": {
"abdruck": "6683956c63370244",
"probleme": []
},
"[\"varianten-waehlen\", \"Konfigurationsdaten bereitstellen\"]": {
"abdruck": "498f3141e86f8db0",
"probleme": []
},
"[\"varianten-waehlen\", \"Konfigurator schließen\"]": {
"abdruck": "866918b327061449",
"probleme": []
},
"[\"varianten-waehlen\", \"Nächsten Schritt anzeigen\"]": {
"abdruck": "8d810a760dfec037",
"probleme": []
},
"[\"varianten-waehlen\", \"Option wählen\"]": {
"abdruck": "ac4eae399ac3a15e",
"probleme": []
},
"[\"varianten-waehlen\", \"Schritt öffnen\"]": {
"abdruck": "40f795456747214e",
"probleme": []
},
"[\"varianten-waehlen\", \"Vorherigen Schritt anzeigen\"]": {
"abdruck": "a63a26a8baea9c07",
"probleme": []
},
"[\"vorschau-zeigen\", \"\"]": {
"abdruck": "52976631fd09993a",
"probleme": []
},
"[\"vorschau-zeigen\", \"Bild wählen\"]": {
"abdruck": "a3e980ef7678a446",
"probleme": []
},
"[\"vorschau-zeigen\", \"Galerie blättern\"]": {
"abdruck": "47ccb441120c1470",
"probleme": []
},
"[\"vorschau-zeigen\", \"Vorschau laden\"]": {
"abdruck": "29e5951f170dba26",
"probleme": []
}
},
"verworfen": {}
}

View File

@@ -0,0 +1,122 @@
[
{
"titel": "„Lightbox“ geändert",
"dateien": {
"lightbox": "<!-- titel -->\nLightbox\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nZeigt eine vergrößerte Ansicht der Optionsabbildung mit ihrem Namen\n----------------------------------------\n<!-- regeln -->\n- lightboxSelect bestätigt Auswahl und schließt\n- Escape und x-Icon schließen\n- Tab und Shift-Tab zirkulieren im Fokusring\n- Geschlossen kehrt Fokus zum Auslöser zurück\n- hidden-Attribut entfernt aus dem Barrierefreiheitsbaum\n----------------------------------------\n<!-- funktion -->\nAuswahl bestätigen\n<!-- ziel -->\nWählt eine Option im aktuellen Schritt und berechnet die gültigen Folgeschritte neu\n<!-- regeln -->\n- Bleibt im aktuellen Schritt\n- Invalidiert Folgeschritte mit ungültigen Kombinationen\n- Setzt Fokus auf die gewählte Option\n- Aktualisiert Galerie und Preis\n<!-- testen -->\n- Lightbox mit Option öffnen\n- LMB auf Auswahl bestätigen\n- Option ist markiert\n- Lightbox geschlossen\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- regeln -->\n- Schließt die Lightbox, ohne den Konfigurator zu schließen\n- x-Icon oder Escape beenden die Lightbox\n- Fokus kehrt zum Auslöser in der Optionsliste zurück\n<!-- testen -->\n- Option mit Bildauswahl öffnet die Lightbox\n- Escape drücken\n- Lightbox geschlossen, Modal offen\n----------------------------------------\n<!-- funktion -->\nLightbox schließen\n<!-- ziel -->\nEntfernt die vergrößerte Produktansicht wieder\n<!-- regeln -->\n- x-Icon oder Escape schließt\n- Zurück zum Dialog gibt Focus\n<!-- testen -->\n- Modal öffnen\n- Option mit Bild wählen\n- Leinwand-Icon klicken\n- Lightbox sichtbar\n- Escape drücken\n- Lightbox geschlossen, Dialog fokussiert\n----------------------------------------\n<!-- funktion -->\nLightbox öffnen\n<!-- ziel -->\nZeigt das Produktfoto einer Variante option in Originalgröße\n<!-- regeln -->\n- lightboxImage zeigt option.media\n- lightboxCaption zeigt option.name\n- lightboxSelect erhält Fokus\n<!-- testen -->\n- Modal öffnen\n- Auf Option mit Bild klicken\n- Info-Button der Option klicken\n- Lightbox zeigt das Foto in Originalgröße\n----------------------------------------\n<!-- funktion -->\nTastatur verwenden\n<!-- ziel -->\nBedient Modal und Lightbox per Tastatur\n<!-- regeln -->\n- Escape schließt Lightbox oder Modal\n- Tab zirkuliert im Fokusring vorwärts\n- Shift-Tab zirkuliert im Fokusring rückwärts\n<!-- testen -->\n- Modal öffnen\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen\n- Escape drücken\n- Modal geschlossen\n"
}
},
{
"titel": "„Konfigurator“ geändert",
"dateien": {
"konfigurator": "<!-- titel -->\nKonfigurator\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nFührt durch Variantenkonfiguration in Einzelschritten mit Live-Vorschau\n----------------------------------------\n<!-- regeln -->\n- Aktiv nur wenn Produkt mto_variant_configurator_active gesetzt hat\n- Optionen-Bilder nur bis zwei Schritte\n- Galerie und Preis aktualisieren live ohne Seitenreload\n- Body erhält CSS-Klasse mto-vc-modal-open solange Modal offen\n- Escape schließt Modal\n- Schließen stellt Fokus auf vorheriges Element\n- Registriert als mto-vc-variants-card in swProductDetail\n- Einstellungen in customFields des Produkts gespeichert\n- Falls inaktiv: Fallback auf Standard-Konfigurator von Shopware\n- Natives Select pro Gruppe im DOM\n- Schritte ohne gültige Optionen werden beim Navigieren übersprungen\n- Ungültige Kombinationen für Folgeschritte werden beim Wählen verworfen\n- Unbesuchte Schritte werden beim Bestätigen mit erster gültiger Option aufgefüllt\n- Deaktivierte Optionen sind nicht auswählbar\n- Gallery-Container erhält CSS-Klasse has-no-gallery wenn keine Bilder vorhanden\n- Schließen bei Lightbox: fokus auf Lightbox-Auswahl-Button\n----------------------------------------\n<!-- funktion -->\nGeführte Konfiguration aktivieren\n<!-- ziel -->\nFührt Kunden schrittweise durch die Variantenauswahl mit Hinweisen und Modal\n<!-- regeln -->\n- Aktiviert bei Produkten mit aktivem Konfigurator-Layout\n- Zeigt jeden Konfigurationsschritt mit Beschriftung\n- Blendentext je Gruppe über Modal aus\n- Inkrementelle Variantenauflösung über resolveUrl\n<!-- testen -->\n- Produktseite mit aktivem Konfigurator öffnen\n- LMB auf ersten Konfigurationsschritt\n- Option im Modal wählen\n- Modal schließt und nächster Schritt markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurationsdaten abrufen\n<!-- ziel -->\nLiefert Variantendaten für eine Live-Aktualisierung im Konfigurator.\n<!-- regeln -->\n- GET /mto-variant-configurator/resolve/{productId}\n- Query-Parameter switched enthält die aktuell gewechselte Gruppe\n- Query-Parameter options enthält ein JSON-Array gewählter Optionen\n- Ungültiges JSON führt zu leerem options-Array\n- VariantNotFoundException hält productId als Fallback\n- Rückgabe enthält variantId, gallery media und Preis\n- Kein HTTP-Cache wegen kundenspezifischer Preise\n<!-- testen -->\n- GET /mto-variant-configurator/resolve/STRG-PRODUKT-ID?options=[{\"optionId\":\"farbe\",\"option\":\"rot\"}]\n- Antwort enthält variantId\n- Antwort enthält gallery media\n- Antwort enthält Preis\n----------------------------------------\n<!-- funktion -->\nKonfigurator öffnen\n<!-- ziel -->\nÖffnet den Konfigurator ab einem gewählten Schritt\n<!-- regeln -->\n- Erster Aufruf zeigt das Modal\n- Weiterer Aufruf wechselt den Schritt\n- Fokus vorheriges Element wird gespeichert\n- Body erhält CSS-Klasse mto-vc-modal-open\n- Escape-Schließen wird registriert\n- Galerie und Preis werden aktualisiert\n- Fokus springt auf den Next-Button\n<!-- testen -->\n- LMB auf Konfigurator-Trigger klicken\n- Modal erscheint im gewählten Schritt\n----------------------------------------\n<!-- funktion -->\nKonfigurator-Karte registrieren\n<!-- ziel -->\nMacht die Einstellungen des Varianten-Konfigurators auf der Produktdetail-Seite verfügbar\n<!-- regeln -->\n- Registriert als mto-vc-variants-card\n- Nutzt Produkt aus swProductDetail\n- Speichert Einstellungen in customFields des Produkts\n<!-- testen -->\n- Produktdetail-Seite eines Produkts öffnen\n- Tab Variants aufrufen\n- Registrierte mto-vc-variants-card wird angezeigt\n----------------------------------------\n<!-- funktion -->\nPlugin registrieren\n<!-- ziel -->\nMacht das Plugin für Elemente mit dem Selektor verfügbar\n<!-- regeln -->\n- Registriert unter VariantConfiguratorPlugin\n- Nutzt window.PluginManager\n- Bindet an [data-mto-variant-configurator]\n<!-- testen -->\n- PluginManager.register aufrufen\n- Element mit data-mto-variant-configurator erstellen\n- Plugin auf Element angewendet\n"
}
},
{
"titel": "„Konfigurator“ geändert",
"dateien": {
"konfigurator": "<!-- titel -->\nKonfigurator\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nFührt durch Variantenkonfiguration in Einzelschritten mit Live-Vorschau\n----------------------------------------\n<!-- regeln -->\n- Aktiv nur wenn Produkt mto_variant_configurator_active gesetzt hat\n- Optionen-Bilder nur bis zwei Schritte\n- Galerie und Preis aktualisieren live ohne Seitenreload\n- Body erhält CSS-Klasse mto-vc-modal-open solange Modal offen\n- Escape schließt Modal\n- Schließen stellt Fokus auf vorheriges Element\n- Registriert als mto-vc-variants-card in swProductDetail\n- Einstellungen in customFields des Produkts gespeichert\n- Falls inaktiv: Fallback auf Standard-Konfigurator von Shopware\n- Natives Select pro Gruppe im DOM\n- Schritte ohne gültige Optionen werden beim Navigieren übersprungen\n- Ungültige Kombinationen für Folgeschritte werden beim Wählen verworfen\n- Unbesuchte Schritte werden beim Bestätigen mit erster gültiger Option aufgefüllt\n- Deaktivierte Optionen sind nicht auswählbar\n- Gallery-Container erhält CSS-Klasse has-no-gallery wenn keine Bilder vorhanden\n- Schließen bei Lightbox: fokus auf Lightbox-Auswahl-Button\n----------------------------------------\n<!-- funktion -->\nGeführte Konfiguration aktivieren\n<!-- ziel -->\nFührt Kunden schrittweise durch die Variantenauswahl mit Hinweisen und Modal\n<!-- regeln -->\n- Aktiviert bei Produkten mit aktivem Konfigurator-Layout\n- Zeigt jeden Konfigurationsschritt mit Beschriftung\n- Blendentext je Gruppe über Modal aus\n- Inkrementelle Variantenauflösung über resolveUrl\n<!-- testen -->\n- Produktseite mit aktivem Konfigurator öffnen\n- LMB auf ersten Konfigurationsschritt\n- Option im Modal wählen\n- Modal schließt und nächster Schritt markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurationsdaten abrufen\n<!-- ziel -->\nLiefert Variantendaten für eine Live-Aktualisierung im Konfigurator\n<!-- regeln -->\n- GET /mto-variant-configurator/resolve/{productId}\n- Query-Parameter switched enthält die aktuell gewechselte Gruppe\n- Query-Parameter options enthält ein JSON-Array gewählter Optionen\n- Ungültiges JSON führt zu leerem options-Array\n- VariantNotFoundException hält productId als Fallback\n- Rückgabe enthält variantId, gallery media und Preis\n- Kein HTTP-Cache wegen kundenspezifischer Preise\n<!-- testen -->\n- GET /mto-variant-configurator/resolve/STRG-PRODUKT-ID?options=[{\"optionId\":\"farbe\",\"option\":\"rot\"}]\n- Antwort enthält variantId\n- Antwort enthält gallery media\n- Antwort enthält Preis\n----------------------------------------\n<!-- funktion -->\nKonfigurator öffnen\n<!-- ziel -->\nÖffnet den Konfigurator ab einem gewählten Schritt\n<!-- regeln -->\n- Erster Aufruf zeigt das Modal\n- Weiterer Aufruf wechselt den Schritt\n- Fokus vorheriges Element wird gespeichert\n- Body erhält CSS-Klasse mto-vc-modal-open\n- Escape-Schließen wird registriert\n- Galerie und Preis werden aktualisiert\n- Fokus springt auf den Next-Button\n<!-- testen -->\n- LMB auf Konfigurator-Trigger klicken\n- Modal erscheint im gewählten Schritt\n----------------------------------------\n<!-- funktion -->\nKonfigurator-Karte registrieren\n<!-- ziel -->\nMacht die Einstellungen des Varianten-Konfigurators auf der Produktdetail-Seite verfügbar\n<!-- regeln -->\n- Registriert als mto-vc-variants-card\n- Nutzt Produkt aus swProductDetail\n- Speichert Einstellungen in customFields des Produkts\n<!-- testen -->\n- Produktdetail-Seite eines Produkts öffnen\n- Tab Variants aufrufen\n- Registrierte mto-vc-variants-card wird angezeigt\n----------------------------------------\n<!-- funktion -->\nPlugin registrieren\n<!-- ziel -->\nMacht das Plugin für Elemente mit dem Selektor verfügbar\n<!-- regeln -->\n- Registriert unter VariantConfiguratorPlugin\n- Nutzt window.PluginManager\n- Bindet an [data-mto-variant-configurator]\n<!-- testen -->\n- PluginManager.register aufrufen\n- Element mit data-mto-variant-configurator erstellen\n- Plugin auf Element angewendet\n"
}
},
{
"titel": "„Konfigurator“ geändert",
"dateien": {
"konfigurator": "<!-- titel -->\nKonfigurator\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nFührt durch Variantenkonfiguration in Einzelschritten mit Live-Vorschau\n----------------------------------------\n<!-- regeln -->\n- Aktiv nur wenn Produkt mto_variant_configurator_active gesetzt hat\n- Optionen-Bilder nur bis zwei Schritte\n- Galerie und Preis aktualisieren live ohne Seitenreload\n- Body erhält CSS-Klasse mto-vc-modal-open solange Modal offen\n- Escape schließt Modal\n- Schließen stellt Fokus auf vorheriges Element\n- Registriert als mto-vc-variants-card in swProductDetail\n- Einstellungen in customFields des Produkts gespeichert\n- Falls inaktiv: Fallback auf Standard-Konfigurator von Shopware\n- Natives Select pro Gruppe im DOM\n- Schritte ohne gültige Optionen werden beim Navigieren übersprungen\n- Ungültige Kombinationen für Folgeschritte werden beim Wählen verworfen\n- Unbesuchte Schritte werden beim Bestätigen mit erster gültiger Option aufgefüllt\n- Deaktivierte Optionen sind nicht auswählbar\n- Gallery-Container erhält CSS-Klasse has-no-gallery wenn keine Bilder vorhanden\n- Schließen bei Lightbox: fokus auf Lightbox-Auswahl-Button\n----------------------------------------\n<!-- funktion -->\nGeführte Konfiguration aktivieren\n<!-- ziel -->\nFührt Kunden schrittweise durch die Variantenauswahl mit Hinweisen und Modal\n<!-- regeln -->\n- Aktiviert bei Produkten mit aktivem Konfigurator-Layout\n- Zeigt jeden Konfigurationsschritt mit Beschriftung\n- Blendentext je Gruppe über Modal aus\n- Inkrementelle Variantenauflösung über resolveUrl\n<!-- testen -->\n- Produktseite mit aktivem Konfigurator öffnen\n- LMB auf ersten Konfigurationsschritt\n- Option im Modal wählen\n- Modal schließt und nächster Schritt markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurationsdaten abrufen\n<!-- ziel -->\nLiefert Variantendaten für eine Live-Aktualisierung im Konfigurator\n<!-- regeln -->\n- Endpoint mto-variant-configurator resolve\n- Query-Parameter switched enthält die aktuell gewechselte Gruppe\n- Query-Parameter options enthält ein JSON-Array gewählter Optionen\n- Ungültiges JSON führt zu leerem options-Array\n- VariantNotFoundException hält productId als Fallback\n- Rückgabe enthält variantId, gallery media und Preis\n- Kein HTTP-Cache wegen kundenspezifischer Preise\n<!-- testen -->\n- GET /mto-variant-configurator/resolve/STRG-PRODUKT-ID?options=[{\"optionId\":\"farbe\",\"option\":\"rot\"}]\n- Antwort enthält variantId\n- Antwort enthält gallery media\n- Antwort enthält Preis\n----------------------------------------\n<!-- funktion -->\nKonfigurator öffnen\n<!-- ziel -->\nÖffnet den Konfigurator ab einem gewählten Schritt\n<!-- regeln -->\n- Erster Aufruf zeigt das Modal\n- Weiterer Aufruf wechselt den Schritt\n- Fokus vorheriges Element wird gespeichert\n- Body erhält CSS-Klasse mto-vc-modal-open\n- Escape-Schließen wird registriert\n- Galerie und Preis werden aktualisiert\n- Fokus springt auf den Next-Button\n<!-- testen -->\n- LMB auf Konfigurator-Trigger klicken\n- Modal erscheint im gewählten Schritt\n----------------------------------------\n<!-- funktion -->\nKonfigurator-Karte registrieren\n<!-- ziel -->\nMacht die Einstellungen des Varianten-Konfigurators auf der Produktdetail-Seite verfügbar\n<!-- regeln -->\n- Registriert als mto-vc-variants-card\n- Nutzt Produkt aus swProductDetail\n- Speichert Einstellungen in customFields des Produkts\n<!-- testen -->\n- Produktdetail-Seite eines Produkts öffnen\n- Tab Variants aufrufen\n- Registrierte mto-vc-variants-card wird angezeigt\n----------------------------------------\n<!-- funktion -->\nPlugin registrieren\n<!-- ziel -->\nMacht das Plugin für Elemente mit dem Selektor verfügbar\n<!-- regeln -->\n- Registriert unter VariantConfiguratorPlugin\n- Nutzt window.PluginManager\n- Bindet an [data-mto-variant-configurator]\n<!-- testen -->\n- PluginManager.register aufrufen\n- Element mit data-mto-variant-configurator erstellen\n- Plugin auf Element angewendet\n"
}
},
{
"titel": "„Galerie“ geändert",
"dateien": {
"galerie": "<!-- titel -->\nGalerie\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nErmöglicht das Anzeigen und Durchblättern von Produktbildern im Konfigurator-Modal\n----------------------------------------\n<!-- regeln -->\n- Einzelne Galerie pro Modal\n- Navigiert zyklisch\n- Ein Bild deaktiviert Navigation\n- Hauptbild über thumbnails aktualisierbar\n----------------------------------------\n<!-- funktion -->\nGalerie nächste anzeigen\n<!-- ziel -->\nZeigt das nächste Bild der Galerie\n<!-- regeln -->\n- Mindestens 2 Bilder vorhanden\n- Zyklisch von letztem zu erstem Bild\n<!-- testen -->\n- Auf next-Button klicken\n- Nächstes Bild wird angezeigt\n----------------------------------------\n<!-- funktion -->\nGalerie rückwärts blättern\n<!-- ziel -->\nVorheriges Bild der Galerie anzeigen\n<!-- regeln -->\n- Nur mit mindestens zwei Bildern\n- Springt von erstem zum letzten Bild\n- Aktualisiert Miniaturansicht\n<!-- testen -->\n- Vollmodus öffnen\n- Klick auf Vorheriges-Bild-Icon\n- Erstes Bild zeigt\n----------------------------------------\n<!-- funktion -->\nGalerie vorherige anzeigen\n<!-- ziel -->\nBlendet das vorherige Bild der Galerie ein\n<!-- regeln -->\n- mto-vc-gallery-prev-Icon\n- Bei nur einem Bild keine Wirkung\n<!-- testen -->\n- Galerie mit mindestens zwei Bildern öffnen\n- LMB auf mto-vc-gallery-prev-Icon\n- Vorheriges Bild im Stage-Image angezeigt\n----------------------------------------\n<!-- funktion -->\nGalerie vorwärts blättern\n<!-- ziel -->\nZeigt das nächste Bild der Galerie\n<!-- regeln -->\n- Geht bei weniger als zwei Bildern nicht\n- Springt vom letzten zum ersten Bild\n<!-- testen -->\n- Modal öffnen\n- Klick auf gallery-next\n- Nächstes Bild wird angezeigt\n- Klick erneut bei letztem Bild\n- Erstes Bild wird angezeigt\n----------------------------------------\n<!-- funktion -->\nThumbnail auswählen\n<!-- ziel -->\nGreift direkt auf ein Produktbild zu, ohne durch die Galerie zu blättern\n<!-- regeln -->\n- Aktives Thumbnail zeigt x-Icon\n- Klick aktualisiert Hauptbild und Aktivzustand\n<!-- testen -->\n- Galerie mit mehreren Thumbnails öffnen\n- Klick auf Thumbnail\n- Hauptbild entspricht geklicktem Thumbnail\n"
}
},
{
"titel": "„Lightbox“ geändert",
"dateien": {
"lightbox": "<!-- titel -->\nLightbox\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nZeigt eine vergrößerte Ansicht der Optionsabbildung mit ihrem Namen\n----------------------------------------\n<!-- regeln -->\n- lightboxSelect bestätigt Auswahl und schließt\n- Escape und x-Icon schließen\n- Tab und Shift-Tab zirkulieren im Fokusring\n- Geschlossen kehrt Fokus zum Auslöser zurück\n- hidden-Attribut entfernt aus dem Barrierefreiheitsbaum\n----------------------------------------\n<!-- funktion -->\nAuswahl bestätigen\n<!-- ziel -->\nWählt eine Option im aktuellen Schritt und berechnet die gültigen Folgeschritte neu\n<!-- regeln -->\n- Bleibt im aktuellen Schritt\n- Invalidiert Folgeschritte mit ungültigen Kombinationen\n- Setzt Fokus auf die gewählte Option\n- Aktualisiert Galerie und Preis\n<!-- testen -->\n- Lightbox mit Option öffnen\n- LMB auf Auswahl bestätigen\n- Option markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- regeln -->\n- Schließt die Lightbox, ohne den Konfigurator zu schließen\n- x-Icon oder Escape beenden die Lightbox\n- Fokus kehrt zum Auslöser in der Optionsliste zurück\n<!-- testen -->\n- Option mit Bildauswahl öffnet die Lightbox\n- Escape drücken\n- Lightbox geschlossen, Modal offen\n----------------------------------------\n<!-- funktion -->\nLightbox schließen\n<!-- ziel -->\nEntfernt die vergrößerte Produktansicht wieder\n<!-- regeln -->\n- x-Icon oder Escape schließt\n- Zurück zum Dialog gibt Focus\n<!-- testen -->\n- Modal öffnen\n- Option mit Bild wählen\n- Leinwand-Icon klicken\n- Lightbox sichtbar\n- Escape drücken\n- Lightbox geschlossen, Dialog fokussiert\n----------------------------------------\n<!-- funktion -->\nLightbox öffnen\n<!-- ziel -->\nZeigt das Produktfoto einer Variante option in Originalgröße\n<!-- regeln -->\n- lightboxImage zeigt option.media\n- lightboxCaption zeigt option.name\n- lightboxSelect erhält Fokus\n<!-- testen -->\n- Modal öffnen\n- Auf Option mit Bild klicken\n- Info-Button der Option klicken\n- Lightbox zeigt das Foto in Originalgröße\n----------------------------------------\n<!-- funktion -->\nTastatur verwenden\n<!-- ziel -->\nBedient Modal und Lightbox per Tastatur\n<!-- regeln -->\n- Escape schließt Lightbox oder Modal\n- Tab zirkuliert im Fokusring vorwärts\n- Shift-Tab zirkuliert im Fokusring rückwärts\n<!-- testen -->\n- Modal öffnen\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen\n- Escape drücken\n- Modal geschlossen\n"
}
},
{
"titel": "„Produkt“ geändert",
"dateien": {
"produkt": "<!-- titel -->\nProdukt\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nStellt dem Produkttemplate Daten des Variantenkonfigurators bereit\n----------------------------------------\n<!-- regeln -->\n- Inaktiver Konfigurator setzt mtoVariantConfiguratorActive auf false\n- Aktiver Konfigurator weist alle Konfigurator-Variablen zu\n- sw-product-detail-variants wird mit eigener Template-Datei überschrieben\n- mtoVariantConfiguratorTrustLogo fehlt in Regeln und Funktion\n- Produktseite laden: Testschritte beschreiben Ergebnis statt Handlung\n- Variantenansicht erweitern: Funktion hat keine Testschritte, nur Regeln\n----------------------------------------\n<!-- funktion -->\nProduktseite laden\n<!-- ziel -->\nBereitet Variant-Konfigurationsdaten für die Produktseite vor\n<!-- regeln -->\n- mtoVariantConfiguratorActive false bei inaktivem Konfigurator\n- Alle Variablen bei aktivem Konfigurator zugewiesen\n- Initial-Variante für vorausgefülltes Modal geladen\n<!-- testen -->\n- Produkt mit aktivem Konfigurator öffnen\n- Seite vollständig laden\n- Template-Variablen prüfen\n- Seite ohne Konfigurator öffnen\n- mtoVariantConfiguratorActive ist false\n----------------------------------------\n<!-- funktion -->\nVariantenansicht erweitern\n<!-- ziel -->\nFügt der Produktdetail-Variantenansicht zusätzliche Felder oder Funktionen hinzu\n<!-- regeln -->\n- Überschreibt sw-product-detail-variants\n- Eigene Template-Datei wird geladen\n<!-- testen -->\n- Produktdetailseite öffnen\n- Varianten-Bereich aufrufen\n- Erweiterte Felder oder Funktionen sichtbar\n"
}
},
{
"titel": "„Lightbox“ geändert",
"dateien": {
"lightbox": "<!-- titel -->\nLightbox\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nZeigt eine vergrößerte Ansicht der Optionsabbildung mit ihrem Namen\n----------------------------------------\n<!-- regeln -->\n- lightboxSelect bestätigt Auswahl und schließt\n- Escape und x-Icon schließen\n- Tab und Shift-Tab zirkulieren im Fokusring\n- Geschlossen kehrt Fokus zum Auslöser zurück\n- hidden-Attribut entfernt aus dem Barrierefreiheitsbaum\n----------------------------------------\n<!-- funktion -->\nAuswahl bestätigen\n<!-- ziel -->\nWählt eine Option im aktuellen Schritt und berechnet die gültigen Folgeschritte neu\n<!-- regeln -->\n- Bleibt im aktuellen Schritt\n- Invalidiert Folgeschritte mit ungültigen Kombinationen\n- Setzt Fokus auf die gewählte Option\n- Aktualisiert Galerie und Preis\n<!-- testen -->\n- Lightbox mit Option öffnen\n- LMB auf Auswahl bestätigen\n- Option markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- regeln -->\n- Schließt die Lightbox, ohne den Konfigurator zu schließen\n- x-Icon oder Escape beenden die Lightbox\n- Fokus kehrt zum Auslöser in der Optionsliste zurück\n<!-- testen -->\n- Option mit Bildauswahl öffnet die Lightbox\n- Escape drücken\n- Lightbox geschlossen, Modal offen\n----------------------------------------\n<!-- funktion -->\nLightbox schließen\n<!-- ziel -->\nEntfernt die vergrößerte Produktansicht wieder\n<!-- regeln -->\n- x-Icon oder Escape schließt\n- Zurück zum Dialog gibt Focus\n<!-- testen -->\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen, Dialog fokussiert\n----------------------------------------\n<!-- funktion -->\nLightbox öffnen\n<!-- ziel -->\nZeigt das Produktfoto einer Variante option in Originalgröße\n<!-- regeln -->\n- lightboxImage zeigt option.media\n- lightboxCaption zeigt option.name\n- lightboxSelect erhält Fokus\n<!-- testen -->\n- Modal öffnen\n- Auf Option mit Bild klicken\n- Info-Button der Option klicken\n- Lightbox zeigt das Foto in Originalgröße\n----------------------------------------\n<!-- funktion -->\nTastatur verwenden\n<!-- ziel -->\nBedient Modal und Lightbox per Tastatur\n<!-- regeln -->\n- Escape schließt Lightbox oder Modal\n- Tab zirkuliert im Fokusring vorwärts\n- Shift-Tab zirkuliert im Fokusring rückwärts\n<!-- testen -->\n- Modal öffnen\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen\n- Escape drücken\n- Modal geschlossen\n"
}
},
{
"titel": "„Galerie“ geändert",
"dateien": {
"galerie": "<!-- titel -->\nGalerie\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nErmöglicht das Anzeigen und Durchblättern von Produktbildern im Konfigurator-Modal\n----------------------------------------\n<!-- regeln -->\n- Einzelne Galerie pro Modal\n- Navigiert zyklisch\n- Ein Bild deaktiviert Navigation\n- Hauptbild über thumbnails aktualisierbar\n----------------------------------------\n<!-- funktion -->\nGalerie nächste anzeigen\n<!-- ziel -->\nZeigt das nächste Bild der Galerie\n<!-- regeln -->\n- Mindestens 2 Bilder vorhanden\n- Zyklisch von letztem zu erstem Bild\n<!-- testen -->\n- Auf next-Button klicken\n- Nächstes Bild wird angezeigt\n----------------------------------------\n<!-- funktion -->\nGalerie rückwärts blättern\n<!-- ziel -->\nVorheriges Bild der Galerie anzeigen\n<!-- regeln -->\n- Nur mit mindestens zwei Bildern\n- Springt von erstem zum letzten Bild\n- Aktualisiert Miniaturansicht\n<!-- testen -->\n- Vollmodus öffnen\n- Klick auf Vorheriges-Bild-Icon\n- Erstes Bild zeigt\n----------------------------------------\n<!-- funktion -->\nGalerie vorherige anzeigen\n<!-- ziel -->\nBlendet das vorherige Bild der Galerie ein\n<!-- regeln -->\n- mto-vc-gallery-prev-Icon\n- Bei nur einem Bild keine Wirkung\n<!-- testen -->\n- Galerie mit mindestens zwei Bildern öffnen\n- LMB auf mto-vc-gallery-prev-Icon\n- Vorheriges Bild im Stage-Image angezeigt\n----------------------------------------\n<!-- funktion -->\nGalerie vorwärts blättern\n<!-- ziel -->\nZeigt das nächste Bild der Galerie\n<!-- regeln -->\n- Geht bei weniger als zwei Bildern nicht\n- Springt vom letzten zum ersten Bild\n<!-- testen -->\n- Modal öffnen\n- Klick auf gallery-next\n- Nächstes Bild wird angezeigt\n----------------------------------------\n<!-- funktion -->\nThumbnail auswählen\n<!-- ziel -->\nGreift direkt auf ein Produktbild zu, ohne durch die Galerie zu blättern\n<!-- regeln -->\n- Aktives Thumbnail zeigt x-Icon\n- Klick aktualisiert Hauptbild und Aktivzustand\n<!-- testen -->\n- Galerie mit mehreren Thumbnails öffnen\n- Klick auf Thumbnail\n- Hauptbild entspricht geklicktem Thumbnail\n"
}
},
{
"titel": "„Lightbox“ geändert",
"dateien": {
"lightbox": "<!-- titel -->\nLightbox\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nZeigt eine vergrößerte Ansicht der Optionsabbildung mit ihrem Namen\n----------------------------------------\n<!-- regeln -->\n- lightboxSelect bestätigt Auswahl und schließt\n- Escape und x-Icon schließen\n- Tab und Shift-Tab zirkulieren im Fokusring\n- Geschlossen kehrt Fokus zum Auslöser zurück\n- hidden-Attribut entfernt aus dem Barrierefreiheitsbaum\n----------------------------------------\n<!-- funktion -->\nAuswahl bestätigen\n<!-- ziel -->\nWählt eine Option im aktuellen Schritt und berechnet die gültigen Folgeschritte neu\n<!-- regeln -->\n- Bleibt im aktuellen Schritt\n- Invalidiert Folgeschritte mit ungültigen Kombinationen\n- Setzt Fokus auf die gewählte Option\n- Aktualisiert Galerie und Preis\n<!-- testen -->\n- Lightbox mit Option öffnen\n- LMB auf Auswahl bestätigen\n- Option markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- regeln -->\n- Schließt die Lightbox, ohne den Konfigurator zu schließen\n- x-Icon oder Escape beenden die Lightbox\n- Fokus kehrt zum Auslöser in der Optionsliste zurück\n<!-- testen -->\n- LMB auf Option mit Bildauswahl\n- Escape drücken\n- Lightbox geschlossen, Modal offen\n----------------------------------------\n<!-- funktion -->\nLightbox schließen\n<!-- ziel -->\nEntfernt die vergrößerte Produktansicht wieder\n<!-- regeln -->\n- x-Icon oder Escape schließt\n- Zurück zum Dialog gibt Focus\n<!-- testen -->\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen, Dialog fokussiert\n----------------------------------------\n<!-- funktion -->\nLightbox öffnen\n<!-- ziel -->\nZeigt das Produktfoto einer Variante option in Originalgröße\n<!-- regeln -->\n- lightboxImage zeigt option.media\n- lightboxCaption zeigt option.name\n- lightboxSelect erhält Fokus\n<!-- testen -->\n- Modal öffnen\n- Auf Option mit Bild klicken\n- Info-Button der Option klicken\n- Lightbox zeigt das Foto in Originalgröße\n----------------------------------------\n<!-- funktion -->\nTastatur verwenden\n<!-- ziel -->\nBedient Modal und Lightbox per Tastatur\n<!-- regeln -->\n- Escape schließt Lightbox oder Modal\n- Tab zirkuliert im Fokusring vorwärts\n- Shift-Tab zirkuliert im Fokusring rückwärts\n<!-- testen -->\n- Modal öffnen\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen\n- Escape drücken\n- Modal geschlossen\n"
}
},
{
"titel": "„Lightbox“ geändert",
"dateien": {
"lightbox": "<!-- titel -->\nLightbox\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nZeigt eine vergrößerte Ansicht der Optionsabbildung mit ihrem Namen\n----------------------------------------\n<!-- regeln -->\n- lightboxSelect bestätigt Auswahl\n- lightboxSelect schließt\n- Escape schließt\n- x-Icon schließt\n- Geschlossen kehrt Fokus zum Auslöser zurück\n- hidden-Attribut entfernt aus dem Barrierefreiheitsbaum\n----------------------------------------\n<!-- funktion -->\nAuswahl bestätigen\n<!-- ziel -->\nWählt eine Option im aktuellen Schritt und berechnet die gültigen Folgeschritte neu\n<!-- regeln -->\n- Bleibt im aktuellen Schritt\n- Invalidiert Folgeschritte mit ungültigen Kombinationen\n- Setzt Fokus auf die gewählte Option\n- Aktualisiert Galerie und Preis\n<!-- testen -->\n- Lightbox mit Option öffnen\n- LMB auf Auswahl bestätigen\n- Option markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- regeln -->\n- Schließt die Lightbox, ohne den Konfigurator zu schließen\n- x-Icon oder Escape beenden die Lightbox\n- Fokus kehrt zum Auslöser in der Optionsliste zurück\n<!-- testen -->\n- LMB auf Option mit Bildauswahl\n- Escape drücken\n- Lightbox geschlossen, Modal offen\n----------------------------------------\n<!-- funktion -->\nLightbox schließen\n<!-- ziel -->\nEntfernt die vergrößerte Produktansicht wieder\n<!-- regeln -->\n- x-Icon oder Escape schließt\n- Zurück zum Dialog gibt Focus\n<!-- testen -->\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen, Dialog fokussiert\n----------------------------------------\n<!-- funktion -->\nLightbox öffnen\n<!-- ziel -->\nZeigt das Produktfoto einer Variante option in Originalgröße\n<!-- regeln -->\n- lightboxImage zeigt option.media\n- lightboxCaption zeigt option.name\n- lightboxSelect erhält Fokus\n<!-- testen -->\n- Modal öffnen\n- Auf Option mit Bild klicken\n- Info-Button der Option klicken\n- Lightbox zeigt das Foto in Originalgröße\n----------------------------------------\n<!-- funktion -->\nTastatur verwenden\n<!-- ziel -->\nBedient Modal und Lightbox per Tastatur\n<!-- regeln -->\n- Escape schließt Lightbox oder Modal\n- Tab zirkuliert im Fokusring vorwärts\n- Shift-Tab zirkuliert im Fokusring rückwärts\n<!-- testen -->\n- Modal öffnen\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen\n- Escape drücken\n- Modal geschlossen\n"
}
},
{
"titel": "„Konfigurator“ geändert",
"dateien": {
"konfigurator": "<!-- titel -->\nKonfigurator\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nFührt durch Variantenkonfiguration in Einzelschritten mit Live-Vorschau\n----------------------------------------\n<!-- regeln -->\n- Aktiv nur wenn Produkt mto_variant_configurator_active gesetzt hat\n- Optionen-Bilder nur bis zwei Schritte\n- Galerie und Preis aktualisieren live ohne Seitenreload\n- Body erhält CSS-Klasse mto-vc-modal-open solange Modal offen\n- Escape schließt Modal\n- Schließen stellt Fokus auf vorheriges Element\n- Registriert als mto-vc-variants-card in swProductDetail\n- Einstellungen in customFields des Produkts gespeichert\n- Falls inaktiv: Fallback auf Standard-Konfigurator von Shopware\n- Natives Select pro Gruppe im DOM\n- Schritte ohne gültige Optionen werden beim Navigieren übersprungen\n- Ungültige Kombinationen für Folgeschritte werden beim Wählen verworfen\n- Unbesuchte Schritte werden beim Bestätigen mit erster gültiger Option aufgefüllt\n- Deaktivierte Optionen sind nicht auswählbar\n- Gallery-Container erhält CSS-Klasse has-no-gallery wenn keine Bilder vorhanden\n- Schließen bei Lightbox: fokus auf Lightbox-Auswahl-Button\n----------------------------------------\n<!-- funktion -->\nGeführte Konfiguration aktivieren\n<!-- ziel -->\nFührt Kunden schrittweise durch die Variantenauswahl mit Hinweisen und Modal\n<!-- regeln -->\n- Aktiviert bei Produkten mit aktivem Konfigurator-Layout\n- Zeigt jeden Konfigurationsschritt mit Beschriftung\n- Blendentext je Gruppe über Modal aus\n- Inkrementelle Variantenauflösung über resolveUrl\n<!-- testen -->\n- Produktseite mit aktivem Konfigurator öffnen\n- LMB auf ersten Konfigurationsschritt\n- Option im Modal wählen\n- Modal schließt und nächster Schritt markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurationsdaten abrufen\n<!-- ziel -->\nLiefert Variantendaten für eine Live-Aktualisierung im Konfigurator\n<!-- regeln -->\n- Endpoint mto-variant-configurator resolve\n- Query-Parameter switched enthält die aktuell gewechselte Gruppe\n- Query-Parameter options enthält ein JSON-Array gewählter Optionen\n- Ungültiges JSON führt zu leerem options-Array\n- VariantNotFoundException hält productId als Fallback\n- Rückgabe enthält variantId, gallery media und Preis\n- Kein HTTP-Cache wegen kundenspezifischer Preise\n<!-- testen -->\n- Resolve-Endpunkt mit Produkt-ID und Option aufrufen\n- Antwort enthält variantId\n- Antwort enthält gallery media\n- Antwort enthält Preis\n----------------------------------------\n<!-- funktion -->\nKonfigurator öffnen\n<!-- ziel -->\nÖffnet den Konfigurator ab einem gewählten Schritt\n<!-- regeln -->\n- Erster Aufruf zeigt das Modal\n- Weiterer Aufruf wechselt den Schritt\n- Fokus vorheriges Element wird gespeichert\n- Body erhält CSS-Klasse mto-vc-modal-open\n- Escape-Schließen wird registriert\n- Galerie und Preis werden aktualisiert\n- Fokus springt auf den Next-Button\n<!-- testen -->\n- LMB auf Konfigurator-Trigger klicken\n- Modal erscheint im gewählten Schritt\n----------------------------------------\n<!-- funktion -->\nKonfigurator-Karte registrieren\n<!-- ziel -->\nMacht die Einstellungen des Varianten-Konfigurators auf der Produktdetail-Seite verfügbar\n<!-- regeln -->\n- Registriert als mto-vc-variants-card\n- Nutzt Produkt aus swProductDetail\n- Speichert Einstellungen in customFields des Produkts\n<!-- testen -->\n- Produktdetail-Seite eines Produkts öffnen\n- Tab Variants aufrufen\n- Registrierte mto-vc-variants-card wird angezeigt\n----------------------------------------\n<!-- funktion -->\nPlugin registrieren\n<!-- ziel -->\nMacht das Plugin für Elemente mit dem Selektor verfügbar\n<!-- regeln -->\n- Registriert unter VariantConfiguratorPlugin\n- Nutzt window.PluginManager\n- Bindet an [data-mto-variant-configurator]\n<!-- testen -->\n- PluginManager.register aufrufen\n- Element mit data-mto-variant-configurator erstellen\n- Plugin auf Element angewendet\n"
}
},
{
"titel": "„Lightbox“ geändert",
"dateien": {
"lightbox": "<!-- titel -->\nLightbox\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nZeigt eine vergrößerte Ansicht der Optionsabbildung mit ihrem Namen\n----------------------------------------\n<!-- regeln -->\n- lightboxSelect bestätigt Auswahl\n- lightboxSelect schließt\n- Escape schließt\n- x-Icon schließt\n- Geschlossen kehrt Fokus zum Auslöser zurück\n- hidden-Attribut entfernt aus dem Barrierefreiheitsbaum\n----------------------------------------\n<!-- funktion -->\nAuswahl bestätigen\n<!-- ziel -->\nWählt eine Option im aktuellen Schritt und berechnet die gültigen Folgeschritte neu\n<!-- regeln -->\n- Bleibt im aktuellen Schritt\n- Invalidiert Folgeschritte mit ungültigen Kombinationen\n- Setzt Fokus auf die gewählte Option\n- Aktualisiert Galerie und Preis\n<!-- testen -->\n- Lightbox mit Option öffnen\n- LMB auf Auswahl bestätigen\n- Option markiert\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- regeln -->\n- Schließt die Lightbox, ohne den Konfigurator zu schließen\n- x-Icon oder Escape beenden die Lightbox\n- Fokus kehrt zum Auslöser in der Optionsliste zurück\n<!-- testen -->\n- LMB auf Option mit Bildauswahl\n- Escape drücken\n- Lightbox geschlossen, Modal offen\n----------------------------------------\n<!-- funktion -->\nLightbox schließen\n<!-- ziel -->\nEntfernt die vergrößerte Produktansicht wieder\n<!-- regeln -->\n- x-Icon schließt\n- Escape schließt\n- Zurück zum Dialog gibt Focus\n<!-- testen -->\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen, Dialog fokussiert\n----------------------------------------\n<!-- funktion -->\nLightbox öffnen\n<!-- ziel -->\nZeigt das Produktfoto einer Variante option in Originalgröße\n<!-- regeln -->\n- lightboxImage zeigt option.media\n- lightboxCaption zeigt option.name\n- lightboxSelect erhält Fokus\n<!-- testen -->\n- Modal öffnen\n- Auf Option mit Bild klicken\n- Info-Button der Option klicken\n- Lightbox zeigt das Foto in Originalgröße\n----------------------------------------\n<!-- funktion -->\nTastatur verwenden\n<!-- ziel -->\nBedient Modal und Lightbox per Tastatur\n<!-- regeln -->\n- Escape schließt Lightbox oder Modal\n- Tab zirkuliert im Fokusring vorwärts\n- Shift-Tab zirkuliert im Fokusring rückwärts\n<!-- testen -->\n- Modal öffnen\n- Lightbox öffnen\n- Escape drücken\n- Lightbox geschlossen\n- Escape drücken\n- Modal geschlossen\n"
}
},
{
"titel": "„Option ansehen“ geändert",
"dateien": {
"option-ansehen": "<!-- titel -->\nOption ansehen\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nDer Kunde prüft eine Option groß, bevor er sie nimmt\n----------------------------------------\n<!-- regeln -->\n- Nur Optionen mit Bild tragen den Hinweis\n- Optionsbilder erscheinen bis zwei Schritte\n- Ansicht liegt über dem Konfigurator\n----------------------------------------\n<!-- funktion -->\nOptionsdetail öffnen\n<!-- ziel -->\nZeigt Bild und Namen einer Option in voller Größe\n<!-- regeln -->\n- i-Icon öffnet die Ansicht\n- Enter öffnet die Ansicht\n- Leertaste öffnet die Ansicht\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf i-Icon einer Option\n- Große Ansicht erscheint\n----------------------------------------\n<!-- funktion -->\nOption aus Ansicht wählen\n<!-- ziel -->\nÜbernimmt die betrachtete Option in die Auswahl\n<!-- regeln -->\n- Knopf übernimmt und schließt die Ansicht\n- Schritt bleibt derselbe\n<!-- testen -->\n- Optionsdetail öffnen\n- LMB auf Wählen-Knopf\n- Option ist gewählt\n----------------------------------------\n<!-- funktion -->\nAnsicht schließen\n<!-- ziel -->\nKehrt zur Optionsliste zurück ohne Auswahl\n<!-- regeln -->\n- x-Icon schließt die Ansicht\n- Escape schließt die Ansicht\n- Konfigurator bleibt offen\n<!-- testen -->\n- Optionsdetail öffnen\n- Escape drücken\n- Optionsliste erscheint wieder\n"
}
},
{
"titel": "„Varianten wählen“ geändert",
"dateien": {
"varianten-waehlen": "<!-- titel -->\nVarianten wählen\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nDer Kunde findet Schritt für Schritt eine bestellbare Kombination\n----------------------------------------\n<!-- regeln -->\n- Erster Schritt zeigt alle Optionen seiner Eigenschaft\n- Folgeschritte zeigen nur kombinierbare Optionen\n- Reihenfolge der Schritte kommt aus dem Backend\n- Ohne Auswahl greifen die Standardvarianten des Elternartikels\n- Schritte ohne gültige Option werden übersprungen\n- Eine Auswahl wechselt den Schritt nicht\n- Ungültige Folgeauswahl fällt beim Wechsel weg\n- Escape schließt den Konfigurator\n- Tabulator bleibt im Dialog\n----------------------------------------\n<!-- funktion -->\nSchritt öffnen\n<!-- ziel -->\nÖffnet den Konfigurator beim angeklickten Schritt\n<!-- regeln -->\n- LMB auf einen Schritt öffnet das Modal\n- Offener Konfigurator wechselt nur den Schritt\n- Modal hängt am Seitenkörper\n<!-- testen -->\n- Produktseite öffnen\n- LMB auf zweiten Schritt\n- Modal öffnet bei Schritt 2\n----------------------------------------\n<!-- funktion -->\nOption wählen\n<!-- ziel -->\nÜbernimmt eine Option in die laufende Auswahl\n<!-- regeln -->\n- Gewählte Option ist hervorgehoben\n- Nicht kombinierbare Optionen sind gesperrt\n- Auswahl verwirft ungültige Folgeschritte\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf eine Option\n- Option ist hervorgehoben\n----------------------------------------\n<!-- funktion -->\nNächsten Schritt anzeigen\n<!-- ziel -->\nFührt zum nächsten Schritt mit gültigen Optionen\n<!-- regeln -->\n- Weiter-Knopf heißt am letzten Schritt Fertig\n- Leere Schritte werden übersprungen\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf Weiter-Knopf\n- Nächster Schritt erscheint\n----------------------------------------\n<!-- funktion -->\nVorherigen Schritt anzeigen\n<!-- ziel -->\nFührt zurück zum letzten Schritt mit Optionen\n<!-- regeln -->\n- Zurück-Knopf ist am ersten Schritt gesperrt\n- Leere Schritte werden übersprungen\n<!-- testen -->\n- Zum zweiten Schritt gehen\n- LMB auf Zurück-Knopf\n- Erster Schritt erscheint\n----------------------------------------\n<!-- funktion -->\nAuswahl übernehmen\n<!-- ziel -->\nWechselt das Produkt auf die gewählte Variante\n<!-- regeln -->\n- Fertig schreibt die Auswahl in die Auswahlfelder\n- Unbesuchte Schritte bekommen die erste gültige Option\n- Der Variantenwechsel von Shopware führt den Wechsel aus\n<!-- testen -->\n- Alle Schritte durchgehen\n- LMB auf Fertig-Knopf\n- Seite zeigt die gewählte Variante\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- ziel -->\nBeendet die Auswahl ohne Wechsel der Variante\n<!-- regeln -->\n- x-Icon schließt das Modal\n- Escape schließt das Modal\n- Fokus kehrt zum Auslöser zurück\n<!-- testen -->\n- Konfigurator öffnen\n- Escape drücken\n- Modal ist geschlossen\n"
}
},
{
"titel": "„Vorschau zeigen“ geändert",
"dateien": {
"vorschau-zeigen": "<!-- titel -->\nVorschau zeigen\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nDer Kunde sieht Bild und Preis der gewählten Kombination\n----------------------------------------\n<!-- regeln -->\n- Preis stimmt mit dem Preis der Produktseite überein\n- Antwort wird nicht zwischengespeichert\n- Späte Antworten überholter Anfragen werden verworfen\n- Ohne eigene Bilder greifen die Bilder des Elternartikels\n----------------------------------------\n<!-- funktion -->\nVorschau laden\n<!-- ziel -->\nHolt Bilder und Preis zur laufenden Auswahl\n<!-- regeln -->\n- Jede Auswahl löst eine neue Anfrage aus\n- Ohne Treffer bleibt die Produkt-ID als Rückfall\n- Erstes Bild ist das Titelbild der Variante\n<!-- testen -->\n- Konfigurator öffnen\n- Andere Option wählen\n- Bild und Preis ändern sich\n----------------------------------------\n<!-- funktion -->\nGalerie blättern\n<!-- ziel -->\nZeigt weitere Bilder der gewählten Variante\n<!-- regeln -->\n- Pfeil-Icons blättern vor und zurück\n- Nach dem letzten Bild folgt das erste\n- Bei einem Bild bleibt die Navigation aus\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf Vor-Icon\n- Nächstes Bild erscheint\n----------------------------------------\n<!-- funktion -->\nBild wählen\n<!-- ziel -->\nWechselt das große Bild über die Vorschaubilder\n<!-- regeln -->\n- Aktives Vorschaubild ist hervorgehoben\n- Großes Bild folgt der Wahl\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf drittes Vorschaubild\n- Großes Bild zeigt dieses Motiv\n"
}
},
{
"titel": "„Varianten wählen“ geändert",
"dateien": {
"varianten-waehlen": "<!-- titel -->\nVarianten wählen\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nDer Kunde findet Schritt für Schritt eine bestellbare Kombination\n----------------------------------------\n<!-- regeln -->\n- Erster Schritt zeigt alle Optionen seiner Eigenschaft\n- Folgeschritte zeigen nur kombinierbare Optionen\n- Der Ablauf trägt beliebig viele Eigenschaften\n- Reihenfolge der Schritte kommt aus dem Backend\n- Ohne Auswahl greifen die Standardvarianten des Elternartikels\n- Schritte ohne gültige Option werden übersprungen\n- Eine Auswahl wechselt den Schritt nicht\n- Ungültige Folgeauswahl fällt beim Wechsel weg\n- Auf kleinen Bildschirmen bleibt der Ablauf derselbe\n- Escape schließt den Konfigurator\n- Tabulator bleibt im Dialog\n----------------------------------------\n<!-- funktion -->\nSchritt öffnen\n<!-- ziel -->\nÖffnet den Konfigurator beim angeklickten Schritt\n<!-- regeln -->\n- LMB auf einen Schritt öffnet das Modal\n- Offener Konfigurator wechselt nur den Schritt\n- Modal hängt am Seitenkörper\n<!-- testen -->\n- Produktseite öffnen\n- LMB auf zweiten Schritt\n- Modal öffnet bei Schritt 2\n----------------------------------------\n<!-- funktion -->\nOption wählen\n<!-- ziel -->\nÜbernimmt eine Option in die laufende Auswahl\n<!-- regeln -->\n- Gewählte Option ist hervorgehoben\n- Nicht kombinierbare Optionen sind gesperrt\n- Auswahl verwirft ungültige Folgeschritte\n- Schritt bleibt nach der Wahl derselbe\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf eine Option\n- Option ist hervorgehoben\n----------------------------------------\n<!-- funktion -->\nNächsten Schritt anzeigen\n<!-- ziel -->\nFührt zum nächsten Schritt mit gültigen Optionen\n<!-- regeln -->\n- Weiter-Knopf heißt am letzten Schritt Fertig\n- Leere Schritte werden übersprungen\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf Weiter-Knopf\n- Nächster Schritt erscheint\n----------------------------------------\n<!-- funktion -->\nVorherigen Schritt anzeigen\n<!-- ziel -->\nFührt zurück zum letzten Schritt mit Optionen\n<!-- regeln -->\n- Zurück-Knopf ist am ersten Schritt gesperrt\n- Leere Schritte werden übersprungen\n<!-- testen -->\n- Zum zweiten Schritt gehen\n- LMB auf Zurück-Knopf\n- Erster Schritt erscheint\n----------------------------------------\n<!-- funktion -->\nAuswahl übernehmen\n<!-- ziel -->\nWechselt das Produkt auf die gewählte Variante\n<!-- regeln -->\n- Fertig schreibt die Auswahl in die Auswahlfelder\n- Unbesuchte Schritte bekommen die erste gültige Option\n- Der Variantenwechsel von Shopware führt den Wechsel aus\n- Die Seite zeigt danach die Adresse der Variante\n<!-- testen -->\n- Alle Schritte durchgehen\n- LMB auf Fertig-Knopf\n- Produktseite zeigt die gewählte Variante\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- ziel -->\nBeendet die Auswahl ohne Wechsel der Variante\n<!-- regeln -->\n- x-Icon schließt das Modal\n- Escape schließt das Modal\n- Fokus kehrt zum Auslöser zurück\n<!-- testen -->\n- Konfigurator öffnen\n- Escape drücken\n- Modal ist geschlossen\n"
}
},
{
"titel": "„Layout zuweisen“ geändert",
"dateien": {
"layout-zuweisen": "<!-- titel -->\nLayout zuweisen\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nEin Händler entscheidet je Produkt, ob die geführte Auswahl erscheint\n----------------------------------------\n<!-- regeln -->\n- Einstellungen liegen auf dem Varianten-Tab des Produkts\n- Werte stehen in den customFields des Produkts\n- Bearbeiten erfordert das Recht product.editor\n- Ohne Zuweisung bleibt das Standardlayout aktiv\n----------------------------------------\n<!-- funktion -->\nKonfigurator aktivieren\n<!-- ziel -->\nSchaltet die geführte Variantenauswahl für ein Produkt frei\n<!-- regeln -->\n- Schalter steht auf dem Varianten-Tab\n- Aktiv ersetzt die Buybox des Produkts\n- Inaktiv zeigt das Standardlayout von Shopware\n<!-- testen -->\n- Produkt im Admin öffnen\n- Varianten-Tab öffnen\n- Schalter aktivieren und speichern\n- Buybox zeigt die geführte Auswahl\n----------------------------------------\n<!-- funktion -->\nOptionsübersicht hinterlegen\n<!-- ziel -->\nHinterlegt ein PDF mit allen Varianten und Kombinationen\n<!-- regeln -->\n- Medienfeld steht auf dem Varianten-Tab\n- Feld hängt am Hauptartikel\n- Ohne PDF bleibt der Knopf unsichtbar\n<!-- testen -->\n- Varianten-Tab öffnen\n- PDF im Medienfeld wählen\n- Produkt speichern\n- Modal zeigt den Knopf für Optionen\n----------------------------------------\n<!-- funktion -->\nTrust-Logo hinterlegen\n<!-- ziel -->\nZeigt ein Vertrauenssiegel neben dem Gesamtpreis\n<!-- regeln -->\n- Logo steht in der Plugin-Konfiguration\n- Gilt für den ganzen Verkaufskanal\n- Ohne Logo erscheint nur der Text\n<!-- testen -->\n- Plugin-Konfiguration öffnen\n- Logo im Medienfeld wählen\n- Modal zeigt das Logo am Preis\n----------------------------------------\n<!-- funktion -->\nOptionsbild zuordnen\n<!-- stand -->\noffen\n<!-- ziel -->\nHinterlegt je Variante ein Farbbild oder Materialbild\n<!-- regeln -->\n- Zuordnung erfolgt auf Variantenebene\n- Bild erscheint neben der Option im Modal\n<!-- testen -->\n- Variante im Admin öffnen\n- Bild der Variante zuordnen\n- Modal zeigt das Bild an der Option\n"
}
},
{
"titel": "„Varianten wählen“ geändert",
"dateien": {
"varianten-waehlen": "<!-- titel -->\nVarianten wählen\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nDer Kunde findet Schritt für Schritt eine bestellbare Kombination\n----------------------------------------\n<!-- regeln -->\n- Erster Schritt zeigt alle Optionen seiner Eigenschaft\n- Folgeschritte zeigen nur kombinierbare Optionen\n- Der Ablauf trägt beliebig viele Eigenschaften\n- Reihenfolge der Schritte kommt aus dem Backend\n- Ohne Auswahl greifen die Standardvarianten des Elternartikels\n- Schritte ohne gültige Option werden übersprungen\n- Eine Auswahl wechselt den Schritt nicht\n- Ungültige Folgeauswahl fällt beim Wechsel weg\n- Auf kleinen Bildschirmen bleibt der Ablauf derselbe\n- Escape schließt den Konfigurator\n- Tabulator bleibt im Dialog\n----------------------------------------\n<!-- funktion -->\nSchritt öffnen\n<!-- ziel -->\nÖffnet den Konfigurator beim angeklickten Schritt\n<!-- regeln -->\n- LMB auf einen Schritt öffnet das Modal\n- Offener Konfigurator wechselt nur den Schritt\n- Modal hängt am Seitenkörper\n<!-- testen -->\n- Produktseite öffnen\n- LMB auf zweiten Schritt\n- Modal öffnet bei Schritt 2\n----------------------------------------\n<!-- funktion -->\nOption wählen\n<!-- ziel -->\nÜbernimmt eine Option in die laufende Auswahl\n<!-- regeln -->\n- Gewählte Option ist hervorgehoben\n- Nicht kombinierbare Optionen sind gesperrt\n- Auswahl verwirft ungültige Folgeschritte\n- Schritt bleibt nach der Wahl derselbe\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf eine Option\n- Option ist hervorgehoben\n----------------------------------------\n<!-- funktion -->\nNächsten Schritt anzeigen\n<!-- ziel -->\nFührt zum nächsten Schritt mit gültigen Optionen\n<!-- regeln -->\n- Weiter-Knopf heißt am letzten Schritt Fertig\n- Leere Schritte werden übersprungen\n<!-- testen -->\n- Konfigurator öffnen\n- LMB auf Weiter-Knopf\n- Nächster Schritt erscheint\n----------------------------------------\n<!-- funktion -->\nVorherigen Schritt anzeigen\n<!-- ziel -->\nFührt zurück zum letzten Schritt mit Optionen\n<!-- regeln -->\n- Zurück-Knopf ist am ersten Schritt gesperrt\n- Leere Schritte werden übersprungen\n<!-- testen -->\n- Zum zweiten Schritt gehen\n- LMB auf Zurück-Knopf\n- Erster Schritt erscheint\n----------------------------------------\n<!-- funktion -->\nAuswahl übernehmen\n<!-- ziel -->\nWechselt das Produkt auf die gewählte Variante\n<!-- regeln -->\n- Fertig überträgt die Auswahl in die Auswahlfelder\n- Unbesuchte Schritte bekommen die erste gültige Option\n- Shopware führt den Variantenwechsel aus\n<!-- testen -->\n- Alle Schritte durchgehen\n- LMB auf Fertig-Knopf\n- Produktseite zeigt die gewählte Variante\n----------------------------------------\n<!-- funktion -->\nKonfigurator schließen\n<!-- ziel -->\nBeendet die Auswahl ohne Wechsel der Variante\n<!-- regeln -->\n- x-Icon schließt das Modal\n- Escape schließt das Modal\n- Fokus kehrt zum Auslöser zurück\n<!-- testen -->\n- Konfigurator öffnen\n- Escape drücken\n- Modal ist geschlossen\n"
}
},
{
"titel": "„Schritt zeigen“ geändert",
"dateien": {
"schritt-zeigen": "<!-- titel -->\nSchritt zeigen\n----------------------------------------\n<!-- art -->\nkern\n----------------------------------------\n<!-- ziel -->\nDer Kunde weiß im Modal, wo er steht und was er wählt\n----------------------------------------\n<!-- regeln -->\n- Optionen stehen rechts, die Bilder links\n- Lange Optionslisten lassen sich scrollen\n----------------------------------------\n<!-- funktion -->\nEigenschaft benennen\n<!-- ziel -->\nZeigt den Namen der Eigenschaft des aktuellen Schritts\n<!-- regeln -->\n- Name steht als Überschrift über der Liste\n- Name kommt aus der Eigenschaftsgruppe\n<!-- testen -->\n- Konfigurator öffnen\n- Überschrift nennt die erste Eigenschaft\n----------------------------------------\n<!-- funktion -->\nSchrittstand anzeigen\n<!-- ziel -->\nZeigt den aktuellen Schritt und die Gesamtzahl\n<!-- regeln -->\n- Zähler nennt Schritt und Gesamtzahl\n- Balken wächst mit dem Fortschritt\n- Text kommt aus einem Textbaustein\n<!-- testen -->\n- Konfigurator öffnen\n- Zähler zeigt 1 von 3\n----------------------------------------\n<!-- funktion -->\nOptionen auflisten\n<!-- ziel -->\nZeigt alle Optionen der Eigenschaft mit Namen und Bild\n<!-- regeln -->\n- Jede Option nennt ihren Namen\n- Bild erscheint nur bis zwei Schritte\n- Ohne Bild erscheint der Farbwert\n- Ohne Farbwert bleibt die Zeile ohne Zeichen\n<!-- testen -->\n- Konfigurator öffnen\n- Jede Option zeigt ihren Namen\n"
}
}
]

View File

@@ -0,0 +1,49 @@
<!-- titel -->
Auswahl anstoßen
----------------------------------------
<!-- art -->
kern
----------------------------------------
<!-- ziel -->
Der Kunde erkennt in der Buybox die Reihenfolge der Schritte
----------------------------------------
<!-- regeln -->
- Jede Eigenschaft bildet einen eigenen Schritt
- Natives Auswahlfeld bleibt für den Variantenwechsel erhalten
- Eigene Darstellung gilt unabhängig vom Anzeigetyp der Eigenschaft
- Ohne aktives Layout erscheint die Standard-Buybox
----------------------------------------
<!-- funktion -->
Schrittnummer anzeigen
<!-- ziel -->
Zeigt neben jeder Eigenschaft ihre Position im Ablauf
<!-- regeln -->
- Beschriftung nennt das Wort Schritt und die Nummer
- Nummer folgt der Reihenfolge aus dem Backend
<!-- testen -->
- Produktseite öffnen
- Erste Eigenschaft zeigt Schritt 1
----------------------------------------
<!-- funktion -->
Hinweistext anzeigen
<!-- ziel -->
Erklärt dem Kunden, worauf er im Schritt achtet
<!-- regeln -->
- Text kommt aus einem Textbaustein je Schritt
- Leerer Textbaustein blendet den Hinweis aus
- Hinweis hängt an der Nummer statt an der Eigenschaft
<!-- testen -->
- Textbaustein für Schritt 1 füllen
- Produktseite öffnen
- Hinweis steht unter der Überschrift
----------------------------------------
<!-- funktion -->
Gewählte Option anzeigen
<!-- ziel -->
Zeigt am Schritt, welche Option gerade gilt
<!-- regeln -->
- Ohne Auswahl steht dort Bitte wählen
- Vorbelegung erscheint ohne Zutun des Kunden
<!-- testen -->
- Hauptartikel ohne Variante öffnen
- Jeder Schritt nennt eine Option

View File

@@ -0,0 +1,47 @@
<!-- titel -->
Beratung anbieten
----------------------------------------
<!-- art -->
optional
----------------------------------------
<!-- ziel -->
Der Kunde findet im Konfigurator Vertrauen und einen Kontakt
----------------------------------------
<!-- regeln -->
- Alle Texte kommen aus Textbausteinen
- Leerer Textbaustein blendet den Bereich aus
----------------------------------------
<!-- funktion -->
Vertrauen zeigen
<!-- ziel -->
Zeigt Siegel und Zusage neben dem Gesamtpreis
<!-- regeln -->
- Logo stammt aus der Plugin-Konfiguration
- Ohne Logo bleibt der Text stehen
<!-- testen -->
- Konfigurator öffnen
- Siegel steht neben dem Preis
----------------------------------------
<!-- funktion -->
Beratung erreichen
<!-- ziel -->
Bietet eine Telefonnummer für Fragen zur Konfiguration
<!-- regeln -->
- Nummer ist als Telefonlink klickbar
- Leere Nummer blendet den Bereich aus
<!-- testen -->
- Konfigurator öffnen
- LMB auf die Nummer
- Telefon-App öffnet sich
----------------------------------------
<!-- funktion -->
Optionsübersicht öffnen
<!-- ziel -->
Öffnet das hinterlegte PDF mit allen Optionen
<!-- regeln -->
- Knopf erscheint nur mit hinterlegtem PDF
- PDF öffnet in einem neuen Tab
<!-- testen -->
- Konfigurator öffnen
- LMB auf Optionen-Knopf
- PDF öffnet in neuem Tab

View File

@@ -0,0 +1,69 @@
<!-- titel -->
Layout zuweisen
----------------------------------------
<!-- art -->
kern
----------------------------------------
<!-- ziel -->
Ein Händler entscheidet je Produkt, ob die geführte Auswahl erscheint
----------------------------------------
<!-- regeln -->
- Einstellungen liegen auf dem Varianten-Tab des Produkts
- Werte stehen in den customFields des Produkts
- Bearbeiten erfordert das Recht product.editor
- Ohne Zuweisung bleibt das Standardlayout aktiv
----------------------------------------
<!-- funktion -->
Konfigurator aktivieren
<!-- ziel -->
Schaltet die geführte Variantenauswahl für ein Produkt frei
<!-- regeln -->
- Schalter steht auf dem Varianten-Tab
- Aktiv ersetzt die Buybox des Produkts
- Inaktiv zeigt das Standardlayout von Shopware
<!-- testen -->
- Produkt im Admin öffnen
- Varianten-Tab öffnen
- Schalter aktivieren und speichern
- Buybox zeigt die geführte Auswahl
----------------------------------------
<!-- funktion -->
Optionsübersicht hinterlegen
<!-- ziel -->
Hinterlegt ein PDF mit allen Varianten und Kombinationen
<!-- regeln -->
- Medienfeld steht auf dem Varianten-Tab
- Feld hängt am Hauptartikel
- Ohne PDF bleibt der Knopf unsichtbar
<!-- testen -->
- Varianten-Tab öffnen
- PDF im Medienfeld wählen
- Produkt speichern
- Modal zeigt den Knopf für Optionen
----------------------------------------
<!-- funktion -->
Trust-Logo hinterlegen
<!-- ziel -->
Zeigt ein Vertrauenssiegel neben dem Gesamtpreis
<!-- regeln -->
- Logo steht in der Plugin-Konfiguration
- Gilt für den ganzen Verkaufskanal
- Ohne Logo erscheint nur der Text
<!-- testen -->
- Plugin-Konfiguration öffnen
- Logo im Medienfeld wählen
- Modal zeigt das Logo am Preis
----------------------------------------
<!-- funktion -->
Optionsbild am Datensatz pflegen
<!-- stand -->
offen
<!-- ziel -->
Hinterlegt das Bild einer Option am Datensatz der Variante
<!-- regeln -->
- Feld liegt im Formular der einzelnen Variante
- Heute stammt das Bild aus der Eigenschaftsgruppe
<!-- testen -->
- Variante im Admin öffnen
- Bildfeld der Variante füllen
- Variante speichern

View File

@@ -0,0 +1,51 @@
<!-- titel -->
Option ansehen
----------------------------------------
<!-- art -->
kern
----------------------------------------
<!-- ziel -->
Der Kunde prüft eine Option groß, bevor er sie nimmt
----------------------------------------
<!-- regeln -->
- Nur Optionen mit Bild tragen den Hinweis
- Ansicht liegt über dem Konfigurator
----------------------------------------
<!-- funktion -->
Optionsdetail öffnen
<!-- ziel -->
Zeigt Bild und Namen einer Option in voller Größe
<!-- regeln -->
- i-Icon öffnet die Ansicht
- Enter öffnet die Ansicht
- Leertaste öffnet die Ansicht
<!-- testen -->
- Konfigurator öffnen
- LMB auf i-Icon einer Option
- Große Ansicht erscheint
----------------------------------------
<!-- funktion -->
Option aus Ansicht wählen
<!-- ziel -->
Übernimmt die betrachtete Option in die Auswahl
<!-- regeln -->
- Knopf übernimmt die Option
- Knopf schließt die Ansicht
- Schritt bleibt derselbe
<!-- testen -->
- Optionsdetail öffnen
- LMB auf Wählen-Knopf
- Option ist gewählt
----------------------------------------
<!-- funktion -->
Ansicht schließen
<!-- ziel -->
Kehrt zur Optionsliste zurück ohne Auswahl
<!-- regeln -->
- x-Icon schließt die Ansicht
- Escape schließt die Ansicht
- Konfigurator bleibt offen
<!-- testen -->
- Optionsdetail öffnen
- Escape drücken
- Optionsliste erscheint wieder

View File

@@ -0,0 +1,49 @@
<!-- titel -->
Schritt zeigen
----------------------------------------
<!-- art -->
kern
----------------------------------------
<!-- ziel -->
Der Kunde weiß im Modal, wo er steht und was er wählt
----------------------------------------
<!-- regeln -->
- Optionen stehen rechts
- Bilder links
- Lange Optionslisten lassen sich scrollen
----------------------------------------
<!-- funktion -->
Eigenschaft benennen
<!-- ziel -->
Zeigt den Namen der Eigenschaft des aktuellen Schritts
<!-- regeln -->
- Name steht als Überschrift über der Liste
- Name kommt aus der Eigenschaftsgruppe
<!-- testen -->
- Konfigurator öffnen
- Überschrift nennt die erste Eigenschaft
----------------------------------------
<!-- funktion -->
Schrittstand anzeigen
<!-- ziel -->
Zeigt den aktuellen Schritt und die Gesamtzahl
<!-- regeln -->
- Zähler nennt Schritt und Gesamtzahl
- Balken wächst mit dem Fortschritt
- Text kommt aus einem Textbaustein
<!-- testen -->
- Konfigurator öffnen
- Zähler zeigt 1 von 3
----------------------------------------
<!-- funktion -->
Optionen auflisten
<!-- ziel -->
Zeigt alle Optionen der Eigenschaft mit Namen und Bild
<!-- regeln -->
- Jede Option nennt ihren Namen
- Bild erscheint nur bis zwei Schritte
- Ohne Bild erscheint der Farbwert
- Ohne Farbwert bleibt die Zeile ohne Zeichen
<!-- testen -->
- Konfigurator öffnen
- Jede Option zeigt ihren Namen

View File

@@ -0,0 +1,109 @@
<!-- titel -->
Varianten wählen
----------------------------------------
<!-- art -->
kern
----------------------------------------
<!-- ziel -->
Der Kunde findet Schritt für Schritt eine bestellbare Kombination
----------------------------------------
<!-- regeln -->
- Erster Schritt zeigt alle Optionen seiner Eigenschaft
- Folgeschritte zeigen nur kombinierbare Optionen
- Der Ablauf trägt beliebig viele Eigenschaften
- Reihenfolge der Schritte kommt aus dem Backend
- Ohne Auswahl greifen die Standardvarianten des Elternartikels
- Schritte ohne gültige Option werden übersprungen
- Eine Auswahl wechselt den Schritt nicht
- Ungültige Folgeauswahl fällt beim Wechsel weg
- Auf kleinen Bildschirmen bleibt der Ablauf derselbe
- Escape schließt den Konfigurator
- Tabulator bleibt im Dialog
----------------------------------------
<!-- funktion -->
Schritt öffnen
<!-- ziel -->
Öffnet den Konfigurator beim angeklickten Schritt
<!-- regeln -->
- LMB auf einen Schritt öffnet das Modal
- Offener Konfigurator wechselt nur den Schritt
- Modal hängt am Seitenkörper
<!-- testen -->
- Produktseite öffnen
- LMB auf zweiten Schritt
- Modal öffnet bei Schritt 2
----------------------------------------
<!-- funktion -->
Option wählen
<!-- ziel -->
Übernimmt eine Option in die laufende Auswahl
<!-- regeln -->
- Gewählte Option ist hervorgehoben
- Nicht kombinierbare Optionen sind gesperrt
- Auswahl verwirft ungültige Folgeschritte
- Schritt bleibt nach der Wahl derselbe
<!-- testen -->
- Konfigurator öffnen
- LMB auf eine Option
- Option ist hervorgehoben
----------------------------------------
<!-- funktion -->
Nächsten Schritt anzeigen
<!-- ziel -->
Führt zum nächsten Schritt mit gültigen Optionen
<!-- regeln -->
- Weiter-Knopf heißt am letzten Schritt Fertig
- Leere Schritte werden übersprungen
<!-- testen -->
- Konfigurator öffnen
- LMB auf Weiter-Knopf
- Nächster Schritt erscheint
----------------------------------------
<!-- funktion -->
Vorherigen Schritt anzeigen
<!-- ziel -->
Führt zurück zum letzten Schritt mit Optionen
<!-- regeln -->
- Zurück-Knopf ist am ersten Schritt gesperrt
- Leere Schritte werden übersprungen
<!-- testen -->
- Zum zweiten Schritt gehen
- LMB auf Zurück-Knopf
- Erster Schritt erscheint
----------------------------------------
<!-- funktion -->
Auswahl übernehmen
<!-- ziel -->
Wechselt das Produkt auf die gewählte Variante
<!-- regeln -->
- Fertig überträgt die Auswahl in die Auswahlfelder
- Unbesuchte Schritte bekommen die erste gültige Option
- Shopware führt den Variantenwechsel aus
<!-- testen -->
- Alle Schritte durchgehen
- LMB auf Fertig-Knopf
- Produktseite zeigt die gewählte Variante
----------------------------------------
<!-- funktion -->
Konfigurator schließen
<!-- ziel -->
Beendet die Auswahl ohne Wechsel der Variante
<!-- regeln -->
- x-Icon schließt das Modal
- Escape schließt das Modal
- Fokus kehrt zum Auslöser zurück
<!-- testen -->
- Konfigurator öffnen
- Escape drücken
- Modal ist geschlossen
----------------------------------------
<!-- funktion -->
Konfigurationsdaten bereitstellen
<!-- ziel -->
Legt der Produktseite alles bei, was der Konfigurator braucht
<!-- regeln -->
- Kombinationen stammen vom Hauptartikel
- Ohne aktives Layout bleibt die Beilage aus
<!-- testen -->
- Produktseite mit aktivem Layout öffnen
- Seite trägt Kombinationen und Vorbelegung

View File

@@ -0,0 +1,53 @@
<!-- titel -->
Vorschau zeigen
----------------------------------------
<!-- art -->
kern
----------------------------------------
<!-- ziel -->
Der Kunde sieht Bild und Preis der gewählten Kombination
----------------------------------------
<!-- regeln -->
- Preis stimmt mit dem Preis der Produktseite überein
- Antwort wird nicht zwischengespeichert
- Späte Antworten überholter Anfragen werden verworfen
- Ohne eigene Bilder greifen die Bilder des Elternartikels
----------------------------------------
<!-- funktion -->
Vorschau laden
<!-- ziel -->
Holt Bilder und Preis zur laufenden Auswahl
<!-- regeln -->
- Jede Auswahl löst eine neue Anfrage aus
- Titelbild der Variante steht an erster Stelle
- Ohne Treffer bleibt die Produkt-ID als Rückfall
<!-- testen -->
- Konfigurator öffnen
- Andere Option wählen
- Bild und Preis ändern sich
----------------------------------------
<!-- funktion -->
Galerie blättern
<!-- ziel -->
Zeigt weitere Bilder der gewählten Variante
<!-- regeln -->
- Pfeil-Icons blättern vor
- Pfeil-Icons blättern zurück
- Nach dem letzten Bild folgt das erste
- Bei einem Bild bleibt die Navigation aus
<!-- testen -->
- Konfigurator öffnen
- LMB auf Vor-Icon
- Nächstes Bild erscheint
----------------------------------------
<!-- funktion -->
Bild wählen
<!-- ziel -->
Wechselt das große Bild über die Vorschaubilder
<!-- regeln -->
- Aktives Vorschaubild ist hervorgehoben
- Großes Bild folgt der Wahl
<!-- testen -->
- Konfigurator öffnen
- LMB auf drittes Vorschaubild
- Großes Bild zeigt dieses Motiv