Alias für Kategorie-Name vergeben

hi, folgendes Problem: In Shopware werden Artikel und Kategorien über einen Import via API angelegt. Nun möchte ich die Angelegten Kategorien im Frontend mit einem Alias ausgeben. Beispiel: „Herren“ soll im Frontend als „Männer“ ausgegeben werden – und zwar an jeder stelle wo der Kategoriename auftaucht. Aus Gründen kann ich die Kategorien nicht einfach umbenennen. Die Kategorien müssen also den gleichen Namen haben wie in der Importquelle. Jetzt habe ich mir gedacht, dass ich ein Mapping mit den Kategorienamen und Kategorie-Aliase anlege und die Ausgabe im Frontend entsprechend manipuliere. Die Frage dazu ist jetzt: Gibt es eine Zentrale Stelle an der die Kategorienamen ausgelesen werden und ich zb. mit einem Event/Hook ansetzen kann? Hat sonst jemand eine Idee wie man das angehen könnte? Vielen Dank

hi, wären dafür nicht freitextfelder geeignet. musst nur im tpl auf attr_xyz anpassen.

[quote=“pino”]hi, wären dafür nicht freitextfelder geeignet. musst nur im tpl auf attr_xyz anpassen.[/quote] hi, das könnte etwas umständlich und wenig flexibel sein. da muss ich ja mehrere Template anfassen. Das ganze soll auch vom Template/Theme unabhängig sein. Ich dachte da mehr daran am CategoryService anzusetzen. Habe hier aber noch keine Idee wie ich das anstellen kann…

seh ich nicht so. da du schon per API importierst kannst du gleich den jeweiligen alias mitgeben. du musst nichts tun außer etwas tpl anpassen. // edit ggf kleines plugin um namen zu überschreiben. dann brauchst nicht mal tpl anpassen.

[quote=“pino”]seh ich nicht so. da du schon per API importierst kannst du gleich den jeweiligen alias mitgeben. du musst nichts tun außer etwas tpl anpassen. [/quote] Wie oben geschrieben sollte das unabhängig vom template sein. Ausserdem ist das etwas mehr als etwas. Die Kategorienamen werden ja an verschiedenen Stellen ausgegeben. Topnavigation, Navigation in der Sidebar, Breadcrumb, Filter im Suchergebnis. Das sind jetzt erst mal die, die mir spontan einfallen, [quote=“pino”] // edit ggf kleines plugin um namen zu überschreiben. dann brauchst nicht mal tpl anpassen.[/quote] Die Namen sollen ja gleichbleibend. Lediglich die Ausgabe im Frontend soll sich unterscheiden.

Wäre es da nicht einfacher, das Mapping in Richtung deiner API umzustellen?

[quote=“derkosta”]Wäre es da nicht einfacher, das Mapping in Richtung deiner API umzustellen?[/quote] Wie meinst du das? Die eigentlichen Kategorienamen sollen ja bleiben.

[quote=“hbee”]Gibt es eine Zentrale Stelle an der die Kategorienamen ausgelesen werden und ich zb. mit einem Event/Hook ansetzen kann?[/quote] genau dafür das kleine plugin. z.b. mit einfachen “Enlight_Controller_Action_PostDispatchSecure_Frontend” könntest du die templateVariablen nehmen (getAssign) die du mit attr_xyz verändern möchtest.

[quote=„pino“] z.b. mit einfachen „Enlight_Controller_Action_PostDispatchSecure_Frontend“ könntest du die templateVariablen nehmen (getAssign) die du mit attr_xyz verändern möchtest.[/quote] Danke. Daran hatte ich auch schon gedacht. Ich habe es so versucht: if($request-\>getModuleName() == 'frontend'){ $breadcrumb = $view-\>sBreadcrumb; $categories = $view-\>sCategories; Shopware()-\>Debuglogger()-\>info('Vars', array('Breadcrumb' =\> $breadcrumb,'Categories' =\> $categories)); $breadcrumb[0]['name'] = 'Test999'; $view-\>sBreadcrumb = $breadcrumb; } Die Breadcrumb kann ich damit auch ändern, nur leider bleibt $categories NULL obwohl die $sCategories im Template zur Verfügung steht. Warum kann ich darauf nicht zugreifen? Ich habe mich auf Enlight_Controller_Action_PostDispatch_Frontend registriert.

Ich meinte, wenn du sagst die Kategorien sollen im Frontend anders heißen und umbenannt werden, warum sagst du nicht beim Import über die API Ersetze mir KategorienameAPI -> durch KategorienameFrontEnd Da bräuchtest du nur eine “Übersetzung” an der API. Also gleich richtig in Shopware anlege wie es heißen soll, aber intern die Kommunikation per API mit deine “alten” Namen arbeiten

[quote=„derkosta“]Ich meinte, wenn du sagst die Kategorien sollen im Frontend anders heißen und umbenannt werden, warum sagst du nicht beim Import über die API Ersetze mir KategorienameAPI -> durch KategorienameFrontEnd Da bräuchtest du nur eine „Übersetzung“ an der API. Also gleich richtig in Shopware anlege wie es heißen soll, aber intern die Kommunikation per API mit deine „alten“ Namen arbeiten[/quote] Ah ok, verstehe. Das geht aber leider nicht. Die Kategorien müssen im Backend mit dem Originalnamen angelegt werden.