Hallo liebe SW-Community,
es müsste doch möglich sein den Currency-Selector mit folgendem Script eine Option vorzudefinieren:
function setCHFPrice() {
if (jQuery('body').hasClass('h_ch')) {
var currency = '2';
jQuery('select.currency--select').val(currency).change();
}
}
In meinem Fall frage ich einfach die Schweizer Kundengruppe ab und setze den Value von CHF.
Hört sich simpel an, allerdings endet das ganze dann in einem infinite Loop, wobei die Seite immer wieder neu geladen wird.
MIttlerweile bin ich echt ratlos, da die Funktion eigentlich ja nichts anderes macht als einen manuellen Click zu simulieren.
Vielleicht kennt jemand dieses Verhalten. Ich bin auf jeden Fall für jeden Tipp sehr dankbar.
Und wie sieht das gsamte Script aus?
jQuery(document).ready(function(){
setCHFPrice();
});
function setCHFPrice() {
if (jQuery('body').hasClass('h_ch')) {
var currency = '2';
jQuery('select.currency--select').val(currency).change();
}
}
Hallo @chiliSCHARF,
so harmlos dein Script auch aussieht, ist es am Ende doch für den unendlichen Redirect zuständig.
Tatsächlich löst dein Aufruf von change auf dem Curreny-Feld den Redirect aus - weil du nach einem Redirect erneut das Script ausgeführt bekommst, wirst du unendlich weitergeleitet.
Warum passiert der Redirect?
Du benutzt die Methode 'change’ auf dem DOM Element mit der CSS-Klasse ’ currency–select’.
Eine kurze Suche ergibt folgendes Ergebnis:
Currency Element in Shopware
Wie du an dem o.g. Link sehen kannst, besitzt das gleiche Element ein Data-Attribut namens " data-auto-submit" und wird von einem Form-Element umschlossen.
Dieses Data-Attribut führt dazu, dass sich eines unserer jQuery Plugins auf diesem Element registriert, nämlich unser AutoSubmit Plugin.
Wie es der Name schon sagt, sorgt das besagte jQuery Plugin dafür, dass das Element, auf welchem das Plugin registriert wird, automatisch das Formular “submitted”.
Das AutoSubmit Plugin nutzt dazu das “change”-Event, wie du hier sehen kannst.
Na, macht es Klick? 
Weil du auf dem Element händisch “change()” aufrufst, wird dadurch auch das “onchange” Event gefeuert und ausgelöst - das Currency Element löst direkt einen Submit des umschließenden Form-Tags aus und zack - redirect. 
Du müsstest eigentlich nur einen Check durchführen, ob der derzeit ausgewählte Wert bereits deiner gewünschten Währung entspricht.
Hilft dir das erstmal weiter?
Lieben Gruß,
Patrick 
Hallo,
danke für die super ausführliche Erklärung Patrick.
Ich dachte zuvor, dass die Preise per AJAX nachgeladen werden, aber es wird ja tatsächlich ein neuer Seitenaufruf generiert.
Oft ist es ja doch nicht so kompliziert wie man annimt 
Der Check auf die Währung ist definitiv die Lösung! Danke!