Neu Mehrsprachige Mails und Dokumente

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
Wir haben uns das mehrsprachig über Globale Textbausteine angelegt. Funktioniert super nur wird bei der Aufzählung der Artikel immer der DE Name/Titel genommen.
Hier mal der Code aus einer Auftragsmail:

Code:
{% for position in Report.SalesOrderPosition -%}
{% if position.PositionType == 'ShippingPosition' -%}
{% assign shippingMethod = position.Name -%}
{% if UseNetPrice -%}
{% assign shippingPrice = position.TotalNetPrice -%}
{% else -%}
{% assign shippingPrice = position.TotalGrossPrice -%}
{% endif -%}
{% else -%}
{% capture quantity -%}{{ position.Quantity }}{% if position.Unit != empty %} {{ Position.Unit }}{% else %}x{% endif %} {{ position.Name }}{% endcapture -%}

Hiermit werden wohl die Positionen per Schleife abgefragt:
Code:
{% for position in Report.SalesOrderPosition -%}

Den verstehe ich den ganzen Tag nicht:
Code:
{% assign shippingMethod = position.Name -%}

Hiermit wird der Artikelname gesetzt. Ich denke aus der Schleife kann man einzelne Elemente ausgeben:
Code:
 {{ position.Name }}
Interessant wäre hierbei wie man an die Namen der Elemente kommt um die auszugeben!

So ich finde nirgends eine Möglichkeit zu bestimmen welcher Artikelname und in welcher Sprache es da ausgegeben wird.
Jedenfalls das im Artikel -> Beschreibung -> Drucken/Mailen/Faxen ist es nicht.

P.S. Unter den Vorlagen ist die Sprache Englisch gesetzt.
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
605
206
Hi,

Den verstehe ich den ganzen Tag nicht:
Code:
{% assign shippingMethod = position.Name -%}

hier wird der Name in die Variable shippingMethod übernommen, wenn der Positionstyp ShippingPosition ist. Siehe den Code davor: "{% if position.PositionType == 'ShippingPosition' -%}"

Hiermit wird der Artikelname gesetzt. Ich denke aus der Schleife kann man einzelne Elemente ausgeben:
Code:
{{ position.Name }}
Genau. Das ist der Name aus der Position aus dem Auftrag.
Aus dem Grund kommt man dann auch nicht direkt an die andere Sprache ran, da im Auftrag einfach ein Text in der Position steht, ohne das definiert ist, welche Sprache das am Ende ist.
Hier bleibt einem nur übrig, die andere Sprache per SQL aus dem Artikel zu holen. Bei jedem Schleifendurchlauf.

Jede Vorlage hat ja sicher eine definierte Sprache, für welche sie gedacht ist?

Viele Grüße
Mirko
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
Hmmh SQL kann ich so leider nicht, schade. Aber ich werde die Tage mal etwas mit dem Zeugs spielen. Danke schon mal.
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
605
206
Hi, versuche es mal hiermit (der Name wird nur bei Artikel angezeigt / das umschließende for ist sicher schon vorhanden und kann weg (erste und letzte Zeile)):

SQL:
{%- for position in Report.SalesOrderPosition -%}
{% if position.PositionType == 'Item' -%}
{%- capture query -%}
SELECT
    b.cName
FROM
    tArtikelBeschreibung b
    LEFT JOIN tArtikel a ON a.kArtikel = b.kArtikel
WHERE
    b.kPlattform = 1
    AND b.kSprache = 1 -- hier die ID der Sprache verwenden, welche man benötigt
    AND a.cArtNr = '{{ position.SKU }}'
{%- endcapture -%}
{{ query | DirectQueryScalar }}
{%- endif -%} 
{%- endfor -%}

Die ID der Sprachen bekommst du hier raus:

SQL:
SELECT * FROM tSpracheUsed
 
  • Gefällt mir
Reaktionen: gnarx

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
Moin soweit funzt es ich vermute nur das der sich die Texte unterschiedlich holt. Also einmal wohl aus dem Shipping und einmal aus dem Plattform Text. Die sind natürlich unterschiedlich.
Deshalb die Frage zu dem Punkt:
Code:
b.kPlattform = 1

