Hallo JTL-Freunde,
ich versuche jetzt schon eine Weile einen Artikel mit Freifeld-Text-Variante per Ajax in den Warenkorb zu legen und hatte da so meine Probleme.
Mittlerweile habe ich es geschafft, finde meine Lösung aber unsauber und wollte daher mal fragen, ob ich was übersehen habe.
Das EVO-Template lädt ja zwar die Varianten-Kinder per Ajax (habe zum Freifeld-Text noch Kind-Artikel über Select-Variation Farbe), beim Absenden des Formulars wird aber die ganze Seite geladen/abgesendet. Also ohne Ajax.
Beim normalen Senden des Formulars (ohne Ajax) wird in der tools.Global.php die Funktion $oEigenschaftwerte_arr = ArtikelHelper::getSelectedPropertiesForVarCombiArticle($kArtikel); verwendet. Da wird die Text-Variante korrekt gesetzt.
Verwende ich aber die io.php / oder xajax für Ajax mit der Funktion "pushToBasket", so wird $oEigenschaftwerte_arr = gibVarKombiEigenschaftsWerte($Artikel->kArtikel); aufgerufen. Das setzt zwar meine Farben-Variante korrekt, aber nach dem Aufruf ist meine Freifeld-Text-Eigenschaft verschwunden.
Ich habe es jetzt so gelöst, dass ich die Funktion in der io.php umgeschrieben habe, so dass dort auch die ArtikelHelper Funktion verwendet wird. Allerdings muss man dafür noch das $_POST Array für eigenschaftwert wieder aufbauen und eigentlich wollte ich die io.php auch nicht überschreiben.
Hab ich was übersehen, gibt es eine bessere Lösung?
Danke für eure Zeit und liebe Grüße
ich versuche jetzt schon eine Weile einen Artikel mit Freifeld-Text-Variante per Ajax in den Warenkorb zu legen und hatte da so meine Probleme.
Mittlerweile habe ich es geschafft, finde meine Lösung aber unsauber und wollte daher mal fragen, ob ich was übersehen habe.
Das EVO-Template lädt ja zwar die Varianten-Kinder per Ajax (habe zum Freifeld-Text noch Kind-Artikel über Select-Variation Farbe), beim Absenden des Formulars wird aber die ganze Seite geladen/abgesendet. Also ohne Ajax.
Beim normalen Senden des Formulars (ohne Ajax) wird in der tools.Global.php die Funktion $oEigenschaftwerte_arr = ArtikelHelper::getSelectedPropertiesForVarCombiArticle($kArtikel); verwendet. Da wird die Text-Variante korrekt gesetzt.
Verwende ich aber die io.php / oder xajax für Ajax mit der Funktion "pushToBasket", so wird $oEigenschaftwerte_arr = gibVarKombiEigenschaftsWerte($Artikel->kArtikel); aufgerufen. Das setzt zwar meine Farben-Variante korrekt, aber nach dem Aufruf ist meine Freifeld-Text-Eigenschaft verschwunden.
Ich habe es jetzt so gelöst, dass ich die Funktion in der io.php umgeschrieben habe, so dass dort auch die ArtikelHelper Funktion verwendet wird. Allerdings muss man dafür noch das $_POST Array für eigenschaftwert wieder aufbauen und eigentlich wollte ich die io.php auch nicht überschreiben.
Hab ich was übersehen, gibt es eine bessere Lösung?
Danke für eure Zeit und liebe Grüße