> For the complete documentation index, see [llms.txt](https://themedocs.zenit.design/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://themedocs.zenit.design/tutorials/child-theme-update.md).

# Child-Theme update

## Warum updaten?

{% hint style="success" %}
Mit Einführung der [`configInheritance`](https://developer.shopware.com/docs/guides/plugins/themes/add-theme-inheritance#configinheritance-section) in Shopware 6.4.8.0 hat Shopware die Vererbung von Theme-Konfigurationen gelöst. Child-Theme Updates sind daher in der Regel nicht mehr notwendig.

Du solltest daher prüfen, ob Dein Child-Theme bereits in Version 2.11.0 vorliegt. Solltest Du ein älteres Child-Theme verwenden, aktualisiere bitte auf diese oder eine höhere Version. Danach sind keine weiteren Child-Theme Updates notwendig.
{% endhint %}

Gelegentlich kann es vorkommen, dass wir unsere bereitgestellten Child-Themes zusätzlich zum im Store angebotenen Haupt-Theme in einer neuen Version bereitstellen.

Über die Updatemöglichkeit informieren wir im Changelog wie auch per Nachricht in der Administration des Shops beim Aktualisieren des Eltern-Themes.

Dieses Update ist in der Regel **optional** und beinhaltet beispielsweise neue Konfigurations-Elemente. Wir achten darauf, dass unsere Themes immer mit älteren Child-Themes kompatibel sind. ~~Wird ein Child-Theme Update nicht durchgeführt stehen lediglich die neuen Einstellungen der Theme-Konfiguration nicht zur Verfügung und Du hast keinen Zugriff auf das neue Feature.~~ Ab Shopware 6.4.8.0 stehen die neuen Konfigurationen aufgrund der Konfigurationsvererbung zur Verfügung.

## Update durchführen

{% hint style="info" %}
Bevor Du mit dem Update startest, beachte bitte, dass für Child-Themes mit individuellen Programmierungen auf Dateiebene die zweite Update-Option durchzuführen ist.
{% endhint %}

<details>

<summary>Ohne individuelle Programmierungen - 3 Schritte (Aufwand: 3 min)</summary>

<mark style="color:orange;">Diese Anleitung richtet sich an Child-Themes, welche</mark> <mark style="color:orange;">**nicht**</mark> <mark style="color:orange;">durch individuelle Programmierungen auf Dateiebene individualisiert wurden.</mark>

**Schritt 1 von 3:** Unsere Child-Themes kannst Du immer in der aktuellsten Version herunterladen. Für ein Update musst Du daher einfach nur die [Konfigurations-Vorlage herunterladen](https://themes.zenit.design/#demos)

**Schritt 2 von 3:** In der Administration des Shops unter *Erweiterungen > Meine Erweiterungen* kannst Du über den Button `Erweiterung hochladen` die heruntergeladene Zip-Datei hochladen.

**Schritt 3 von 3:** Anschließend steht Dir die Option zum Aktualisieren der Erweiterung zur Verfügung und Du kannst wie gewohnt durch Klicken auf Aktualisieren das Update durchführen.

</details>

oder

<details>

<summary>Mit individuellen Programmierungen - 4 Schritte (Aufwand: 5 min)</summary>

<mark style="color:orange;">Diese Anleitung richtet sich an Child-Themes, welche durch individuelle Programmierungen auf Dateiebene individualisiert wurden.</mark>

**Schritt 1 von 4:** Unsere Child-Themes kannst Du immer in der aktuellsten Version herunterladen. Für ein Update musst Du daher einfach nur die [Konfigurations-Vorlage herunterladen](https://themes.zenit.design/#demos)

**Schritt 2 von 4:** Entpacke die Child-Theme Zip-Datei auf Deinem Computer.

Lade die Child-Theme Zip-Datei **nicht** über die Administration hoch. Der gesamte Plugin-Ordner würde dabei ausgetauscht und Deine Anpassungen auf Code Ebene entfernt.

Lediglich die `src/Resources/theme.json` sowie die `composer.json` erhalten die für das Update wichtigen Inhalte.

**Schritt 3 von 4:** theme.json und composer.json auf dem Server austauschen

Tausche die `zenitPlatform[THEMENAME]Set[NUMMER]/src/Resources/theme.json` aus der entpackten Zip-Datei mit der Version im Child-Theme auf dem Server unter `<shopware root>/custom/plugins/zenitPlatform[THEMENAME]Set[NUMMER]/src/Resources/theme.json` aus.

Tausche die `zenitPlatform[THEMENAME]Set[NUMMER]/composer.json` aus der entpackten Zip-Datei mit der Version im Child-Theme auf dem Server unter `<shopware root>/custom/plugins/zenitPlatform[THEMENAME]Set[NUMMER]/composer.json`aus.

<mark style="background-color:yellow;">Bei einer Umstellung auf Shopware 6.6 muss auch die</mark> [<mark style="background-color:yellow;">neue Javascript-Struktur</mark>](https://github.com/shopware/shopware/blob/v6.6.0.0-rc1/UPGRADE-6.6.md#new-distribution-of-appplugin-dist-javascript) <mark style="background-color:yellow;">unter</mark> <mark style="background-color:yellow;">`app/storefront/dist/storefront/js`</mark> <mark style="background-color:yellow;">aufgenommen werden. Bereits bestehendes Javascript sollte dann in die neue Javascript-Struktur kopiert werden.</mark>

**Schritt 4 von 4:** Anschließend steht Dir die Option zum Aktualisieren der Erweiterung in der Administration zur Verfügung und Du kannst wie gewohnt durch Klicken auf Aktualisieren das Update durchführen.

</details>

## Was steckt in einem Child-Theme?

Lediglich die `src/Resources/theme.json` sowie die `composer.json` erhalten relevante und für das Update wichtige Inhalte:

```
# move into your theme folder
$ cd <shopware root>/custom/plugins/zenitPlatform[THEMENAME]Set[NUMMER]

# structure of theme
├── composer.json  <-------------------- ERHÖHUNG DER VERSIONSNUMMER!
└── src
    ├── zenitPlatformStratusSet1.php
    └── Resources
        ├── app
        │   └── storefront
        │       ├── dist
        │       │   └── assets
        │       │   └── storefront
        │       │       └── js
        │       │           └── zenit-platform-stratus-set1.js
        │       └── src
        │           └── scss
        │               ├── base.scss
        │               └── overrides.scss
        └── theme.json  <-------------------- ÄNDERUNGEN!
```

**composer.json -** Enthält lediglich als Änderung die neue Versionsnummer, damit in der Administration das Update durchgeführt werden kann.

**theme.json -** Enthält die Theme-Konfiguration des Child-Themes.

**Alle weiteren Dateien** im Child-Theme, wie die base.css, overrides.scss und Javascript-Dateien müssen in einem Child-Theme vorliegen, damit es installiert und zugewiesen werden kann. Diese Dateien sind grundsätzlich leer und enthalten keine relevanten Inhalte und werden auch über ein Update niemals Inhalt erhalten.
