Zahlungsarten freischalten wenn Firma ausgewählt

Hallo zusammen, kann man (und wenn ja wie) im Riskmanagement hinterlegen, dass bestimmte Zahlungsarten nur für Kunden freigeschaltet sind, wenn diese angeben, gewerblich zu sein (durch Auswahl von „Firma“ bei der Registrierung). Geht das? Danke und Grüße, Alex

Meines Wissens würde es nur gehen, wenn du den Kunden manuell eine Gruppe zuweist ( bspw. Firma ) und dann entsprechend im Riskmanagement hinterlegst wenn Kunden Gruppe Firma dann Zahlungsart XY. Anders würde es denke ich auch nicht wirklich viel Sinn machen, denn auch so könnte einfach ein privater Nutzer irgendeine Scheinfirma angeben und dann bspw. die Zahlungsart Rechnung nehmen, obwohl nicht geprüft worden ist, ob die Firma denn tatsächlich existiert.

Ja, aber ich will, dass Firmen ohne vorherige Registrierung (und Zuordnung zur Kundengruppe) auf RE bestellen können. Ein Privatkunde könnte ich nachher auf was anderes umstellen und wenn der sich beschwert, kann ich sagen, dass er eine Falschangabe gemacht hat (der Shop hat eh zum Großteil Firmenkunden)

Im Standard geht das leider nicht. Ich habe es für unsere Anforderungen direkt in sAdmin.php in /engine/Shopware/Core.php geändert. Suche folgende Zeile (bei mir 347) 347 foreach ($getPaymentMeans as $payKey =\> $payValue) { 348 // Hide payment means which are not active 349 if (empty($payValue["active"]) && $payValue["id"] != $user["additional"]["user"]["paymentpreset"]) { 350 unset($getPaymentMeans[$payKey]); 351 continue; 352 } und setze dort darunter // disable invoice payment if no company if ($payValue["id"] == 4 && empty($user["billingaddress"]["company"])) { unset($getPaymentMeans[$payKey]); continue; } Das ermöglicht Rechnungszahlung (Zahlungs-ID 4) nur für Kunden, die eine Firmenbezeichnung in der Rechnungsanschrift haben und sperrt damit für Privatkunden. Solltest du noch mehr Zahlungsarten ausschließen wollen, musst du die Zahlungs-ID raussuchen und in obigen Code noch eine ODER-Bedingung einfügen z.B. if (($payValue["id"] == 4 || $payValue["id"] == 5) && empty($user["billingaddress"]["company"])) { Bei uns geht jeder neue Firmenkunde in eine intensive Bonitätsprüfung, dort fallen dann auch die Privatkunden die „aus Versehen“ Geschäftskunde sind raus. Das man die Option „ist Firmenkunde“/„ist Privatkunde“ nicht im Risk-Management hat, schreit ja schon förmlich nach einem Ticket :wink: Gruß Mario P.S.: die Lösung ist nicht updatesicher, also nach jedem Update prüfen, ob die Regel noch drin ist. P.P.S.: weiß jemand von euch, ob man auch die Core-Dateien in Plugins ändern bzw. überschreiben kann? Dorthin bin ich mit meinen Plugin-Kenntnissen noch nicht vorgedrungen.

1 Like

Hallo, man könnte es über eine Versandart realisieren. Über eine eigene Bedingung kann man das Feld abfragen und somit die Rechnungsversandart aktivieren oder deaktivieren http://wiki.shopware.com/Versandkosten- … ml#Vorwort Sebastian

// disable invoice payment if no company if ($payValue["id"] == 4 && empty($user["billingaddress"]["company"])) { unset($getPaymentMeans[$payKey]); continue; } [quote] Bei uns geht jeder neue Firmenkunde in eine intensive Bonitätsprüfung, dort fallen dann auch die Privatkunden die “aus Versehen” Geschäftskunde sind raus. Das man die Option “ist Firmenkunde”/“ist Privatkunde” nicht im Risk-Management hat, schreit ja schon förmlich nach einem Ticket ;)[/quote] Thx, perfekt. Das arbeitet super und bei Deinem Ticketwunsch bin ich dabei!

@SebastianKlöpper schrieb:

Hallo,

man könnte es über eine Versandart realisieren.
Über eine eigene Bedingung kann man das Feld abfragen und somit die Rechnungsversandart aktivieren oder deaktivieren
http://wiki.shopware.com/Versandkosten- … ml#Vorwort

Sebastian

 

 

Wie genau müsste denn diese Bedingung lauten, wenn man das Feld «Firma» abfragen möchte? Danke für einen Tipp.