RegEx beim Produktexport in Shopware 5.5

Ich versuche aktuell einen regex, welcher mir alles was in der Artikelbeschreibung und mit * Sale , * Promo, Summer Sale, etc. versehen ist für den Export entfernt.

Leider habe ich in der Dokumentation nichts gefunden was mir sagt, wie das mit regex bei Produktexporten gehen könnte.

Das hier erzeugt leider einen Fehler und ist auch nur einer von vielen Versuchen die z.T. aus Google gekommen sind.

{$sArticle.name|regex_replace:"#[/\*[^*]*\*/]#i":""}{if $sArticle.taxID == 17} 0% MwSt. gem. §12 Abs. 3 Nr. 1 UStG*{/if}{#S#}

Ein guter Hinweis wäre grade super.

Danke.

Das hier klappt soweit. Was mir noch fehlt sind die „escape“ über den gesamten String am Ende, so wie in der else.

{if $sArticle.taxID == 17}{$sArticle.name|regex_replace:'/\*[^*]*\*/':""|strip} 0% MwSt. gem. §12 Abs. 3 Nr. 1 UStG{else}{$sArticle.name|regex_replace:'/\*[^*]*\*/':""|strip|escape}{/if}{#S#}

Habe es wie folgt gelöst:

{assign var="taxClaim" value="{$sArticle.name|regex_replace:'/\*[^*]*\*/':""|strip} 0% MwSt. gem. §12 Abs. 3 Nr. 1 UStG"}

.....

{if $sArticle.taxID == 17}{$taxClaim|strip|escape}{else}{$sArticle.name|regex_replace:'/\*[^*]*\*/':""|strip|escape}{/if}{#S#}

Nachfrage: Wie bist du denn auf das Pattern vom Regex gekommen? Es würde ggf. auch ganze Wörter entfernen wenn im String 2 * enthalten sind.

Ist die beste Idee die mir dazu eingefallen ist. Sonst ist im Artikelnamen nie ein „*“ drin, wenn es nicht gerade eine Promo gibt und die Textpassagen sollen eben entfernt werden für Geizhals. Bisher sieht es funktional aus.

Ja solange zwischen zwei * keine weiteren Wörter sind, mag das gehen. Wenn aber einfach nur generell nur * entfernt werden sollen, ist der Pattern so nicht korrekt. Für einfache und generelle Entfernung reicht das:

{$sArticle.name|regex_replace:'/\*/':''|strip}

Dein Pattern führt zu Nebeneffekten. War jetzt nur so eine Anmerkung, da mich die Syntax etwas verwundert hat :slight_smile: