In den Merconis-Grundeinstellungen wird das für den Checkout-Prozess zu verwendende Login-Modul angegeben. Merconis bietet dieses Modul dann in den entsprechenden Templates zur Ausgabe an und ist etwas zu übereifrig beim Rendern dieses Login-Moduls. Wird das Login-Modul auf Seiten, auf denen es gar nicht wirklich ausgegeben wird, im Hintergrund gerendert (Merconis macht das aktuell), hat das normalerweise keine negative Auswirkung, es ist schlichtweg in diesem Fall nicht nötig. Befindet man sich aber auf einer Login-Seite, auf der ein Login-Modul unabhängig von Merconis verwendet wird, kommt es zu dem Effekt, durch den die Fehlermeldungen verschwinden. Das sichtbare Login-Formular wird abgeschickt, die Daten werden aber nicht von der sichtbaren Instanz des Login-Moduls verarbeitet sondern von der im Hintergrund zuerst von Merconis gerenderten Login-Modul-Instanz, die auf dieser Seite selbst gar nicht auf dem Bildschirm erscheint. Abgesehen von verschwindenden Fehlermeldungen wäre das auch nicht schlimm, da es für den Login-Vorgang egal ist, welche Instanz eines Login-Moduls die übermittelten Zugangsdaten verarbeitet. Die Fehlermeldungen allerdings werden von der Instanz, die sich um die tatsächliche Verarbeitung der Login-Anforderung kümmert (in diesem Fall die unsichtbare), ausgegeben und stehen für die sichtbare Instanz nicht mehr zur Verfügung.
Soviel zur Erklärung des Bugs bzw. Konflikts.
Ich habe dieses Problem an die Entwicklung weitergegeben, sodass das Verhalten für die kommende Version optimiert werden kann. Es gibt aber einen einfachen Workaround, mit dem das Problem jetzt schon umgangen werden kann:
1. Erstellen Sie ein Dummy-FE-Modul, das einfach gar nichts macht (z. B. ein leeres Modul vom Typ "eigener HTML-Code").
2. Wählen Sie dieses Modul in den Merconis-Grundeinstellungen als "Login-Modul zur Verwendung beim Bestellabschluss" aus. Merconis wird dann dieses Modul im Hintergrund rendern anstatt des konfliktbehafteten Login-Moduls.
3. Entfernen Sie im Template (template_cart--big_desktop_include_customer_data_form.xhtml sowie html5- und Mobil-Varianten) die Ausgabe des im Hintergrund aufbereiteten Login-Moduls und fügen Sie einen Insert-Tag hinzu, um das echte Login-Modul auszugeben:
- Code: Alles auswählen
<div class="borderless">
===> HINZUFÜGEN: {{insert_module::***MODUL-ID***}}
===> ENTFERNEN: <?php echo $this->arrRequiredCheckoutData['formLogin']; ?>
</div>