Neu Freitextfeld über Variation - Zeichenbeschränkung für Gravur

  • Wichtiger Hinweis Liebe Kunden, solltet Ihr den DATEV Rechnungsdatenservice 2.0 nutzen, dann müsst Ihr bis zum 30.06.2024 JTL-Wawi 1.9 installieren. Danach wird die Schnittstelle für ältere Versionen nicht mehr unterstützt.

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Hallo Zusammen,

ich hatte das Thema bereits in einer anderen Kategorie eröffnet, ich vermute es war dort nicht ganz richtig aufgehoben, da keine Antworten kamen, deshalb probiere ich es hier noch einmal, denke mal ich bin nicht der einzige mit solch einer Anforderung :)

Ich möchte bei bestimmten Artikeln im Shop 5 die Möglichkeit einer Gravur anbieten.
Je nachdem welche Größenvariante ausgewählt wird, sollen im Shop dann 3, 4 oder 6 Zeilen für Freitext eingeblendet werden. Probiert habe ich das mit Anlegen einer Variation, Freitextauswahl. Sieht auch soweit gut aus (falls es weitere Möglichkeiten gibt, würde ich auch das in Betracht ziehen).

Allerdings ist die Zeichenanzahl in den jeweiligen Feldern begrenzt, z.B. mal sind es nur 12, mal 14 Zeichen.

Soweit ich im Browser erkennen kann, ist das Textfeld JTL seitig auf 255 Zeichen eingestellt, das könnte man auf jeden Fall überschreiben und eingrenzen auf z.B. 12 (funktioniert nach Einstellung im Browser auch).

Wie bzw. mit welcher Variable kann ich das aber nun global im Backend steuern, dass wenn ich "Gravur1" anlege (Name erstmal egal), dieses Feld immer nur 12 Zeichen zulässt und wenn ich "Gravur2" mit einblende/anlege, dieses Feld eben 14 Zeichen zulässt.

Wenn jetzt auch noch eine Beschriftung bzw. ein Hinweis möglich wäre, wie viele Zeichen noch übrig sind oder gar, dass manche Zeichen eingeschränkt bzw. nicht zugelassen sind, wäre das das sehr elegant :) Die Begrenzung selbst würde aber im ersten Schritt genügen.


Hier seht ihr wie ich es im Shop bei mir meine:

Gravur1.jpg




So würde ich es mir wünschen:

Gravur2.jpg


Danke.
 

artm

Aktives Mitglied
22. Februar 2021
99
23
Das ordentlich mit Validierung zu machen ist nur mit Plugin möglich.

Aber es gibt immer noch einfache und unsichere Möglichkeit, das mit der Template zu lösen. Alles, was Sie tun müssen, ist, die Variation nach dem Namen zu überprüfen und dann "maxlength" zu ändern.

Die Datei befindet sich hier:
"productdetails/variation.tpl"

Code:
maxlength={if $variation->cName==="Gravour Text 1"}12{elseif $variation->cName==="Gravour Text 2"}14{else}255{/if}
 
Zuletzt bearbeitet:

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Danke für die erste Antwort und einem Ideenansatz.
Grundlegend - welches Plugin wäre für Shop 5 dafür geeignet?

Den Code wollte ich probieren, das funktioniert aber leider nicht so richtig.
Den Ansatz finde ich allerdings super, wenn das funktioniert, dürfte das auch erst einmal ausreichen und meine Anforderung erfüllen.

Wenn ich die variation.tpl bearbeite und den Code so einfüge:

2.jpg

bekomme ich auf jeder Variationsseite einen Error 500, die Seite wird nicht mehr geladen. Ursprünglich stand hinter maxlength "maxlength=255", ich habe Ihren Code mit der richtigen Beschriftung aus der Wawi eingefügt.

Wenn ich die Freitextzeile im Browser untersuche, steht der Name aus der WaWi allerdings unter dem "js-btn-slider-wrapper" ist hier evtl. etwas im Code zu verändern, damit der Bezug stimmt, oder habe ich etwas komplett falsch eingefügt?

1.jpg
 

artm

Aktives Mitglied
22. Februar 2021
99
23
Grundlegend - welches Plugin wäre für Shop 5 dafür geeignet?
Ob so ein Plugin bereits existiert kann ich nicht sagen, ich meinte aber die individuelle Entwicklung von Service-Partner.

