Registrierung nur "Gewerblich" ohne Auswahl der "Ich bin"

Hallo.

Gibt es in SW6 keine Möglichkeit die Registrierung je Verkaufskanal nur für gewerbliche Kunden vorzubelgen? Quasi die Logik wenn ich bei “Ich bin*” Gewerblich auswähle. Also die Felder Unternehmen, Abteilung, Ust-Id anzeigen? Es soll kein Auswahlfeld geben. In der Konfiguration zur Registrierung sehe ich leider keine Option. Im Template auch nicht… Gibt es vielleicht noch einen anderen Weg ohne Templatenanpassung?

 

Gruß Mike

Ich suche die Funktion auch. Ich habe versucht dies über JS zu hacken, aber leider wird dann das Form-Template dann nicht entsprechend aktualisiert.

// Block private registration
window.addEventListener('load', function() {
    document.querySelector('option[value=private]').remove();
    document.querySelector('option[value=business]').selected = 'selected';
    document.querySelector('select#accountType').value = 'business';
});

 

Ich würde das auch benötigen! Also nur gewerbliche Kunden.

Hallo zusammen. 

Es ist ein Zusammenspiel mehrer Faktoren notwendig um die Funktion bereitzustellen (scss, js und Templateanpassungen). Wir haben die Logik in ein Pluign gepackt und werden prüfen ob wir dies im Store bereitstellen können.

 

Gruß Mike

@_MikeB schrieb:

Hallo zusammen. 

Es ist ein Zusammenspiel mehrer Faktoren notwendig um die Funktion bereitzustellen (scss, js und Templateanpassungen). Wir haben die Logik in ein Pluign gepackt und werden prüfen ob wir dies im Store bereitstellen können.

 

Gruß Mike

Oh, ja das wäre wirklich super! 

Guten Morgen zusammen.

Plugin wird gerade von Shopware geprüft und sollte dann zeitnahe im Store bereitstehen. Ich schreibe hier nochmal wenn es soweit ist :wink:

 

Gruß Mike

1 Like

Hallo, oh das klingt super. Eine Frage vorab, kann man das dann pro Verkaufskanal zuweisen? Ich hab nämlich zwei Verkaufskanäle, einer ist B2C und einer B2B. Und ich würde das eben für B2B brauchen.

Ja das geht :wink:

Wird wohl ein guter Tag heute …

:slight_smile: Dauer wohl aber leider ein paar Tage bis Shopware das Plugin geprüft hat… :frowning:

Der gute Tag ist doch schon heute :smiley: SW hat Gas gegeben. Hier ist das Plugin:

 

Gruß Mike

1 Like

Sag ich doch …

Edit: Es funktioniert hervorragend !!!

Hallo zusammen,

entweder das Plugin nehmen oder einfach ein neues Template Override in /custom/plugins//src/Resources/views/storefront/component/address/address-personal.html.twig mit folgenden Inhalt setzen:

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

{% block component_address_personal_account_type_select %}
        {% if shopware.config.core.loginRegistration.showAccountTypeSelection %}
            <select name="{% if prefix %}{{ prefix }}[accountType]{% else %}accountType{% endif %}"
                id="{{ prefix }}accountType"
                required="required"
                class="custom-select contact-select"
                data-form-field-toggle="true"
                data-form-field-toggle-target=".js-field-toggle-contact-type-company"
                data-form-field-toggle-value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}"
                data-form-field-toggle-scope="{% if scope == 'parent' %}parent{% else %}all{% endif %}"
                {% if scope == 'parent' %}data-form-field-toggle-parent-selector={{ parentSelector }}{% endif %}
            >
        {% endif %}

        {% set isCompany = false %}

        {% if page.address.company or data.company is not empty %}
            {% set isCompany  = true %}
        {% endif %}

        {% if accountType and accountType == constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') %}
            {% set isCompany  = true %}
        {% endif %}

        {% set isLoginPage = false %}
        {% if activeRoute == 'frontend.account.login.page' %}
            {% set isLoginPage = true %}
        {% endif %}

        <option value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}"
            {% if isLoginPage == false %} selected="selected"{% endif %} aria-hidden="true">
            {{ "account.personalTypeBusiness"|trans|sw_sanitize }}
        </option>
    </select>
{% endblock %}

Ist dirty, funktioniert aber und lässt alle Funktionen vorhanden.

Alternativ den Block noch unsichtbar machen. SCSS:

.contact-type {
display: none;
}

Grüße
Ralf

Anbei die Lösung von @rasch.media aktualisiert, sodass auch das Feld „Firma“ angezeigt wird:

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

{% block component_address_personal_account_type_select %}

    {% set onlyCompanyRegistration = true %}

        {% if onlyCompanyRegistration or config('core.loginRegistration.showAccountTypeSelection') %}
            <select name="{% if prefix %}{{ prefix }}[accountType]{% else %}accountType{% endif %}"
                id="{{ prefix }}accountType"
                {% if onlyCompanyRegistration %}disabled{% endif %}
                required="required"
                class="custom-select contact-select"
                data-form-field-toggle="true"
                data-form-field-toggle-target=".js-field-toggle-contact-type-company{% if customToggleTarget %}-{{ prefix }}{% endif %}"
                data-form-field-toggle-value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}"
                data-form-field-toggle-scope="{% if scope == 'parent' %}parent{% else %}all{% endif %}"
                {% if scope == 'parent' %}data-form-field-toggle-parent-selector={{ parentSelector }}{% endif %}
            >
        {% endif %}

        {% set isCompany = true %}

        {% if page.address.company or data.company is not empty %}
            {% set isCompany  = true %}
        {% endif %}

        {% if onlyCompanyRegistration or (accountType and accountType == constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS')) %}
            {% set isCompany  = true %}
        {% endif %}

        {% set isLoginPage = false %}
        {% if activeRoute == 'frontend.account.login.page' %}
            {% set isLoginPage = true %}
        {% endif %}

        {% if isLoginPage %}
            <option disabled="disabled"
                    selected="selected"
                    value="">
                {{ "account.personalTypeLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
            </option>
        {% endif %}

        <option value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}"
            {% if isCompany == true and isLoginPage == false %} selected="selected"{% endif %}>
            {{ "account.personalTypeBusiness"|trans|sw_sanitize }}
        </option>
    </select>
    {% if onlyCompanyRegistration %}<input type="hidden" name="accountType" value="{{ constant('Shopware\\Core\\Checkout\\Customer\\CustomerEntity::ACCOUNT_TYPE_BUSINESS') }}">{% endif %}
{% endblock %}


1 Like