Die Plattform-ID ist ja vorhanden und die kann ich per Assign setzen und die wird auch korrekt geholt. So etwa:

Code:
{%- for position in Report.SalesOrderPosition -%}
{% assign plattform = Report.PlatformInternalId -%}
{% if position.PositionType == 'Item' -%}
{%- capture query -%}
SELECT
    b.cName
FROM
    tArtikelBeschreibung b
    LEFT JOIN tArtikel a ON a.kArtikel = b.kArtikel
WHERE
    b.kPlattform = 2
    AND b.kSprache = 2 -- hier die ID der Sprache verwenden, welche man benötigt
    AND a.cArtNr = '{{ position.SKU }}'
{%- endcapture -%}
{{ query | DirectQueryScalar }}
{%- endif -%}
{%- endfor -%}

Nur wie binde ich das in den SQL ein?
 
Zuletzt bearbeitet:

MirkoWK

Sehr aktives Mitglied
14. März 2022
605
206
das kannst du ähnlich wie die SKU einbinden:

SQL:
{%- for position in Report.SalesOrderPosition -%}
{% if position.PositionType == 'Item' -%}
{%- capture query -%}
SELECT
    b.cName
FROM
    tArtikelBeschreibung b
    LEFT JOIN tArtikel a ON a.kArtikel = b.kArtikel
WHERE
    b.kPlattform = {{ Report.PlatformInternalId }}
    AND b.kSprache = 2 -- hier die ID der Sprache verwenden, welche man benötigt
    AND a.cArtNr = '{{ position.SKU }}'
{%- endcapture -%}
{{ query | DirectQueryScalar }}
{%- endif -%}
{%- endfor -%}
 
  • Gefällt mir
Reaktionen: gnarx

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
So das funktioniert super. Hoffe ich nerve nicht da ich noch folgendes habe.
Ich müsste halt noch abtackern wenn kein EN Text da ist das er denn den normalen Verlauf ausführt.
Deinen Code bekomme ich ja hier reinkopiert, z.B. statt {{ position.Name }} aber wenn nix in EN da ist bzw. im oben abgefragten Feld dann bleibt es ja leer. Wenn nix da ist soll er {{ position.Name }} nehmen.
Code:
{% capture quantity -%}{{ position.Quantity }}{% if position.Unit != empty %} {{ Position.Unit }}{% else %}x{% endif %} {{ position.Name }}{% endcapture -%}

Wenn du nix dagegen hast würde ich dann die Abfrage unter meinen Tipps der Allgemeinheit zur Verfügung stellen.
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
605
206
Hi,

das könnte man wie folgt machen:

statt
Code:
{{ query | DirectQueryScalar }}
das hier
Code:
{%- assign result = query | DirectQueryScalar -%}
{%- if result == '' -%}{{ position.Name }}{%- else -%}{{ result }}{%- endif -%}

Der Code kann gern zur Verfügung gestellt werden :).

Viele Grüße
Mirko
 
  • Gefällt mir
Reaktionen: gnarx

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
Teste ich heute noch. Muss erstmal hier alles abarbeiten, war ja in Berlin zum Stammtisch. Aber danke schon mal.
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
So funktioniert mit einer kleinen Änderung statt:
Code:
{%- assign result = query | DirectQueryScalar -%}
{%- if result == '' -%}{{ position.Name }}{%- else -%}{{ result }}{%- endif -%}
so:
Code:
{%- assign result = query | DirectQueryScalar -%}
{%- if result != '' -%}{{ position.Name }}{%- else -%}{{ result }}{%- endif -%}
Der gesamte Code ist dann so:
Code:
{%- for position in Report.SalesOrderPosition -%}
{% if position.PositionType == 'Item' -%}
{%- capture query -%}
SELECT
    b.cName
FROM
    tArtikelBeschreibung b
    LEFT JOIN tArtikel a ON a.kArtikel = b.kArtikel
