Sofortüberweisung vs. Kundennummer

Achtung: Die Experten bei Sofortüberweisung (oder Sofort oder Klarna oder wie auch immer der Laden heute gerade heißt) haben im Plugin “Sofort. für Shopware 5.2.13 und höher” mit Version 1.1.1 eine Funktion eingebaut, die die Kundennummer prüft.

Das man in Shopware keine Kundennummern vergeben muss (Grundeinstellungen -> Storefront -> Anmeldung / Registrierung -> Shopware generiert Kundennummern) scheint dort keiner zu wissen.

Wenn die genannte Option auf “Nein” steht und somit die Kundennummer leer ist, kann das Plugin nicht funktionieren. Der Kunde wird immer auf die Account-Seite weitergeleitet.

Wir haben die Funktion jetzt so umgebogen, dass stattdessen die Id des Kunden genommen wird. Ist natürlich nicht das gelbe vom Ei, in einem Zahlungsplugin selbst Änderungen vorzunehmen, aber damit funktioniert jetzt erstmal wieder.

Toll ist auch, dass eine solche Änderung nicht im Changelog des Plugins erwähnt wird. Dort ist nur von “Kompatibel mit der neuen Version von Shopware” die Rede…

Die von unserer Wawi nach Import der Bestellung vergebene Kundennummer wird an Shopware abgeglichen. Neukunden haben demzufolge bei uns noch keine  Kundenummer. Deswegen haben wir wohl kaum noch Bestellungen, die per Sofortüberweisung bezahlt werden (und wenn, dann nur von Bestandskunden).

Könntest Du bitte mal Datei, Zeilennummer und/oder den passenden Ausschnitt posten, damit wir Laien das auch nachvollziehen können. Wir sind zwar schon auf Version 1.1.2 - was aber natürlich nicht heißt, dass der Fehler behoben wäre. Das wäre super.

Welcher praxisfremde !§%& denkt sich so was aus?

Jo, bei uns läuft das ähnlich mit KNr Zuweisung durch die Wawi nach der ersten Bestellung.

Auf das Sofort-Problem hat uns netterweise ein (Neu-)Kunde hingewiesen (immerhin 3 Tage nachdem ich von 1.0.0 upgedatet hatte). Wir hatten nach dem Update zwar Testbestellungen gemacht, aber leider mit einem Dummy-Kunden der schon eine Kundennummer zugewiesen hatte.

Wir haben übrigens auch 1.1.2. Wollte nur sagen, dass diese Kundennummerprüfung seit 1.1.1 enthalten ist.

Ok, hier mal meine kleine Änderung in der Datei custom/plugins/SofortPay/Controllers/Frontend/SofortPayment.php

    /**
     * @return string|null
     */
    protected function getCustomerNumber()
    {
        $user = $this->getUser();
        //$customerNumber = $user['additional']['user']['customernumber'];
        $customerNumber = $user['additional']['user']['id'];

        if (empty($customerNumber)) {
            /** @var Enlight_Components_Session_Namespace $session */
            $session = $this->container->get('session');
            //$sUserId = $session->offsetGet('sUserId');
            $customerNumber = $session->offsetGet('sUserId');

// if ($sUserId) {
// /** @var Shopware\Components\Model\ModelManager $em */
// $em = $this->container->get('models');
// $customerRepo = $em->getRepository(\Shopware\Models\Customer\Customer::class);
// /** @var \Shopware\Models\Customer\Customer $customer */
// $customer = $customerRepo->findOneBy(['id' => $sUserId]);
//
// if ($customer) {
// $customerNumber = $customer->getNumber();
// }
// }
        }

        return $customerNumber;
    }

Die beiden einzelnen mit // auskommentierten Zeilen sind Original und jeweils die Zeile darunter meine Änderung. Der auskommentierte Block wird in dem Fall nicht benötigt. Kann man auskommentieren, muss man aber nicht.

Achso, die Funktion befindet sich in der genannten Datei ganz unten. (Vorsicht bei Copy&Paste: In der letzten Zeile ist noch eine schliessende Klammer, die gehört zur Klasse und muss da bleiben.

Und ganz Wichtig: Das ganze ist natürlich nicht update-sicher und ich übernehme kein Gewähr. Ich war nur an einer schnellen Lösung interessiert und habe nicht das ganze Plugin geprüft, ob die Umstellung auf die Kunden-ID an anderer Stelle Folgen hat.

Ich kann aber sagen, dass damit bei uns zumindest schon Bestellungen angekommen sind. Hast du denn in der Zwischenzeit mal geprüft, ob das Problem bei euch mit einem Neukunden reproduzierbar ist? Nicht das ich hier totalen Blödsinn erzähle Grin

1 „Gefällt mir“

Hallo,

danke vielmals. Ich schau mir das noch mal intensiv in der Originaldatei an und teste dann. Ich würde evtl. noch eine Bedingung drumrum setzen die prüft, ob die Kundennummer bereits gesetzt ist.

Hast Du schon versucht den Fehler bei Sofort zu melden?

 

Achso, in der oben bereits genannten Datei sieht man übrigens auch den Redirect auf /account wenn keine Kundennummer vorhanden ist (Zeilen 67-69).

Prüfen, ob doch schon eine Kundennummer gesetzt ist hatte ich auch kurz überlegt. Aber wozu? Ich weiß eh nicht, warum das Plugin jetzt die Kundennummer haben will. Soll es halt mit den Kunden-Ids glücklich werden. Nebenbei hat man einen einheitlichen Nummernkreis und keine Doubletten.

Gemeldet ist nichts. Wollte ich über den Plugin-Support machen - gibts aber nicht. Mail an info@ die dann irgendwo landet, bzw. zu Hotline Warteschleifen konnte ich mich bis jetzt nicht zu durchringen.

Gerade mal Version 2.0.2 des Sofort Plugins angeschaut.

Problem besteht weiterhin, aber es wird jetzt geloggt. Wow Wearing-Sunglasses

v 2.0.9 07.07.2021
Weiterleitung für Kunden ohne Kundennummer (Konfiguration “Shopware generiert Kundennummern” = nein) korrigiert

2 Jahre später: Sie haben es gemerkt :open_mouth: :rofl: