Neu Artikelvariation als PopUp aufrufen und Wert zurückgeben

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Hallo,
ich habe in meinem JTL Shop die Artikelvariation Farbe.
Da aus einer enormen Anzahl von Farben ausgewählt werden kann, will ich diese über ein PopUp anzeigen.
Das PopUp öffnet eine spezielle Seite die ich angelegt habe auf welche sich die Farben anschauen lassen.
Nun möchte ich es einrichten, dass wenn eine Farbe ausgewählt wurde, sich das PopUp schließt, und die entsprechende Farbe in der Select-Box ausgewählt ist.
Das PopUp lässt sich bereits über einen Link mit der Klasse "popup" öffnen. Allerdings wird die Farbe bei Klick auf dem Link nicht für die Textbox übernommen.

Seite: http://u18256ck.test3.jtl-hosting.de/ExtraPlus <-- unter der Farbenbox ist ein Link welcher die Auswahl öffnet.

Danke und Gruß
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.477
289
Hallo,
ich habe in meinem JTL Shop die Artikelvariation Farbe.
Da aus einer enormen Anzahl von Farben ausgewählt werden kann, will ich diese über ein PopUp anzeigen.
Das PopUp öffnet eine spezielle Seite die ich angelegt habe auf welche sich die Farben anschauen lassen.
Nun möchte ich es einrichten, dass wenn eine Farbe ausgewählt wurde, sich das PopUp schließt, und die entsprechende Farbe in der Select-Box ausgewählt ist.
Das PopUp lässt sich bereits über einen Link mit der Klasse "popup" öffnen. Allerdings wird die Farbe bei Klick auf dem Link nicht für die Textbox übernommen.

Das kann so nicht funktionieren. Jeder Variationswert hat in jedem Artikel eine eindeutige ID (KEigenschaftWert). Diese dient als Indikator welcher Wert in welcher Variation genau gewählt wurde. Du kannst daher in deinem Farbfenster nicht einfach eine CMS Seite laden und dann darüber eine Zuordnung erwarten. Du kannst maximal alle Werte der Farbe die man im jeweiligen Artikel auch tatsächlich auswählen kann, als Modal laden. Musst jedoch alle nötigen Eigenschaften mit übertragen, sodass dann per Click auch die Variations unten im korrekten Wert gesetzt wird.
 

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Hallo,
danke. Wenn ich das richtig verstehe könnte ich also statt einer externen Seite ein Modal in der productdetails/variations.tpl einbinden, in welchem zu jeder gefundenen Farbe ebenfalls eine Auswahl für das Modal generiert wird.
Soweit in Ordnung. Trotzdem frage ich mich, wie ich den Link (über Button oder Textlink) so setzen kann, dass dadurch im Hauptfenster der Form-Field-Wert direkt auf die entsprechende Farbe gesetzt werden kann?

Ist die Frage so verständlich? Ich habe mal ein wenig nach den Bootstrap-Modal Funktionen geguckt und denke, dass zum Übergeben einer Variable aus dem modal eine ID des Modals fehlt. Wie kann ich diese setzen um mich auf die ID zu beziehen?

Danke
 

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Ok super.
Das hilft. Trotzdem bleibt die Frage warum das Standard-modal welches durch die class popup erzeugt wird keine ID besitzt. Diese benötige ich um mich in den Funktionen auf das modal zu beziehen. Sehe ich das richtig?
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.477
289
Nicht unbedingt. Du kannst ja für $('.modal #meinevariationen') ein Event starten. Dieser Selektor sollte ja eindeutig sein und nur auf der Detailseite existieren.
 

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Ok. Also das mit dem PopUp und der Übergabe klappt jetzt.
Nun habe ich allerdings Probleme in der Variationsliste die Farbe zu ändern. Welche(n) Wert(e) muss ich da genau ändern um die neue Auswahl zu aktivieren?
Auch hier ist wieder das Problem, dass <button> keine eindeutige ID besitzt.

Haben Sie hierbei noch einen Tipp?
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.477
289
Der gewählte Wert hat bereits eine eindeutige ID, 136 oder 137 im genannten Beispiel. Es muss also die Option "selected" werden deren Attribut "data-value" dem Wert entspricht.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.221
1.958
Berlin
das was du da machen möchtest wird mehr oder weniger aufwendig.

du musst ja als erstes alles irgendwie in dein modal laden, also dein komplettes select aufgesplittet.
die Buttons benötigen dann ein klick event welches dann nach möglichkeit folgende aktionen ausführen sollte

Code:
// setzt das Select auf deinen Wert
$('select[name="eigenschaftwert[xxxx]"').selectpicker('val', xxxx)

// führt dann den request aus um den content zu laden oder die möglichen anderen Varianten zu sperren oder freizugeben
$.evo.article().variationSwitch($("option[value='xxxx']"),true)

Ich habe jetzt nicht geschaut, ob JTL das zu 100% auch so macht, aber es sollte gehen. xxx ist immer eine Zahl, wenn du die Elemente im quellcode anschaust, erkennst du welche zahlen da dan rein kommen.
 

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Super. Vielen Dank.
Um im PopUp eine Liste aller verfügbaren Farben auszugeben, habe ich eine foreach Schleife eingebaut die auch ganz gut arbeitet.

Den Code Ausschnitt habe ich hinzugefügt. Allerdings
Code:
$('.farbe').click(
    function(e){
        $('select[name="eigenschaftwert[46]"').selectpicker('val', 136)
        $.evo.article().variationSwitch($("option[value='136']"),true)
        $('#myModal').modal('hide');
    });

Der beim Aufrufen der Seite ausgewählte Eigenschaftswert ist die 46. Opalgrün hat die 136.
Leider ändert er nur kurz und setzt es dann wieder auf "bitte wählen" zurück. Hinzu kommt, dass dann hinter jedem Eintrag aus der Dropdownliste "in der Auswahl nicht verfügbar steht.
Wo liegt der Fehler?
 

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Ok. Irgendwie stehe ich auf dem Schlauch. Sie sind doch verfügbar. Kurz wählt er sie ja auch aus. Oder muss ich noch mehr Werte mit der Funktion ändern?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.221
1.958
Berlin
ich habe jetzt mal geschaut, bei mir geht das, allerdings würde man in der zweiten Zeile eher das hier übergeben
Code:
$.evo.article().variationSwitch($("select[name='eigenschaftwert[46]']"),true)

Bei mir wird wie ich es kenne erst wird über den request alles auf disabled gestellt und dann werden die im gleichen request einzelnen varianten aktiviert.
Ich weiß nicht was bei dir in der Wawi anders ist von den Artikeln her, ich arbeite in den Varianten ohne Lagerbestand, ich müsste die mal bei mir aktivieren, eventuell sehe ich dann das fehlende Stück..
 

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Vielen Dank für die ganze Mühe.
Also ich habe jetzt gerade gemerkt, dass bei Aufruf der Seite mit dem Safari-Browser der Klick auf den Link im PopUp keine Wirkung zeigt. Kann es noch ein grundsätzliches Problem geben?
Auch wenn ich die Links als buttons und nicht als divs einstelle, führt er beim Klick auf eine Farbe direkt das Ablegen in den Warenkorb durch.

Ich könnte im WaWi mal die Lagerbestandseinstellung deaktivieren.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.221
1.958
Berlin
Du solltest die modale Box besser auch nicht innerhalb dieser Form haben, das macht sich nicht so gut.

Also ich habe es wie geschrieben mit einem Warenbestand getestet und es sah gut aus, um den safari würde ich mir vorerst keine Sorgen machen, das kann eine z-index geschichte sein oder was auch immer, ich würde mich zuerst um die grundfunktion kümmern, die man ja auch in der console gut durchspielen kann, dann kommt erst das schön machen :)

Die Einstellungen bei dir wären interessant und ob du mit echten Kindern oder nur Varianten arbeitest.
 

rwillhaus

Aktives Mitglied
4. Dezember 2016
29
0
Ok. Nochmals vielen Dank.
Ich probiere noch ein wenig aus.
Eine letzte Frage aber:
Ich hab hier nochmal meinen Code ein wenig verändert. Kann ich den so anwenden oder enthält der bereits Fehler?

