Hallo zusammen,
wir werden bald auf JTL umsteigen und sind noch in der Vorbereitungsphase. Bei dem folgenden Thema komme ich nicht zum Abschluss und verzweifle dabei gerade etwas.. 😅
Wir verkaufen Möbel, welche oft aus mehreren Teilen bestehen (Packstücke / Stückliste). Die Information zu den Packstücken (Anzahl, Maße, Gewicht) werden aktuell in einem String an unser Shopware gesendet, welches diese Informationen dann dem Kunden im Frontend anzeigt.
Nun versuche ich diesen String per JTL Workflow mit Dotliquid und SQL-Query zu reproduzieren:
Hier meine erweiterte Eigenschaft:
2 Probleme habe noch:
Das Ergebnis sieht aktuell so aus:
[{"name":"Packstücke-Name-1","quantity":2,00,"measurements":[{"type":"height","value":90,00,"unit":"cm"},{"type":"width","value":182,00,"unit":"cm"},{"type":"depth","value":45,00,"unit":"cm"},{"type":"weight","value":90,00,"unit":"kg"}]},{"name":"Packstücke-Name-2","quantity":1,00,"measurements":[{"type":"height","value":78,00,"unit":"cm"},{"type":"width","value":68,00,"unit":"cm"},{"type":"depth","value":13,00,"unit":"cm"},{"type":"weight","value":9,00,"unit":"kg"}]},{"name":"Packstücke-Name-3","quantity":1,00,"measurements":[{"type":"height","value":80,00,"unit":"cm"},{"type":"width","value":42,00,"unit":"cm"},{"type":"depth","value":30,00,"unit":"cm"},{"type":"weight","value":21,00,"unit":"kg"}]},{"name":"Packstücke-Name-4","quantity":1,00,"measurements":[{"type":"height","value":185,00,"unit":"cm"},{"type":"width","value":45,00,"unit":"cm"},{"type":"depth","value":35,00,"unit":"cm"},{"type":"weight","value":44,00,"unit":"kg"}]},]
Hat hierzu vielleicht jemand eine Idee, oder schon ähnliche Erfahrungen gemacht?
Ich hoffe, ich konnte mein Problem transportieren ^^.
Viele Grüße
Mirko
wir werden bald auf JTL umsteigen und sind noch in der Vorbereitungsphase. Bei dem folgenden Thema komme ich nicht zum Abschluss und verzweifle dabei gerade etwas.. 😅
Wir verkaufen Möbel, welche oft aus mehreren Teilen bestehen (Packstücke / Stückliste). Die Information zu den Packstücken (Anzahl, Maße, Gewicht) werden aktuell in einem String an unser Shopware gesendet, welches diese Informationen dann dem Kunden im Frontend anzeigt.
Nun versuche ich diesen String per JTL Workflow mit Dotliquid und SQL-Query zu reproduzieren:
Hier meine erweiterte Eigenschaft:
Code:
{% capture query -%}
SELECT
tArtikelBeschreibung.cName AS 'name',
CAST(tStueckliste.fAnzahl AS decimal(18,2)) AS 'quantity',
CAST(aname.fHoehe AS decimal(18,2)) AS 'height',
CAST(aname.fBreite AS decimal(18,2)) AS 'width',
CAST(aname.fLaenge AS decimal(18,2)) AS 'length',
CAST(aname.fArtGewicht AS decimal(18,2)) AS 'weight'
FROM
dbo.tArtikel
INNER JOIN dbo.tStueckliste ON tStueckliste.kVaterArtikel = tArtikel.kArtikel
INNER JOIN dbo.tArtikel AS aname ON tStueckliste.kArtikel = aname.kArtikel
INNER JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tStueckliste.kArtikel
WHERE
tArtikel.cArtNr = '{{ Vorgang.Allgemein.Stammdaten.ArtNrSku | SqlEscape }}'
{% endcapture -%}
[{% assign ausgabe = query | DirectQuery -%}
{%- for item in ausgabe.Daten -%}{"name":"{{ item.name }}","quantity":{{ item.quantity }},"measurements":[{"type":"height","value":{{ item.height }},"unit":"cm"},{"type":"width","value":{{ item.width }},"unit":"cm"},{"type":"depth","value":{{ item.length }},"unit":"cm"},{"type":"weight","value":{{ item.weight }},"unit":"kg"}]},{% endfor -%}
]{{ ausgabe }}
2 Probleme habe noch:
- Die Zahlen sollen ein "." als Dezimaltrennzeichen haben (alternativ müsste es shopwareseitig angepasst werden)
- das letzte "," vor dem schließenden "]" muss weg
- mit replace hatte ich keinen Erfolg
- auch habe ich versucht irgendwie zu schauen, was der letzte Schleifendurchlauf ist, um dann das "," nicht zu setzen .. leider ebenso erfolglos
Das Ergebnis sieht aktuell so aus:
[{"name":"Packstücke-Name-1","quantity":2,00,"measurements":[{"type":"height","value":90,00,"unit":"cm"},{"type":"width","value":182,00,"unit":"cm"},{"type":"depth","value":45,00,"unit":"cm"},{"type":"weight","value":90,00,"unit":"kg"}]},{"name":"Packstücke-Name-2","quantity":1,00,"measurements":[{"type":"height","value":78,00,"unit":"cm"},{"type":"width","value":68,00,"unit":"cm"},{"type":"depth","value":13,00,"unit":"cm"},{"type":"weight","value":9,00,"unit":"kg"}]},{"name":"Packstücke-Name-3","quantity":1,00,"measurements":[{"type":"height","value":80,00,"unit":"cm"},{"type":"width","value":42,00,"unit":"cm"},{"type":"depth","value":30,00,"unit":"cm"},{"type":"weight","value":21,00,"unit":"kg"}]},{"name":"Packstücke-Name-4","quantity":1,00,"measurements":[{"type":"height","value":185,00,"unit":"cm"},{"type":"width","value":45,00,"unit":"cm"},{"type":"depth","value":35,00,"unit":"cm"},{"type":"weight","value":44,00,"unit":"kg"}]},]
Hat hierzu vielleicht jemand eine Idee, oder schon ähnliche Erfahrungen gemacht?
Ich hoffe, ich konnte mein Problem transportieren ^^.
Viele Grüße
Mirko