One-Page Checkout

  • da der onepage-checkout bei mir oft error-responses zurückgitbt, warum auch immer, hab ich den mal einfacher gemacht. Das ist das Script, was ich unten in die templates/template/module/checkout.html eingefügt habe:


    .oder-submit ist die css-Klasse des Bestellen-Links.
    Die ganzen Überprüfungen der AGB usw habe ich in der checkout_confirmation.php ausgeklammert. Die werde ich noch einfach voher per js überprüfen, genauso ob Versand- und Zahlungsart ausgewählt ist, dann erst das Script ausführen. Habs jetzt ein paar mal getestet und es funktioniert soweit einwandfrei, die Bestellungen landen mit den richtigen Werten in der Datenbank.
    So spart man sich das einzelne speichern von Versand/Zahlung und muss vor allen Dingen nicht den riesen Umweg über die xajax-Variante gehen, die Fehler zurückgibt, wegen z.B. whitespaces irgendwo.


    Was meint ihr dazu? Hab ich evtl was übersehen?


    mfg
    flex

  • Ich habe noch nie Errors vom xajax zurück bekommen. Was ist denn ein "riesen Umweg"?


    Im nächsten Update ist auch die neue xajax Version (0.6) drin, die erkennt Whitespaces selbstständig und filtert die raus.

  • der ganze xajax Ablauf ist ein Umweg. Von checkout() über checkout_check() bis keine Ahnung wohin.
    Mit jquery geht dass für micht viel einfacher. Formulardaten werden mit serialize() initialisiert und mit $.ajax abgeschickt. Jeweils für shipping, payment und process, das wars. Ist total einfach... was aber bei mir die Vermutung bringt, irgendwas übersehen zu haben...

  • Das ist umständlicher, was Du da "bastelst". Du benötigst 4 Dateien, quasi die von vorher.


    1. 1-Klick Checkout: im root die checkout.php drückt alles in das Template via Smarty
    2. im Ordner includes/ die xajax.checkout.php holt über die /includes/classes/checkout.php die Daten der Bestellung zusammen und erstellt daraus die Ajax-Funktionen
    3. die /includes/checkout.js.php beinhaltet die Javascripte für die Abfragen der Checkboxen


    Das ist alles. Alles fein strukturiert und leicht anpassbar. Verstehe nicht was da ein Umweg ist.


    Dann hast Du wohl auch an der neuen /admin/categories.php keine Freude? Die baue ich gerade auf xajax um...


    Für den Fall, das das noch nicht verstanden wurde: XAJAX stellt die fehlende Verbindung zwischen PHP und Ajax her. Ich kann mit einer einfachen Java-Funktion komplexe datenbankabfragen machen.

  • naja, was xajax ist, weiß ich ;) find ich auch praktisch mit register functions aus js php funktionen ausfühen zu können
    aber ich hab mich grad so an jquery gewöhnt... das Problem war aber, die fehler die zurückkommen, wegen whithespaces bei Versandart und wenn auf Bestellen geklickt wird, passiert gar nichts...


    am backend habe ich bei keinem shopsystem interesse... ich hab da was eigenes gebastelt


    jetzt habe ich beim checkout ein weiteres Problem. Wenn das Formular zur Bestellbestätigung abgeschickt wird (checkout_process.php), wird die Bestellung zwar korrekt abgschickt aber es wird nicht weitergeleitet auf checkout_success.php bzw sofortüberweisung...


    //edit


    bestellung absenden gibt auch nen alert zurück:

    Zitat

    Error: the XML response that was returned from the server is invalid.
    Received:



    <?xml version="1.0" encoding="utf-8" ?><xjx><cmd n="js">document.getElementById('checkout').submit();</cmd><cmd n="js">document.getElementById('checkout_please_wait').style.display = 'none';
    document.getElementById('checkout_please_wait').innerHTML = '';</cmd></xjx>
    You have whitespace in your response.

  • aaah, die weiterleitung auf checkout_success.php bzw sofortüberweisung.de funktioniert nur, wenn ich eins der bereits vorhandenen Versandmodule auswähle. Benutze ich eines meiner eigenen, wird leider nicht weitergeleitet. Die Klasse ist ist soweit korrekt programiert... muss ich das Modul noch irgendwo initialisieren oder so?


    //edit


    hat sich erledigt. hab als Basis eines der vorhandenen Module genommen und meinen Code reinkopiert. Jetzt gehts, warum auch immer ;)

  • Die Meldung "Whitespace" heißt Du hast vor einem <?php ein Leerzeichen. Mach es raus, dann wird alles gut. Du hast das wohl in mehreren Dateien drin. Mit welcher Software arbeitest Du?

  • Die Meldung "Whitespace" heißt Du hast vor einem <?php ein Leerzeichen. Mach es raus, dann wird alles gut. Du hast das wohl in mehreren Dateien drin. Mit welcher Software arbeitest Du?



    Bei mir funktioniert der One-Page-Checkout nicht mehr. Im IE und Safari wird mir auch angezeigt was das Problem ist. Irgenwo soll ein Whitespace sein.
    Ich habe jetzt alle Dateien durchgeschaut. Da ist nirgendwo ein Whitespace.


    Allerdings beginnt der Quellcode meiner Startseite mit einer Leerzeile
    Produkte mit 3 Leerzeilen (war in der V1 auch schon so), und der One-Page-Checkout beginnt mit einer Leerzeile.


    Probleme gibt es wie gesagt nur auf der checkout.php.
    Wie und wo soll ich denn dieses Whitespace finden?

  • Bitte die aktuellen Fixpacks einbauen. Da ist was im XAJAX Checkout zerschossen bei Dir! Besonders die Checkout Dateien würde ich auf Aktualität prüfen.

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