Länderauswahl

Hallo

Leider finde ich nicht die Möglichkeit, bei der Adresseingabe die Vorauswahl des Landes zu steuern. Bei mir steht immer Bosnien Herzegowina drin. Ich möchte gerne, dass als Vorauswahl dort Deutschland steht. Wie mache ich das?

Ich habe schon die Positionszahlen verändert (Deutschland 1, der Rest auf 10) trotzdem geht es nicht.

Danke :slight_smile:

Cache gelöscht?

ja, das mache ich immer sofort. Habe jetzt Bosnien deaktiviert und nun steht im dem Felt “Land*” was ja schon mal besser ist. Aber bekommt man das auch hin, dass dort “Deutschland” vorgeschlagen wird?

Hi,

so wie ich das sehe, macht Shopware das auf Basis der Daten in der Session: Wenn da schonmal ein Land drin war (bspw. von einer vorherigen Bestellung o.ä.), wird das vorausgewählt. Das passiert letztlich an zwei Stellen:

Template:

		{* Country *}
		{block name='frontend_register_billing_fieldset_input_country'}
			
				
                    {s name='RegisterBillingPlaceholderCountry'}{/s}{s name="RequiredField" namespace="frontend/register/index"}{/s}
                    {foreach $country_list as $country}
                        
                            {$country.countryname}
                        
                    {/foreach}
				
			
		{/block}

Da prüft der auf “$form_data.country” ab - und der Wert wird in \Shopware_Controllers_Frontend_Register::billingAction gesetzt:

        // setting the country and the states from the session
        if (!empty($this->session['sCountry']) && empty($this->View()->register->billing->form_data->country)) {
            $this->View()->register->billing->form_data->country = $this->session['sCountry'];
        }

Von daher kann man deine Vorauswahl mMn entweder über ein PostDispatch-Event auf der billingAction umsetzen oder über eine Template-Anpassung des Blocks frontend_register_billing_fieldset_input_country.

Oder ich habe irgendwas ganz einfaches übersehen :slight_smile:

Daniel

1 Like