# Changelog Source: https://docs.dreizack-medien.de/CLP-Gefahrenhinweise/changelog Alle Updates und Änderungen für CLP Gefahrenhinweise ### Features * **Eigene CLP-Kodierungen:** Du kannst eigene Codes anlegen, die sich am Artikel wie die fest hinterlegten verhalten – mit Satztext je Sprache und Platzhaltern, Signalwort, Piktogrammen aus dem GHS-Set und Kategorie. Neu ist die vierte Kategorie „Weitere Hinweise" mit eigenem Ausgabeblock. Die Texte überleben ein Plugin-Update; im Admin gibt es einen Reparatur-Knopf, der sie bei Bedarf neu schreibt * **Gefahrenhinweise in QuickView und QuickBuy.** Wer über QuickBuy kauft, sieht die Artikelseite nie – die Hinweise fehlten dort. Je ein Schalter für QuickView und QuickBuy, Darstellung als Container oder Akkordeon, Piktogramm-Höhe einstellbar. Beide Schalter sind nach dem Update aus. Braucht NIU Plus ab der 57x-Linie * **H222 und H229** ergänzt, mit Piktogramm * **Neue Admin-Oberfläche** mit Dark Mode ### Verbesserungen * Kompatibilität mit JTL-Shop 5.8 ### Bugfixes * Artikel, deren Sätze ausschließlich das Signalwort „Achtung" tragen (zum Beispiel H319), zeigten im Frontend „Gefahr" * Unter NIU Plus wurden die Hinweise doppelt ausgegeben, wenn Custom Box und Injection beide aktiv waren. Der Schalter „Ich verwende NIU Plus" ist entfallen, das Plugin erkennt selbst, ob im Companion eine CLP-Box eingerichtet ist * Platzhalterwerte werden jetzt escaped; ein Satztext mit mehreren Platzhaltern riss die Artikelseite nicht mehr ab ### Hinweise * Benötigt DZM Resources & Health 1.11.17 – bitte zuerst aktualisieren * Das Update bringt eine Datenbank-Migration und neue Sprachvariablen mit; die Sprachvariablen eigener Kodierungen werden nach dem Update automatisch neu geschrieben * Die Mindestversion des Shops steigt von 5.3.3 auf 5.5.0 ### Kompatibilität * JTL-Shop ab 5.5.0 * PHP 8.2 - 8.5 * Benötigt mindestens DZM Resources & Health 1.11.17 ### Neue Features * Automatische Ausgabe von H-, P- und EUH-Sätzen * GHS-Symbole und Signalworte * Inhaltsstoffe-Pflege * Sprachvariablen für alle Sätze * NIU Plus Integration und Custom Template Support ### Kompatibilität * JTL-Shop 5 # Datenpflege Source: https://docs.dreizack-medien.de/CLP-Gefahrenhinweise/datenpflege So pflegst du H-, P- und EUH-Sätze sowie Inhaltsstoffe an deinen Produkten ## Sätze pflegen Eine vollständige Übersicht aller verfügbaren H-, P- und EUH-Codes findest du in der [Referenz](/CLP-Gefahrenhinweise/referenz). Lege ein Funktionsattribut vom Typ **Freitext** mit der ID und dem Namen `dzm_clp` an Trage die H-, P- und EUH-Sätze getrennt per **Semikolon** (`;`) am Produkt ein ### Syntax * Sätze werden mit `;` (Semikolon) getrennt * Bei **Kombinationen** ersetze das `+` (Plus) gegen einen `_` (Unterstrich) ``` H200 H300_H310;P308_P310;EUH201A ``` ### Platzhalter-Texte Es gibt Sätze, bei denen du die Lücken im Text füllen musst (in der [Referenz](/CLP-Gefahrenhinweise/referenz) fett markiert). Hierfür sind in den Sprachvariablen Platzhalter eingebaut. Trage den Text per `:` (Doppelpunkt) nach dem Satz mit in die Liste ein: ``` H200:Hier ist mein Text;H300:Hier ist anderer Text ``` Du kannst einen Satz **mehrfach** in der Liste führen – er wird dann auch mehrfach ausgegeben. Wenn du Text ergänzen bzw. variablen Text einfügen musst, nutze `%s` in der Sprachvariablen als Platzhalter und arbeite mit dem Text hinter den Hinweisen wie oben beschrieben. ### Sprachvariablen anpassen Passe die Sprachvariablen an, damit sie auf deine Produkte passen. Die Liste ist nach bestem Gewissen gepflegt, es liegt aber in **deiner Verantwortung**, den richtigen Wortlaut zu treffen! *** ## Inhaltsstoffe Lege ein Funktionsattribut vom Typ **Freitext** mit der ID `dzm_clp_ingredients` an Trage die Inhaltsstoffe getrennt per **Semikolon** (`;`) am Produkt ein # Einführung Source: https://docs.dreizack-medien.de/CLP-Gefahrenhinweise/einfuehrung Erfahre, was DZM CLP ist und wie es dir die Pflege von Gefahrenhinweisen nach CLP-Verordnung erleichtert ## Was ist DZM CLP? DZM CLP ist ein Plugin, welches dir die Pflege der Sicherheitshinweise nach CLP erleichtert. Du musst lediglich die H-, P- und EUH-Sätze in ein Attribut eintragen. Zusätzlich kannst du Inhaltsstoffe über ein Attribut pflegen. Anhand der Sätze werden Symbol, Signalwort, Gefahrenhinweistext (bei H-Sätzen), Sicherheitshinweistext (bei P-Sätzen) und EUH-Erklärungssätze in einer übersichtlichen Liste aufgeführt. Das Plugin bringt für alle Sätze passende Sprachvariablen mit, die du einfach über die Sprachvariablen-Verwaltung anpassen kannst, falls nötig. ## Funktionsumfang Automatische Ausgabe der Gefahrenhinweistexte anhand der eingetragenen H-Sätze Automatische Ausgabe der Sicherheitshinweistexte anhand der eingetragenen P-Sätze Automatische Ausgabe der EUH-Erklärungstexte anhand der eingetragenen EUH-Sätze Passende GHS-Symbole und Signalworte werden automatisch ermittelt und angezeigt Pflege von Inhaltsstoffen über ein separates Funktionsattribut Alle Texte sind über Sprachvariablen anpassbar – volle Kontrolle über den Wortlaut ## Voraussetzungen Bevor du mit der Installation beginnst, stelle sicher, dass du Folgendes hast: * Einen aktiven JTL Shop (Version 5) * Administratorzugang zu deinem JTL Shop * Das Plugin **Resources & Health** (wird vor DZM CLP installiert) Resources & Health ist unser kostenloses Basisplugin und muss immer vor allen anderen DZM Plugins installiert werden. # Installation Source: https://docs.dreizack-medien.de/CLP-Gefahrenhinweise/installation Schritt-für-Schritt Anleitung zur Installation von DZM CLP **BEVOR DU BEGINNST** Resources & Health muss dringend VOR allen anderen Plugins installiert und aktualisiert werden. ## Schnellübersicht Stelle sicher, dass Resources & Health installiert und auf dem neuesten Stand ist Installiere das Plugin über den Pluginmanager oder den JTL Extension Store unter "Meine Käufe" Trage den Lizenzschlüssel in den Pluginsettings ein Diese Installationsbeschreibung richtet sich an die Installation über unseren Store. Du kannst auch die JTL Extension Store Versionen in unserem Store herunterladen und diese manuell über den Pluginmanager installieren. Ansonsten halte dich einfach an die Installation über den Extension Store unter "Meine Käufe". *** ## Installation abgeschlossen DZM CLP ist installiert! Als nächstes richtest du die Datenpflege für deine Produkte ein. Weiter geht's mit der [Datenpflege](/CLP-Gefahrenhinweise/datenpflege). # Referenz Source: https://docs.dreizack-medien.de/CLP-Gefahrenhinweise/referenz Vollständige Übersicht aller Symbole, Signalworte, H-Sätze, P-Sätze und EUH-Erklärungen ## Symbole Die folgenden GHS-Symbole werden automatisch anhand der eingetragenen Sätze ermittelt und angezeigt:
GHS-Symbole Übersicht
## Signalworte | Signalwort | Beschreibung | | ----------- | --------------------------------------------- | | **Gefahr** | Für schwerwiegendere Gefahrenkategorien | | **Achtung** | Für weniger schwerwiegende Gefahrenkategorien | *** ## Sätze-Übersicht | Code | Text | | ---- | ----------------------------------------------------------------------------------------------------------------------------- | | H200 | Instabil, explosiv | | H201 | Explosiv, Gefahr der Massenexplosion. | | H202 | Explosiv; große Gefahr durch Splitter, Spreng- und Wurfstücke. | | H203 | Explosiv; Gefahr durch Feuer, Luftdruck oder Splitter, Spreng- und Wurfstücke. | | H204 | Gefahr durch Feuer oder Splitter, Spreng- und Wurfstücke. | | H205 | Gefahr der Massenexplosion bei Feuer. | | H206 | Gefahr durch Feuer, Druckstoß oder Sprengstücke; erhöhte Explosionsgefahr, wenn das Desensibilisierungsmittel reduziert wird. | | H207 | Gefahr durch Feuer oder Sprengstücke; erhöhte Explosionsgefahr, wenn das Desensibilisierungsmittel reduziert wird. | | H208 | Gefahr durch Feuer; erhöhte Explosionsgefahr, wenn das Desensibilisierungsmittel reduziert wird. | | H210 | Sehr empfindlich. | | H220 | Extrem entzündbares Gas. | | H221 | Entzündbares Gas. | | H222 | Extrem entzündbares Aerosol. | | H223 | Entzündbares Aerosol. | | H224 | Flüssigkeit und Dampf extrem entzündbar. | | H225 | Flüssigkeit und Dampf leicht entzündbar. | | H226 | Flüssigkeit und Dampf entzündbar. | | H228 | Entzündbarer Feststoff. | | H229 | Behälter steht unter Druck: kann bei Erwärmung bersten. | | H230 | Kann auch in Abwesenheit von Luft explosionsartig reagieren. | | H231 | Kann auch in Abwesenheit von Luft bei erhöhtem Druck und/oder erhöhter Temperatur explosionsartig reagieren. | | H232 | Kann sich bei Kontakt mit Luft spontan entzünden. | | H240 | Erwärmung kann Explosion verursachen. | | H241 | Erwärmung kann Brand oder Explosion verursachen. | | H242 | Erwärmung kann Brand verursachen. | | H250 | Entzündet sich in Berührung mit Luft von selbst. | | H251 | Selbstentzündlich; kann in Brand geraten. | | H252 | In großen Mengen selbstentzündlich; kann in Brand geraten. | | H260 | In Berührung mit Wasser entstehen entzündbare Gase, die sich spontan entzünden können. | | H261 | In Berührung mit Wasser entstehen entzündbare Gase. | | H270 | Kann Brand verursachen oder verstärken; Oxidationsmittel. | | H271 | Kann Brand oder Explosion verursachen; starkes Oxidationsmittel. | | H272 | Kann Brand verstärken; Oxidationsmittel. | | H280 | Enthält Gas unter Druck; kann bei Erwärmung explodieren. | | H281 | Enthält tiefgekühltes Gas; kann Kälteverbrennungen oder -verletzungen verursachen. | | H290 | Kann gegenüber Metallen korrosiv sein. | | H300 | Lebensgefahr bei Verschlucken. | | H301 | Giftig bei Verschlucken. | | H302 | Gesundheitsschädlich bei Verschlucken. | | H304 | Kann bei Verschlucken und Eindringen in die Atemwege tödlich sein. | | H305 | Kann bei Verschlucken und Eindringen in die Atemwege gesundheitsschädlich sein. | | H310 | Lebensgefahr bei Hautkontakt. | | H311 | Giftig bei Hautkontakt. | | H312 | Gesundheitsschädlich bei Hautkontakt. | | H314 | Verursacht schwere Verätzungen der Haut und schwere Augenschäden. | | H315 | Verursacht Hautreizungen. | | H317 | Kann allergische Hautreaktionen verursachen. | | H318 | Verursacht schwere Augenschäden. | | H319 | Verursacht schwere Augenreizung. | | H320 | Verursacht Augenreizung. | | H330 | Lebensgefahr bei Einatmen. | | H331 | Giftig bei Einatmen. | | H332 | Gesundheitsschädlich bei Einatmen. | | H333 | Kann bei Einatmen gesundheitsschädlich sein. | | H334 | Kann bei Einatmen Allergie, asthmaartige Symptome oder Atembeschwerden verursachen. | | H335 | Kann die Atemwege reizen. | | H336 | Kann Schläfrigkeit und Benommenheit verursachen. | | H340 | Kann genetische Defekte verursachen. | | H341 | Kann vermutlich genetische Defekte verursachen. | | H350 | Kann Krebs erzeugen. | | H351 | Kann vermutlich Krebs erzeugen. | | H360 | Kann die Fruchtbarkeit beeinträchtigen oder das Kind im Mutterleib schädigen. | | H361 | Kann vermutlich die Fruchtbarkeit beeinträchtigen oder das Kind im Mutterleib schädigen. | | H362 | Kann Säuglinge über die Muttermilch schädigen. | | H370 | Schädigt die Organe. | | H371 | Kann die Organe schädigen. | | H372 | Schädigt die Organe bei längerer oder wiederholter Exposition. | | H373 | Kann die Organe schädigen bei längerer oder wiederholter Exposition. | | H400 | Sehr giftig für Wasserorganismen. | | H401 | Giftig für Wasserorganismen. | | H402 | Schädlich für Wasserorganismen. | | H410 | Sehr giftig für Wasserorganismen mit langfristiger Wirkung. | | H411 | Giftig für Wasserorganismen, mit langfristiger Wirkung. | | H412 | Schädlich für Wasserorganismen, mit langfristiger Wirkung. | | H413 | Kann für Wasserorganismen schädlich sein, mit langfristiger Wirkung. | | H420 | Schädigt die öffentliche Gesundheit und die Umwelt durch Ozonabbau in der äußeren Atmosphäre. | **Kombinationen:** | Code | Text | | -------------- | ----------------------------------------------------------------- | | H300+H310 | Lebensgefahr bei Verschlucken oder Hautkontakt. | | H300+H330 | Lebensgefahr bei Verschlucken oder Einatmen. | | H310+H330 | Lebensgefahr bei Hautkontakt oder Einatmen. | | H300+H310+H330 | Lebensgefahr bei Verschlucken, Hautkontakt oder Einatmen. | | H301+H311 | Giftig bei Verschlucken oder Hautkontakt. | | H301+H331 | Giftig bei Verschlucken oder Einatmen. | | H311+H331 | Giftig bei Hautkontakt oder Einatmen. | | H301+H311+H331 | Giftig bei Verschlucken, Hautkontakt oder Einatmen. | | H302+H312 | Gesundheitsschädlich bei Verschlucken oder Hautkontakt. | | H302+H332 | Gesundheitsschädlich bei Verschlucken oder Einatmen. | | H312+H332 | Gesundheitsschädlich bei Hautkontakt oder Einatmen. | | H302+H312+H332 | Gesundheitsschädlich bei Verschlucken, Hautkontakt oder Einatmen. | | Code | Text | | ---- | ---------------------------------------------------------------------------------------------------------------- | | P101 | Ist ärztlicher Rat erforderlich, Verpackung oder Kennzeichnungsetikett bereithalten. | | P102 | Darf nicht in die Hände von Kindern gelangen. | | P103 | Vor Gebrauch Kennzeichnungsetikett lesen. | | P201 | Vor Gebrauch besondere Anweisungen einholen. | | P202 | Vor Gebrauch alle Sicherheitshinweise lesen und verstehen. | | P210 | Von Hitze, heißen Oberflächen, Funken, offenen Flammen sowie anderen Zündquellenarten fernhalten. Nicht rauchen. | | P211 | Nicht gegen offene Flamme oder andere Zündquelle sprühen. | | P220 | Von Kleidung und anderen brennbaren Materialien fernhalten. | | P221 | Erhitzen unter Einschluss und Reduzierung des Desensibilisierungsmittels vermeiden. | | P222 | Keinen Kontakt mit Luft zulassen. | | P223 | Keinen Kontakt mit Wasser zulassen. | | P231 | Inhalt unter inertem Gas ... handhaben und aufbewahren. | | P232 | Vor Feuchtigkeit schützen. | | P233 | Behälter dicht verschlossen halten. | | P234 | Nur in Originalverpackung aufbewahren. | | P235 | Kühl halten. | | P240 | Behälter und zu befüllende Anlage erden. | | P241 | Explosionsgeschützte \[elektrische ... / Lüftungs- ... / Beleuchtungs- ... / ...] Geräte verwenden. | | P242 | Funkenarmes Werkzeug verwenden. | | P243 | Maßnahmen gegen elektrostatische Entladungen treffen. | | P244 | Druckminderer frei von Fett und Öl halten. | | P250 | Nicht schleifen / stoßen / reiben / ... | | P251 | Nicht durchstechen oder verbrennen, auch nicht nach der Verwendung. | | P260 | Staub / Rauch / Gas / Nebel / Dampf / Aerosol nicht einatmen. | | P261 | Einatmen von Staub / Rauch / Gas / Nebel / Dampf / Aerosol vermeiden. | | P262 | Nicht in die Augen, auf die Haut oder auf die Kleidung gelangen lassen. | | P263 | Berührung während der Schwangerschaft und Stillzeit vermeiden. | | P264 | Nach Gebrauch ... gründlich waschen. | | P270 | Bei Gebrauch nicht essen, trinken oder rauchen. | | P271 | Nur im Freien oder in gut belüfteten Räumen verwenden. | | P272 | Kontaminierte Arbeitskleidung nicht außerhalb des Arbeitsplatzes tragen. | | P273 | Freisetzung in die Umwelt vermeiden. | | P280 | Schutzhandschuhe / Schutzkleidung / Augenschutz / Gesichtsschutz tragen. | | P281 | Vorgeschriebene persönliche Schutzausrüstung verwenden. | | P282 | Schutzhandschuhe mit Kälteisolierung und zusätzlich Gesichtsschild oder Augenschutz tragen. | | P283 | Schwer entflammbare oder flammhemmende Kleidung tragen. | | P284 | Bei unzureichender Belüftung Atemschutz tragen. | | P285 | Bei unzureichender Belüftung Atemschutz verwenden. | | P301 | Bei Verschlucken: | | P302 | Bei Berührung mit der Haut: | | P303 | Bei Berührung mit der Haut (oder dem Haar): | | P304 | Bei Einatmen: | | P305 | Bei Kontakt mit den Augen: | | P306 | Bei kontaminierter Kleidung: | | P307 | Bei Exposition oder falls betroffen: | | P308 | Bei Exposition oder falls betroffen: Ärztlichen Rat einholen. | | P309 | Bei Exposition oder falls betroffen: | | P310 | Sofort Giftinformationszentrum, Arzt oder ... anrufen. | | P311 | Giftinformationszentrum, Arzt oder ... anrufen. | | P312 | Bei Unwohlsein Giftinformationszentrum / Arzt ... anrufen. | | P313 | Ärztlichen Rat einholen. | | P314 | Bei Unwohlsein ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P315 | Ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P320 | Besondere Behandlung dringend erforderlich. | | P321 | Besondere Behandlung (siehe ... auf diesem Kennzeichnungsetikett). | | P322 | Besondere Behandlung (siehe ... auf diesem Kennzeichnungsetikett). | | P330 | Mund ausspülen. | | P331 | Kein Erbrechen herbeiführen. | | P332 | Bei Hautreizung: | | P333 | Bei Hautreizung oder -ausschlag: | | P334 | In kaltes Wasser tauchen (oder nassen Verband anlegen). | | P335 | Lose Partikel von der Haut abstoßen. | | P336 | Verschüttete Bereiche mit lauwarmem Wasser abwaschen. Betroffenen Bereich nicht reiben. | | P337 | Eventuell vorhandene Kontaktlinsen nach Möglichkeit entfernen. Weiter ausspülen. | | P338 | Betroffene Augenpartie ausspülen. | | P340 | Die betroffene Person an die frische Luft bringen und für ungehinderte Atmung sorgen. | | P341 | Bei Atembeschwerden an die frische Luft bringen und in einer Position ruhigstellen, die das Atmen erleichtert. | | P342 | Bei Symptomen der Atemwege: | | P350 | Behutsam mit viel Wasser und Seife waschen. | | P351 | Einige Minuten lang behutsam mit Wasser ausspülen. | | P352 | Mit viel Wasser / ... waschen. | | P353 | Betroffene Hautpartien abwaschen (oder duschen). | | P360 | Kontaminierte Kleidung und Haut sofort mit viel Wasser abwaschen und danach Kleidung ausziehen. | | P361 | Alle kontaminierten Kleidungsstücke sofort ausziehen. | | P362 | Kontaminierte Kleidung ausziehen. | | P363 | Kontaminierte Kleidung vor erneutem Tragen waschen. | | P364 | Und vor erneutem Tragen waschen. | | P370 | Bei Brand: | | P371 | Bei Großbrand und großen Mengen: | | P372 | Explosionsgefahr bei Brand. | | P373 | Keine Brandbekämpfung, wenn das Feuer explosive Stoffe / Gemische / Erzeugnisse erreicht. | | P374 | Wegen Explosionsgefahr nicht gegen Brand ankämpfen. | | P375 | Undichtigkeit beseitigen, wenn gefahrlos möglich. | | P376 | Brand an undichten Stellen bekämpfen. | | P377 | Explosionsgeschütztes Gerät benutzen. | | P378 | Zum Löschen ... verwenden. | | P380 | Bei Undichtigkeit alle Zündquellen entfernen. | | P381 | Alle Zündquellen entfernen, um Materialschäden zu vermeiden. | | P390 | Verschüttete Mengen aufnehmen. | | P391 | Verschüttete Mengen aufnehmen. | | P401 | Aufbewahren gemäß … | | P402 | An einem trockenen Ort aufbewahren. | | P403 | An einem gut belüfteten Ort aufbewahren. | | P404 | In einem geschlossenen Behälter aufbewahren. | | P405 | Unter Verschluss aufbewahren. | | P406 | In korrosionsbeständigem / … Behälter mit korrosionsbeständiger Innenauskleidung aufbewahren. | | P407 | Luftspalt zwischen Stapeln / Paletten lassen. | | P410 | Vor Sonnenbestrahlung schützen. | | P411 | Bei Temperaturen nicht über … °C / … °F aufbewahren. | | P412 | Nicht Temperaturen über 50 °C / 122 °F aussetzen. | | P413 | Schüttgut in Mengen von mehr als … kg / … lbs bei Temperaturen nicht über … °C / … °F aufbewahren. | | P420 | Getrennt aufbewahren. | | P501 | Inhalt / Behälter ... zuführen. | | P502 | Informationen zur Wiederverwendung oder Wiederverwertung bei Hersteller oder Lieferant erfragen. | | P503 | Informationen zur Entsorgung/Wiederverwertung beim Hersteller/Lieferanten/… erfragen. | **Kombinationen:** | Code | Text | | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | P231+P232 | Inhalt unter inertem Gas/… handhaben und aufbewahren. Vor Feuchtigkeit schützen. | | P301+P310 | Bei Verschlucken: Sofort Giftinformationszentrum, Arzt oder ... anrufen. | | P301+P330+P331+P310 | Bei Verschlucken: Mund ausspülen. Kein Erbrechen herbeiführen. Sofort Giftinformationszentrum, Arzt oder ... anrufen. | | P301+P312 | Bei Verschlucken: Bei Unwohlsein Giftinformationszentrum / Arzt / ... anrufen. | | P301+P330+P331 | Bei Verschlucken: Mund ausspülen. Kein Erbrechen herbeiführen. | | P302+P334 | Bei Berührung mit der Haut: In kaltes Wasser tauchen (oder nassen Verband anlegen). | | P302+P353+P334 | Bei Berührung mit der Haut: Lose Partikel von der Haut abstoßen. In kaltes Wasser tauchen (oder nassen Verband anlegen). | | P302+P362 | Bei Berührung mit der Haut: Kontaminierte Kleidung ausziehen. | | P302+P352 | Bei Berührung mit der Haut: Mit viel Wasser / ... waschen. | | P302+P352+P310 | Bei Berührung mit der Haut: Mit viel Wasser / ... waschen. Sofort Giftinformationszentrum, Arzt oder ... anrufen. | | P302+P352+P312 | Bei Berührung mit der Haut: Mit viel Wasser / ... waschen. Bei Unwohlsein Giftinformationszentrum / Arzt ... anrufen. | | P303+P361+P353 | Bei Berührung mit der Haut (oder dem Haar): Alle beschmutzten, getränkten Kleidungsstücke sofort ausziehen. Haut mit Wasser abwaschen / duschen. | | P303+P361+P353+P315 | Bei Berührung mit der Haut (oder dem Haar): Alle beschmutzten, getränkten Kleidungsstücke sofort ausziehen. Haut mit Wasser abwaschen / duschen. Ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P304+P340 | Bei Einatmen: Die Person an die frische Luft bringen und für ungehinderte Atmung sorgen. | | P304+P340+P310 | Bei Einatmen: Die Person an die frische Luft bringen und für ungehinderte Atmung sorgen. Sofort Giftinformationszentrum oder Arzt anrufen. | | P304+P340+P311 | Bei Einatmen: Die Person an die frische Luft bringen und für ungehinderte Atmung sorgen. Giftinformationszentrum, Arzt oder … anrufen. | | P305+P351+P338 | Bei Kontakt mit den Augen: Einige Minuten lang behutsam mit Wasser spülen. Eventuell vorhandene Kontaktlinsen nach Möglichkeit entfernen. Weiter spülen. | | P305+P351+P338+P315 | Bei Kontakt mit den Augen: Einige Minuten lang behutsam mit Wasser spülen. Eventuell vorhandene Kontaktlinsen nach Möglichkeit entfernen. Weiter spülen. Sofort ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P306+P360 | Bei Kontakt mit der Kleidung: Kontaminierte Kleidung und Haut sofort mit viel Wasser abwaschen und danach Kleidung ausziehen. | | P306+P311 | Bei Exposition oder falls betroffen: Giftinformationszentrum, Arzt oder ... anrufen. | | P307+P310 | Bei Exposition: Sofort Giftinformationszentrum, Arzt oder … anrufen. | | P308+P310 | Bei Exposition oder falls betroffen: Giftinformationszentrum, Arzt oder … anrufen. | | P308+P311 | Bei Exposition oder falls betroffen: Giftinformationszentrum, Arzt oder ... anrufen. | | P309+P310 | Bei Exposition oder Unwohlsein: Giftinformationszentrum, Arzt oder … anrufen. | | P332+P313 | Bei Hautreizung: Ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P333+P313 | Bei Hautreizung oder -ausschlag: Ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P336+P315 | Vereiste Bereiche mit lauwarmem Wasser auftauen. Betroffenen Bereich nicht reiben. Sofort ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P337+P313 | Bei anhaltender Augenreizung: Ärztlichen Rat einholen / ärztliche Hilfe hinzuziehen. | | P342+P311 | Bei Symptomen der Atemwege: Giftinformationszentrum, Arzt oder ... anrufen. | | P361+P364 | Alle kontaminierten Kleidungsstücke sofort ausziehen. Und vor erneutem Tragen waschen. | | P362+P364 | Kontaminierte Kleidung ausziehen. Und vor erneutem Tragen waschen. | | P370+P376 | Bei Brand: Undichtigkeit beseitigen, wenn gefahrlos möglich. | | P370+P378 | Bei Brand: ... zum Löschen ... verwenden. | | P370+P380 | Bei Brand: Umgebung räumen. | | P370+P380+P375 | Bei Brand: Umgebung räumen. Wegen Explosionsgefahr Brand aus der Entfernung bekämpfen. | | P370+P380+P375+P378 | Bei Brand: Umgebung räumen. Wegen Explosionsgefahr Brand aus der Entfernung bekämpfen. ... zum Löschen verwenden. | | P402+P404 | In einem geschlossenen Behälter an einem trockenen Ort aufbewahren. | | P403+P233 | An einem gut belüfteten Ort aufbewahren. Behälter dicht verschlossen halten. | | P403+P235 | An einem gut belüfteten Ort aufbewahren. Kühl halten. | | P410+P403 | Vor Sonnenbestrahlung schützen. An einem gut belüfteten Ort aufbewahren. | | P410+P412 | Vor Sonnenbestrahlung schützen. Nicht Temperaturen über 50 °C / 122 °F aussetzen. | | Code | Text | | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | EUH001 | In trockenem Zustand explosiv. | | EUH006 | Mit und ohne Luft explosionsfähig. | | EUH014 | Reagiert heftig mit Wasser. | | EUH018 | Kann bei Verwendung explosionsfähige / entzündbare Dampf/Luft-Gemische bilden. | | EUH019 | Kann explosionsfähige Peroxide bilden. | | EUH029 | Entwickelt bei Berührung mit Wasser giftige Gase. | | EUH031 | Entwickelt bei Berührung mit Säure giftige Gase. | | EUH032 | Entwickelt bei Berührung mit Säure sehr giftige Gase. | | EUH044 | Explosionsgefahr bei Erhitzen unter Einschluss. | | EUH059 | Die Ozonschicht schädigend. | | EUH066 | Wiederholter Kontakt kann zu spröder oder rissiger Haut führen. | | EUH070 | Giftig bei Berührung mit den Augen. | | EUH071 | Wirkt ätzend auf die Atemwege. | | EUH201 | Enthält Blei. Nicht für den Anstrich von Gegenständen verwenden, die von Kindern gekaut oder gelutscht werden könnten. | | EUH201A | Achtung! Enthält Blei. | | EUH202 | Cyanacrylat. Gefahr. Klebt innerhalb von Sekunden Haut und Augenlider zusammen. Darf nicht in die Hände von Kindern gelangen. | | EUH203 | Enthält Chrom(VI). Kann allergische Reaktionen hervorrufen. | | EUH204 | Enthält Isocyanate. Kann allergische Reaktionen hervorrufen. | | EUH205 | Enthält epoxidhaltige Verbindungen. Kann allergische Reaktionen hervorrufen. | | EUH206 | Achtung! Nicht zusammen mit anderen Produkten verwenden, da gefährliche Gase (Chlor) freigesetzt werden können. | | EUH207 | Achtung! Enthält Cadmium. Bei der Verwendung entstehen gefährliche Dämpfe. Hinweise des Herstellers beachten. Sicherheitsanweisungen einhalten. | | EUH208 | Enthält (Name des sensibilisierenden Stoffes). Kann allergische Reaktionen hervorrufen. | | EUH209 | Kann bei Verwendung leicht entzündbar werden. | | EUH209A | Kann bei Verwendung entzündbar werden. | | EUH210 | Sicherheitsdatenblatt auf Anfrage erhältlich. | | EUH211 | Achtung! Beim Sprühen können gefährliche lungengängige Tröpfchen entstehen. Aerosol oder Nebel nicht einatmen. | | EUH212 | Achtung! Bei der Verwendung kann gefährlicher lungengängiger Staub entstehen. Staub nicht einatmen. | | EUH380 | Kann beim Menschen endokrine Störungen verursachen. | | EUH381 | Steht in dem Verdacht, beim Menschen endokrine Störungen zu verursachen. | | EUH401 | Zur Vermeidung von Risiken für Mensch und Umwelt die Gebrauchsanleitung einhalten. | | EUH430 | Kann endokrine Störungen in der Umwelt verursachen. | | EUH431 | Steht in dem Verdacht, endokrine Störungen in der Umwelt zu verursachen. | | EUH440 | Reichert sich in der Umwelt und in lebenden Organismen, einschließlich Menschen, an. | | EUH441 | Reichert sich stark in der Umwelt und in lebenden Organismen, einschließlich Menschen, an. | | EUH450 | Kann lang anhaltende und diffuse Verschmutzung von Wasserressourcen verursachen. | | EUH451 | Kann sehr lang anhaltende und diffuse Verschmutzung von Wasserressourcen verursachen. | # Template-Einrichtung Source: https://docs.dreizack-medien.de/CLP-Gefahrenhinweise/template-einrichtung So richtest du die Anzeige der CLP-Hinweise in deinem Template ein ## Template konfigurieren Wenn du **NIU Plus** verwendest, musst du lediglich die **Custom Box "CLP Hinweise"** in den Einstellungen zu den Produktdetails ergänzen. Das war's – NIU Plus übernimmt die Darstellung automatisch. Für alle anderen Templates gehe wie folgt vor: Deaktiviere in den Plugineinstellungen die Option **"Ich verwende NIU Plus"** Wähle einen geeigneten CSS-Selektor aus, wo die Hinweise injiziert werden sollen ### Custom Template verwenden Du kannst auch ein ganz eigenes Template verwenden: Nutze die Vorlage unter: ``` plugins/dzm_clp/frontend/injections/clp_content_custom.ini.tpl ``` Baue dir hier dein Template wie du es benötigst Entferne das `.ini` aus dem Dateinamen, sodass die Datei `clp_content_custom.tpl` heißt Nun wird das Custom TPL File verwendet # AI-Feed Source: https://docs.dreizack-medien.de/DZM-Agentic-Plus/ai-feed Produkt-Feed für KI- und Shopping-Agenten ## AI-Feed (/feed.jsonl) Ein schlanker Produkt-Feed als JSONL (eine Zeile pro Produkt, ACP-/Google-Merchant-nah) für KI-/Shopping-Agenten, die den ganzen Katalog kompakt einlesen. Paginiert über `?offset` & `?limit`; nutzt dieselben Preise/Sichtbarkeit wie der Shop.
AI-Feed Einstellungen
Wenn deaktiviert, liefert `/feed.jsonl` einen 404-Fehler. Link zu `/feed.jsonl`. Änderung erst speichern, dann öffnen.
# Changelog Source: https://docs.dreizack-medien.de/DZM-Agentic-Plus/changelog Alle Updates und Änderungen für DZM Agentic Plus ### Features * KI-Lesbarkeit: Die Maschinen-Endpunkte (.md und .json) liefern wahlweise text/plain oder ihren nativen Content-Type, mit bereinigten Antwort-Headern (nachgetragen aus 1.0.2) ### Verbesserungen * Kompatibilität mit JTL-Shop 5.8 bis 5.8.1 ### Bugfixes * Die mitgelieferte robots.txt-Vorlage sperrte KI-Agenten aus, obwohl das Plugin sie einladen soll (nachgetragen aus 1.0.3) ### Hinweise * Benötigt DZM Resources & Health 1.11.17 – bitte zuerst aktualisieren ### Kompatibilität * JTL-Shop 5.5.0 - 5.8.1 * Benötigt mindestens DZM Resources & Health 1.11.17 ### Bugfix * Plugin-Titel korrigiert ### Kompatibilität * JTL-Shop 5.5.0 - 5.7.2 * Benötigt mindestens DZM Resources & Health 1.11.9 ### Erstveröffentlichung * Maschinenlesbare Ausgabe jeder Seite als Markdown (`.md`) und als schema.org-JSON-LD (`.json`), einfach als Endung an die bestehende URL angehängt. Unterstützt werden Produkte, Kategorien, Content-Seiten, Blogbeiträge, die Blog-Übersicht und die Startseite * Preise, Verfügbarkeit, Varianten, Kategorien und Sichtbarkeit kommen unverändert aus dem Shop, inklusive Netto- oder Bruttodarstellung je Kundengruppe, Preisspanne bei Vaterartikeln und „Preis auf Anfrage" * Inhalte aus dem OnPageComposer werden mit ausgegeben, sodass auch im OPC gebaute Landingpages vollständig lesbar sind * Kuratierbare `llms.txt` mit Eckdaten, empfohlenen Produkten, wichtigen Seiten, FAQ und AI-Usage-Policy, komplett im Backend redigierbar und bei jedem Abruf live erzeugt * Ausführliche `llms-full.txt` mit eingebetteten Volltexten von Content-Seiten, Rechtstexten und Top-Produkten * Read-only MCP-Server unter `/mcp` mit fünf Werkzeugen: Produktsuche, Produktdetails, Kategorien auflisten, Kategoriedetails und Content-Seiten. Direkt als Connector in Claude oder ChatGPT einbindbar, auf Wunsch mit Token-Schutz * AI-Produkt-Feed unter `/feed.jsonl`, paginiert, mit denselben Preisen und Sichtbarkeiten wie der Shop * Automatische Auffindbarkeit über einen HTTP-Link-Header auf jeder Seite, Verweise im Seitenkopf, den Spiegel `/.well-known/llms.txt` und einen fertigen robots.txt-Baustein zum Kopieren * Jeder Ausgabeweg lässt sich einzeln abschalten, dazu ein Projektions-Cache für Shops mit hoher Crawler-Last * WebMCP als experimentelle Vorbereitung für Browser-Agenten, standardmäßig deaktiviert * Durchgehend read-only: keine Schreibzugriffe, keine personenbezogenen Daten, keine Template-Anpassung nötig ### Kompatibilität * JTL-Shop 5.5.0 - 5.7.2 * Benötigt mindestens DZM Resources & Health 1.11.9 # Einführung Source: https://docs.dreizack-medien.de/DZM-Agentic-Plus/einfuehrung Was DZM Agentic Plus macht und wofür du es brauchst **DZM Agentic Plus** macht deinen JTL-Shop für KI-Agenten lesbar und nutzbar, von Chatbots wie ChatGPT und Claude über Shopping-Agenten bis hin zu klassischen KI-Crawlern. Immer mehr Menschen suchen Produkte nicht mehr über Google, sondern lassen sich direkt von einer KI beraten, und die KI entscheidet dann, welcher Shop empfohlen wird. Agentic Plus sorgt dafür, dass deine Produkte dabei überhaupt erst gefunden und richtig verstanden werden. Im JTL-Backend erscheint das Plugin unter dem Namen **DZM Agent Ready**. **Kein offizieller Standard, noch nicht.** Die hier verwendeten Formate, allen voran `llms.txt`, sind aktuell (Stand Mitte 2026) Vorschläge aus der Community und kein offizieller Industriestandard, ähnlich wie es die `robots.txt` früher einmal war. Das kann sich mit der Zeit ändern, muss es aber nicht. Schon heute lesen viele KI-Agenten diese Formate und honorieren sie. Vorbereitet zu sein schadet also in jedem Fall nicht. ## Video: So funktioniert DZM Agentic Plus
``` **Verwendung:** Dynamisches Einfügen in bestehende Template-Elemente **Typische Anwendungsfälle:** * Zusätzliche Buttons in bestehenden Bereichen * Custom Badges auf Produktseiten * Erweiterte Produktinformationen * Dynamische Preisanzeigen Nutze als Selektor eine **ID** (#meine-id) oder eine **Klasse** (.meine-klasse). Der Code wird in dieses Element injiziert. **Beispiel für Selektor:** ```css theme={null} #product-actions ``` **Beispiel-Code:** ```html theme={null} ```
## Script-Einstellungen ### Grundeinstellungen Vergebe hier einen eindeutigen Namen für das Script, z.B. "Google Analytics Tracking" oder "Facebook Pixel". Wähle den Ausgabetyp: * **Header** - Für früh zu ladende Scripts/Styles * **Footer** - Für die meisten Scripts und schwebende Widgets * **Portlet** - Für flexible Platzierung im OPC * **Selektor** - Für dynamisches Einfügen in Template-Elemente Nur bei Ausgabetyp "Selektor": CSS-Selektor als ID (#meine-id) oder Klasse (.meine-klasse) Füge hier das Script oder CSS-Stylesheet ein. Unterstützt HTML, JavaScript und CSS.
### Vorhandene Scripts
Vorhandene Scripts
Alle angelegten Scripts werden in der Tabelle unterhalb des Formulars aufgelistet. Die Tabelle zeigt auf einen Blick die wichtigsten Informationen zu jedem Script: Der vergebene Name des Scripts. Eindeutige ID des Scripts, wird automatisch aus dem Namen generiert. Der gewählte Ausgabetyp (z.B. Header, Footer, Portlet). Der CSS-Selektor, sofern der Ausgabetyp "Selektor" gewählt wurde. Das verknüpfte Consent-Item. Ein Strich (–) bedeutet, das Script wird ohne Consent-Bindung geladen. Über die Icons am Ende jeder Zeile kannst du ein Script **bearbeiten** oder **löschen**. Per Klick auf den Pfeil links öffnet sich die aufgeklappte Detailansicht mit dem hinterlegten Code.
## Consent Item bearbeiten
Consent Item bearbeiten
Jedes Feld bietet zwei Eingabemöglichkeiten: einen **direkten Textwert** (links) und eine **Sprachvariable** (rechts). Du kannst beides kombinieren – wird eine Sprachvariable angegeben, hat sie Vorrang. Sprachvariablen sind besonders praktisch für mehrsprachige Shops. Lege sie unter **Sprachvariablen** im Resources & Health Dashboard mit der Sektion "custom" an. Setzt alle Felder des Formulars auf ihre Ausgangswerte zurück. Name des Consent-Items, z.B. "Google Analytics". Alternativ eine Sprachvariable im rechten Feld eintragen. Beschreibt, was der Dienst macht – wird dem Nutzer im Consent-Banner angezeigt. Alternativ Sprachvariable verwenden. Zweck der Datenerhebung, z.B. "Analyse des Nutzerverhaltens". Alternativ Sprachvariable verwenden. Link zur Datenschutzerklärung des Dienstes (optional). Alternativ Sprachvariable verwenden. Name des datenverarbeitenden Unternehmens, z.B. "Google Ireland Limited, Dublin, Irland". Speichert das Consent-Item. Es steht anschließend in der Dropdown-Liste bei der Script-Konfiguration zur Verfügung.
## Verwaltung ### Consent-Item-Verwaltung
Consent-Item-Verwaltung
Hier findest du eine Übersicht zu allen angelegten Consent-Items: * **Name und Details:** Alle wichtigen Informationen auf einen Blick * **Gebundene Scripts:** Anzahl der Scripts, die an dieses Item gebunden sind * **Bearbeiten:** Klicke auf ein Item, um dessen Einstellungen anzupassen * **Löschen:** Hake Items an und klicke auf den gelben Button zum Entfernen **Achtung beim Löschen!** Wenn du ein Consent-Item löschst, das an Scripts gebunden ist, werden diese Scripts automatisch ohne Consent-Abhängigkeit geladen. Prüfe vorher die Anzahl der gebundenen Scripts!
## Best Practices **Grundregeln:** * Alle Marketing- und Tracking-Scripts MÜSSEN an Consent-Items gebunden sein * Erstelle aussagekräftige Consent-Beschreibungen in einfacher Sprache * Verlinke immer auf die Datenschutzerklärung des Dienstes * Gib das verarbeitende Unternehmen vollständig an **Scripts ohne Consent:** Nur technisch notwendige Scripts (z.B. Shop-Funktionalität) dürfen ohne Consent geladen werden. **Header sparsam nutzen:** Nur kritische Scripts in den Header, da sie die Ladezeit beeinflussen **Async/Defer verwenden:** ```html theme={null} ``` **Footer bevorzugen:** Die meisten Scripts funktionieren auch im Footer und verbessern so die Performance **Klare Namen verwenden:** "Google Analytics 4 - Tracking" statt "Script 1" **Kommentare hinzufügen:** ```html theme={null} ``` **Änderungen dokumentieren:** Notiere wichtige Änderungen als Kommentar im Code **Checklist:** * [ ] Script lädt korrekt im gewählten Bereich * [ ] Consent-Bindung funktioniert (Script wird erst nach Zustimmung geladen) * [ ] Keine Fehler in der Browser-Konsole * [ ] Funktionalität des Scripts ist gegeben * [ ] Mobile Ansicht geprüft * [ ] Performance-Impact akzeptabel
## Häufige Anwendungsfälle **Ausgabetyp:** Header\ **Consent:** Marketing/Analytics ```html theme={null} ``` **Ausgabetyp:** Header\ **Consent:** Marketing ```html theme={null} ``` **Ausgabetyp:** Portlet\ **Consent:** Nicht erforderlich (zeigt nur Bewertungen) ```html theme={null} ``` **Ausgabetyp:** Footer\ **Consent:** Funktional (optional, je nach Datenschutzstrategie) ```html theme={null} ```
## Fehlerbehebung **Mögliche Ursachen:** * Consent wurde noch nicht erteilt (prüfe Consent-Bindung) * JavaScript-Fehler blockiert Ausführung (Browser-Konsole prüfen) * Falscher Ausgabetyp gewählt * Script-URL ist nicht erreichbar **Lösung:** 1. Öffne die Browser-Konsole (F12) 2. Prüfe auf Fehlermeldungen 3. Teste ohne Consent-Bindung 4. Prüfe, ob die externe URL erreichbar ist **Typische Probleme:** * Abhängigkeiten fehlen (z.B. jQuery wird benötigt) * Script lädt zu früh/spät (Ausgabetyp ändern) * Konflikte mit anderen Scripts * Falsche Konfiguration im Script-Code **Lösung:** 1. Prüfe die Dokumentation des externen Dienstes 2. Teste verschiedene Ausgabetypen (Header vs. Footer) 3. Lade benötigte Bibliotheken zuerst 4. Prüfe die Browser-Konsole auf Fehler **Prüfe:** * Wurde das Consent-Item gespeichert? * Ist es an ein Script gebunden? * Cache geleert? * Consent Manager aktiv im Template? **Lösung:** 1. Leere den Shop-Cache 2. Prüfe unter "Consent-Item-Verwaltung" die Übersicht 3. Stelle sicher, dass der JTL Consent Manager aktiviert ist **Häufige Ursachen:** * Plugin-Cache nicht geleert * OPC-Cache aktiv * Falscher Ausgabetyp **Lösung:** 1. Leere den Plugin-Cache 2. Leere den OPC-Cache 3. Öffne den OPC-Editor neu 4. Suche nach "Script Portlet" in der Portlet-Liste **Pro-Tipp:** Erstelle eine Testseite in deinem Shop, auf der du neue Scripts erst testest, bevor du sie live schaltest. So vermeidest du Fehler auf produktiven Seiten. # Shopstruktur Source: https://docs.dreizack-medien.de/Resources-and-Health/Shopstruktur-und-systeminfo ## Übersicht In diesem Tab kannst du dir alle verwaisten Kindartikel (=Artikel ohne Vater) anzeigen und als CSV-Datei ausgeben lassen. Hintergrund dafür ist, dass verwaiste Kindartikel den Export des Google Feeds blockieren und ohne dieses Tool sehr schwer zu identifizieren sind. Mit diesem Tool erhältst du eine schnelle Übersicht und kannst die entsprechenden Artikel in der Wawi anpassen. Außerdem findest du hier alle Infos zu deinem PHP-Setup.
## Features Identifiziere alle Kindartikel ohne zugeordneten Vaterartikel, die Probleme beim Google Feed Export verursachen können. Exportiere die Liste der verwaisten Kindartikel als CSV-Datei zur weiteren Bearbeitung oder Dokumentation. Vollständige Übersicht über dein PHP-Setup direkt im Backend - keine FTP-Zugriff oder phpinfo()-Datei nötig. Behebe Google Feed Probleme schnell und effizient durch gezielte Identifikation problematischer Artikel.
## Warum sind verwaiste Kindartikel problematisch? **Google Feed blockiert?** Verwaiste Kindartikel (Varianten ohne Vaterartikel) können den Export des Google Shopping Feeds blockieren. Google erwartet, dass Varianten immer einem Hauptartikel zugeordnet sind. Typische Szenarien für verwaiste Kindartikel: * Vaterartikel wurde in der Wawi gelöscht, Kindartikel blieben erhalten * Fehlerhafte Datenimporte * Manuelle Datenbankoperationen * Probleme bei der Synchronisation zwischen Wawi und Shop
## Verwaiste Kindartikel verwalten
Verwaiste Kindartikel
Öffne den Tab **Shopstruktur und Systeminfo** im Resources & Health Dashboard. Klicke auf den Button, um die Liste aller verwaisten Kindartikel anzuzeigen. Die Anzeige erfolgt übersichtlich mit allen wichtigen Artikelinformationen wie Artikel-ID, Name und SKU. Nutze die Export-Funktion, um die Liste als CSV-Datei herunterzuladen. Der CSV-Export ist besonders praktisch, wenn du die Liste mit deinem Team teilen oder in der Wawi systematisch abarbeiten möchtest. Öffne die betroffenen Artikel in der JTL-Wawi und ordne sie einem passenden Vaterartikel zu oder lösche sie. Führe einen vollständigen Abgleich zwischen Wawi und Shop durch, um die Änderungen zu übernehmen.
## PHP-Informationen einsehen Die PHP-Informationen geben dir einen vollständigen Überblick über: * **PHP-Version:** Welche PHP-Version auf deinem Server läuft * **Geladene Extensions:** Alle aktiven PHP-Module * **Konfiguration:** PHP.ini Einstellungen * **Umgebungsvariablen:** Server- und Systeminformationen * **Performance-Settings:** Memory Limit, Max Execution Time, etc. Diese Informationen sind besonders hilfreich bei der Fehlersuche oder wenn du mit dem Support kommunizierst. **Typische Anwendungsfälle:** 1. **Support-Anfragen:** Teile relevante PHP-Infos mit dem Support-Team 2. **Plugin-Kompatibilität:** Prüfe, ob alle erforderlichen PHP-Extensions geladen sind 3. **Performance-Optimierung:** Analysiere Memory Limits und Ausführungszeiten 4. **Server-Umzug:** Vergleiche PHP-Konfigurationen zwischen Servern Du kannst die PHP-Info-Seite direkt im Browser aufrufen und bei Bedarf als PDF speichern. Diese PHP-Einstellungen sind für JTL-Shop besonders wichtig: | Einstellung | Empfohlen | Beschreibung | | --------------------- | --------- | ------------------------------- | | `memory_limit` | 256M+ | Arbeitsspeicher pro PHP-Prozess | | `max_execution_time` | 300+ | Maximale Skript-Laufzeit | | `upload_max_filesize` | 64M+ | Maximale Upload-Größe | | `post_max_size` | 64M+ | Maximale POST-Größe | | `max_input_vars` | 10000+ | Maximale Anzahl Input-Variablen | Bei Abweichungen von den empfohlenen Werten kontaktiere deinen Hoster oder Server-Administrator.
## Best Practices Prüfe regelmäßig (z.B. monatlich) auf verwaiste Kindartikel, besonders nach: * Größeren Änderungen im Artikelstamm * Datenimporten * Umfangreichen Löschaktionen in der Wawi Führe vor jedem wichtigen Google Shopping Feed Export eine Überprüfung durch, um Probleme zu vermeiden. Nutze den CSV-Export zur Dokumentation deiner Bereinigungsaktionen. So kannst du nachvollziehen, welche Artikel du wann korrigiert hast. Überprüfe regelmäßig deine PHP-Version und plane Updates ein. Ältere PHP-Versionen sind nicht nur langsamer, sondern auch ein Sicherheitsrisiko. **Tipp:** Kombiniere die Shopstruktur-Prüfung mit einer regelmäßigen Wartungsroutine für deinen Shop. So bleiben Datenbankstruktur und Feed-Exporte immer optimal. # Sprachvariablen Source: https://docs.dreizack-medien.de/Resources-and-Health/Sprachvariablen ## Übersicht In diesem Tab kannst du alle Sprachvariablen zentral an einem Ort verwalten. Sprachvariablen sind Platzhalter für Texte, die anpassbar sind und entweder von JTL oder von uns (wenn es um Plugins geht) vorkonfiguriert wurden. Dazu gehören beispielsweise Texte für Buttons, Hinweise oder Fehlermeldungen. Diese Sprachvariablen lassen sich in verschiedenen Sprachen anpassen. Außerdem kannst du hier neue Sprachvariablen anlegen und den Inhalt nach Belieben anpassen. **Was sind Sprachvariablen?** Sprachvariablen (auch Language Variables oder Lang Vars) sind Platzhalter im Code, die zur Laufzeit durch tatsächliche Texte ersetzt werden. Der Vorteil: Texte können einfach angepasst und in mehreren Sprachen gepflegt werden, ohne den Code zu ändern.
## Features Verwalte alle Sprachvariablen (sowohl aus Plugins als auch alle JTL-Sprachvariablen) zentral an einem Ort. Exportiere und importiere Sprachvariablen als JSON - ideal für Backups und Massenbearbeitung. Erstelle eigene Sprachvariablen schnell und einfach über das Tool. Verwalte alle Sprachen deines Shops gleichzeitig - perfekt für internationale Shops.
## Plugin-Sprachvariablen
Plugin Sprachvariablen
Hier findest du alle Sprachvariablen, die aus Plugins kommen - sowohl von DZM als auch von anderen Plugin-Entwicklern. ### Interface-Bedienung Wähle die Sprache der Sprachvariablen, die du bearbeiten möchtest. **Verfügbare Sprachen:** * Deutsch (Standard) * Englisch * Weitere Sprachen (abhängig von deiner Wawi-Konfiguration) Die verfügbaren Sprachen werden in der JTL-Wawi definiert und dann in den Shop übertragen. Neue Sprachen müssen zuerst in der Wawi aktiviert werden. **Workflow für mehrsprachige Shops:** Beginne immer mit der Hauptsprache (meist Deutsch) und pflege alle Texte. Wechsle dann zur zweiten Sprache und übersetze/passe die Texte an. Stelle sicher, dass alle Sprachen vollständig gepflegt sind. Durchsuche Sprachvariablen nach Namen, Werten, Standardwerten oder Beschreibungen. **Suchstrategien:** * Nach Variablen-Namen: `btn_submit` * Nach Inhalt: "Jetzt kaufen" * Nach Plugin: `dzm_` * Nach Funktion: "error", "success", "button" Die Suche ist case-insensitive und durchsucht alle Felder gleichzeitig. Du musst nicht wissen, ob ein Text im Namen oder Wert steht. **Beispiel-Suchen:** ``` "in den warenkorb" → Findet alle Warenkorb-Buttons "dzm_resources" → Findet alle Resources-Plugin-Variablen "error" → Findet alle Fehlermeldungen ``` **Sprachvariablen ändern:** Nutze die Suche oder scrolle durch die Liste. Klicke in das Textfeld unter "Wert" und ändere den Text. Der "Standardwert" zeigt dir den Original-Text - ändere nur den "Wert", nicht den Standard! Klicke auf "Speichern" um alle Änderungen zu übernehmen. Änderungen werden erst nach dem Speichern übernommen! Leere den Shop-Cache damit die Änderungen im Frontend sichtbar werden. **Weg:** Backend → System → Cache → Cache leeren **Formatierung beachten:** * HTML ist erlaubt: `Text` * Platzhalter erhalten: `{0}`, `{1}`, etc. * Sonderzeichen escapen wenn nötig **Alle Werte zurücksetzen** Setzt alle Sprachvariablen auf ihre Standardwerte zurück. **ACHTUNG:** Diese Aktion ist nicht rückgängig zu machen! Exportiere vorher ein Backup. **Speichern** Speichert alle vorgenommenen Änderungen in der Datenbank. **Exportieren** Exportiert alle Plugin-Sprachvariablen der aktuellen Sprache als JSON-Datei. Perfekt für Backups vor größeren Änderungen oder zum Übertragen auf andere Shops. **Select Files (Import)** Importiert eine zuvor exportierte JSON-Datei mit Sprachvariablen. Bestehende Werte werden überschrieben - sichere vorher den aktuellen Stand! ### Wichtiger Hinweis zum Cache **Sprachvariablen-Änderungen nicht sichtbar?** Manchmal werden Änderungen der Sprachvariablen im Frontend nicht sofort sichtbar, da diese noch im Shop-Cache hängen. **Lösung:** Leere deinen Shop-Cache im Backend unter **System → Cache → Cache leeren**.
## Shop Sprachvariablen
Shop Sprachvariablen
Hier findest du alle Sprachvariablen, die aus dem JTL-Shop Core kommen - also alle Standard-Texte des Shops. ### Funktionsweise Die Bedienung ist identisch zu den Plugin-Sprachvariablen: Wähle die zu bearbeitende Sprache aus dem Dropdown. **Tipp:** Bearbeite zuerst die Hauptsprache komplett, bevor du zu anderen Sprachen wechselst. Nutze die Suchfunktion um spezifische Variablen zu finden. **Häufige Suchbegriffe:** * "add to cart" → Warenkorb-Buttons * "checkout" → Checkout-Prozess-Texte * "shipping" → Versand-bezogene Texte * "error" → Fehlermeldungen * "success" → Erfolgsmeldungen Ändere Werte und klicke auf "Speichern". JTL-Sprachvariablen beeinflussen das Core-Verhalten des Shops. Sei vorsichtig bei Änderungen! Exportiere für Backups oder zum Übertragen auf andere Shops. Für vollständige Backups: Exportiere sowohl Plugin- als auch JTL-Sprachvariablen! ### Best Practices für JTL-Variablen **Unbedenklich:** * Button-Beschriftungen anpassen * Hinweistexte optimieren * Fehlermeldungen kundiger formulieren * Marketing-Texte personalisieren **Beispiele:** ``` "In den Warenkorb" → "Jetzt kaufen" "Zur Kasse" → "Zur sicheren Kasse" "Weiter einkaufen" → "Weiterstöbern" ``` **Kritische Texte:** * Rechtliche Hinweise (Widerruf, AGB, etc.) * System-Meldungen * Variablen mit Platzhaltern * Technical Labels Änderungen an rechtlichen Texten sollten immer mit einem Anwalt abgestimmt werden! **Platzhalter erhalten:** ``` ❌ Falsch: "Hallo Max" (hart codiert) ✅ Richtig: "Hallo {0}" (Platzhalter bleibt) ``` **Shop-Updates beachten:** Nach JTL-Shop Updates können: * Neue Sprachvariablen hinzukommen * Bestehende Variablen geändert werden * Alte Variablen entfernt werden **Vorgehen:** 1. Vor Update: Sprachvariablen exportieren 2. Update durchführen 3. Eigene Anpassungen prüfen 4. Bei Bedarf neu anpassen Führe ein Log über alle geänderten Sprachvariablen, um nach Updates schnell wieder den gewünschten Zustand herzustellen.
## Neue Sprachvariablen anlegen
Neue Sprachvariable erstellen
Erstelle eigene Sprachvariablen für Custom-Entwicklungen oder individuelle Texte. ### Schritt für Schritt Vergebe einen eindeutigen Namen für die Sprachvariable. **Naming Conventions:** * Kleinbuchstaben verwenden * Wörter mit Unterstrichen trennen * Aussagekräftig benennen * Präfix nutzen (z.B. `custom_`, `dzm_`) **Beispiele:** ``` ✅ dzm_custom_banner_text ✅ custom_checkout_note ✅ my_shop_welcome_message ❌ Banner1 (nicht aussagekräftig) ❌ CUSTOM TEXT (Leerzeichen, Großbuchstaben) ❌ customBannerText (CamelCase vermeiden) ``` Wähle eine Sektion zur Gruppierung und schnelleren Auffindbarkeit. **Verfügbare Sektionen:** * **custom** (empfohlen für eigene Variablen) * global * checkout * product * account * ... (weitere system-spezifische Sektionen) In der Regel ist "custom" die richtige Wahl für neue benutzerdefinierte Sprachvariablen. Trage den Text in allen verfügbaren Sprachen ein. **Deutsch:** Hauptsprache, sollte immer gepflegt werden **Englisch:** Fallback für internationale Kunden **Weitere Sprachen:** Je nach Shop-Konfiguration Wenn du eine Sprache nicht ausfüllst, bleibt das Feld leer oder zeigt den Variablen-Namen an. Klicke auf "Variable hinzufügen", um die neue Sprachvariable zu speichern. Die Variable ist ab sofort in Templates, Plugins und Scripts verwendbar! ### Verwendung in Templates Nach dem Anlegen kannst du die Variable in Smarty-Templates verwenden: ```smarty theme={null} {* In .tpl Dateien *} {lang key="dzm_custom_banner_text" section="custom"} {* Mit Fallback *} {lang key="dzm_custom_banner_text" section="custom" default="Fallback Text"} {* Mit Platzhaltern *} {lang key="dzm_welcome_user" section="custom" printf=$userName} ``` ### Verwendung in PHP In PHP-Code kannst du Sprachvariablen so nutzen: ```php theme={null} // Einfache Verwendung $text = Shop::Lang()->get('dzm_custom_banner_text', 'custom'); // Mit Platzhaltern $text = Shop::Lang()->get('dzm_welcome_user', 'custom'); $text = sprintf($text, $userName); // In der aktuellen Sprache $currentLang = Shop::getLanguageID(); $text = Shop::Lang()->get('dzm_custom_banner_text', 'custom', $currentLang); ```
## Export & Import ### Backup erstellen
Export & Import
Gehe zum Tab "Plugin Sprachvariablen" → Klicke "Exportieren" **Dateiname:** `plugin_langvars_de_2024-02-06.json` Gehe zum Tab "JTL-Sprachvariablen" → Klicke "Exportieren" **Dateiname:** `jtl_langvars_de_2024-02-06.json` Wiederhole für jede aktive Sprache (EN, FR, etc.) Speichere alle JSON-Dateien an einem sicheren Ort: * Cloud-Speicher (Dropbox, Google Drive) * Lokale Backup-Festplatte * Versionskontrolle (Git) **Vollständiges Backup:** Wenn du alle Sprachvariablen als Backup sichern möchtest, achte unbedingt darauf **sowohl** die Plugin-Sprachvariablen **als auch** die JTL-Sprachvariablen zu exportieren! ### Import durchführen Stelle sicher, dass du die richtige JSON-Datei hast: * Richtige Sprache? * Richtiger Tab (Plugin vs. JTL)? * Aktuelles Backup? Klicke auf "Select Files" und wähle die JSON-Datei aus. Bestätige, dass bestehende Werte überschrieben werden sollen. Der Import überschreibt alle Werte in der JSON-Datei - aktuelle Änderungen gehen verloren! Prüfe stichprobenartig ob der Import erfolgreich war. Leere anschließend den Cache. ### JSON-Datei-Struktur Für Massenbearbeitung kannst du die JSON-Datei manuell bearbeiten: ```json theme={null} { "dzm_custom_banner_text": { "name": "dzm_custom_banner_text", "section": "custom", "value": "Willkommen in unserem Shop!", "default": "Welcome to our shop!", "description": "Banner text on homepage" }, "dzm_another_variable": { ... } } ``` Nutze einen JSON-Editor oder VS Code mit JSON-Plugin für komfortables Bearbeiten großer Dateien.
## Best Practices **Naming Convention festlegen:** ``` [prefix]_[bereich]_[funktion]_[typ] Beispiele: custom_checkout_button_continue custom_product_label_sale custom_error_msg_invalid_email dzm_banner_text_homepage ``` **Vorteile:** * Schnelles Auffinden * Klare Zuordnung * Keine Konflikte * Team-freundlich **Externe Dokumentation führen:** Erstelle eine Tabelle mit allen Custom-Variablen: | Variable | Verwendung | Geändert am | Geändert von | | ---------------------- | ---------------- | ----------- | ------------ | | custom\_banner\_text | Homepage Banner | 2024-02-06 | Max M. | | custom\_checkout\_note | Checkout Hinweis | 2024-01-15 | Lisa S. | **Oder nutze Kommentare im Code:** ```smarty theme={null} {* Custom Variable für Sommer-Aktion 2024 Angelegt: 2024-02-06 Kontakt: marketing@firma.de *} {lang key="custom_summer_banner" section="custom"} ``` **Backup-Routine etablieren:** **Vor wichtigen Änderungen:** * Immer ein Backup erstellen * Datiert und versioniert speichern * An sicheren Ort ablegen **Regelmäßig (monatlich):** * Vollständiger Export aller Sprachen * Beide Tabs (Plugin + JTL) * Zusammen mit anderen Shop-Backups speichern **Nach großen Anpassungen:** * Sofort neues Backup * Mit Changelog dokumentieren * Team informieren **Änderungen immer testen:** Teste Änderungen zuerst auf Test-/Staging-System Stelle sicher dass alle Sprachen korrekt sind Prüfe alle Stellen wo die Variable verwendet wird Teste auch auf mobilen Geräten Prüfe nach Live-Schaltung nochmal alle Stellen
## Häufige Anwendungsfälle **Saisonale Anpassungen:** ``` custom_banner_winter_sale → "❄️ Winter-Sale: Bis zu 50% Rabatt!" custom_banner_summer_sale → "☀️ Sommer-Aktion: Jetzt zugreifen!" ``` **A/B-Testing:** * Teste verschiedene Button-Texte * Optimiere Call-to-Actions * Verbessere Conversion **Vorteil:** Schnelles Ändern ohne Code-Deployment **Personalisierte Ansprache:** ``` custom_greeting_registered → "Willkommen zurück, {0}!" custom_greeting_guest → "Herzlich willkommen! Schön, dass Sie da sind." ``` **Service-Hinweise:** ``` custom_shipping_info → "Versandkostenfrei ab 50€" custom_return_policy → "100 Tage Rückgaberecht" ``` **Professionelle Übersetzungen:** ``` DE: "In den Warenkorb legen" EN: "Add to cart" FR: "Ajouter au panier" ES: "Añadir al carrito" ``` **Lokalisierung:** ``` DE: "Versandkosten: 4,99 €" EN: "Shipping: £4.99" FR: "Frais de port: 4,99 €" ``` Nutze professionelle Übersetzer für wichtige Texte - maschinelle Übersetzungen reichen oft nicht aus! **Custom Template Texte:** ```smarty theme={null} {* Im Template *}

