Sofortüberweisungs Probleme bei abgebrochener Zahlung

  • Wenn ein Kunde mit Sofortüberweisung bezahlen will werden die Lagerbestände abgebucht bevor die Zahlung erfolgt ist.

    Ein Artikel ist nur 1 x am Lager. Kunde legt ihn in den Warenkorb und geht zu Sofortüberweisung. Diese bricht er dann ab über den Button "zurück zum Shop". Der Artikel wird trotzdem vom Lager abgebucht und im Backend steht eine nicht bestätigte Bestellung. Der Kunde kann jetzt auch keine andere Zahlart mehr wählen, da der Artikel nicht mehr vorhanden ist.

    Habt Ihr damit keine Probleme?

    Axel
    http://www.toycraze.de

  • Es gibt imer wieder ja Zahlmodule die solche Probleme haben.
    War leider schon immer auch mit oscommerce und xtcom und und,
    Weiss überhaubt nicht ob dass durch den Shopprogramierer zu beheben ist oder den Zahlprovider mit den Module, weil es gibt soviele verschiedene die dan auch den eigene anpassungen und updates selbe machen bei den Zahlprovider, wo es durch/in den Shop Programierer nicht immer alles glat laufen kan.

    Frage ja mal Admin oder Mbraune, und /oder beim Sofortüberweisung selbst

  • Hm guter Punkt! Eigentlich sollte es ja so sein, dass die "sofo_tmp"-Bestellung, die beim Wechsel zu Sofortüberweisung generiert wurde, gelöscht wird wenn der User zurückkehrt, dabei sollte auch der Warenbestand wieder hinzugefügt werden. Ich habs allerdings grad mal nachgestellt in einem unserer Shops und hab tatsächlich dasselbe Verhalten, allerdings nur, wenn die ursprünglich an sofortueberweisung übertragene Bestelltmenge den Lagerbestand so reduziert, dass ein zweiter Kauf nicht möglich wär, also die "nicht genug vorhanden-Meldung" getriggert wird (User landet im Warenkorb anstatt Checkout). Also immer bei Lagerbestand 1 , z.B. bei Lagerbestand 3 und einer Bestgellmenge von 2, Lagerbestand 8 und Bestellmenge 5 usw, die tmp-Bestellungen werden in diesem Fall nicht (sofort) gelöscht und der Lagerbestand nicht aktualisiert was zum vom ADR beschriebenen Problem führt (Kunde kanns nicht kaufen).

    Das wäre wahrscheinlich tatsächlich bei Sofortüberweisung direkt am besten aufgehoben zur Beachtung in einem Update der Schnittsstelle, davon abgesehen, werd`ich mir das wohl auch nochmal ansehen demnächst zwecks Quickfix, werd`s dann hier posten wenn Admin nicht schneller ist.

    Beste Grüße aus Hamburg


    Mario

  • Hallo Mario,

    Sofortüberweisung schreibt mir gerade:

    hier die Antwort aus der Entwicklung:

    Dieses Feature wird vom alten SÜ-Modul als auch vom aktuellen Multipay-Modul nicht unterstützt. Das Hauptproblem liegt in der Tatsache, dass das Shopsystem hierfür keine Schnittstellen/Funktionen bereit stellt. Hierdurch ergeben sich diese Probleme:

    - Aufgrund der fehlenden Schnittstellen/Funktionen müsste das Zurücksetzen das Modul übernehmen. Bei zukünftigen Shopupdates könnte die korrekte Funktion jedoch hierdurch nicht mehr sichergestellt werden.
    - Es gab immer wieder das Problem, dass Käufer einfach den Sofort-Wizard zugemacht haben und es dadurch das Shopsystem gar nicht wissen konnte, dass die Bestellung abgebrochen wurde. In diesem Fall hätte auch niemals der Lagerbestand zurückgesetzt werden können.

    Lösungsmöglichkeiten:

    - Das Modul, welches der Händler nutzt, setzt den Zustand "Abgebrochen", wenn dies erkannt werden kann, also nicht o.a. Punkt zwei zutrifft. In diesem Fall bleibt nur das manuelle Zurücksetzen des Bestands durch den Händler
    - alternativ das Zulassen von einem Minus-Bestand im Shop Backend.

    Absolut unbefriedigend... Immerhin kostet jeder Abbruch einen tatsächlichen Kauf. Bestände ins Minus ist für mich ein absolutes NOGO. Meiner Meinung nach dürfte die Bestellung erst nach Bestätigung der Zahlung ausgelöst werden. In meinem 10 Jahre alten (Steinzeit) Mallux Shop funktioniert so etwas ohne Probleme.

    Hier bitte ich Webdesign Erfurt um schnellstmögliche Abhilfe.

    Axel
    http://www.toycraze.de

  • Heya,

    so, ich glaub ich hab`s auch schon, zumindest das von ADR oben beschriebene Problem der abbrechenden Kunden konnte ich lösen (noch offen : User die das ganze Fenster schließen und auch nicht zurück in den Shop kommen) falls ich nicht was übersehen habe, war`s einfacher als gedacht :

    checkout.php aus der Shoprootebene , suche nach :

    // Stock Check
    $any_out_of_stock = false;
    if (STOCK_CHECK == 'true') {
    for ($i = 0, $n = sizeof($order->products); $i < $n; $i++) {
    if (xtc_check_stock($order->products[$i]['id'], $order->products[$i]['qty']))
    $any_out_of_stock = true;
    }
    // Out of Stock
    if ((STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true))
    xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART));
    }

    Dieser sorgt ja dafür, dass der User auf den Warenkorb weitergeleitet wird wenn nicht genug Ware vorrätig ist, diese Überprüfung findet aber statt, BEVOR das sofortueberweisungsmodul nochmal aufgerufen wird und Gelegenheit bekommt seine tmp_order zu löschen (was es ja tut wenn es den Abbruch erkennt wie es in oben von ADR geschilderten Fällen ist).

    Verschiebt man jetzt o.g. Block ein paar Zeilen weiter nach unten, läuft die _remove_order funktion aus`m pn_sofortueberweisung-modul wieder durch und das Problem ist gelöst.

    o.g. Block muss dafür also nur oben ausgeschnitten, und UNTERHALB dieses blocks eingefügt werden:

    $order = new order;
    if (!$is_xajax) $payment_block = $checkout->getPaymentBlock($xtPrice, $payment_modules);
    $check = explode(';', MODULE_PAYMENT_INSTALLED);
    if(sizeof($check) <= 1)
    $smarty->assign('ONE_PAYMENT', ' dn');

    // Stock Check
    $any_out_of_stock = false;
    if (STOCK_CHECK == 'true') {
    for ($i = 0, $n = sizeof($order->products); $i < $n; $i++) {
    if (xtc_check_stock($order->products[$i]['id'], $order->products[$i]['qty']))
    $any_out_of_stock = true;
    }
    // Out of Stock
    if ((STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true))
    xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART));
    }

    man müsst` jetzt eigentlich nochmal gucken, was mit den Orders passiert die der Kunde auf der Sofo-Seite verlässt ohne Sie abzuschließen (also keine Rückleitung in den Shop) und was anderes ist mir dabei auch noch aufgefallen : wenn ich 2 Tabs offen habe im Shop (selbe session) und im ersten Tab zu Sofortueberweisung wechsle, wird mir die tmp Order angelegt, wenn ich nun aber mit dem zweiten Tab ebenfalls zur Kasse gehe, wird meine tmp_bestellung in diesem Moment gelöscht, somit könnte es zu Fällen kommen, wo man von sofo Geld erhält aber keinerlei Bestellung im Shop hat. Dieses Verhalten hat aber nichts mit meinem oben genannten Quickfix zu tun sondern besteht aktuell ganz generell ,also in jedem Shop.

    Mit besten Grüßen aus Hamburg

    Mario Braune

    Einmal editiert, zuletzt von mbraune (29. November 2012 um 13:56) aus folgendem Grund: typo

  • Lieber mbraune, ich muss Dir leider sagen, es funktioniert ;) Im alten Modul, und jetzt auch im neuen Modul ;-)))) Danke für den Tipp.

    <p>Wir geben nur Anregungen und Hilfestellung auf Basis unserer Erfahrung, keine Rechtshilfe!<br>\m/('_')\m/</p>

  • als ich "muss dir leider sagen," las` dacht ich `ne Sekunde "och nöööööö!" da ich`s grad schon bei allen Kunden geändert hatte ;) ja bestens, ich hatts auch nochmal getestet und es kommt sich m.E. auch nicht mit anderen Zahlarten usw in die Quere - wieder so`n verstecktes Ding weniger :)

  • Es funktioniert! Vorsicht ist aber jetzt bei der Lagerverwaltung geboten.

    Löschen der Bestellungen.

    Status offen (Rückleitung von Sofortüberweisung) Bestellung löschen und Bestände nicht zurückbuchen!
    Status nicht bezahlt (Fenster vom Kunden geschlossen) Bestellung löschen und Bestände zurückbuchen!

    Axel
    http://www.toycraze.de