Code:
$('.farbe').click(
    function(e){
        e.preventDefault;  // if your a has an href attribute, this prevents the browser
                           // following that link.
        var farbValue = $(this).val();
        var selectNr = "{$Variation->kEigenschaft}";

        $("select[name='eigenschaftwert[." + selectNr + ".]'").selectpicker('val', farbValue)

        $.evo.article().variationSwitch($("select[name='eigenschaftwert[." + selectNr + ".]']"),true)
        
        $('#myModal').modal('hide');
    });
 
Ähnliche Themen
Titel Forum Antworten Datum
WAWi Workflows mit Zahlungen als Bedingung funktioniert nicht JTL-Workflows - Fehler und Bugs 0
Neu Bestellungen werden als bezahlt markiert WooCommerce-Connector 0
Neu EXTF csv Datev als eigenen Export, statt Ameise? Einzeldifferenzbesteuert! User helfen Usern - Fragen zu JTL-Wawi 2
Gutschrift bzw Rechnungskorrektur größer als neuer Auftrag JTL-Wawi 1.9 2
Neu JTL Artikel auf Shopify als Varianten anzeigen Shopify-Connector 2
Neu List & Label - Eigene SQL-Abfrage als Grundlage für Tabelle im Berichtscontainer? User helfen Usern - Fragen zu JTL-Wawi 10
Neu Voraussichtliches Lieferdatum aus Auftrag als Rechnungsdatum/Leistungsdatum Arbeitsabläufe in JTL-Wawi 1
Neu POS Aufträge in der Wawi nicht abgeschlossen, stehen somit im Versand als "offen" JTL-POS - Fehler und Bugs 2
Neu Ameise-Vorlage per SQL abrufen und Daten als Ergebnis erhalten JTL Ameise - Eigene Exporte 1
Neu Shop 5.4.0: Zahlungsarten nun als Position in der Wawi? JTL-Shop - Ideen, Lob und Kritik 17
Lieferanten Rechnungen als bezahlt markieren JTL-Wawi 1.8 0
Neu Artikel mit Zustand beschädigt wird nicht als eigenständiger Artikel in der WaWi angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
Neu Gibt es einen Import von Artikeltexten die pro Artikel als .txt geliefert werden? JTL-Ameise - Ideen, Lob und Kritik 1
Neu JTL-Worker als Windows-Dienst - wie macht Ihr das? User helfen Usern - Fragen zu JTL-Wawi 8
Neu Export von Buchungsdaten zur Differenzbesteuerung als CSV Datei Schnittstellen Import / Export 0
Neu "Warenkorb teilen als Link" Plugin by Visitmedia Plugins für JTL-Shop 2
Neu Durchschnittlichen EK der letzten 3 Monate als Übersicht Eigene Übersichten in der JTL-Wawi 17
Neu Skonto bei Zahlung nicht erkannt. Rechnung bleibt dauerhaft als teilbezahlt. User helfen Usern - Fragen zu JTL-Wawi 7
Neu JTL Shipping: Straße 2 1/2 kommt als 212 bei DHL im Shipping Label an JTL-ShippingLabels - Fehler und Bugs 1
Packliste als CSV exportieren JTL-Wawi 1.9 9
Neu SQL Abfrage - Sendungsnummern als Liste nach Datum Schnittstellen Import / Export 2
Neu Bestandskunden JTL Wawi als Kundenaccounts Woocommerce anlegen WooCommerce-Connector 3
Neu FBA Anlieferung aus der JTL-Wawi heraus --> Firmenname in der Absenderadresse wird nur noch als "-" dargestellt Amazon-Anbindung - Fehler und Bugs 1
Neu Gebinde wie angelegt unter sonstiges als Barcode ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 11
Neu Aufruf Ameise als Batch JTL-Ameise - Ideen, Lob und Kritik 0
Amazon FBA Gutschrift als Rechnungskorrektur? JTL-Wawi 1.9 1
Rechnungsstellung JTL Popup JTL-Wawi 1.9 3

Ähnliche Themen