{lang key="custom_banner_title" section="custom"}

{lang key="custom_banner_text" section="custom"}

{lang key="custom_banner_cta" section="custom"}
``` **Vorteil:** * Texte zentral änderbar * Mehrsprachig ohne Template-Änderung * Wartungsfreundlich

## Troubleshooting **Problem:** Sprachvariablen-Änderungen erscheinen nicht im Frontend **Lösung:** Backend → System → Cache → Cache leeren Im Browser: Strg + Shift + R (Windows) oder Cmd + Shift + R (Mac) Lösche Template-Cache im Dateisystem: `/templates_c/` Ordner leeren Leere Browser-Cache oder teste im Incognito-Modus **Symptom:** Variable zeigt Schlüssel statt Text: `custom_my_variable` **Ursachen:** 1. Variable wurde nicht gespeichert 2. Falsche Sektion angegeben 3. Schreibfehler im Variablen-Namen 4. Cache-Problem **Überprüfen:** ```smarty theme={null} {* Mit Fallback testen *} {lang key="custom_my_variable" section="custom" default="Fallback Text"} {* Wenn Fallback erscheint → Variable existiert nicht *} {* Wenn Variablen-Name erscheint → Cache Problem *} ``` **Mögliche Fehler:** * Falsche Dateiformat (muss JSON sein) * Korrupte JSON-Struktur * Falsche Sprache gewählt * Datei zu groß **Debugging:** 1. JSON-Datei in Validator prüfen: jsonlint.com 2. Datei in Text-Editor öffnen und Struktur prüfen 3. Kleinere Test-Datei versuchen 4. Browser-Console auf Fehler prüfen **JSON validieren:** ```bash theme={null} # Mit Node.js node -e "JSON.parse(require('fs').readFileSync('file.json', 'utf8'))" ``` **Problem:** `{0}`, `{1}` werden nicht ersetzt **In Smarty:** ```smarty theme={null} {* Falsch *} {lang key="welcome_user" section="custom"} {* Richtig *} {lang key="welcome_user" section="custom" printf=$userName} {* Mehrere Platzhalter *} {lang key="order_confirmation" section="custom" printf=$orderNumber|cat:"|":$orderDate} ``` **In PHP:** ```php theme={null} // Falsch $text = Shop::Lang()->get('welcome_user', 'custom'); // Richtig $text = Shop::Lang()->get('welcome_user', 'custom'); $text = sprintf($text, $userName); ```
## Erweiterte Tipps **Zu viele Variablen vermeiden:** * Gruppiere ähnliche Texte * Nutze Platzhalter statt separate Variablen * Lösche ungenutzte Custom-Variablen **Cache-Strategie:** * Ändere Sprachvariablen in Batches * Leere Cache nur einmal am Ende * Plane Änderungen für wartungsarme Zeiten **Meta-Texte als Sprachvariablen:** ``` custom_meta_title_home custom_meta_description_home custom_meta_keywords_category ``` **Vorteile:** * Schnelle A/B-Tests * Einfache Mehrsprachigkeit * Zentrale Verwaltung **Aber beachte:** Individuelle Produkt-/Kategorie-Texte sollten besser in den Stammdaten gepflegt werden! **Versionskontrolle für Variablen:** 1. Exportiere regelmäßig als JSON 2. Commite in Git-Repository 3. Tracke Änderungen über Git 4. Deploy mit CI/CD-Pipeline **Git-Workflow:** ```bash theme={null} # Export php -r "/* Export-Script */" > langvars.json # Commit git add langvars.json git commit -m "Update language variables" # Deploy git push origin main ``` **Erfolg!** Du hast jetzt volle Kontrolle über alle Texte in deinem Shop. Nutze Sprachvariablen für professionelle, wartungsfreundliche und mehrsprachige Shop-Texte.
## Weiterführende Ressourcen Offizielle Smarty-Dokumentation für Template-Entwicklung JTL-Shop Guide für Entwickler und Template-Designer W3C Internationalisierung Best Practices Online Tool zum Validieren von JSON-Dateien # Analyse [ALPHA] Source: https://docs.dreizack-medien.de/Resources-and-Health/analyse ## Übersicht **Du bist gefragt!** Hier entsteht ein Analysedashboard. Der dargestellte Bericht dient vorerst nur Testzwecken und wird in kommenden Versionen erweitert. Wenn du Wünsche und Ideen für Analysen hast, lass sie uns gerne zukommen.
## Features Anonymisiertes Tracking direkt in deiner Datenbank – ohne externe Dienste. Markiere Zeitpunkte in den Statistiken, um Ereignisse im Dashboard nachzuvollziehen. Schnelle Übersicht über Kategorietiefe und Produktdaten-Qualität. Besucher, Conversions, Conversionrate und durchschnittlicher Warenkorbwert im Zeitverlauf.
## Internes Tracking
Internes Tracking
### Internes Tracking aktivieren Aktiviert das interne Tracking-Script. Alle Daten bleiben lokal in deiner Datenbank und werden anonymisiert gespeichert. Aktuell sammelt das Script Daten, aus denen wir bald Auswertungen für dich erstellen. Ziel ist es, dass du wiederkehrende Besucher, Conversions und Potenziale besser verstehen und erkennen kannst. Erfasst werden: Besucher, Seitenaufrufe und E-Commerce Events. Alles wird in deiner Datenbank gespeichert. Aktiviere den Toggle und klicke auf **Speichern**, um das interne Tracking zu starten.
## Marker
Marker
Nutze die Marker, um Zeitpunkte in den Statistiken auf dem Dashboard zu markieren – zum Beispiel für Kampagnenstarts, Updates oder andere relevante Ereignisse. ### Neuen Marker anlegen Trage einen **Titel** ein, wähle ein **Datum** und klicke auf **Hinzufügen**, um den Marker zu setzen. ### Marker entfernen Wähle einen vorhandenen Marker aus dem Dropdown aus und klicke auf **Entfernen**.
## Bericht
Bericht
### Analyse laden Klicke auf **Bericht laden / aktualisieren**, um den Analysebericht manuell zu laden oder auf den neuesten Stand zu bringen. Dies ist insbesondere dann nötig, wenn der Shop-Cache inaktiv ist oder du frische Daten abrufen möchtest.
## Shopstruktur-Analyse
Shopstruktur-Analyse
Schneller Überblick über die Struktur und Datenqualität deines Shops. ### Kategorietiefe Zeigt die Verschachtelungstiefe deiner Kategorien an. Eine zu hohe Tiefe kann die Navigation und SEO beeinträchtigen. ### Anzahl Produkte Die Gesamtzahl der Produkte im Shop. ### davon ohne GTIN/EAN Produkte ohne hinterlegte GTIN- oder EAN-Nummer. Fehlende GTINs können die Sichtbarkeit in Preisvergleichsportalen und Google Shopping einschränken. ### davon ohne Kurzbeschreibung Produkte ohne Kurzbeschreibung. Eine Kurzbeschreibung verbessert die Lesbarkeit auf Kategorie- und Suchergebnisseiten. ### davon ohne Beschreibungstext Produkte ohne ausführlichen Beschreibungstext. Vollständige Beschreibungen sind wichtig für SEO und Kaufentscheidungen.
## Sales Performance
Sales Performance
Übersicht über die wichtigsten Verkaufskennzahlen im Zeitverlauf. ### Tabelle Zeigt tagesweise die Werte für Besucher, Conversions, Warenkorbanzahl und Conversionrate. ### Diagramm Das Salesperformance-Diagramm visualisiert die folgenden Kennzahlen im Verlauf: * **Besucher** – Anzahl der Besucher im Zeitraum * **Conversions** – Abgeschlossene Käufe * **Conversionrate** – Anteil der Besucher, die einen Kauf abgeschlossen haben * **Avg Cartvalue** – Durchschnittlicher Warenkorbwert # Backups Source: https://docs.dreizack-medien.de/Resources-and-Health/backups ## Übersicht Hier kannst du komplette oder partielle Backups deines Shops erstellen und auch wieder entpacken. Außerdem kannst du generell ZIP-Archive entpacken, z.B. für Shop-Updates. **Kein professionelles Backup!** Das Tool erstellt kein professionelles Backup. Wir übernehmen keinen Support und keine Haftung für möglichen Datenverlust. Du verwendest dieses Tool auf eigene Verantwortung. Es dient lediglich als Hilfe für erfahrene Benutzer.
## Features Wähle gezielt einzelne Ordner für dein Backup aus – kein vollständiges System-Backup nötig. Vergib einen eigenen Namen und Pfad für dein Backup-Archiv. Entpacke ZIP-Archive direkt aus dem Shop Root – ideal für Shop-Updates und Plugin-Installationen. Bestimme selbst, in welches Verzeichnis das ZIP entpackt werden soll.
## Backup erstellen
Backup erstellen
Wähle hier die Ordner aus, die du in dein Backup einschließen möchtest. Die aufgelisteten Ordner entsprechen den lesbaren Ordnern aus deinem Shop Root Verzeichnis. Der letzte Eintrag `root` entspricht allen Files, die sich innerhalb des Root Verzeichnisses befinden. Vor der Erstellung des Backups wird eine Lese- und Schreib-Rechte-Prüfung durchgeführt. Das Backup wird nur erstellt, wenn alle enthaltenen Files gelesen und beschrieben werden dürfen. ### Ordner auswählen Aktiviere oder deaktiviere die Toggles für jeden Ordner. Mit **Alle abwählen** kannst du alle Ordner auf einmal deaktivieren, wenn du nur Teile sichern willst. | Ordner | Inhalt | | ------------- | ------------------------------------ | | `admin` | Backend-Dateien des JTL-Shops | | `archive` | Archivierte Dateien | | `bilder` | Produktbilder und Medien | | `dbeS` | dbeS-Dateien | | `downloads` | Download-Dateien | | `export` | Export-Dateien | | `gfx` | Grafiken und Icons | | `includes` | PHP Include-Dateien | | `jtllogs` | JTL-Logdateien | | `media` | Medien-Dateien | | `mediafiles` | Weitere Mediendateien | | `plugins` | Installierte Plugins | | `templates` | Shop-Templates | | `templates_c` | Kompilierte Templates (Smarty-Cache) | | `update` | Update-Dateien | | `uploads` | Hochgeladene Dateien | | `root` | Alle Dateien im Root-Verzeichnis | ### Backupname Wähle einen Namen für dein Backup. Wenn du das Backup in einem Unterordner erstellen willst, trage den Pfad relativ zu Root ein und hänge den gewünschten Dateinamen an. Achte auf korrekte Schreibweise und dass das Verzeichnis wirklich existiert. Verzichte auf Sonderzeichen. Das Backup wird als ZIP gespeichert. **Beispiel:** `backups/2025meinbackup` ### Backup durchführen Erstellt ein Backup aus den gewählten Ordnern und Files (`root`) unter dem angegebenen Dateinamen. Wenn du den gleichen Namen verwendest wie ein bereits existierendes Backup, wird dieses ergänzt oder bereits enthaltene Dateien überschrieben. Klicke auf **Backup jetzt erstellen**, um den Vorgang zu starten.
## ZIP Archive entpacken
ZIP Archive entpacken
Hier kannst du ZIP-Archive, die sich in deinem Shop Root-Verzeichnis befinden, entpacken. Existierende Files werden überschrieben. Du kannst mit dieser Funktion z.B. Shop-Updates installieren oder versehentlich gelöschte Backups wiederherstellen. **Benutzung auf eigene Gefahr!** Existierende Dateien werden beim Entpacken überschrieben. Das Tool ist KEIN professionelles Backup. Wir übernehmen weder Support noch Haftung für Datenverlust. ### ZIP Archiv wählen Wähle über das Dropdown ein ZIP-Archiv aus, das sich im Shop Root-Verzeichnis befindet. ### Zielverzeichnis Gibt das Zielverzeichnis an, wohin das ZIP entpackt werden soll. Lasse das Feld leer, wenn das Paket im Shop Root Verzeichnis entpackt werden soll. Das Zielverzeichnis muss auf `/` enden. **Beispiel für Unterverzeichnis:** `meinVerzeichnis/` Klicke auf **Entpacken**, um das Archiv zu entpacken. # Bewertungen Source: https://docs.dreizack-medien.de/Resources-and-Health/bewertungen Produktbewertungen einsehen, freischalten, beantworten und Kunden direkt aufrufen Der Bereich **Produktbewertungen** zeigt alle neuesten Bewertungen mit zugeordnetem Kunden und Artikel. Du kannst Bewertungen freischalten, sperren, beantworten und direkt zum Kundenprofil springen. Gastbewertungen (ohne Kundenkonto) lassen sich nicht mit einem Kunden verknüpfen.
Produktbewertungen Übersicht
## Suche und Filter Über das Dropdown kannst du Bewertungen nach Status filtern (z.B. alle, freigeschaltet, gesperrt). Das Suchfeld durchsucht nach **Artikel**, **Art-Nr**, **Kunde** oder **Bewertungstext**. Mit **Zurücksetzen** leerst du die Filter wieder. ## Tabellenspalten | Spalte | Beschreibung | | ------------- | --------------------------------------------- | | **Datum** | Datum der Bewertung | | **Artikel** | Artikelname und Art-Nr | | **Sterne** | Sternebewertung (1–5) | | **Kunde** | Name und E-Mail des Kunden | | **Bewertung** | Titel und Text der Bewertung | | **Status** | Aktueller Status (z.B. **Freigeschaltet**) | | **Antwort** | Zeigt an, ob eine Shop-Antwort hinterlegt ist | ## Aktionen pro Bewertung Am rechten Rand jeder Zeile stehen drei Icons:
Bewertung sperren oder wieder aktivieren
Antwort auf die Bewertung schreiben
Kundendetails öffnen
## Detailansicht Ein Klick auf eine Bewertungszeile öffnet die Detailansicht des Artikels – dieselbe Ansicht erscheint auch beim Klick auf das Pfeil-Icon.
Bewertung Detailansicht mit Antwortfeld
In der Detailansicht siehst du: * **Sternebewertung**, Status-Badge und Datum * **Kundendaten**: Name, E-Mail und angezeigter Name – über **Kunde öffnen** gelangst du direkt zur [Kundendetailansicht](/Resources-and-Health/kunden#detailansicht) (Person-Icon) * **Bewertungstext**: Titel und Kommentar des Kunden * **Sperren**-Button: Bewertung deaktivieren, ohne sie zu löschen * **Antwort des Shops**: Textfeld für eine öffentliche Antwort, die direkt unter der Bewertung im Shop erscheint – mit **Antwort speichern** bestätigen
# Changelog Source: https://docs.dreizack-medien.de/Resources-and-Health/changelog Alle Updates und Änderungen für Resources & Health ### Bugfixes * Die Pfeile der Splide-Slider ragten ab 991px Breite links und rechts über den Container hinaus und erzeugten horizontalen Seitenscroll, besonders bei Viewports zwischen 992 und 1080px sowie 1200 und 1370px. Die Regel ist entfernt, die Pfeile sitzen jetzt innen an der Sliderkante. Wer die Außenposition behalten möchte, setzt sie im Child-Template ### Kompatibilität * JTL-Shop ab 5.3.2, keine Obergrenze * PHP 8.2 - 8.5 ### Bugfixes * Beim Update der NIU-Plus-Template-Suite bleiben jetzt auch die eigenen SCSS-Variablen (`_variables.scss` mit Farbpalette und Schriftfamilien) sowie die Favicons des Shops erhalten. Bisher kamen an diesen drei Stellen die Vorgabewerte des Child-Templates zurück ### Kompatibilität * JTL-Shop ab 5.3.2, keine Obergrenze * PHP 8.2 - 8.5 ### Features * Plugins können Sprachvariablen jetzt zur Laufzeit anlegen und wieder entfernen – Grundlage für Plugins, die ihre Texte aus eigenen Daten erzeugen ### Verbesserungen * Backend-Theme „Auto": die linke Navigationsleiste folgt jetzt dem Dark Mode des Systems, statt hell zu bleiben * PluginHub listet DZM Bonus Plus ### Bugfixes * Der Shop-Cache wird nicht mehr täglich vollständig geleert. Der Ressourcen-Abgleich verwirft jetzt nur noch gezielt die betroffenen Einträge, und nur dann, wenn sich wirklich etwas geändert hat. Besonders spürbar mit Redis als Cache-Backend, wo bisher die komplette Cache-Datenbank verworfen wurde * Die Angabe einer maximal unterstützten Shop-Version ist entfallen. Sie hätte ein Update auf einen neueren JTL-Shop blockiert, obwohl das Plugin damit läuft * Aufklappbare Textblöcke: das Chevron-Symbol wird jetzt mitgeliefert und beim Aufklappen mitgedreht, Screenreader bekommen den Auf- und Zuklapp-Zustand mit, überflüssige Debug-Ausgaben in der Browser-Konsole entfernt ### Kompatibilität * JTL-Shop ab 5.3.2, keine Obergrenze * PHP 8.2 - 8.5 ### Verbesserungen * Neue Schnittstelle für Plugins, um Merkmale mit eindeutiger ID abzufragen – Grundlage für die getrennte Auswahl von Hersteller und Marke in NIU Plus ### Kompatibilität * JTL-Shop 5.3.2 - 5.7.2 ### Features * Error-Tracking im Backend: neue Übersicht über Fehler und Log-Einträge, inklusive Spiegelung der JTL-Core-Logs * Umstellung auf den neuen Release- und Lizenzserver, inklusive automatischem Rückfall auf das Altsystem ### Verbesserungen * PluginHub zeigt neuere, noch nicht kompatible Versionen wieder an (Verhalten wie im Altsystem) * NIUplus-Template-Installation wählt die passende Version über den Release-Feed statt über einen festen Versionssprung * Kategorieabfragen liefern deterministische Ergebnisse und sind spürbar schneller ### Bugfixes * Fehlerhafte Ausgabe im Seitenkopf behoben ### Kompatibilität * JTL-Shop 5.3.2 - 5.7.2 ### Features * Kundenübersicht mit Insights zu Bestellungen * Bewertungsübersicht mit Kundenzuordnung ### Kompatibilität * JTL-Shop 5.3.2 - 5.7.2 ### Features * Ausbesserungen für NIU Plus Progressbar und Conversion Booster Progressbar ### Kompatibilität * JTL-Shop 5.3.2 - 5.7.2 ### Features * Wichtig! Wechsel unseres Lizenzservers * Ausbesserungen am Installservice + Logging * Hinweiskarten zur Loggerkonfiguration ### Kompatibilität * JTL-Shop 5.3.2 - 5.7.2 ### Features * Custom Input Type für Tabellen * Code Block Input Type verbessert ### Kompatibilität * JTL-Shop 5.5.0 - 5.7.1 ### Features * Cron Job Manager verbessert ### Kompatibilität * JTL-Shop 5.5.0 - 5.7.1 ### Features * Verbesserter Installwizard \[beta] * Dispatcher verbessert * Dynamische Aktivierung von Consent Scripten ohne Reload * Neuer Logger und Loggerübersicht * Neues Feature: Cron-Jobs Manager für mehr Kontrolle ### Kompatibilität * JTL-Shop 5.3.2 - 5.7.0 ### Features * Neues Backend * Core Funktionen für NIU Plus CSV Importer * Core Funktionen für Billiger gesehen Plugin ### Features * Tracker verbessert * Dispatcher aus dynamischen Ressourcen entfernt und fest in Header eingebaut * Sprachvariablen Tool verbessert * Kompatibilitätsverbesserungen ### Kompatibilität * JTL-Shop 5.3.2+ ### Features * Neue interne Trackingvorbereitung für einheitliches Tracking über mehrere Kanäle hinweg: Integriertes Trackingsystem nach Vorbild der GA4 Standard E-Commerce Events als Grundlage für künftige Tracking-Integrationen in NIU Plus ### Kompatibilität * JTL-Shop 5.3.2+ ### Features * Allgemeine Kompatibilitätsfunktionen * Vorbereitungen auf erweiterte Analysefunktionen ### Kompatibilität * JTL-Shop 5.3.2+ ### Features * Allgemeine Kompatibilitätsfunktionen * \[BETA] Neuer Installationsservice und Pluginübersicht mit Möglichkeit kompatible Versionen direkt zu installieren * \[BETA] Vorbereitung einer lokalen, consent-freien Trackinglösung ohne Weitergabe an Dritte. Anonyme E-Commerce-Events analog zu Google Analytics in der eigenen Shopdatenbank. ### Kompatibilität * JTL-Shop 5.3.2+ ### Features * Statistik Dashboard für Umsatz, Bestellungen und WK Wert über 3 Jahre und im Jahresvergleich * Marker in den Statistiken setzen, um Veränderungen besser zu verfolgen * Popup Container nach Zeit funktioniert nun auch ab 0 Sekunden * Kompatibilität mit Shop 5.6.0 und neuer Installservice für NIU Plus Template ### Bugfixes * Popup Container merkt sich erst nach Reload, dass er geschlossen wurde per Cookie * Hersteller Query gefixt für OPC Portlets vererben ### Kompatibilität * JTL-Shop 5.3.2+ ### Features * Kompatibilitätsupdate für DZM Plugins ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Neues Event für Event Dispatcher - betrifft nur NIU Plus ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Backup Tool * SQL Query Tool ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Kleinere Anpassungen für Elfsight Widgets Plugin ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Neues Portlet: Request Container - Zeige oder verstecke Content anhand von URL Parametern. Ideal für AB-Testing, Kampagnen oder custom Content. ### Kompatibilität * JTL-Shop 5.3.1+ ### Bugfix * Icon Position der Buttons konnte nicht in jeder Option eingestellt werden ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Wichtige Event Updates für NIU Plus ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Installservice für NIU Plus verbessert * Analysetabelle für Produktaufrufe * Kompatibilitätsupdates ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Vorbereitungen für ein neues Feature * Anpassungen für NIU Plus Update * Vorbereitung für Produktanalyse ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Dashboard in Pluginsettings verschoben * Verbesserungen in internen Funktionen ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Codebase Erweiterung für neue Plugins * Min Shop Version herabgesetzt für breitere Kompatibilität ### Kompatibilität * JTL-Shop 5.3.1+ ### Features * Einige Core Funktionalitäten hinzugefügt * dzmCountdown.js verbessert * CountdownPlusV2 mit besseren Funktionen löst den alten CountdownPlus ab ### Bugfixes * DZM Resources & Health Dashboard wird nicht geladen, wenn die Fehlerausgabe aktiviert ist * Image Comparer Library versteckt Nav, wenn der Vergleichsschieber deaktiviert ### Kompatibilität * JTL-Shop 5.3.2+ ### Bugfixes * Dispatcher wird im Novatemplate nicht rechtzeitig geladen ### Kompatibilität * JTL-Shop 5.3.2+ ### Bugfixes * Kleinere Bugfixes und globale Styleanpassungen ### Kompatibilität * JTL-Shop 5.2.4+ Javascripte wurden komplett überarbeitet. Nach Installation/Update darauf achten, dass die Ressourcen installiert werden: Im Dashboard auf `Resources & Performance` gehen und `Probleme beheben` klicken. ### Features * Neuer globaler Javascript Dispatcher für modulare Scripte und mehr Erweiterbarkeit ### Kompatibilität * JTL-Shop 5.2.4+ Im Zuge der Neugestaltung der NIU Plus Pakete wurde die NIU Plus Lizenz als Bundlelizenz für OPC Plugins entfernt. Ab Template Version 1.2.2/2.2.2 wird zusätzlich eine OPC Suite Lizenz benötigt. ### Features * Installationsservice für NIU Plus verbessert ### Kompatibilität * JTL-Shop 5.2.4+ ### Features * Bundling Option für Resources Javascripte im Resources Panel * Testlauf für Analysefunktionen ### Bugfixes * Lizenzprüfung zu oft getriggert * Einige Console Logs entfernt ### Kompatibilität * JTL-Shop 5.2.4+ ### Features * Performance Update * Neues Parallax Script für Container Plus - bessere Ladezeit * Kleinere Kompatibilitätsverbesserungen ### Kompatibilität * JTL-Shop 5.2.4+ ### Features * Funktionsupdate für Conversion Booster und NIUplus * Portletsortierung angepasst ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * Neuer Bereich: Shopstruktur und Systeminformation * PHP Info: PHP Infos direkt im Backend einsehen * Verwaiste Kinder: Liste verwaister Kindartikel anzeigen, die den Google Feed Export blockieren können ### Bugfix * Kleinere Ausbesserungen ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * Anpassung an neue einheitliche Schnittstelle * Allgemeine Verbesserungen in der Performance * Global alle Sprachvariablen pflegen, finden und neu anlegen ### Bugfix * Reports werden nicht richtig geladen ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * Globale Funktionen für Plugins ### Bugfix * Kleinere Fehlerbehebungen ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * Neue Mountpoints in Kategorie und Produktdetailansicht * Neues Portlet: Countdown Plus ### Bugfix * Fehlende Sprachvariable für UVP ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * Status, ob Object Buffer aktiv ist oder nicht im Report Panel * Darstellungsoptimierung des Popup Containers * Dokumentationstab in Plugineinstellungen * Verbesserung der Ressourcen * Neues Portlet: Popup Container - Individuelle Popups per Click, ExitIntent, Scrollposition oder bei Sichtbarkeit eines Elements * OPC Plugin Buttons: Funktionsbutton-Option mit EventID ### Bugfix * Fehler in Erweiterung der Datenbanktabelle bei Neuinstallation ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * Erweiterung der Datenbankabfragen für OPC Plus ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * CSRF Token Validierung ### Kompatibilität * JTL-Shop 5.2.0+ ### Bugfix * Pluginliste wurde nicht dargestellt ### Kompatibilität * JTL-Shop 5.2.0+ ### Features * Umfassendes Adminwidget * Script & Consent: Scripte, Styles und Widgets ohne Templateanpassung integrieren * Report: Status über JTL Shop System und Server mit Empfehlungen * Debugsettings: Debug und Logeinstellungen direkt aus dem Admin * Logs einsehen: Zentrale Übersicht aller DZM Plugin Logs * Pluginübersicht: Übersicht aller Plugins, Updates, bekannter Probleme und Kompatibilitäten ### Kompatibilität * JTL-Shop 5.2.0+ # Cronjobs Source: https://docs.dreizack-medien.de/Resources-and-Health/cronjobs Verwalte automatisierte Cronjobs und Wartungstasks in deinem JTL-Shop ## Was sind Cronjobs? Cronjobs sind automatisierte Aufgaben, die in regelmäßigen Abständen ausgeführt werden. Im JTL-Shop werden sie über eine Job-Queue verwaltet und sind essenziell für Routineaufgaben wie Bestandsaktualisierungen, Datenbereinigung und andere Hintergrundprozesse. Mit Resources & Health hast du volle Kontrolle über diese Prozesse. Die Cronjob-Verwaltung ist im Resources & Health Plugin integriert und startet automatisch nach der Installation. Es gibt keine zusätzliche Einrichtung erforderlich – das Plugin verwaltet alle Cronjobs zentral. Achte nur darauf, dass: * Das Plugin korrekt installiert ist * Dein Hoster regelmäßige Cron-Aufrufe erlaubt * Die Job-Queue regelmäßig abgerufen wird Einen ausführlichen Überblick zum Thema Cronjobs im JTL-Shop findest du in unserem Blogartikel [JTL-Shop Cronjobs verwalten](https://dreizack-medien.de/blog/jtl-shop-cron-jobs-verwalten). ## Status-Übersicht
Cronjob Status
### Cronjob-Status und Zombies Die Status-Übersicht zeigt den aktuellen Status aller Cronjobs. Besonders wichtig ist das Verständnis von sogenannten **Zombies** – das sind Cronjobs, die einmal gestartet wurden, aber nie richtig beendet wurden. Sie bleiben mit dem Status `running` stecken, obwohl sie nicht mehr aktiv sind. **Zombie-Erkennung:** Zombies entstehen normalerweise durch: * Timeouts bei langen Operationen * Serverabstürze während Job-Ausführung * Lockfile-Probleme * Speichererschöpfung **Zombie beheben:** Nutze den "Status reset (soft)" Button, um den Job wieder in den Normalzustand zu versetzen. Die bestehenden Daten bleiben erhalten. ## Konfiguration
Cronjob Konfiguration
### Cronjob-Felder und Einstellungen Die Tabelle zeigt alle verfügbaren Cronjobs mit ihren aktuellen Informationen: | Spalte | Erklärung | | ---------------------- | ------------------------------------------------------------------------------------------------------- | | **Jobtitel** | Name/Bezeichnung des Cronjobs | | **Frequenz** | Zeitintervall, in dem der Job automatisch ausgeführt wird (z.B. stündlich, täglich, wöchentlich) | | **Status** | Aktueller Status: queued (wartet), idle (inaktiv), running (läuft), completed (fertig), failed (Fehler) | | **Letzte Ausführung** | Zeitstempel der letzten erfolgreichen Ausführung | | **Nächste Ausführung** | Zeitstempel, wann der Job das nächste Mal ausgeführt wird | | **Trigger** | Art der Auslösung (automatisch, manuell, ASAP) | | **Timeout** | Maximale Zeit, die der Job laufen darf, bevor er abgebrochen wird | | **Aktionen** | Verfügbare Steuerbefehle (ausführen, zurücksetzen, löschen) | ### Aktionen Für jede Cronjob-Aufgabe stehen dir verschiedene Aktionen in der Aktionsleiste zur Verfügung: Umgeht die JTL-Queue und den Job-Shuffle und führt den Job sofort aus. Der Listener startet automatisch für Live-Logs. Nutze das, wenn du einen Job sofort ausgeführt haben möchtest, ohne auf den nächsten regulären Durchlauf zu warten. Setzt `nextStart=NOW()`. Der Job läuft beim nächsten regulären Queue-Durchlauf mit. Nicht so aggressiv wie "direkt ausführen", aber schneller als der reguläre Rhythmus. Ideal für zeitkritische Jobs. Setzt `isRunning=0` in der `tjobqueue` Tabelle. Der Job macht bei `tasksExecuted` weiter. Der Fortschritt bleibt erhalten. Nutze das, wenn ein Job hängen bleibt, aber du ihn nicht komplett neu starten möchtest. Löscht alle `tjobqueue`-Einträge komplett. Der Cron-Job bleibt in der `tcron` Tabelle und startet beim nächsten Lauf von vorne. Setzt den Job auf den Anfang zurück. Nutze das bei hartnäckigen Problemen. Entfernt den Job aus `tcron` **und** `tjobqueue`. **Irreversibel!** Plugin-eigene Jobs werden beim nächsten Plugin-Boot wieder angelegt. Vorsicht – nutze das nur, wenn du den Job wirklich nicht mehr brauchst! ## Live-Logs
Live-Logs Ansicht
Wenn du einen Cronjob startest, erscheinen die Live-Logs automatisch und geben dir einen detaillierten Einblick in die Ausführung des Jobs. Dies ist besonders hilfreich beim Debugging und zum Überwachen von zeitkritischen Aufgaben. Die Live-Logs zeigen: * Echtzeit-Status der Job-Ausführung * Detaillierte Fehler- und Warnmeldungen * Fortschritt bei mehrstufigen Jobs * Timestamp für jede Aktion **Wichtig:** Nutze die harten Resets und Löschungen mit Bedacht. Für die meisten Probleme reicht ein softerer Reset vollkommen aus. Nur wenn nichts anderes hilft, nutze die härteren Optionen. # Einführung Source: https://docs.dreizack-medien.de/Resources-and-Health/einfuehrung DZM Resources & Health - Das zentrale Plugin für Performance und Shop-Management ## Was ist DZM Resources & Health? Resources & Health ist unser zentrales Plugin für alle notwendigen Ressourcen für all unsere Plugins. Da sich einige Ressourcen unter den verschiedenen Plugins überschneiden, haben wir alle Skripte, Styles und Einstellungen, die von mehreren Plugins benötigt werden, in einem Plugin vereint. Dadurch kommt es nicht zu unnötigen Überlagerungen, wenn du mehrere Plugins gleichzeitig im Betrieb hast. Das pusht deine Performance und hilft uns bei der schnelleren und wartungsfreundlicheren Entwicklung.