Neu Frage für's Verständnis: Eigene Felder in Druck- & E-Mail-Vorlage

Bernd Wichtmann

Aktives Mitglied
15. Dezember 2020
25
1
Mal eine Frage zum Verständnis:

kann es sein, dass eigene Felder in den E-Mailvorlagen nur umständlich per SQL-Abfrage einzeln ausgelesen werden können?

Im Gegensatz zur Druckvorlage schaff ich es einfach nicht den Wert aus einem einzelnen eigenen Feld in die E-Mail zu kriegen.
Jedes Mal werden die Werte sämtlicher eigener Felder ausgelesen und in die E-Mailvorlage gepackt (s. Bild).
 

Anhänge

  • Mail-Vorlage.JPG
    Mail-Vorlage.JPG
    112,3 KB · Aufrufe: 31

Bernd Wichtmann

Aktives Mitglied
15. Dezember 2020
25
1
Mit dem Filter Split und Remove solltest in der Regel die Felder auslesen können.
https://guide.jtl-software.com/jtl-wawi/vorlagen/standardfilter-in-dotliquid/

Mit einer SQL Abfrage sollte es immer funktionieren.
Ah, OK. Danke, der Split-Filter ist interessant.

Leider ist da nichts bei, das mein Problem löst, denn für "remove (first/last) müsste ich ja einen festen String haben, den ich definieren könnte.
Da ich aber a) nie weiß OB noch 1, 2... 5 weitere eigenen Felder gefüllt sind und b) keine Ahnung habe, was in den anderen Felder stehen könnte, funktioniert leider nichts von den Filtern.
Selbst, wenn ich wie bei Excel alles außer den letzten X Stellen löschen könnte, wüßte ich leider immer noch nicht, ob das Feld mit der Mitgliedsnummer auch immer wirklich am Ende steht.

Hast du vlt noch eine andere Idee?

Ich wäre ja dafür, dass jedes selbst angelegte eigenen Feld eine eindeutige interne ID bekommen, die dann neben/unter/über dem Feld klein angezeigt wird und die man dann entsprechend in den Vorlagen angeben kann.
Das wurde im Forum auch schonmal angeregt, allerdings hielt man das nicht für praktikabel, weswegen das in der Art nicht umgesetzt wurde/wird.
 
Zuletzt bearbeitet:

Bernd Wichtmann

Aktives Mitglied
15. Dezember 2020
25
1
Ich würde die Variable für die eigenen Felder erstmal splitten nach dem Zeichen '|'.
Dann würde ich über das Array eine Schleife laufen lassen und prüfen, ob der Wert mit 'Mitglieds-Nr=' anfängt.
Mit assign und dem Filter remove kannst du den Wert in einer neuen Variablen speichern und nach der Schleife wiedergeben.

https://guide.jtl-software.com/jtl-wawi/vorlagen/allgemeine-beispiele-fuer-dotliquid/
OK.
Wenn ich angebe: {{ Vorgang.Kunde.EigeneFelderAlsText | Split: '|' }}
dann löscht es mir lediglich die Pipe aus dem String. Alles andere ist noch vorhanden.
Und mit "Remove" kann ich zwar die Öfnungszeiten bei diesem speziellen Kunden angeben, damit die gelöscht werden, aber wie soll das denn bei den 2.000 anderen Kunden funktionieren? Da kann ich ja nicht bei jedem reinschauen, was ich da zum löschen eintragen muss.

P.S.
Meine SQL-Kenntnisse reichen grade so, um in der Datenbank mal einen Wert zu finden.
 

kelvin.

Mitglied
15. Februar 2023
94
40
Frankfurt
Mit Split bekommst du ein Array, also eine Art Liste mit allen eigenen Felder. In deinem Fall ein Array mit zwei Werten. Einmal die Anmerkung=... und einmal die Mitglieds-Nr=...