bekomme ich auf jeder Variationsseite einen Error 500, die Seite wird nicht mehr geladen. Ursprünglich stand hinter maxlength "maxlength=255", ich habe Ihren Code mit der richtigen Beschriftung aus der Wawi eingefügt.
Ich habe den meinen obigen Code nicht ausprobiert. Dieser sollte funktionieren:

Code:
{block name='productdetails-variation-info-variation-text'}
    {if $Variation->cName==="Gravour Text 1"}
        {assign var=maxlength value=12}
    {elseif $Variation->cName==="Gravour Text 2"}
        {assign var=maxlength value=14}
    {else}
        {assign var=maxlength value=255}
    {/if}
    <label for="vari-{$Variation->kEigenschaft}" class="sr-only">{$Variation->cName}</label>
    {input id="vari-{$Variation->kEigenschaft}" name='eigenschaftwert['|cat:$Variation->kEigenschaft|cat:']'
       value=$oEigenschaftWertEdit_arr[$Variation->kEigenschaft]->cEigenschaftWertNameLocalized|default:''
       data=['key' => $Variation->kEigenschaft] required=$Variation->cTyp === 'PFLICHT-FREIFELD'
       maxlength=$maxlength}
{/block}
 
  • Gefällt mir
Reaktionen: TobiTrouble

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Super - Perfekt.
Der Code funktioniert, so habe ich mir das vorgestellt, das kann ich nun so adaptieren auf verschiedene Artikel :) Vielen Dank!
Hättest du noch eine Idee, wie man in den Code Zeichen die nicht zulässig sind integrieren kann?

Freue mich auch über Ideen, wie man die Anzeige am Freifeld (z.B. " Max 12 Zeichen") einblenden könnte und ggfls. eine Art Zeichenzähler, wie viele Zeichen noch zum Eintragen verfügbar sind!
 

artm

Aktives Mitglied
22. Februar 2021
99
23
Hättest du noch eine Idee, wie man in den Code Zeichen die nicht zulässig sind integrieren kann?
Die Werte kann man mit pattern-Attribut begrenzen.
Freue mich auch über Ideen, wie man die Anzeige am Freifeld (z.B. " Max 12 Zeichen") einblenden könnte und ggfls. eine Art Zeichenzähler, wie viele Zeichen noch zum Eintragen verfügbar sind!
Zeichenzähler ausgeben kann man nur mit JS.

Wie ich beretis erwähnt habe, für die Validierung, Plugin wäre hier die sicherste Lösung.

Ich habe hier ein neues Beispiel basierend auf dem vorherigen gebastelt, sollte ziemlich einfach und verständlich sein.

Code:
{block name='productdetails-variation-info-variation-text'}
    {if $Variation->cName==="Gravour Text 1"}
        {assign var=maxlength value=12}
        {assign var=variPattern value="[A-Za-z0-9]"}
    {elseif $Variation->cName==="Gravour Text 2"}
        {assign var=maxlength value=14}
        {assign var=variPattern value="[A-Za-z0-9]"}
    {else}
        {assign var=maxlength value=255}
        {assign var=variPattern value=""}
    {/if}
    <label for="vari-{$Variation->kEigenschaft}" class="sr-only">{$Variation->cName}</label>
    {input id="vari-{$Variation->kEigenschaft}" name='eigenschaftwert['|cat:$Variation->kEigenschaft|cat:']'
       value=$oEigenschaftWertEdit_arr[$Variation->kEigenschaft]->cEigenschaftWertNameLocalized|default:''
       data=['key' => $Variation->kEigenschaft] required=$Variation->cTyp === 'PFLICHT-FREIFELD'
       maxlength=$maxlength}
    <script>
        let variInput = "#vari-{$Variation->kEigenschaft}";
        let variInputInfo = "#vari-info-{$Variation->kEigenschaft}";
        $(variInput).attr("pattern", "{$variPattern}" + "{literal}{{/literal}" + {$maxlength} + "{literal}}{/literal}");
        $(variInput).parent().prev("dt").html("{$Variation->cName} (Max {$maxlength} Zeichen)");
        $(variInput).after('<span id="' + variInputInfo + '"></span>');
        $(variInput).keyup(function() {
            let cLeft = {$maxlength} - $(variInput).val().length;
            $(document.getElementById(variInputInfo)).html(cLeft + " Zeichen noch");
        });
    </script>
{/block}
 
  • Gefällt mir
Reaktionen: TobiTrouble

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Cool, das gefällt mir immer besser :thumbsup:
Funktioniert an sich mit dem Skript, allerdings leider nicht vollständig.

