Theme ID von salesChannelEntity bekommen

Hi,

ich brauche die aktive Theme ID des sales channels.

salesChannelEntity wird als Parameter von der Funktion erwartet. Es handelt sich um eine Twig-Erweiterung.

Ich stell das gesamte Internet auf den Kopf, um an diese kleine Info zu kommen …

Bitte, weiß jemand wie ich die Theme ID von einer salesChannelEntity erhalte?

Hallo,
muss es unbedingt die Theme ID sein?
Was genau möchtest du machen?
Ich hab teils dies Verwendet:
{% set activeDomainUrl = app.request.get(‚sw-storefront-url‘) %}
{% if activeDomainUrl == ‚https://www.shopdomain.de‘ %}
{%else%}
{%endif%}

Danke für deine schnelle Antwort.

Ich will in einem Mail Template die Theme-Konfiguration laden, um konfigurierte Farben zu verwenden. Viel wurde probiert, bis ich mit Hilfe von ChatGPT hier hängen geblieben bin:

    public function themeConfig(string $themeId, Context $context)
    {
        return $this->themeService->getThemeConfiguration($themeId, false, $context);
    }

Ich hab die Theme ID derzeit statisch drin, aber die soll natürlich dynamisch sein. Statt $themeId kann ich auch $salesChannel übergeben. Jetzt muss ich von besagtem $salesChannel „nur“ die Theme ID holen. ChatGPT spuckt leider Code aus, der nicht funktioniert.

Das Teil kann halt auch nur mit den spärlichen Infos arbeiten …

Wens du im VK bist, steht in der URL die salesChannel ID
image

bei theme genau so:
image

Ja, darüber hab ich mir die ID bereits geholt. Ich will sie aber nicht manuell in die Twig-Funktion schreiben. Das Mail Template wird für alle Verkaufskanäle benutzt und soll dementsprechend immer andere Farben haben (die des jeweils aktiven Themes eben).

So verwende ich die Funktion derzeit:

{{ themeConfig('[Theme UUID]', context).fields['sw-color-brand-secondary'].value }}

Hm, im Twig kann die ID ganz einfach ermittelt werden:

{{ themeId }}

Danke für deine Antwort. Diese Variable ist leider nicht im Mail Template verfügbar.

Diese Info erwähne ich erst in meinem zweiten Post, sorry. Wusste nicht, dass es außerhalb des Mail Templates so eine Variable gibt.

Achso, OK, dann falsch gelesen.

Ich habe ein Ticket in GitHub erstellt, um das Problem der lückenhaften Dokumentation anzugehen: Missing docs: Get active theme id from sales channel entity · Issue #1418 · shopware/docs · GitHub

Vielleicht bringt’s ja was.

Edit: Hab die Lösung gefunden und im GitHub Issue dokumentiert.

Du musst den Mail Service dekorieren, dort die Theme ID ermitteln und an das Template übergeben:

Ist auch eine Möglichkeit. Dieses Ermitteln der Theme-ID war eben das Problem.

In dem GitHub-Issue wird unter anderem die Lösung diskutiert.

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.