Damit definierst du die Variable array mit deren Werten und die Variable mitgliedsnr
Code:
{{ assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' }}
{{ assign mitgliedsnr = '' }}

Dann gehst du mit einer Schleife über alle Werte vom Array:
Code:
{% for item in array %}
{% if  Hier wird dann geprüft, ob item mit 'Mitglieds-Nr=' anfängt %}
und wenn ja, dann:
{{ assign mitgliedsnr = item | Remove: 'Mitglieds-Nr='  }}
{% endif %}
{% endfor %}
{{ mitgliedsnr }}

So grob müsste es aussehen, die if Abfrage muss noch angepasst werden.
 

Bernd Wichtmann

Aktives Mitglied
15. Dezember 2020
25
1
Mit Split bekommst du ein Array, also eine Art Liste mit allen eigenen Felder. In deinem Fall ein Array mit zwei Werten. Einmal die Anmerkung=... und einmal die Mitglieds-Nr=...

Damit definierst du die Variable array mit deren Werten und die Variable mitgliedsnr
Code:
{{ assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' }}
{{ assign mitgliedsnr = '' }}

Dann gehst du mit einer Schleife über alle Werte vom Array:
Code:
{% for item in array %}
{% if  Hier wird dann geprüft, ob item mit 'Mitglieds-Nr=' anfängt %}
und wenn ja, dann:
{{ assign mitgliedsnr = item | Remove: 'Mitglieds-Nr='  }}
{% endif %}
{% endfor %}
{{ mitgliedsnr }}

So grob müsste es aussehen, die if Abfrage muss noch angepasst werden.
Also, wenn ich das richtig verstehe löscht "Split: '|'" mir in der Vorschau zwar die Pipe aus dem Text, teilt ihn aber im Hintergrund auf!?
Und bei "Remove" entferne ich quasi das was ich behalten möchte um es als neue Variable zur Verfügung zu stellen?
 

kelvin.

Mitglied
15. Februar 2023
94
40
Frankfurt
Das ist die Variable EigeneFelderAlsText
Code:
Anmerkung=Mo.: 15:00 - 18:00 Uhr
Di.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Mi.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Do.: 09:15 - 13:00 Uhr
Fr.: 15:00 - 18:00 Uhr
Sa: 09:15 - 13:00 Uhr | Mitglieds-Nr=123456


Mit Split: '|' bekommst du
Code:
Anmerkung=Mo.: 15:00 - 18:00 Uhr
Di.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Mi.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Do.: 09:15 - 13:00 Uhr
Fr.: 15:00 - 18:00 Uhr
Sa: 09:15 - 13:00 Uhr
und
Code:
Mitglieds-Nr=123456
Das Zeichen '|' wird dabei entfernt.

Das kannst du auch überprüfen mit:
Code:
{{ assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' }}
{% for item in array %}
{{ item  }}
{% endfor %}

Um nur die Mitglieds-Nr zu bekommen musst du von:
Code:
Mitglieds-Nr=123456
die Zeichen
Code:
Mitglieds-Nr=
mit Remove entfernt werden.
 
  • Gefällt mir
Reaktionen: Bernd Wichtmann

Bernd Wichtmann

Aktives Mitglied
15. Dezember 2020
25
1
Das ist die Variable EigeneFelderAlsText
Code:
Anmerkung=Mo.: 15:00 - 18:00 Uhr
Di.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Mi.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Do.: 09:15 - 13:00 Uhr
Fr.: 15:00 - 18:00 Uhr
Sa: 09:15 - 13:00 Uhr | Mitglieds-Nr=123456


Mit Split: '|' bekommst du
Code:
Anmerkung=Mo.: 15:00 - 18:00 Uhr
Di.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Mi.: 09:15 - 13:00 Uhr & 14:00 - 18:00 Uhr
Do.: 09:15 - 13:00 Uhr
Fr.: 15:00 - 18:00 Uhr
Sa: 09:15 - 13:00 Uhr
und
Code:
Mitglieds-Nr=123456
Das Zeichen '|' wird dabei entfernt.

Das kannst du auch überprüfen mit:
Code:
{{ assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' }}
{% for item in array %}
{{ item  }}
{% endfor %}

Um nur die Mitglieds-Nr zu bekommen musst du von:
Code:
Mitglieds-Nr=123456
die Zeichen
Code:
Mitglieds-Nr=
mit Remove entfernt werden.

🤦‍♂️ *Stöhn*
Klar. Sorry, ich bin Grafiker. Ich kann zwar die meisten Adobe-Programme, ein paar Fremdsprachen, HTML-, CSS-, PHP-Manipulation und ein paar Brocken SQL, aber ich bin halt kein Fachinformatiker.
Programmiersprachen etc. waren mir immer zu abstrakt. Ich kann zwar aus dem Verständniss um HTML/CSS einiges ableiten, aber ist immer wieder ein harter Brocken.
Aber: ich bin immer froh wieder was gelernt zu haben.
 

Bernd Wichtmann

Aktives Mitglied
15. Dezember 2020
25
1
So, folgendes hab ich eingetragen:
Code:
{{ assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' }}
{{ assign mitgliedsnr = '' }}
{% for item in array %}
{% if item contains 'Mitglieds-Nr=' %}
{{ assign mitgliedsnr = item | Remove: 'Mitglieds-Nr='  }}
{% endif %}
{% endfor %}
{{ mitgliedsnr }}

Das Meiste hast Du mir ja netterweise vorgegeben.
Ich hab recherchiert und hab "if item contains" gefunden, das ich für die array-Abfrage nach der Mitgliedsnummer eingetragen hab.
Leider scheint das aber nicht das richtige zu sein... 🤔
 

kelvin.

Mitglied
15. Februar 2023
94
40
Frankfurt
Code:
{%assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' %}
{% assign mitgliedsnr = '' %}
{% for item in array %}
{% if item contains 'Mitglieds-Nr=' %}
{% assign mitgliedsnr = item | Remove: 'Mitglieds-Nr='  %}
{% endif %}
{% endfor %}
{{ mitgliedsnr }}

So müsste es passen
 
  • Gefällt mir
Reaktionen: Bernd Wichtmann

Bernd Wichtmann

Aktives Mitglied
15. Dezember 2020
25
1
Code:
{%assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' %}
{% assign mitgliedsnr = '' %}
{% for item in array %}
{% if item contains 'Mitglieds-Nr=' %}
{% assign mitgliedsnr = item | Remove: 'Mitglieds-Nr='  %}
{% endif %}
{% endfor %}
{{ mitgliedsnr }}

So müsste es passen
So, endlich schaff ich's zu antworten.

Vielen Dank :D:thumbsup: Damit klappt es super.
Ich musste aber erst feststellen, dass, wenn ich das Feld ansprechen will ich den Namen des Feldes noch hinter die "EigeneFelderAlsText"-Variable anhängen muss:
{{ Vorgang.Kunde.EigeneFelderAlsText.Mitglieds-Nr }}

Jetzt sieht es insgesamt wie folgt aus (und ließ sich auch auf andere eigene Felder anwenden):

Code:
Lieferanten- / Mitglieds-Nr.: 123456 / {{ Vorgang.Kunde.EigeneFelderAlsText.Mitglieds-Nr }}
{%assign array = Vorgang.Kunde.EigeneFelderAlsText | Split: '|' %}
{% assign mitgliedsnr = '' %}
{% for item in array %}
{% if item contains 'Mitglieds-Nr=' %}
{% assign mitgliedsnr = item | Remove: 'Mitglieds-Nr='  %}
{% endif %}
{% endfor %}
{{ mitgliedsnr }}
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Frage: Umzug IMAP Postfach und Auswirkungen Service Desk Servicedesk (Beta) 2
Frage zu "Eigene Übersichten" in den Artikeldetails JTL-Wawi 1.7 3
Neu Frage zu Paypal Erweiterte Kreditkartenzahlung Sprachvariablen bei Bestellvorgang (Checkout) -> Zahlungsart Allgemeine Fragen zu JTL-Shop 2
Neu Frage bzgl. einrichten des google Tag managers und GA4 in JTL-Shop 5 Allgemeine Fragen zu JTL-Shop 0
Neu Kniffelige Frage - Export Workflow - weitere Bestellungen eines Kunden User helfen Usern - Fragen zu JTL-Wawi 1
Staffelrabatt für alle Artikel JTL-Wawi 1.8 2
Neu Suche dringend die "englischen Variablen" für position.bild und position.ArtikelbeschreibungKurz (Mail-Vorlage Template JTL) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Spamschutz für "Benachrichtigen, wenn verfügbar" Allgemeine Fragen zu JTL-Shop 2
A-Record Eintrag bei 1&1 für JTL Basic CFE Shop Einrichtung JTL-Shop5 7
Neu Umfassende Beratung und Dienstleistungen für JTL Dienstleistung, Jobs und Ähnliches 0
Nettopreise für Drittländer = deutscher Bruttopreis möglich? JTL-Wawi 1.7 0
Neu Lager für verfügbaren Bestand gesperrt - Artikel kommen nicht auf Einkaufsliste JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu Neue Tools für Ameise - CSV Datei Spalten Zeilen umwandeln für Import und Export Merkmale, Eigene Felder, Attribute Schnittstellen Import / Export 0
Neu Software für Barcodedruck gesucht User helfen Usern 1
Wichtig BLACK FRIDAY SUPPORT für Euch - mit verlängerten Support-Zeiten Messen, Stammtische und interessante Events 0
Neu Versandbestätigungen für DHL Paket und Warenpost werden nicht eingetragen bei Amazon Amazon-Anbindung - Fehler und Bugs 1
Neu Shop5 Zahlungsarten für bestimmte Kunden freischalten Allgemeine Fragen zu JTL-Shop 4
Neu Google Attribute für Shopify in JTL pflegen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Nach Artikeln filtern, die nicht für einen bestimmten Verkaufskanal aktiviert sind, obwohl andere Varianten aktiv sind. User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wöchentliche Reminder-Mail für Artikel deren MHD nicht aktiv ist User helfen Usern - Fragen zu JTL-Wawi 0
Neu Serverkonfiguration für JTL Wawi lokales Hosting User helfen Usern - Fragen zu JTL-Wawi 5
Neu Suche Plugin für USPs auf Produktdetailseiten User helfen Usern - Fragen zu JTL-Wawi 1
In Bearbeitung POS Backup erstellen: Speicherort für Backup - Was ist die SD-Card? Und wieso USB Stick nicht auswählbar? Allgemeine Fragen zu JTL-POS 1
Neu SQL für Export EINES Eigenen Feldes JTL Ameise - Eigene Exporte 1
Neu Hilfe gesucht für die Einrichtung der Formulare zB Rechnungen nach eigene Vorlage Starten mit JTL: Projektabwicklung & Migration 0
Neu Liste für bestimmten Lagerbestand erstellen JTL Ameise - Eigene Exporte 0
Neu Dotliquid if else für Email Gelöste Themen in diesem Bereich 4
Neu Onpage Composer für neue Artikelseiten Allgemeine Fragen zu JTL-Shop 2
Neu Neues Plugin: WERTGARANTIE Integration für JTL Shop 5 Plugins für JTL-Shop 2
Neu Syntax für Druckvorlagen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Anleitung zur Installation der JTL-Datenbank auf MSSQL für Linux in einer virtuellen Maschine auf TrueNAS Core... Teil 2 Installation von JTL-Wawi 0
Neu Anzeige von mehreren Chargennummern für den selben Artikel auf dem Lieferschein Gelöste Themen in diesem Bereich 3
In Bearbeitung Neuer Bondrucker für Sunmi Mini JTL-POS - Fragen zu Hardware 1
Attribute für Otto, Kaufland wie? - ich verstehe es nicht, bitte um Hilfe Otto.de - Anbindung (SCX) 4
Neu Angewandte Filter im Artikelstammdatenblatt dauerhaft für Benutzer speichern User helfen Usern - Fragen zu JTL-Wawi 0
Neu Variablen für Ettikettendruck Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Anleitung zur Installation der JTL-Datenbank auf MSSQL für Linux in einer virtuellen Maschine auf TrueNAS Core (...interessant für One-Man-Shows...) Gelöste Themen in diesem Bereich 9
Neu Rahmenbedinungen Zahlung ändern für Vorlage und laufende Angebote??? eBay-Anbindung - Ideen, Lob und Kritik 16
Neu Eigene Übersichten Wawi Stürzt ab SQL für Komplexe Artikel-KPIs Eigene Übersichten in der JTL-Wawi 0
Beantwortet Entschlüsselung der Spalte bRowversion Übersicht für Lieferantenbezugspreise Eigene Übersichten in der JTL-Wawi 4
Neu Connector macht für mich unnachvollziehbare Dinge. Hat jemand eine Idee was das Problem ist? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Einstellungen für DHL Versenden 3.0 User helfen Usern - Fragen zu JTL-Wawi 3
Neu Connector macht für mich unnachvollziehbare Dinge. Hat jemand eine Idee was das Problem ist? Shopify-Connector 0
Neu 👉Wichtiger Hinweis: Donnerstag, den 26.10.2023, finden Wartungsarbeiten an unserer JTL-eazyAuction-Infrastruktur für Amazon statt. News, Events und Umfragen 0
Neu Für Google Shooping eigene Bilder Allgemeine Fragen zu JTL-Shop 0
Neu PlugIn für bezahlten Telefonsupport mit Gutscheinausgabe Allgemeine Fragen zu JTL-Shop 2
Neu Zahlart Aktualisierung für WaWi Aufträge die in JTL POS bezaht werden JTL-Wawi 1.7 0
Neu Erweiterung Preisanzeige für JTL Shop 5.2.x benötigt; Template ET360 Plugins für JTL-Shop 2
Neu Meta-Felder für Shopify JTL-Wawi - Fehler und Bugs 6
Gelöst POS für ein Freibad JTL-POS - Fragen zu Hardware 4

Ähnliche Themen