Problem:



Bei "Zahlung vor Bestellabschluss" wird die Bestellung Temporär in der Shop-Session gespeichert. 


Wählst du diese Variante, so solltest du sichergehen, dass die Session Laufzeit (session lifetime) auf mindestens 172800 Sekunden steht, bzw. die Gültigkeit der Zahlungslinks nicht länger ist, als die Session.


In vielen Shared Hosting Angeboten (z.B., auch bei JTL Software) kannst du die Session Laufzeit am Server nicht anpassen, da dies dann für alle Kunden gelten würde, die diesen Server nutzen.


Sollte sich der Zahlvorgang über die Session-Laufzeit hinaus verzögern, kann es passieren, dass zwar die Zahlung durchgeht, die Bestellung jedoch nicht abgeschlossen werden kann, da diese vom Garbage Collector bereits gelöscht wurde.


Hier findest die zeitliche Gültigkeit der verschiedenen Zahlungsmethoden von mollie: https://docs.mollie.com/payments/status-changes#expiry-times-per-payment-method


Die Session-Laufzeit kann man z.B. über die php.ini oder direkt im Shop über die includes/config.JTL-Shop.ini.php konfigurieren:


<?php

// ... Datenbank Konfiguration 

// Diese Zeile vor "?>" einfügen:
ini_set('session.gc_maxlifetime', 172800);     

?>

Nähere Infos zur Session Konfiguration findest du hier: https://www.php.net/manual/de/session.configuration.php


Lösung:


Falls du also die Session Laufzeit nicht anpassen kannst, solltest du immer "Zahlung nach Bestellabschluss" wählen, oder die Gültigkeit der Zahlungslinks an deine Session-Laufzeit anpassen:


Global:



Pro Zahlart: