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:
<script type="text/javascript">
$(document).ready(function(){
$('.order-submit').click(function(){
$.ajax({
url: "checkout_shipping.php",
type: "POST",
data: $("#form_shipping_modules").serialize()+'&action=process',
success: function(ret){
$.ajax({
url: "checkout_confirmation.php",
type: "POST",
data: $("#form_payment_modules").serialize()+'&action=process',
success: function(ret){
$.ajax({
url: "checkout_process.php",
type: "POST",
data: $("#payment").serialize()+'&action=process',
success: function(ret){
alert('process check');
},
error: function(ret){
alert(ret);
}
});
},
error: function(ret){
alert(ret);
}
});
},
error: function(ret){
alert(ret);
}
});
});
});
</script>
Alles anzeigen
.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