Wahl zwischen Privatkunde / Geschäftskunde Standardauswahl

Liebe Community,

Ich stehe aktuell vor folgendem Problem: ich möchte für meine B2B Kunden die B2B Registrierung anbieten, um diesen eine präzisere Rechnungsstellung & zukünftig auch die Nutzung der IGL anzubieten.

Leider wird sobald ich die Firmenkunden-Registrierung freischalte zwar das entsprechende Auswahlfeld in der Registrierung/Bestellabschluss freigeschalten, aber nicht automatisch vorbelegt. Das Feld ist erstmal leer und muss als Pflichtfeld selbstverständlich befüllt werden. Ist es möglich das Feld mit „Privatkunde“ vorzubelegen, so dass Geschäftskunden einfach nur diese Auswahl ändern? Andernfalls finde ich den Aspekt zu negativ dass Privatkunden zwei Klicks mehr benötigen um ihre Bestellung abzuschließen.

Hier mal ein Beispielbild. Ich vermute dass die weiteren Klicks andernfalls messbare Auswirkungen auf unsere Conversionrate bei Privatkunden, insb. bei solchen auf Mobile-Devices haben.

Viele Grüße,

Erik

Moin!

Du müsstest dafür in deinem Theme eine Anpassung machen (Customize templates - Shopware Developer).

Im Block component_account_register_personal findest du das Select-Feld, welches du suchst:

LG;LA

1 „Gefällt mir“

Ich versuche gerade nur Geschäftskunden bei der Registrierung zuzulassen und hatte gehofft es wäre so einfach wie lediglich die Variable onlyCompanyRegistration im Twig auf true zu setzen:

{% set onlyCompanyRegistration = true %}

Das hilft leider überhaupt nicht. So wird nur das Feld Kontotyp als disabled und auf „Auswählen …“ angezeigt und folgender JS-Error geworfen:

Error: At least one item of ".js-field-toggle-contact-type-company" must exist in parent node!

Mein nächster Ansatz war es die entsprechenden Blocks quasi zu kopieren und die If-Abfragen zu entfernen, die für das bedingte Einblenden von Firmen-Name und Vat-ID zuständig sind:

{% sw_extends'@Storefront/storefront/component/address/address-personal.html.twig' %}

{% block component_address_personal_company %}    
        <div class="js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %}">
            {% block component_address_personal_company_fields %}
                <div class="row g-2">
                    {% block component_address_personal_company_name %}
                        <div class="form-group col-12">
                            {% if formViolations.getViolations("/company") is not empty %}
                                {% set violationPath = "/company" %}
                            {% else %}
                                {% set requiredMessage = "error.VIOLATION::IS_BLANK_ERROR"|trans({ '%field%': "address.companyNameLabel"|trans|sw_sanitize }) %}
                            {% endif %}

                            {% block component_address_personal_company_name_label %}
                                <label class="form-label" for="{{ idPrefix ~ prefix }}company">
                                    {{ "address.companyNameLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
                                </label>
                            {% endblock %}

                            {% block component_address_personal_company_name_input %}
                                <input type="text"
                                        class="form-control{% if violationPath %} is-invalid{% endif %}"
                                        id="{{ idPrefix ~ prefix }}company"
                                        placeholder="{{ "address.companyNamePlaceholder"|trans|striptags }}"
                                        name="company"
                                        value="{{ data.get('company') }}"
                                        data-form-validation-required
                                        {% if requiredMessage is defined %}data-form-validation-required-message="{{ requiredMessage }}"{% endif %}
                                        required="required">
                            {% endblock %}

                            {% block component_address_personal_company_name_input_error %}
                                {% if violationPath %}
                                    {% sw_include '@Storefront/storefront/utilities/form-violation.html.twig' %}
                                {% endif %}
                            {% endblock %}
                        </div>
                    {% endblock %}
                </div>
            {% endblock %}
        </div>

{% endblock %}

{% block component_address_personal_vat_id %}
    <div class="js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %} js-field-toggle-contact-type-vat-id">
        {% block component_address_personal_vat_id_fields %}
            <div class="row g-2">
                <div class="form-group col-12">
                    {% sw_include '@Storefront/storefront/component/address/address-personal-vat-id.html.twig' with {
                        'vatIds': data.get('vatIds'),
                        'editMode': true
                    } %}
                </div>
            </div>
        {% endblock %}
    </div>
{% endblock %}

Das sieht schonmal schön aus, aber leider werden die Werte nicht übertragen, d.h. der User wird angelegt, aber der Firmen-Name und auch die VAT werden nicht in der Datenbank gespeichert.

Hat hier noch jemand eine Idee zu?