Hallo,
ich habe bereits ein Plugin geschrieben, das den Api-Endpunkt „frontend.checkout.configure“ nutzt, um das Versandland zu ändern, damit auf den Artikelseiten die Versandkosten des gewünschten Landes angezeigt werden.
Dies funktioniert aber nur zuverlässig, wenn bereits Artikel im Warenkorb vorhanden sind. Wenn keine vorhanden sind, springt das Dropdown nach Reload der Seite sofort wieder auf das Ursprungs-Land. Gehe ich dann allerdings zu einem anderen Artikel, so wird hier das gewählte Land (und die entsprechenden Versandkosten) angezeigt.
Hier mal der Code der …/src/Resources/views/storefront/page/product-detail/buy-widget.html.twig:
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget.html.twig' %}
{% block page_product_detail_buy_inner %}
{{parent()}}
{% if not context.customer %}
<div class="form-group mt-3">
<form name="precalc" method="post" action="{{ path('frontend.checkout.configure') }}" data-form-auto-submit="true">
<input type="hidden" name="redirectTo" value="frontend.detail.page">
<input type="hidden" name="redirectParameters" value='{"productId": "{{page.product.id}}"}'>
{{ sw_csrf('frontend.checkout.configure') }}
<div class="form-group">
<label for="countryId">Versand nach</label>
<select class="{{ formSelectClass }}" type="text" id="countryId" name="countryId">
{% for country in page.extensions.mhmCountries %}
<option value="{{ country.id }}" {{ country.id == context.shippingLocation.country.id ? 'selected="selected"' : '' }}>
{{ country.translated.name }}
</option>
{% endfor %}
</select>
</div>
</form>
</div>
{% endif %}
{% endblock %}
Danke für jede Hilfe
js