WHERE
    b.kPlattform = {{ Report.PlatformInternalId }}
    AND b.kSprache = 2 -- hier die ID der Sprache verwenden, welche man benötigt
    AND a.cArtNr = '{{ position.SKU }}'
{%- endcapture -%}
{%- assign result = query | DirectQueryScalar -%}
{%- if result != '' -%}{{ position.Name }}{%- else -%}{{ result }}{%- endif -%}
{%- endif -%}
{%- endfor -%}
So recht herzlichen Dank @MirkoWK wenn du mal was brauchst sag Bescheid.
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
Hmmh grad aufgefallen da die Mails in Englisch jetzt so aussehen, wenn einer mehr bestellt.
Code:
2x SCHNÜFFELRASEN® SNIFFPAD HAPPY SNIFFSTAR SNIFFPAD HEART SNIFFPAD FLOWER SNIFFROLL pink-light blue SNIFFROLL multicoloured SNIFFROLL sage-grey SNIFFMASTER SNIFFPAD ELEMENTS SINGLE turquoise SNIFFPAD ELEMENTS SINGLE orange SNIFFPAD ELEMENTS Zahnbürste 
79,80
Er nimmt also alle Artikelnamen der Bestellung in einer Zeile. So sieht es aus:
Code:
{% for position in Report.SalesOrderPosition -%}
{% if position.PositionType == 'ShippingPosition' -%}
{% assign shippingMethod = position.Name -%}
{% if UseNetPrice -%}
{% assign shippingPrice = position.TotalNetPrice -%}
{% else -%}
{% assign shippingPrice = position.TotalGrossPrice -%}
{% endif -%}
{% else -%}
{% capture quantity -%}{{ position.Quantity }}{% if position.Unit != empty %} {{ Position.Unit }}{% else %}x{% endif %} {%- for position in Report.SalesOrderPosition -%}
{% if position.PositionType == 'Item' -%}
{%- capture query -%}
SELECT
    b.cName
FROM
    tArtikelBeschreibung b
    LEFT JOIN tArtikel a ON a.kArtikel = b.kArtikel
WHERE
    b.kPlattform = {{ Report.PlatformInternalId }}
    AND b.kSprache = 2 -- hier die ID der Sprache verwenden, welche man benötigt
    AND a.cArtNr = '{{ position.SKU }}'
{%- endcapture -%}
{%- assign result = query | DirectQueryScalar -%}
{%- if result != '' -%}{{ position.Name }}{%- else -%}{{ result }}{%- endif -%}
{%- endif -%}
{%- endfor -%}
{% endcapture -%}
 
