Frage zu parseField()

Hallo,

ich habe eine Frage zu parseField(). Und zwar bekommen wir aus unserem Shopware-Shop per ShopwareGetProducts die Zusatzfelder eines Produkts in dieser Form (Beispiel):
custom_name=Das Produkt;custom_features=Feature 1;Feature 2;Feature 3;custom_field=Test

Wenn wir jetzt die Zusatzfelder in einem Mapper in einzelne Spalten aufteilen wollen nehmen wir für die jeweilige Spalte:
<#assign customFieldsMap = parseField(CustomFields!)>${customFieldsMap.at("custom_features")}

Das klappt bei „custom_features“ nicht und es wird nur „Feature 1“ ausgegeben, weil dort in dem Zusatzfeld schon Semikolons sind. Das lässt sich leider nicht vermeiden.

Gibt es da irgendeine Möglichkeit, die Zusatzfelder aufzuteilen und die Semikolons im Zusatzfeld „custom_features“ zu ignorieren bzw. das die Ausgabe für diese Spalte „Feature 1;Feature 2;Feature 3“ ist?

Viele Grüße,
Patrick

Hallo Patrick,

das funktioniert so out of the box leider nicht.
Man kann aber per Script die Semikolons durch ein anderes Zeichen austauschen (beispiel Komma).
Siehe hier mein Skript als Beispiel.

<#assign temp="">
<#assign output ="">
<#list result["input"]?split(";") as item>
<#if item?contains("=")>
<#assign temp = ";" + item>
<#else>
<#assign temp = "," + item>
</#if>
<#assign output += temp>
</#list>
${output?replace("^;","","r")}

Das Ergebnis davon kannst du dann durch parseField jagen.

Viele Grüße
Stefan

1 „Gefällt mir“