Produktexport mit "zerlegtem" Kategoriebaum

Hallo, ich möchte im Backend unter Marketing -> Produktexporte eine XML erzeugen, wo der Kategoriepfad eines Produktes zerlegt wird. Beispiel: Das Produkt „Levis Jeans“ befindet sich in der Unterkategorie „Jeans“. Darüber ist noch eine weitere Unterkategorie: „Hosen“ und dann folgt die Hauptkategorie: „Kleidung“. <item> ... <category1>Kleidung</category1> <category2>Hosen</category2> <category3>Jeans</category3> ... </item> Nun kann ich den Kategoriepfad mit folgendem Platzhalter ausgeben (und dabei den Seperator definieren): {$sArticle.articleID|category:"\>"} Kennt jemand eine Möglichkeit genau ein Level auszugeben? Etwa so? {$sArticle.articleID|category:1} ... Ausgabe: Kleidung Oder weiss jemand, wo die Smarty-Funktion definiert ist? Davon ausgehend könnte ich dann eine eigene schreiben, aber ich finde nicht die korrekte Codestelle. Vielen Dank, Marcel

Hallo, generell liefert Shopware hier nur den Verlauf, also die Breadcrumb zurück. Benötigt man weitere Informationen zu den Kategorien, so müsste der Export im Core entsprechend erweitert werden. Als Ansatz kann aber ggf. folgender Artikel genutzt werden: http://wiki.shopware.de/_detail_1390.html Dann entsprechend die Variable setzen als Array und denn dieses Array trennen bzw. auf den gewünschten Wert in der Tiefe zugreifen. Beispiel füe eine getrennte Ausgabe (Produktexport-Template) {assign var="string" value=$sArticle.articleID|category:"|"} {assign var="myArray" value="|"|explode:$string} {strip} {counter start=0 print=false step=1} {foreach from=$myArray key=$sArticle.ordernumber item=item} {counter}:{$item|escape} {/foreach} {/strip}{#L#} Sebastian

1 Like

Vielen Dank, so funktioniert es. Hier der fertige Code: {assign var="breadcrumb" value=$sArticle.articleID|category:","} {assign var="categories" value=","|explode:$breadcrumb}<item> ... <categoryid1>{$categories[0]|escape:"htmlall"}</categoryid1> <categoryid2>{$categories[1]|escape:"htmlall"}</categoryid2> <categoryid3>{$categories[2]|escape:"htmlall"}</categoryid3> ... </item>

Hallo,

wie könnte ich jetzt noch prüfen ob z.B. an Stelle der $categories[1] ein bestimmter Ausdruck steht und diesen dann wiederum mit einem Wert belegen, der ausgeben wird?

Kann mir jemand weiterhelfen?

 

Danke