Ähnliche Themen
Titel Forum Antworten Datum
In Diskussion Fehler beim Versenden von E-Mails: "Could not convert socket to TLS" JTL-POS - Fehler und Bugs 1
Neu Ansprechpartner mit mehreren E-Mails Adressen in den Kunden User helfen Usern - Fragen zu JTL-Wawi 1
Neu ecoMailz zeigt keine Mails an User helfen Usern 2
Neu Mails über Microsoft 365 User helfen Usern - Fragen zu JTL-Wawi 17
Neu Ändern "Alter E-Mails in Tagen" ohne Auswirkung Servicedesk (Beta) 2
Neu Filtereinstellungen: wenn Sonderpreis bei Vater- oder Kindartikeln, Anzeige von Vater- UND Kindartikeln User helfen Usern - Fragen zu JTL-Wawi 5
Neu Sprachvariablen nicht in korrekter Groß- und Kleinschreibung JTL-Shop - Fehler und Bugs 4
Neu Gewicht auf Rechnung (Artikelgewicht und Zusatzgewicht) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Neues Plugin: Google Translate / Übersetzer (DSGVO-konform und weitere Features) Plugins für JTL-Shop 1
Neu Workflow Aktion E-Mail senden kann nicht Plain und HTML Email zusammen versenden Arbeitsabläufe in JTL-Wawi 6
Neu JTL Shopify Connector und Billbee frage Shopify-Connector 0
Neu Neues Plugin: Instagram-Feed Portlet (Als Galerie- oder Slideransicht und weitere Features) + 3x kostenlose Lizenzen Plugins für JTL-Shop 3
In Bearbeitung Startschwierigkeiten Scanner und Bon Drucker Allgemeine Fragen zu JTL-POS 2
Neu JTL Worker 2.0 und tinetbestellung Technische Fragen zu den JTL-Connectoren 0
Neu Position Versandkosten und Versandkostenname in PositionTable ausblenden - neuen Vorlagen. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Liste aller Namespaces und dessen Aufgabe Allgemeine Fragen zu JTL-Shop 0
Kundenattribute aus Shop übernehmen und aus Wawi zurück an Shop übermitteln Einrichtung JTL-Shop5 1
Neu Warenkorb Hinweise bei Bestandsänderung und Preisänderung Allgemeine Fragen zu JTL-Shop 2
In Bearbeitung Artikel über csv-Datei bearbeiten und importieren Allgemeine Fragen zu JTL-POS 3
Verbindung zu Kundencenter geht verloren und Lizenz muss erneut abgteglichen werden JTL-Wawi 1.8 16
Landingpage Header und Footer erstellen zwecks Vorbestellung Einrichtung JTL-Shop5 0
Neu klare Warnung vor den Bausteinen und der PDF in Vorlagen User helfen Usern - Fragen zu JTL-Wawi 4
Neu JTL erstellt falsche Rechnungskorrekturen für Amazon.co.uk Aufträge und verweigert den Support Amazon-Anbindung - Fehler und Bugs 5
Neu Und ewig grüsst das Murmeltier. "The EntityManager is closed" Shopware-Connector 0
Alternativpositionen und gültig von bis JTL-Wawi 1.8 0
Debitorennummern für bestehende und neue Kunden anlegen JTL-Wawi 1.8 2
In Diskussion Bondrucker - im Allgemeinen und Speziellen (Metapace T 25) JTL-POS - Fragen zu Hardware 4
Neu Eigener (Home-) Server mit Windows UND Linux Starten mit JTL: Projektabwicklung & Migration 23
Neu Microsoft Remote Desktop Fehler Cloutapp Desktop und Lauscher JTL-Wawi - Fehler und Bugs 3
Auftrag und Rechnung Ausgabe funktioniert nicht Client JTL 1.8.10.0 JTL-Wawi 1.8 9
Zahlungsarten und Versandarten ERROR 500 Einrichtung JTL-Shop5 7
Gelöst Hardware für häufige Konstellationen mit USB und Swissbit TSE-Problem ab Android 11 JTL-POS - Fragen zu Hardware 5
Neu Eingangsrechnung und Gewinn rückwirkend ermitteln User helfen Usern - Fragen zu JTL-Wawi 1
Neu 💡Umsatzsteuer- und Internationalisierungs-Expertise von unserem neuen Partner countX News, Events und Umfragen 4
Neu JTL-Ameise Kontaktdaten-Export und in Greyhound importieren plus Zuweisen User helfen Usern 1
Neu PayPal Checkout mit Apple Pay und Google Pay Plugins für JTL-Shop 1
Neu isAdmin und Kundenlogin stehen sich im Weg.. Templates für JTL-Shop 0
Neu JTL Shipping Labels mit DHL Unterschied Versenden, Versenden 3.0 und Intraship User helfen Usern - Fragen zu JTL-Wawi 8
Neu Error beim öffnen von Artikeln und Unterkategorien in zweiter Sprache JTL-Shop - Fehler und Bugs 1
Bilder Upload und Fehlermeldung WooCommerce-Connector 0
Neu Lieferscheine digital unterschreiben und automatisch an Kunden senden Eigene Übersichten in der JTL-Wawi 1
Neu Zusammenführen / Konsolidieren von Artikeln aus 2 Quellen (Amazon / Shopify) und zentrale Bestands-Verteilung an beide Systeme User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL 1.5.55.8 Statistik - durschnittlicher Verkaufspreis - Mengen und Position User helfen Usern - Fragen zu JTL-Wawi 0
Neu Umlaute und Sonderzeichen WooCommerce-Connector 2
KI Textvorschläge und Übersetzung JTL-Wawi 1.8 0
Neu Conrad Marketplace / SCX Fragen und Antworten Einrichtung und Installation von JTL-eazyAuction 2
Neu wnm Hinweisfenster - Weisser Abstand zwischen Banner und Header Plugins für JTL-Shop 3
Workflow für Versandart Wenn/Und JTL-Wawi 1.7 0
Neu Anzeige von Neuheiten und Topsellern im JTL Shop 5 Allgemeine Fragen zu JTL-Shop 2
Neu SQL-Fehler bei Volltextsuche und Sonderzeichen JTL-Shop - Fehler und Bugs 0

Ähnliche Themen