Email wird im Browser ausgegeben

Moin aus Hamburg. =)

Ich habe hier ein Problem, dass ich so noch nicht gesehen habe. Nach zich mal durchsteppen mit dem XDebugger und sehr merkwürdigem Verhalten, weiß ich einfach nicht mehr so richtig weiter.

Deswegen dachte ich, bevor ich weiter im Dunklen rumstochere, frage ich einmal ob jemand schonmal etwas ähnliches gesehen und gefixed hat.

Mein Problem ist, dass nach einer erfolgreichen Bestellung im Prozess der Funktion:

protected function _sendOrderByEmail( $oUser = null, $oBasket = null, $oPayment = null )

Beim Aufruf von “$oxEmail->sendOrderEMailToUser( $this )” der Emailbody direkt in den Browser ausgegeben wird und der komplette weitere Ablauf unterbrochen wird.

Wenn ich mit XDebug druchsteppe, komme ich bis in die Smarty-FetchMethode und zwar bis hier:

        ob_start();
        if ($this->_is_compiled($resource_name, $_smarty_compile_path)
                || $this->_compile_resource($resource_name, $_smarty_compile_path))
        {
            include($_smarty_compile_path);
        }
        $_smarty_results = ob_get_contents();
        ob_end_clean();

Bei ob_get_contents() bleibt er dann hängen, führt noch ein zwei einzeilige Aufruf in einem Smartyplugin durch (höchstwahrscheinlich aufgerufen im includeten Template und dann schmeißt er den Puffer in den Browser und hängt sich auf…

Hat jemand sowas schon mal erlebt? Ich bin für jede Hilfe dankbar. =)

Lieben Gruß

Alexander

[QUOTE=ARoddis;85636]Moin aus Hamburg. =)

Beim Aufruf von “$oxEmail->sendOrderEMailToUser( $this )” der Emailbody direkt in den Browser ausgegeben wird und der komplette weitere Ablauf unterbrochen wird.

Hat jemand sowas schon mal erlebt? Ich bin für jede Hilfe dankbar. =)

Lieben Gruß

Alexander[/QUOTE]

Hallo Alexander,

das klingt nach einem Fehler im Mail-Template bzw. den inkludierten CMS-Bausteinen. Lass Dir ggf. mal das oxemail-Objekt ausgeben und such nach Fehlermeldungen.

Moin,

so nach debuggen des compilten Smartytemplates habe ich rausgefunden was passiert.

<b><?php if ($this->_tpl_vars[‘basketitem’]->getFUnitPrice()): ?><?php echo $this->_tpl_vars[‘basketitem’]->getFUnitPrice(); ?>

Die stelle ruft

return oxLang::getInstance()->formatCurrency( $this->getUnitPrice()->getBruttoPrice() );

auf.

Da “getUnitPrice()” aber null zurück liefert, fliegt da eine Exception…die scheint aber nirgendwo gefangen zu werden…

Das ist irgendwie extrem…verwirrend, wenn man das nicht weiß.

Und warum kommt da “null” bei raus? Ist das richtig aufgrund der vorliegenden Daten?

Falls ja - kannst Du das im Demoshop nachstellen? Das wäre dann wohl ein Bug.

Hallo,
hast Du zuletzt irgendwelche Module Installiert die auf “oxemail” zugreift? gucken ob die versionsnummer passt.

Markus

Ich denke ein Fehler unsererseits…wir haben mit $oBasket->load() den Basket geladen, allerdings sind dann die Preise noch nicht berechnet, die müssen scheinbar neu “berechnet” werden mit $oBasket->calculateBasket(true).

Jedenfalls funktioniert es jetzt bei uns so einwandfrei.

Vielen Dank für die schnelle und freundliche Hilfe. =)