Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Zustimmen der AGB in checkout_confirmation fehlerhaft

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Hallo zusammen,
    es gibt bereits eine super Anleitung vom User kyhn, wodurch die AGB Checkbox auf die Seite Checkout-Confirmation verlegt wird.

    ANLEITUNG: Zustimmen der AGB in checkout_confirmation

    Das Problem ist jedoch, dass die Modifikation nur mit internen Zahlungsmodulen läuft und somit mit PayPal, Sofortüberweisung usw. nicht funktioniert. In diesem Fall wird der Kunde nach der erfolgten Zahlung wieder zurück auf die checkout_confirmation (statt auf checkout_success) geleitet und soll dort die Checkbox erneut bestätigen.

    Leider kann ich kyhn weder anschreiben noch in das Thema schreiben. Ich habe auch keine Idee wo genau der Fehler liegt und wie dieser behoben werden kann. Wahrscheinlich ist der Fehler in der checkout_process?

    Es wäre wirklich super wenn mir jemand auf die Sprünge helfen könnte. Und damit das Problem für die Community gelöst wird: Wer eine funktionsfähige Lösung schafft und diese hier öffentlich bereitstellt erhält von mir als Dank eine kleine Spende i. H. von 10€  :paperbag:

    mit interaktiven Grüßen,
    Thomas

    Linkback: https://www.modified-shop.org/forum/index.php?topic=18125.0

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #1 am: 12. Februar 2012, 09:49:11
    Hat denn wirklich niemand eine Idee wo der Fehler liegt?

    mit interaktiven Grüßen,
    Thomas

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #2 am: 12. Februar 2012, 10:11:41
    Hallo Websell,

    vorher Sicherheitskopie der Datei da ungetestet.

    Dann versuche mal in Step 5 aus dem:
    Code: PHP  [Auswählen]
        /* BOF - kyhn - 2011-06-21 - ckeck AGB/conditions */
        // if conditions are not accepted, redirect the customer to the confirmation page
        if ($_POST['conditions'] == false) {
                        $error = str_replace('\n', '<br />', ERROR_CONDITIONS_NOT_ACCEPTED);
                        xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_CONFIRMATION, 'error_message=' . urlencode($error), 'SSL', true, false));
         
                }
        /* EOF - kyhn - 2011-06-21 - ckeck AGB/conditions */
    das zu machen:
    Code: PHP  [Auswählen]
        /* BOF - kyhn - 2011-06-21 - ckeck AGB/conditions */
        // if conditions are not accepted, redirect the customer to the confirmation page
        if ($_POST['conditions'] == false && $tmp) {
                        $error = str_replace('\n', '<br />', ERROR_CONDITIONS_NOT_ACCEPTED);
                        xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_CONFIRMATION, 'error_message=' . urlencode($error), 'SSL', true, false));
         
                }
        /* EOF - kyhn - 2011-06-21 - ckeck AGB/conditions */
    und dieses dann hinter Z.106:
    Code: PHP  [Auswählen]
                    $tmp_status = $order->info['order_status'];
            }
    zu verschieben.

    Viele Grüße

    Franky

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #3 am: 12. Februar 2012, 11:43:30
    Hallo Franky,
    vielen Dank für deine Hilfe.

    Ich habe es wie von dir vorgeschlagen ausprobiert. Leider funktioniert es nicht. Es tritt dadurch garkeine Fehlermeldung mehr auf, auch wenn die Checkbox überhaupt nicht markiert wurde.

    mit interaktiven Grüßen,
    Thomas

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #4 am: 12. Februar 2012, 11:48:08
    Hallo Websell,

    dann mach mal aus dem:
    Code: PHP  [Auswählen]
    if ($_POST['conditions'] == false && $tmp) {
    das:
    Code: PHP  [Auswählen]
    if ($_POST['conditions'] == false && $tmp == true) {
    dann sollte es klappen.

    Viele Grüße

    Franky

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #5 am: 12. Februar 2012, 12:17:47
    Hallo Franky,
    erneut mein Dank für deine schnelle Hilfe.

    Ich traue es mich fast garnicht zu sagen und ich habe gerade noch einmal alles doppelt überprüft... meiner Meinung nach funktioniert es immer noch nicht.

    Auch wenn der Haken nicht gesetzt wird leitet das System munter zur checkout success weiter ohne Fehlermeldung. Und das nicht nur bei PayPal oder anderen "komplizierteren" Methoden sondern bereits bei der klassischen Banküberweisung.

    Edit: Ich habe es gerade eben noch einmal ausführlich gestestet. Zu 50% hast du es bereits geschafft, mit Sofortüberweisung funktioniert es nun tatsächlich einwandfrei. Bei PayPal und Banküberweisung erscheint hingegen keine Meldung.

    Edit2: Selbstverständlich habe ich keinen vergleichbaren Kenntnisse, aber wäre es nicht am einfachsten einen zusätzlichen Parameter einzubauen der auf true gesetzt wird wenn die conditions abgearbeitet wurden und von der checkout_confirmation weggeleitet?

    mit interaktiven Grüßen,
    Thomas

    kyhn

    • Mitglied
    • Beiträge: 113
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #6 am: 13. Februar 2012, 00:30:08
    Hi Websell,

    da habe ich wohl ein wenig geschlafen, sowohl was den Fehler angeht, als auch das ich erst heute
    deinen Hilferuf hier gelesen habe... .
    Mir fehlt wohl manchmal noch ein wenig der Überblick im modifiedSystem und da ich das nie mit PayPal API oder SÜ getestet habe ist mir der Fehler leider auch nicht aufgefallen.
    Mein Adhoc-Lösungsversuch würde so aussehen.

    Punkt 5 (also in der checkout_process.php) müsste dann so aussehen
    Code: PHP  [Auswählen]
    /* BOF - kyhn - 2012-02-13 - ckeck AGB/conditions */
    // if conditions are not accepted, redirect the customer to the confirmation page

    if (isset $_POST['conditions']){
    $session['conditions'] = $_POST['conditions'];
    }
    if ($session['conditions'] == false) {
         $error = str_replace('\n', '<br />', ERROR_CONDITIONS_NOT_ACCEPTED);
         xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_CONFIRMATION, 'error_message=' . urlencode($error), 'SSL', true, false));
    }
    /* EOF - kyhn - 2012-02-13 - ckeck AGB/conditions */
     

    Das ganze ist ungetestet würde mich also freuen, wenn du es mal testen könntest.

    Grüße kyhn

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #7 am: 13. Februar 2012, 09:33:43
    Hallo kyhn,
    vielen Dank für deine Antwort.

    Ich habe den modifizierten Code an der gleichen Stelle wie in deiner Anleitung nach Z. 54 eingebaut, also nicht wie Frankys Variante nach Z 106.

    Wegen einem Syntaxfehler habe ich jedoch aus
    Code: PHP  [Auswählen]
    if (isset $_POST['conditions']){
    Code: PHP  [Auswählen]
    if (isset ($_POST['conditions'])){
    gemacht.

    Sollte das nicht korrekt sein, Schande über mich.

    Der Code funktioniert mit der klassischen Überweisung, bei der Sofortüberweisung entsteht jedoch sofort wieder das "alte" Problem: Nachdem die Überweisung schon durchgeführt wurde und eigentlich nur noch die checkout_success aufgerufen werden müsste wird der User plötzlich wieder zur checkout_confirmation geleitet und soll die checkbox bestätigen.

    Wird die Checkbox garnicht erst angekreuzt lässt das Script den Kunden schonmal nicht weiter, das funktioniert also.

    mit interaktiven Grüßen,
    Thomas

    kyhn

    • Mitglied
    • Beiträge: 113
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #8 am: 13. Februar 2012, 11:23:37
    Auf ein Neues.
    Ich habe wohl doch schon geschlafen.
    Den Syntyfehler hast du schon richtig behoben, nun muss aus den beiden
    $session['conditions']
    noch
    $_SESSION['conditions']
    gemacht werden.

    das ganze würde dann so aussehen:
    Code: PHP  [Auswählen]
    /* BOF - kyhn - 2012-02-13 - ckeck AGB/conditions */
    // if conditions are not accepted, redirect the customer to the confirmation page
     
    if (isset ($_POST['conditions'])){
    $_SESSION['conditions'] = $_POST['conditions'];
    }
    if ($_SESSION['conditions'] == false) {
         $error = str_replace('\n', '<br />', ERROR_CONDITIONS_NOT_ACCEPTED);
         xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_CONFIRMATION, 'error_message=' . urlencode($error), 'SSL', true, false));
    }
    /* EOF - kyhn - 2012-02-13 - ckeck AGB/conditions */

    Ich hoffe das war es dann.

    Grüße kyhn

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #9 am: 13. Februar 2012, 11:48:55
    kyhn,
    vielen Dank für deine Antwort.

    Es ist verrückt, aber es muss immer noch irgendwo was haken  :daumen-dreh:

    Banküberweisung funktioniert korrekt, bei Sofortüberweisung und PayPal wird der User auch ohne checkbox weitergeleitet und es tritt garkeine Fehlermeldung auf.

    Also insofern der Fortschritt zur ersten Variante das der Bestellvorgang zwar abgeschlossen wird aber die nicht angekreuzte Checkbox das System überhaupt nicht stört.

    PS: Den neuen Code habe ich nach Z. 54 eingefügt also nach
    Code: PHP  [Auswählen]
    if (!isset ($_SESSION['sendto'])) {
            xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
    }

    mit interaktiven Grüßen,
    Thomas

    kyhn

    • Mitglied
    • Beiträge: 113
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #10 am: 13. Februar 2012, 12:57:59
    puh....
    füge mal bitte in die checkout_process.php

    sehr weit unten
    bei
    Code: PHP  [Auswählen]
    // unregister session variables used during checkout

    noch diese zeile hinzu
    Code: PHP  [Auswählen]
    unset ($_SESSION['conditions']);

    Wenn du als erstes Banküberweisung getestet hast, dann war leider in der Session noch der Wert vorhanden, da er nicht gelöscht wurde.
    PayPal sollte eigentlich nun funktionieren.
    Für SÜ (und andere) müsste man das scheinbar woanders abfangen, da von der checkout_confirmation.php
    nicht in die checkout_process.php weitergeleitet wird und somit $_POST['checkout'] verloren geht
    und man somit wieder in der confirmation landet.

    Vorm Testen bitte einmal Browserneustart, wegen der Session.

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #11 am: 13. Februar 2012, 13:24:54
    Hallo kyhn,
    also für PayPal und Banküberweisung kann ich grünes Licht geben, das funktioniert einwandfrei. Vielen Dank.

    Ich kann ja versuchen eine zusätzliche Java Überprüfung für die SÜ einzubauen.

    Was mich nur interessieren würde:
    Ist der Code jetzt sauber, sprich das funktioniert reproduzierbar? Und kann es nicht passieren das ein Kunde bei der SÜ nach erfolgreicher Zahlung wieder zurückgeleitet wird?

    Falls das geklärt ist könnte ich mit der Lösung leben.

    Unabhängig davon nochmal herzlichen Dank an euch beide dafür das ihr euch mit dem Problem herumschlagt  :hug:

    mit interaktiven Grüßen,
    Thomas

    kyhn

    • Mitglied
    • Beiträge: 113
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #12 am: 13. Februar 2012, 13:36:42
    Mhh,
    ich hab jetzt nochmal im DemoShop hier nachgeschaut und scheinbar wird bei SÜ
    doch von der confirmation in die process weitergeleitet.
    Wen dem so ist, müsste es auch für SÜ so hinhauen.
    Was sagt denn dein Testsystem?

    Hat einer eine Ahnung wozu diese Zeilen in der checkout_confirmation.php gut sein sollen?
    Code: PHP  [Auswählen]
    if (isset ($$_SESSION['payment']->form_action_url) && !$$_SESSION['payment']->tmpOrders) {
            $form_action_url = $$_SESSION['payment']->form_action_url;
    } else {
            $form_action_url = xtc_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL');
    }

    Grüße kyhn

    Websell

    • Fördermitglied
    • Beiträge: 46
    • Geschlecht:
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #13 am: 13. Februar 2012, 14:18:10
    Also ich habe es jetzt noch einmal komplett sauber (alle cookies & cache gelöscht etc) ausprobiert und kann keinen Fehler mehr finden. Sowohl Banküberweisung, als auch Sofortüberweisung und PayPal funktionieren einwandfrei.

    Demnach gebe ich jetzt mal grünes Licht und sage das Problem ist gelöst. Demnach könntest du dein Modul entsprechend aktualisieren.

    Es wäre zudem nett wenn du mir deine PayPaladresse zukommen lassen könntest damit ich dir die kleine Spende als Dank rüberschicken kann  ;-)

    mit interaktiven Grüßen,
    Thomas

    kyhn

    • Mitglied
    • Beiträge: 113
    Re: Zustimmen der AGB in checkout_confirmation fehlerhaft
    Antwort #14 am: 13. Februar 2012, 14:50:32
    Die kleine Spende kannste gleich hier im Forum loswerden  :2cent:

    https://www.modified-shop.org/spenden

    Danke und Grüße kyhn
    73 Antworten
    40889 Aufrufe
    19. Februar 2021, 07:49:26 von bennyle
    1 Antworten
    3077 Aufrufe
    20. Juli 2012, 13:18:53 von jannemann
    0 Antworten
    1851 Aufrufe
    03. November 2013, 12:31:28 von ShadowByte