Neu Mehrsprachige Mails und Dokumente

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.900
545
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
833
305
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.900
545
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
833
305
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.900
545
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
833
305
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.900
545
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
833
305
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.900
545
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.900
545
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.900
545
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
Amazon VCS Lite: Fehler 50002 bleibt nach 3 Versuchen dauerhaft hängen – Analyse zu 1.10.14.2 / 1.11.11 und Lösungsvorschlag JTL-Wawi 1.11 0
„Wer hat Lust auf einen Erfahrungsaustausch bei Kaffee und Kuchen?“ – aber mit JTL-Wawi als Dessert? Starten mit JTL: Projektabwicklung & Migration 0
Neu Restposten Damenschuhe und Kleidung zu verkaufen - Lagerauflösung Dienstleistung, Jobs und Ähnliches 0
Neu 5.8.0 - EU-Gewährleistungs- und Garantie-Label Installation / Updates von JTL-Shop 4
"Wer hat Lust auf einen Erfahrungsaustausch bei Kaffee und Kuchen?". Starten mit JTL: Projektabwicklung & Migration 3
In Wawi 2.0.6 Kommentar 1 und Kommentar 2 für Lagerbestände von Kindartikeln desselben Vaterartikels nicht mehr über Vaterartikel pflegbar JTL-Wawi 2.0 4
Neu Merkmal oder Attribut für Produktdetailseite und Strukturierte Daten Betrieb / Pflege von JTL-Shop 2
Amazon FBA Bestand auf 0 und Amazon verkauft trotzdem weiter JTL-Wawi 2.0 0
Neu Biete: Automatisierung von Artikelanlage, Datenpflege und Schnittstellen Dienstleistung, Jobs und Ähnliches 2
„Wer hat Lust auf einen Erfahrungsaustausch bei Kaffee und Kuchen?“. Starten mit JTL: Projektabwicklung & Migration 43
Extern angehängte pdf Rechnungen und GS von Otto wie speichern ? JTL-Wawi 1.11 0
Neu Fiskal Cloud und VPN Allgemeine Fragen zu JTL-POS 0
Neu Cloudfare und Caching Allgemeine Fragen zu JTL-Shop 7
Buchungsdaten VCS Lite sind Offen und unbekannte Rechnungen bei Amazon JTL-Wawi 1.11 3
Druckvorlagen nach Update und Unzufriedenheit JTL-Wawi 2.0 9
Neu Klarna (1.2.14) und JTL (5.7.2) nicht kompatibel Technische Fragen zu Plugins und Templates 0
Neu automatische PPWR Etiketten nach Auswahl einer Kartonage und nach dem Ausliefern Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 6
Mehrere Probleme mit JTL-Wawi und JTL-POS – hängen diese zusammen? JTL-Wawi 2.0 1
Neu 💚 Plugin: DZM Agentic Plus - dein Shop wird für KI-Agenten lesbar und abfragbar Plugins für JTL-Shop 0
Neu Im OPC Videos mittels Portlet implementieren und einen Text überblenden Betrieb / Pflege von JTL-Shop 1
Neu JTL-Shop 5.7.2: Unterschiedliche Standardsprachen in tsprache – widersprüchliche Canonical- und Hreflang-Ausgabe der Startseite Allgemeine Fragen zu JTL-Shop 4
Neu Wawi 2.0.6 Fehler bei Druckerzuordnung und Nachdruck JTL-ShippingLabels - Fehler und Bugs 12
Wichtig JTL-ShippingLabels 1.0: Support-Ende GLS/DPD und Migration von JTL-Start-Kunden nach dem 30. September News, Events und Umfragen 14
Neu JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi - Fehler und Bugs 1
JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi 2.0 10
Neu Shop und Worker synchronisieren nicht nach Wechsel zu Cloudflare Allgemeine Fragen zu JTL-Shop 0
Neu Müssen Zahlungen über Mollie manuell kontrolliert und manchmal erst "erfasst" werden? Allgemeine Fragen zu JTL-Shop 0
Verbesserungsvorschlag: JTL-POS – Artikel mit Preisabfrage und vollständiger Wawi-Statistik JTL-Wawi 2.0 4
Neu Google Pay und Konfiguration mit Freiposition stürzt ab *Hotfix* Technische Fragen zu Plugins und Templates 0
Neu Shop 5.7.2. nach Update lahm und CPU Last geht hoch Installation / Updates von JTL-Shop 1
Neu Gesucht: akzeptierte Zugferd Vorlage Bela und/oder REWE Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Webinar „Shipping 2.0“ am Dienstag, 14.07.2026 – über 500 Anmeldungen, was es Neues gibt und wie ihr das Beste daraus macht News, Events und Umfragen 12
Seit dem Update meines JTL-Shops auf Version 5.7.1 funktioniert die Verbindung zwischen JTL-Wawi 2.0.4.0 und dem Shop nicht mehr. JTL-Wawi 2.0 6
Neu JTL-WMS und JTL-POS... Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Versandart nach Volumengewicht und Lieferland Allgemeine Fragen zu JTL-Shop 2
Neu SUNMI V3 MIX – Touchscreen und USB-Maus frieren nach einigen Minuten ein JTL-POS - Fehler und Bugs 1
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Amazon VCS-Lite und Externe Belege JTL-Wawi 1.11 1
Neu PPWR und Versandetikett Business Jungle 7
Neu DSVGO konform 1000 Kunden in WaWi und Shop löschen! User helfen Usern - Fragen zu JTL-Wawi 4
Neu Der wahrscheinlich östlichste JTL Servicepartner: Standortvorteil, faire Preise und vieles mehr Dienstleistung, Jobs und Ähnliches 16
Neu Rechte-Fehler im J10n Modul und Auswirkung auf base.mo.php in div. Plugins (Shop 5.7.1) JTL-Shop - Fehler und Bugs 0
Neu Kundengruppeneinstellungen für Mindestabnahme und Abnahmeintervall löschen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Shop 5.7.1 und Downloadmodul Allgemeine Fragen zu JTL-Shop 1
Neu Plugin: JTL Exportformat Google Shopping gibt <g:google_product_category> unter Shop 5.7.1 und Wawi 2.0.4 nicht aus Plugins für JTL-Shop 1
Neu Widerrufbutton und Handy JTL-Shop - Fehler und Bugs 1
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu Neues Tool - eBay Penner finden, beenden und neu listen Schnittstellen Import / Export 0
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Angebliche externe Aufträge "für Rechnungserstellung freigeben" und Rechnungen erstellen. Gibt es dazu eine akzeptable Erklärung von JTL? JTL-Wawi 1.11 1

Ähnliche Themen