Custom Theme soll anderes Custom Theme erweitern - wie?

Hallo,

wir möchten ein Konstrukt von 2 Custom Themes aufbauen. Das eine (Base-Theme) soll die meisten Styles abbilden, während das andere (Special-Theme) eher spezifische Styles für einen speziellen Verkaufskanal hat.

Das eine muss also das andere erweitern, welches wiederum auf Shopware Basis Theme aufbaut.

Deshalb habe ich beim Special-Theme unter “views” mein @MyBaseTheme integriert.

theme.json von Base-Theme:

"views": [
     "@Storefront",
     "@Plugins",
     "@MyBaseTheme"
  ],
  "style": [
    "app/storefront/src/scss/overrides.scss",
    "@Storefront",
    "app/storefront/src/scss/base.scss"
  ],
  "script": [
    "@Storefront",
    "app/storefront/dist/storefront/js/my-base-theme.js"
  ],

und hier die theme.json des Special-Theme

"views": [
     "@Storefront",
     "@Plugins",
     "@MyBaseTheme",
     "@MySpecialTheme"
  ],
  "style": [
    "app/storefront/src/scss/overrides.scss",
    "@Storefront",
    "app/storefront/src/scss/base.scss"
  ],
  "script": [
    "@Storefront",
    "app/storefront/dist/storefront/js/my-special-theme.js"
  ],

leider funktioniert das nicht… es greift im Verkaufskanal zwar das Special-Theme, allerdings ohne die Inhalte vom Base-Theme … was mach ich falsch?

ich dachte erst, ich muss @MyBaseTheme auch och unter “styles” schreiben, aber dann klappt der Compile nicht mehr, weil laut Fehlermeldung die Theme-Config-Variablen aus @MyBaseTheme in @MySpecialTheme unbekannt sind…

weiß niemand etwas dazu?

Das Base Theme muss ein Plugin sein und kein Theme, damit das greift.

Aktuell greift nur das dem Sales-Channel zugewiesene Theme, da das andere nicht zugewiesen ist, wird es auch nicht berücksichtigt. Wenn du statt einem Theme ein Plugin baust als Basis, kannst du das so umsetzen. Haben wir aber auch als Ticket vorliegen, damit wir uns das nochmal ansehen.
Umsetzen kannst du es so aber dennoch.

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍

mein Base Theme ist glücklicherweise auch ein Plugin

class MyBaseTheme extends Plugin implements ThemeInterface
{
    /**
     * @return string
     */
    public function getThemeConfigPath(): string
    {
        return 'theme.json';
    }
}

was muss ich jetzt tun, damit die Vererbung klappt?

Oder darf es NUR ein Plugin und nicht beides sein? Ich brauch aber die Implementierung des ThemeInterface, da ich ja eine Theme-Konfig im Base-Theme habe.

weiß hier denn keiner weiteren Rat? Ich bekomm das nicht zum Laufen…

ändert sich hier evtl. was mit 6.2 https://www.shopware.com/de/blog/detail/sCategory/956/blogArticle/5742 ?

Die Theme Vererbung wurde verbessert, sodass nun Themes in beliebiger Tiefe von anderen Themes ableiten können. 

niemand?

@FloC3‍

Ich glaube dass hier mit „Plugin“ ein echtes Plugin und kein Theme-Plugin gemeint war.

class DeinPlugin extends Plugin --> mehr nicht - ohne implements ThemeInterface

https://docs.shopware.com/en/shopware-platform-dev-en/how-to/indepth-guide-bundle/setup?category=shopware-platform-dev-en/how-to/indepth-guide-bundle

könnte Shopware evtl. mal Licht uns Dunkel bringen? Bitte? Schön, dass man die Entwickler hier mit so wichtigen Dingen seit Monaten im Regen stehen lässt