Oberes Eingabefeld ist anders benannt, dann greifen die Standard 255 Zeichen - das ist ok, mit dem Skript zählt er sogar herunter.
Unteres Feld wird durch den Code angesprochen, damit die Zeichenanzahl auf 14 begrenzt ist - auch gut, mit dem Skript allerdings wird hier nicht gezählt, fehlt da etwas im Code?
Du hast als Value Wert im Code für die Zeichen selbst angegeben: {assign var=variPattern value="[A-Za-z0-9]"}, er nimmt allerdings in beiden Fällen auch alle anderen Zeichen, kann ich das im Code anpassen und wenn ja wo?

3.jpg
 
Ähnliche Themen
Titel Forum Antworten Datum
Order Update über die JTL REST API JTL-Wawi 1.8 0
Neu Über 10 Jahre alte Kundendaten + Aufträge + Rechnung in der wawi löschen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Bilder Import über die Ameise JTL-Ameise - Fehler und Bugs 8
Beantwortet Workflow: Alle Besteller über neues Erscheinungsdatum informieren JTL-Workflows - Ideen, Lob und Kritik 2
Neu 1.8 - WMS Teillieferung soll nur Rechung über gelieferte Positionen enthalten Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Verwiesen an Support BUG: Mahnlauf über Workflow ignoriert Zahlungsziel JTL-Workflows - Fehler und Bugs 3
Neu Autorisierte Zahlungen über mollie werden bei Rundungsdifferenz storniert. WooCommerce-Connector 0
Neu Kategorienbaum in einer Unterkategorie über der Filterung ausblenden Allgemeine Fragen zu JTL-Shop 1
In Diskussion Auftragszahlung über Kasse, Auftrag wird nicht als "Verpackt und Versendet" markiert JTL-POS - Fehler und Bugs 2
Neu So ändern Sie den Status von amazon ASIN über die Importdatei in „Aktiv“. JTL Ameise - Eigene Exporte 0
Neu Einem bzw. mehreren Artikeln über den Import mehrere Kategorien zuordnen JTL-Wawi 1.7 1
Neu In Tabelle ein Bild über mehrere Zeilen verteilen in Katalog Vorlage Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Datenimport über Ameise in JTL für Shopware Shopware-Connector 1
Gelöst JTL-POS: Rechnung über Kasse Allgemeine Fragen zu JTL-POS 3
Neu Bestellungen importieren über SFTP Server User helfen Usern - Fragen zu JTL-Wawi 6
Neu Exportformate neu über alles Allgemeine Fragen zu JTL-Shop 2
Neu Rechner über Nacht runter fahren? User helfen Usern - Fragen zu JTL-Wawi 12
JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Vouchers 2
Neu JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Shop 2
In Bearbeitung Artikel über csv-Datei bearbeiten und importieren Allgemeine Fragen zu JTL-POS 3
Neu Verordnung über die allgemeine Produktsicherheit (GPSR) JTL-Wawi - Ideen, Lob und Kritik 8
Neu Kundenpreise in Artikelübersicht (über Umwege)? Arbeitsabläufe in JTL-Wawi 0
Neu Verbindungsproblem Wawi (1.8.12.0) zum JTL-Shop (5.2.4) über localhost User helfen Usern - Fragen zu JTL-Wawi 0
Auftragsimport über eBay - Bezeichnung der Versandart auf der Rechnung leer JTL-Wawi 1.8 1
Wie kann ich eine Benachrichtigung bei einem Wareneingang auslösen mit einer Mail über die Artikel die eingebucht wurden JTL-Wawi 1.8 2
Artikel wurden über Weclapp über FFN-Connect an JTL FFN übermittelt jedoch leider nicht an Wawi & WMS JTL-Wawi 1.8 0
Dropdown Variation wird nicht angezeigt Allgemeine Fragen zu JTL-Shop 1
Artikelmerkmale pro Variation in Ebay-Angebot JTL-Wawi 1.8 2
Neu Erstellen eines Sets, als Variation in Zusammenhang mit einer Stückliste Arbeitsabläufe in JTL-Wawi 2
Neu Variation Freitext (Zeichen begrenzen/Beschriftung) - gewünschter Effekt ->Gravur Templates für JTL-Shop 1
Neu Variation-Pflichfreitext User helfen Usern - Fragen zu JTL-Wawi 1

Ähnliche Themen